io-console 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea376ca7a23381cc7ad476248aa32fc95ff2fe19be07170f6eb4031b42e897ab
4
- data.tar.gz: 321d946b43b46f279bb28d08c173c48b05e9c9a087d51cbcf1715153c772cda1
3
+ metadata.gz: a8485f98825214ba70388cfaf023a5380201fc1de70b87ffddb36a9a2603115c
4
+ data.tar.gz: db5deeb27f6bc90121cdb8ad6005aca2615f5a81976f97f09f25e63caed7070e
5
5
  SHA512:
6
- metadata.gz: 88f4b33458250ec0e9039c9187d144fb9c851753c39b7e5191db26e2b8a898ce5ac6d6897330c93ae8eab1c6a4cd800a7af9f36ce83fd20b6caedfc52a12ed50
7
- data.tar.gz: 4235ecf65e5e0b81c196d62a0a95649f708a29e2c300d645e99301dd3b6a470dc30b3cad6e2151b8ebf69c15c797962f62f55d6cdb935179f0656d2e450939af
6
+ metadata.gz: fcafaead8dd6a72e82e852ad8cf57bff49fb8fd8959520b8522c3fbf79bd97f1b218dd341f1e66656500c2a5ccd34045260655af948d86031e8f01ce19887df7
7
+ data.tar.gz: f8ebf55a9fef2383adda797b62824cc7b9cc9458c98fd9025bab2945111851651df9a44469ec10549d4ea063469870ba2cc32a4a25d3e68dc57206531bce6c54
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions
5
5
  are met:
6
6
  1. Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
7
+ notice, this list of conditions and the following disclaimer.
8
8
  2. Redistributions in binary form must reproduce the above copyright
9
- notice, this list of conditions and the following disclaimer in the
10
- documentation and/or other materials provided with the distribution.
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
11
 
12
12
  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
13
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
data/COPYING ADDED
@@ -0,0 +1,56 @@
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
+
5
+ 1. You may make and give away verbatim copies of the source form of the
6
+ software without restriction, provided that you duplicate all of the
7
+ original copyright notices and associated disclaimers.
8
+
9
+ 2. You may modify your copy of the software in any way, provided that
10
+ you do at least ONE of the following:
11
+
12
+ a. place your modifications in the Public Domain or otherwise
13
+ make them Freely Available, such as by posting said
14
+ modifications to Usenet or an equivalent medium, or by allowing
15
+ the author to include your modifications in the software.
16
+
17
+ b. use the modified software only within your corporation or
18
+ organization.
19
+
20
+ c. give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
+
23
+ d. make other distribution arrangements with the author.
24
+
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
+
28
+ a. distribute the binaries and library files of the software,
29
+ together with instructions (in the manual page or equivalent)
30
+ on where to get the original distribution.
31
+
32
+ b. accompany the distribution with the machine-readable source of
33
+ the software.
34
+
35
+ c. give non-standard binaries non-standard names, with
36
+ instructions on where to get the original software distribution.
37
+
38
+ d. make other distribution arrangements with the author.
39
+
40
+ 4. You may modify and include the part of the software into any other
41
+ software (possibly commercial). But some files in the distribution
42
+ are not written by the author, so that they are not under these terms.
43
+
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
46
+
47
+ 5. The scripts and library files supplied as input to or produced as
48
+ output from the software do not automatically fall under the
49
+ copyright of the software, but belong to whomever generated them,
50
+ and may be sold commercially, and may be aggregated with this
51
+ software.
52
+
53
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ PURPOSE.
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  static const char *const
7
- IO_CONSOLE_VERSION = "0.7.2";
7
+ IO_CONSOLE_VERSION = "0.8.0";
8
8
 
9
9
  #include "ruby.h"
10
10
  #include "ruby/io.h"
@@ -81,9 +81,14 @@ getattr(int fd, conmode *t)
81
81
 
82
82
  #define CSI "\x1b\x5b"
83
83
 
84
- static ID id_getc, id_console, id_close;
84
+ static ID id_getc, id_close;
85
85
  static ID id_gets, id_flush, id_chomp_bang;
86
86
 
87
+ #ifndef HAVE_RB_INTERNED_STR_CSTR
88
+ # define rb_str_to_interned_str(str) rb_str_freeze(str)
89
+ # define rb_interned_str_cstr(str) rb_str_freeze(rb_usascii_str_new_cstr(str))
90
+ #endif
91
+
87
92
  #if defined HAVE_RUBY_FIBER_SCHEDULER_H
88
93
  # include "ruby/fiber/scheduler.h"
89
94
  #elif defined HAVE_RB_SCHEDULER_TIMEOUT
@@ -125,7 +130,14 @@ io_get_write_io_fallback(VALUE io)
125
130
  #define rb_io_get_write_io io_get_write_io_fallback
126
131
  #endif
127
132
 
128
- #define sys_fail(io) rb_sys_fail_str(rb_io_path(io))
133
+ #ifndef DHAVE_RB_SYSERR_FAIL_STR
134
+ # define rb_syserr_fail_str(e, mesg) rb_exc_raise(rb_syserr_new_str(e, mesg))
135
+ #endif
136
+
137
+ #define sys_fail(io) do { \
138
+ int err = errno; \
139
+ rb_syserr_fail_str(err, rb_io_path(io)); \
140
+ } while (0)
129
141
 
130
142
  #ifndef HAVE_RB_F_SEND
131
143
  #ifndef RB_PASS_CALLED_KEYWORDS
@@ -1071,6 +1083,9 @@ console_scroll(VALUE io, int line)
1071
1083
  return io;
1072
1084
  }
1073
1085
 
1086
+ #define GPERF_DOWNCASE 1
1087
+ #define GPERF_CASE_STRCMP 1
1088
+ #define gperf_case_strcmp STRCASECMP
1074
1089
  #include "win32_vk.inc"
1075
1090
 
1076
1091
  /*
@@ -1535,10 +1550,8 @@ console_clear_screen(VALUE io)
1535
1550
  static VALUE
1536
1551
  io_open_descriptor_fallback(VALUE klass, int descriptor, int mode, VALUE path, VALUE timeout, void *encoding)
1537
1552
  {
1538
- rb_update_max_fd(descriptor);
1539
-
1540
1553
  VALUE arguments[2] = {
1541
- INT2NUM(descriptor),
1554
+ (rb_update_max_fd(descriptor), INT2NUM(descriptor)),
1542
1555
  INT2FIX(mode),
1543
1556
  };
1544
1557
 
@@ -1563,6 +1576,62 @@ rb_io_closed_p(VALUE io)
1563
1576
  }
1564
1577
  #endif
1565
1578
 
1579
+ #if defined(RB_EXT_RACTOR_SAFE) && defined(HAVE_RB_RACTOR_LOCAL_STORAGE_VALUE_NEWKEY)
1580
+ # define USE_RACTOR_STORAGE 1
1581
+ #else
1582
+ # define USE_RACTOR_STORAGE 0
1583
+ #endif
1584
+
1585
+ #if USE_RACTOR_STORAGE
1586
+ #include "ruby/ractor.h"
1587
+ static rb_ractor_local_key_t key_console_dev;
1588
+
1589
+ static bool
1590
+ console_dev_get(VALUE klass, VALUE *dev)
1591
+ {
1592
+ return rb_ractor_local_storage_value_lookup(key_console_dev, dev);
1593
+ }
1594
+
1595
+ static void
1596
+ console_dev_set(VALUE klass, VALUE value)
1597
+ {
1598
+ rb_ractor_local_storage_value_set(key_console_dev, value);
1599
+ }
1600
+
1601
+ static void
1602
+ console_dev_remove(VALUE klass)
1603
+ {
1604
+ console_dev_set(klass, Qnil);
1605
+ }
1606
+
1607
+ #else
1608
+
1609
+ static ID id_console;
1610
+
1611
+ static int
1612
+ console_dev_get(VALUE klass, VALUE *dev)
1613
+ {
1614
+ if (rb_const_defined(klass, id_console)) {
1615
+ *dev = rb_const_get(klass, id_console);
1616
+ return 1;
1617
+ }
1618
+ return 0;
1619
+ }
1620
+
1621
+ static void
1622
+ console_dev_set(VALUE klass, VALUE value)
1623
+ {
1624
+ rb_const_set(klass, id_console, value);
1625
+ }
1626
+
1627
+ static void
1628
+ console_dev_remove(VALUE klass)
1629
+ {
1630
+ rb_const_remove(klass, id_console);
1631
+ }
1632
+
1633
+ #endif
1634
+
1566
1635
  /*
1567
1636
  * call-seq:
1568
1637
  * IO.console -> #<File:/dev/tty>
@@ -1591,10 +1660,9 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1591
1660
  // Force the class to be File.
1592
1661
  if (klass == rb_cIO) klass = rb_cFile;
1593
1662
 
1594
- if (rb_const_defined(klass, id_console)) {
1595
- con = rb_const_get(klass, id_console);
1663
+ if (console_dev_get(klass, &con)) {
1596
1664
  if (!RB_TYPE_P(con, T_FILE) || RTEST(rb_io_closed_p(con))) {
1597
- rb_const_remove(klass, id_console);
1665
+ console_dev_remove(klass);
1598
1666
  con = 0;
1599
1667
  }
1600
1668
  }
@@ -1603,7 +1671,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1603
1671
  if (sym == ID2SYM(id_close) && argc == 1) {
1604
1672
  if (con) {
1605
1673
  rb_io_close(con);
1606
- rb_const_remove(klass, id_console);
1674
+ console_dev_remove(klass);
1607
1675
  con = 0;
1608
1676
  }
1609
1677
  return Qnil;
@@ -1623,7 +1691,6 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1623
1691
  #endif
1624
1692
  #ifdef CONSOLE_DEVICE_FOR_WRITING
1625
1693
  VALUE out;
1626
- rb_io_t *ofptr;
1627
1694
  #endif
1628
1695
  int fd;
1629
1696
  VALUE path = rb_obj_freeze(rb_str_new2(CONSOLE_DEVICE));
@@ -1645,7 +1712,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1645
1712
  #ifdef CONSOLE_DEVICE_FOR_WRITING
1646
1713
  rb_io_set_write_io(con, out);
1647
1714
  #endif
1648
- rb_const_set(klass, id_console, con);
1715
+ console_dev_set(klass, con);
1649
1716
  }
1650
1717
 
1651
1718
  if (sym) {
@@ -1756,18 +1823,81 @@ io_getpass(int argc, VALUE *argv, VALUE io)
1756
1823
  return str_chomp(str);
1757
1824
  }
1758
1825
 
1826
+ #if defined(_WIN32) || defined(HAVE_TTYNAME_R) || defined(HAVE_TTYNAME)
1827
+ /*
1828
+ * call-seq:
1829
+ * io.ttyname -> string or nil
1830
+ *
1831
+ * Returns name of associated terminal (tty) if +io+ is not a tty.
1832
+ * Returns +nil+ otherwise.
1833
+ */
1834
+ static VALUE
1835
+ console_ttyname(VALUE io)
1836
+ {
1837
+ int fd = rb_io_descriptor(io);
1838
+ if (!isatty(fd)) return Qnil;
1839
+ # if defined _WIN32
1840
+ return rb_usascii_str_new_lit("con");
1841
+ # elif defined HAVE_TTYNAME_R
1842
+ {
1843
+ char termname[1024], *tn = termname;
1844
+ size_t size = sizeof(termname);
1845
+ int e;
1846
+ if (ttyname_r(fd, tn, size) == 0)
1847
+ return rb_interned_str_cstr(tn);
1848
+ if ((e = errno) == ERANGE) {
1849
+ VALUE s = rb_str_new(0, size);
1850
+ while (1) {
1851
+ tn = RSTRING_PTR(s);
1852
+ size = rb_str_capacity(s);
1853
+ if (ttyname_r(fd, tn, size) == 0) {
1854
+ return rb_str_to_interned_str(rb_str_resize(s, strlen(tn)));
1855
+ }
1856
+ if ((e = errno) != ERANGE) break;
1857
+ if ((size *= 2) >= INT_MAX/2) break;
1858
+ rb_str_resize(s, size);
1859
+ }
1860
+ }
1861
+ rb_syserr_fail_str(e, rb_sprintf("ttyname_r(%d)", fd));
1862
+ UNREACHABLE_RETURN(Qnil);
1863
+ }
1864
+ # elif defined HAVE_TTYNAME
1865
+ {
1866
+ const char *tn = ttyname(fd);
1867
+ if (!tn) {
1868
+ int e = errno;
1869
+ rb_syserr_fail_str(e, rb_sprintf("ttyname(%d)", fd));
1870
+ }
1871
+ return rb_interned_str_cstr(tn);
1872
+ }
1873
+ # else
1874
+ # error No ttyname function
1875
+ # endif
1876
+ }
1877
+ #else
1878
+ # define console_ttyname rb_f_notimplement
1879
+ #endif
1880
+
1759
1881
  /*
1760
1882
  * IO console methods
1761
1883
  */
1762
1884
  void
1763
1885
  Init_console(void)
1764
1886
  {
1887
+ #if USE_RACTOR_STORAGE
1888
+ RB_EXT_RACTOR_SAFE(true);
1889
+ #endif
1890
+
1765
1891
  #undef rb_intern
1892
+ #if USE_RACTOR_STORAGE
1893
+ key_console_dev = rb_ractor_local_storage_value_newkey();
1894
+ #else
1895
+ id_console = rb_intern("console");
1896
+ #endif
1766
1897
  id_getc = rb_intern("getc");
1767
1898
  id_gets = rb_intern("gets");
1768
1899
  id_flush = rb_intern("flush");
1769
1900
  id_chomp_bang = rb_intern("chomp!");
1770
- id_console = rb_intern("console");
1771
1901
  id_close = rb_intern("close");
1772
1902
  #define init_rawmode_opt_id(name) \
1773
1903
  rawmode_opt_ids[kwd_##name] = rb_intern(#name)
@@ -1815,6 +1945,7 @@ InitVM_console(void)
1815
1945
  rb_define_method(rb_cIO, "pressed?", console_key_pressed_p, 1);
1816
1946
  rb_define_method(rb_cIO, "check_winsize_changed", console_check_winsize_changed, 0);
1817
1947
  rb_define_method(rb_cIO, "getpass", console_getpass, -1);
1948
+ rb_define_method(rb_cIO, "ttyname", console_ttyname, 0);
1818
1949
  rb_define_singleton_method(rb_cIO, "console", console_dev, -1);
1819
1950
  {
1820
1951
  /* :stopdoc: */
@@ -1826,7 +1957,7 @@ InitVM_console(void)
1826
1957
  {
1827
1958
  /* :stopdoc: */
1828
1959
  cConmode = rb_define_class_under(rb_cIO, "ConsoleMode", rb_cObject);
1829
- rb_define_const(cConmode, "VERSION", rb_str_new_cstr(IO_CONSOLE_VERSION));
1960
+ rb_define_const(cConmode, "VERSION", rb_obj_freeze(rb_str_new_cstr(IO_CONSOLE_VERSION)));
1830
1961
  rb_define_alloc_func(cConmode, conmode_alloc);
1831
1962
  rb_undef_method(cConmode, "initialize");
1832
1963
  rb_define_method(cConmode, "initialize_copy", conmode_init_copy, 1);
@@ -1,13 +1,30 @@
1
1
  # frozen_string_literal: false
2
2
  require 'mkmf'
3
3
 
4
+ # `--target-rbconfig` compatibility for Ruby 3.3 or earlier
5
+ # See https://bugs.ruby-lang.org/issues/20345
6
+ MakeMakefile::RbConfig ||= ::RbConfig
7
+
8
+ have_func("rb_syserr_fail_str(0, Qnil)") or
9
+ have_func("rb_syserr_new_str(0, Qnil)") or
10
+ abort
11
+
12
+ have_func("rb_interned_str_cstr")
4
13
  have_func("rb_io_path")
5
14
  have_func("rb_io_descriptor")
6
15
  have_func("rb_io_get_write_io")
7
16
  have_func("rb_io_closed_p")
8
17
  have_func("rb_io_open_descriptor")
18
+ have_func("rb_ractor_local_storage_value_newkey")
9
19
 
10
- ok = true if RUBY_ENGINE == "ruby" || RUBY_ENGINE == "truffleruby"
20
+ is_wasi = /wasi/ =~ MakeMakefile::RbConfig::CONFIG["platform"]
21
+ # `ok` can be `true`, `false`, or `nil`:
22
+ # * `true` : Required headers and functions available, proceed regular build.
23
+ # * `false`: Required headers or functions not available, abort build.
24
+ # * `nil` : Unsupported compilation target, generate dummy Makefile.
25
+ #
26
+ # Skip building io/console on WASI, as it does not support termios.h.
27
+ ok = true if (RUBY_ENGINE == "ruby" && !is_wasi) || RUBY_ENGINE == "truffleruby"
11
28
  hdr = nil
12
29
  case
13
30
  when macro_defined?("_WIN32", "")
@@ -35,6 +52,7 @@ when true
35
52
  elsif have_func("rb_scheduler_timeout") # 3.0
36
53
  have_func("rb_io_wait")
37
54
  end
55
+ have_func("ttyname_r") or have_func("ttyname")
38
56
  create_makefile("io/console") {|conf|
39
57
  conf << "\n""VK_HEADER = #{vk_header}\n"
40
58
  }
@@ -480,7 +480,7 @@
480
480
  # define VK_OEM_CLEAR UNDEFINED_VK
481
481
  #endif
482
482
  /* ANSI-C code produced by gperf version 3.1 */
483
- /* Command-line: gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' win32_vk.list */
483
+ /* Command-line: gperf --ignore-case -L ANSI-C -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' win32_vk.list */
484
484
 
485
485
  #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
486
486
  && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
@@ -509,11 +509,10 @@
509
509
  #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
510
510
  #endif
511
511
 
512
- #define gperf_offsetof(s, n) (short)offsetof(struct s##_t, s##_str##n)
513
512
  #line 1 "win32_vk.list"
514
513
 
515
514
  struct vktable {short ofs; unsigned short vk;};
516
- static const struct vktable *console_win32_vk(/*const char *, unsigned int*/);
515
+ static const struct vktable *console_win32_vk(const char *, size_t);
517
516
  #line 5 "win32_vk.list"
518
517
  struct vktable;
519
518
  /* maximum key range = 245, duplicates = 0 */
@@ -1007,368 +1006,368 @@ console_win32_vk (register const char *str, register size_t len)
1007
1006
  {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1008
1007
  {-1}, {-1}, {-1},
1009
1008
  #line 40 "win32_vk.list"
1010
- {gperf_offsetof(stringpool, 12), VK_UP},
1009
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, VK_UP},
1011
1010
  #line 52 "win32_vk.list"
1012
- {gperf_offsetof(stringpool, 13), VK_APPS},
1011
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, VK_APPS},
1013
1012
  #line 159 "win32_vk.list"
1014
- {gperf_offsetof(stringpool, 14), VK_CRSEL},
1013
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, VK_CRSEL},
1015
1014
  #line 34 "win32_vk.list"
1016
- {gperf_offsetof(stringpool, 15), VK_SPACE},
1015
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, VK_SPACE},
1017
1016
  #line 95 "win32_vk.list"
1018
- {gperf_offsetof(stringpool, 16), VK_SCROLL},
1017
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, VK_SCROLL},
1019
1018
  #line 29 "win32_vk.list"
1020
- {gperf_offsetof(stringpool, 17), VK_ESCAPE},
1019
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, VK_ESCAPE},
1021
1020
  #line 9 "win32_vk.list"
1022
- {gperf_offsetof(stringpool, 18), VK_CANCEL},
1021
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, VK_CANCEL},
1023
1022
  #line 32 "win32_vk.list"
1024
- {gperf_offsetof(stringpool, 19), VK_ACCEPT},
1023
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, VK_ACCEPT},
1025
1024
  #line 66 "win32_vk.list"
1026
- {gperf_offsetof(stringpool, 20), VK_SEPARATOR},
1025
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, VK_SEPARATOR},
1027
1026
  #line 43 "win32_vk.list"
1028
- {gperf_offsetof(stringpool, 21), VK_SELECT},
1027
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, VK_SELECT},
1029
1028
  #line 18 "win32_vk.list"
1030
- {gperf_offsetof(stringpool, 22), VK_CONTROL},
1029
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, VK_CONTROL},
1031
1030
  #line 166 "win32_vk.list"
1032
- {gperf_offsetof(stringpool, 23), VK_OEM_CLEAR},
1031
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, VK_OEM_CLEAR},
1033
1032
  #line 145 "win32_vk.list"
1034
- {gperf_offsetof(stringpool, 24), VK_OEM_RESET},
1033
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, VK_OEM_RESET},
1035
1034
  #line 155 "win32_vk.list"
1036
- {gperf_offsetof(stringpool, 25), VK_OEM_AUTO},
1035
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, VK_OEM_AUTO},
1037
1036
  #line 151 "win32_vk.list"
1038
- {gperf_offsetof(stringpool, 26), VK_OEM_CUSEL},
1037
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, VK_OEM_CUSEL},
1039
1038
  {-1},
1040
1039
  #line 22 "win32_vk.list"
1041
- {gperf_offsetof(stringpool, 28), VK_KANA},
1040
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, VK_KANA},
1042
1041
  #line 127 "win32_vk.list"
1043
- {gperf_offsetof(stringpool, 29), VK_OEM_PLUS},
1042
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, VK_OEM_PLUS},
1044
1043
  #line 35 "win32_vk.list"
1045
- {gperf_offsetof(stringpool, 30), VK_PRIOR},
1044
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, VK_PRIOR},
1046
1045
  #line 152 "win32_vk.list"
1047
- {gperf_offsetof(stringpool, 31), VK_OEM_ATTN},
1046
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, VK_OEM_ATTN},
1048
1047
  #line 20 "win32_vk.list"
1049
- {gperf_offsetof(stringpool, 32), VK_PAUSE},
1048
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, VK_PAUSE},
1050
1049
  #line 13 "win32_vk.list"
1051
- {gperf_offsetof(stringpool, 33), VK_BACK},
1050
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, VK_BACK},
1052
1051
  #line 144 "win32_vk.list"
1053
- {gperf_offsetof(stringpool, 34), VK_PACKET},
1052
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, VK_PACKET},
1054
1053
  #line 105 "win32_vk.list"
1055
- {gperf_offsetof(stringpool, 35), VK_RCONTROL},
1054
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, VK_RCONTROL},
1056
1055
  #line 104 "win32_vk.list"
1057
- {gperf_offsetof(stringpool, 36), VK_LCONTROL},
1056
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, VK_LCONTROL},
1058
1057
  #line 37 "win32_vk.list"
1059
- {gperf_offsetof(stringpool, 37), VK_END},
1058
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, VK_END},
1060
1059
  #line 38 "win32_vk.list"
1061
- {gperf_offsetof(stringpool, 38), VK_HOME},
1060
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, VK_HOME},
1062
1061
  #line 44 "win32_vk.list"
1063
- {gperf_offsetof(stringpool, 39), VK_PRINT},
1062
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, VK_PRINT},
1064
1063
  #line 94 "win32_vk.list"
1065
- {gperf_offsetof(stringpool, 40), VK_NUMLOCK},
1064
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, VK_NUMLOCK},
1066
1065
  #line 39 "win32_vk.list"
1067
- {gperf_offsetof(stringpool, 41), VK_LEFT},
1066
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, VK_LEFT},
1068
1067
  #line 25 "win32_vk.list"
1069
- {gperf_offsetof(stringpool, 42), VK_JUNJA},
1068
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, VK_JUNJA},
1070
1069
  #line 19 "win32_vk.list"
1071
- {gperf_offsetof(stringpool, 43), VK_MENU},
1070
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, VK_MENU},
1072
1071
  #line 150 "win32_vk.list"
1073
- {gperf_offsetof(stringpool, 44), VK_OEM_WSCTRL},
1072
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, VK_OEM_WSCTRL},
1074
1073
  #line 156 "win32_vk.list"
1075
- {gperf_offsetof(stringpool, 45), VK_OEM_ENLW},
1074
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, VK_OEM_ENLW},
1076
1075
  #line 36 "win32_vk.list"
1077
- {gperf_offsetof(stringpool, 46), VK_NEXT},
1076
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, VK_NEXT},
1078
1077
  #line 51 "win32_vk.list"
1079
- {gperf_offsetof(stringpool, 47), VK_RWIN},
1078
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, VK_RWIN},
1080
1079
  #line 50 "win32_vk.list"
1081
- {gperf_offsetof(stringpool, 48), VK_LWIN},
1080
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, VK_LWIN},
1082
1081
  #line 21 "win32_vk.list"
1083
- {gperf_offsetof(stringpool, 49), VK_CAPITAL},
1082
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, VK_CAPITAL},
1084
1083
  #line 49 "win32_vk.list"
1085
- {gperf_offsetof(stringpool, 50), VK_HELP},
1084
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str50, VK_HELP},
1086
1085
  #line 164 "win32_vk.list"
1087
- {gperf_offsetof(stringpool, 51), VK_NONAME},
1086
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str51, VK_NONAME},
1088
1087
  #line 8 "win32_vk.list"
1089
- {gperf_offsetof(stringpool, 52), VK_RBUTTON},
1088
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str52, VK_RBUTTON},
1090
1089
  #line 7 "win32_vk.list"
1091
- {gperf_offsetof(stringpool, 53), VK_LBUTTON},
1090
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str53, VK_LBUTTON},
1092
1091
  #line 96 "win32_vk.list"
1093
- {gperf_offsetof(stringpool, 54), VK_OEM_NEC_EQUAL},
1092
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str54, VK_OEM_NEC_EQUAL},
1094
1093
  {-1},
1095
1094
  #line 47 "win32_vk.list"
1096
- {gperf_offsetof(stringpool, 56), VK_INSERT},
1095
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str56, VK_INSERT},
1097
1096
  #line 27 "win32_vk.list"
1098
- {gperf_offsetof(stringpool, 57), VK_HANJA},
1097
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str57, VK_HANJA},
1099
1098
  {-1}, {-1},
1100
1099
  #line 46 "win32_vk.list"
1101
- {gperf_offsetof(stringpool, 60), VK_SNAPSHOT},
1100
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str60, VK_SNAPSHOT},
1102
1101
  #line 158 "win32_vk.list"
1103
- {gperf_offsetof(stringpool, 61), VK_ATTN},
1102
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str61, VK_ATTN},
1104
1103
  #line 14 "win32_vk.list"
1105
- {gperf_offsetof(stringpool, 62), VK_TAB},
1104
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str62, VK_TAB},
1106
1105
  #line 157 "win32_vk.list"
1107
- {gperf_offsetof(stringpool, 63), VK_OEM_BACKTAB},
1106
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str63, VK_OEM_BACKTAB},
1108
1107
  #line 143 "win32_vk.list"
1109
- {gperf_offsetof(stringpool, 64), VK_ICO_CLEAR},
1108
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, VK_ICO_CLEAR},
1110
1109
  #line 30 "win32_vk.list"
1111
- {gperf_offsetof(stringpool, 65), VK_CONVERT},
1110
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str65, VK_CONVERT},
1112
1111
  #line 16 "win32_vk.list"
1113
- {gperf_offsetof(stringpool, 66), VK_RETURN},
1112
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str66, VK_RETURN},
1114
1113
  #line 146 "win32_vk.list"
1115
- {gperf_offsetof(stringpool, 67), VK_OEM_JUMP},
1114
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, VK_OEM_JUMP},
1116
1115
  {-1}, {-1}, {-1},
1117
1116
  #line 111 "win32_vk.list"
1118
- {gperf_offsetof(stringpool, 71), VK_BROWSER_STOP},
1117
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str71, VK_BROWSER_STOP},
1119
1118
  #line 26 "win32_vk.list"
1120
- {gperf_offsetof(stringpool, 72), VK_FINAL},
1119
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str72, VK_FINAL},
1121
1120
  #line 163 "win32_vk.list"
1122
- {gperf_offsetof(stringpool, 73), VK_ZOOM},
1121
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str73, VK_ZOOM},
1123
1122
  #line 28 "win32_vk.list"
1124
- {gperf_offsetof(stringpool, 74), VK_KANJI},
1123
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str74, VK_KANJI},
1125
1124
  #line 48 "win32_vk.list"
1126
- {gperf_offsetof(stringpool, 75), VK_DELETE},
1125
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str75, VK_DELETE},
1127
1126
  #line 128 "win32_vk.list"
1128
- {gperf_offsetof(stringpool, 76), VK_OEM_COMMA},
1127
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str76, VK_OEM_COMMA},
1129
1128
  #line 67 "win32_vk.list"
1130
- {gperf_offsetof(stringpool, 77), VK_SUBTRACT},
1129
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str77, VK_SUBTRACT},
1131
1130
  {-1},
1132
1131
  #line 10 "win32_vk.list"
1133
- {gperf_offsetof(stringpool, 79), VK_MBUTTON},
1132
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str79, VK_MBUTTON},
1134
1133
  #line 78 "win32_vk.list"
1135
- {gperf_offsetof(stringpool, 80), VK_F9},
1134
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str80, VK_F9},
1136
1135
  #line 17 "win32_vk.list"
1137
- {gperf_offsetof(stringpool, 81), VK_SHIFT},
1136
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str81, VK_SHIFT},
1138
1137
  #line 103 "win32_vk.list"
1139
- {gperf_offsetof(stringpool, 82), VK_RSHIFT},
1138
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str82, VK_RSHIFT},
1140
1139
  #line 102 "win32_vk.list"
1141
- {gperf_offsetof(stringpool, 83), VK_LSHIFT},
1140
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str83, VK_LSHIFT},
1142
1141
  #line 65 "win32_vk.list"
1143
- {gperf_offsetof(stringpool, 84), VK_ADD},
1142
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str84, VK_ADD},
1144
1143
  #line 31 "win32_vk.list"
1145
- {gperf_offsetof(stringpool, 85), VK_NONCONVERT},
1144
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str85, VK_NONCONVERT},
1146
1145
  #line 160 "win32_vk.list"
1147
- {gperf_offsetof(stringpool, 86), VK_EXSEL},
1146
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str86, VK_EXSEL},
1148
1147
  #line 126 "win32_vk.list"
1149
- {gperf_offsetof(stringpool, 87), VK_OEM_1},
1148
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str87, VK_OEM_1},
1150
1149
  #line 138 "win32_vk.list"
1151
- {gperf_offsetof(stringpool, 88), VK_OEM_AX},
1150
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str88, VK_OEM_AX},
1152
1151
  #line 108 "win32_vk.list"
1153
- {gperf_offsetof(stringpool, 89), VK_BROWSER_BACK},
1152
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str89, VK_BROWSER_BACK},
1154
1153
  #line 137 "win32_vk.list"
1155
- {gperf_offsetof(stringpool, 90), VK_OEM_8},
1154
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str90, VK_OEM_8},
1156
1155
  #line 129 "win32_vk.list"
1157
- {gperf_offsetof(stringpool, 91), VK_OEM_MINUS},
1156
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str91, VK_OEM_MINUS},
1158
1157
  #line 162 "win32_vk.list"
1159
- {gperf_offsetof(stringpool, 92), VK_PLAY},
1158
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str92, VK_PLAY},
1160
1159
  #line 131 "win32_vk.list"
1161
- {gperf_offsetof(stringpool, 93), VK_OEM_2},
1160
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str93, VK_OEM_2},
1162
1161
  #line 15 "win32_vk.list"
1163
- {gperf_offsetof(stringpool, 94), VK_CLEAR},
1162
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str94, VK_CLEAR},
1164
1163
  #line 99 "win32_vk.list"
1165
- {gperf_offsetof(stringpool, 95), VK_OEM_FJ_TOUROKU},
1164
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str95, VK_OEM_FJ_TOUROKU},
1166
1165
  #line 147 "win32_vk.list"
1167
- {gperf_offsetof(stringpool, 96), VK_OEM_PA1},
1166
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, VK_OEM_PA1},
1168
1167
  #line 140 "win32_vk.list"
1169
- {gperf_offsetof(stringpool, 97), VK_ICO_HELP},
1168
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str97, VK_ICO_HELP},
1170
1169
  #line 112 "win32_vk.list"
1171
- {gperf_offsetof(stringpool, 98), VK_BROWSER_SEARCH},
1170
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str98, VK_BROWSER_SEARCH},
1172
1171
  #line 53 "win32_vk.list"
1173
- {gperf_offsetof(stringpool, 99), VK_SLEEP},
1172
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str99, VK_SLEEP},
1174
1173
  {-1},
1175
1174
  #line 70 "win32_vk.list"
1176
- {gperf_offsetof(stringpool, 101), VK_F1},
1175
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str101, VK_F1},
1177
1176
  #line 148 "win32_vk.list"
1178
- {gperf_offsetof(stringpool, 102), VK_OEM_PA2},
1177
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str102, VK_OEM_PA2},
1179
1178
  #line 154 "win32_vk.list"
1180
- {gperf_offsetof(stringpool, 103), VK_OEM_COPY},
1179
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str103, VK_OEM_COPY},
1181
1180
  #line 77 "win32_vk.list"
1182
- {gperf_offsetof(stringpool, 104), VK_F8},
1181
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str104, VK_F8},
1183
1182
  #line 88 "win32_vk.list"
1184
- {gperf_offsetof(stringpool, 105), VK_F19},
1183
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str105, VK_F19},
1185
1184
  #line 41 "win32_vk.list"
1186
- {gperf_offsetof(stringpool, 106), VK_RIGHT},
1185
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str106, VK_RIGHT},
1187
1186
  #line 71 "win32_vk.list"
1188
- {gperf_offsetof(stringpool, 107), VK_F2},
1187
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str107, VK_F2},
1189
1188
  #line 135 "win32_vk.list"
1190
- {gperf_offsetof(stringpool, 108), VK_OEM_6},
1189
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, VK_OEM_6},
1191
1190
  #line 87 "win32_vk.list"
1192
- {gperf_offsetof(stringpool, 109), VK_F18},
1191
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str109, VK_F18},
1193
1192
  {-1},
1194
1193
  #line 117 "win32_vk.list"
1195
- {gperf_offsetof(stringpool, 111), VK_VOLUME_UP},
1194
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, VK_VOLUME_UP},
1196
1195
  {-1}, {-1},
1197
1196
  #line 120 "win32_vk.list"
1198
- {gperf_offsetof(stringpool, 114), VK_MEDIA_STOP},
1197
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str114, VK_MEDIA_STOP},
1199
1198
  #line 130 "win32_vk.list"
1200
- {gperf_offsetof(stringpool, 115), VK_OEM_PERIOD},
1199
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str115, VK_OEM_PERIOD},
1201
1200
  {-1},
1202
1201
  #line 161 "win32_vk.list"
1203
- {gperf_offsetof(stringpool, 117), VK_EREOF},
1202
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str117, VK_EREOF},
1204
1203
  {-1}, {-1}, {-1},
1205
1204
  #line 114 "win32_vk.list"
1206
- {gperf_offsetof(stringpool, 121), VK_BROWSER_HOME},
1205
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str121, VK_BROWSER_HOME},
1207
1206
  #line 75 "win32_vk.list"
1208
- {gperf_offsetof(stringpool, 122), VK_F6},
1207
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str122, VK_F6},
1209
1208
  {-1},
1210
1209
  #line 110 "win32_vk.list"
1211
- {gperf_offsetof(stringpool, 124), VK_BROWSER_REFRESH},
1210
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, VK_BROWSER_REFRESH},
1212
1211
  {-1},
1213
1212
  #line 165 "win32_vk.list"
1214
- {gperf_offsetof(stringpool, 126), VK_PA1},
1213
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str126, VK_PA1},
1215
1214
  #line 142 "win32_vk.list"
1216
- {gperf_offsetof(stringpool, 127), VK_PROCESSKEY},
1215
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str127, VK_PROCESSKEY},
1217
1216
  #line 68 "win32_vk.list"
1218
- {gperf_offsetof(stringpool, 128), VK_DECIMAL},
1217
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, VK_DECIMAL},
1219
1218
  #line 132 "win32_vk.list"
1220
- {gperf_offsetof(stringpool, 129), VK_OEM_3},
1219
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str129, VK_OEM_3},
1221
1220
  #line 107 "win32_vk.list"
1222
- {gperf_offsetof(stringpool, 130), VK_RMENU},
1221
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str130, VK_RMENU},
1223
1222
  #line 106 "win32_vk.list"
1224
- {gperf_offsetof(stringpool, 131), VK_LMENU},
1223
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, VK_LMENU},
1225
1224
  #line 98 "win32_vk.list"
1226
- {gperf_offsetof(stringpool, 132), VK_OEM_FJ_MASSHOU},
1225
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str132, VK_OEM_FJ_MASSHOU},
1227
1226
  #line 54 "win32_vk.list"
1228
- {gperf_offsetof(stringpool, 133), VK_NUMPAD0},
1227
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str133, VK_NUMPAD0},
1229
1228
  #line 24 "win32_vk.list"
1230
- {gperf_offsetof(stringpool, 134), VK_HANGUL},
1229
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str134, VK_HANGUL},
1231
1230
  #line 63 "win32_vk.list"
1232
- {gperf_offsetof(stringpool, 135), VK_NUMPAD9},
1231
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str135, VK_NUMPAD9},
1233
1232
  #line 23 "win32_vk.list"
1234
- {gperf_offsetof(stringpool, 136), VK_HANGEUL},
1233
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, VK_HANGEUL},
1235
1234
  #line 134 "win32_vk.list"
1236
- {gperf_offsetof(stringpool, 137), VK_OEM_5},
1235
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str137, VK_OEM_5},
1237
1236
  #line 149 "win32_vk.list"
1238
- {gperf_offsetof(stringpool, 138), VK_OEM_PA3},
1237
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str138, VK_OEM_PA3},
1239
1238
  #line 115 "win32_vk.list"
1240
- {gperf_offsetof(stringpool, 139), VK_VOLUME_MUTE},
1239
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str139, VK_VOLUME_MUTE},
1241
1240
  #line 133 "win32_vk.list"
1242
- {gperf_offsetof(stringpool, 140), VK_OEM_4},
1241
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str140, VK_OEM_4},
1243
1242
  #line 122 "win32_vk.list"
1244
- {gperf_offsetof(stringpool, 141), VK_LAUNCH_MAIL},
1243
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str141, VK_LAUNCH_MAIL},
1245
1244
  #line 97 "win32_vk.list"
1246
- {gperf_offsetof(stringpool, 142), VK_OEM_FJ_JISHO},
1245
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str142, VK_OEM_FJ_JISHO},
1247
1246
  #line 72 "win32_vk.list"
1248
- {gperf_offsetof(stringpool, 143), VK_F3},
1247
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str143, VK_F3},
1249
1248
  #line 101 "win32_vk.list"
1250
- {gperf_offsetof(stringpool, 144), VK_OEM_FJ_ROYA},
1249
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str144, VK_OEM_FJ_ROYA},
1251
1250
  #line 100 "win32_vk.list"
1252
- {gperf_offsetof(stringpool, 145), VK_OEM_FJ_LOYA},
1251
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, VK_OEM_FJ_LOYA},
1253
1252
  {-1},
1254
1253
  #line 42 "win32_vk.list"
1255
- {gperf_offsetof(stringpool, 147), VK_DOWN},
1254
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str147, VK_DOWN},
1256
1255
  {-1},
1257
1256
  #line 153 "win32_vk.list"
1258
- {gperf_offsetof(stringpool, 149), VK_OEM_FINISH},
1257
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str149, VK_OEM_FINISH},
1259
1258
  {-1},
1260
1259
  #line 74 "win32_vk.list"
1261
- {gperf_offsetof(stringpool, 151), VK_F5},
1260
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str151, VK_F5},
1262
1261
  {-1},
1263
1262
  #line 136 "win32_vk.list"
1264
- {gperf_offsetof(stringpool, 153), VK_OEM_7},
1263
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str153, VK_OEM_7},
1265
1264
  #line 73 "win32_vk.list"
1266
- {gperf_offsetof(stringpool, 154), VK_F4},
1265
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, VK_F4},
1267
1266
  #line 86 "win32_vk.list"
1268
- {gperf_offsetof(stringpool, 155), VK_F17},
1267
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str155, VK_F17},
1269
1268
  #line 55 "win32_vk.list"
1270
- {gperf_offsetof(stringpool, 156), VK_NUMPAD1},
1269
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str156, VK_NUMPAD1},
1271
1270
  #line 141 "win32_vk.list"
1272
- {gperf_offsetof(stringpool, 157), VK_ICO_00},
1271
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, VK_ICO_00},
1273
1272
  {-1},
1274
1273
  #line 62 "win32_vk.list"
1275
- {gperf_offsetof(stringpool, 159), VK_NUMPAD8},
1274
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str159, VK_NUMPAD8},
1276
1275
  {-1}, {-1},
1277
1276
  #line 56 "win32_vk.list"
1278
- {gperf_offsetof(stringpool, 162), VK_NUMPAD2},
1277
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str162, VK_NUMPAD2},
1279
1278
  {-1},
1280
1279
  #line 124 "win32_vk.list"
1281
- {gperf_offsetof(stringpool, 164), VK_LAUNCH_APP1},
1280
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str164, VK_LAUNCH_APP1},
1282
1281
  #line 109 "win32_vk.list"
1283
- {gperf_offsetof(stringpool, 165), VK_BROWSER_FORWARD},
1282
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str165, VK_BROWSER_FORWARD},
1284
1283
  {-1},
1285
1284
  #line 76 "win32_vk.list"
1286
- {gperf_offsetof(stringpool, 167), VK_F7},
1285
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str167, VK_F7},
1287
1286
  {-1}, {-1},
1288
1287
  #line 125 "win32_vk.list"
1289
- {gperf_offsetof(stringpool, 170), VK_LAUNCH_APP2},
1288
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str170, VK_LAUNCH_APP2},
1290
1289
  #line 64 "win32_vk.list"
1291
- {gperf_offsetof(stringpool, 171), VK_MULTIPLY},
1290
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, VK_MULTIPLY},
1292
1291
  {-1}, {-1},
1293
1292
  #line 45 "win32_vk.list"
1294
- {gperf_offsetof(stringpool, 174), VK_EXECUTE},
1293
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str174, VK_EXECUTE},
1295
1294
  {-1},
1296
1295
  #line 113 "win32_vk.list"
1297
- {gperf_offsetof(stringpool, 176), VK_BROWSER_FAVORITES},
1296
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, VK_BROWSER_FAVORITES},
1298
1297
  #line 60 "win32_vk.list"
1299
- {gperf_offsetof(stringpool, 177), VK_NUMPAD6},
1298
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str177, VK_NUMPAD6},
1300
1299
  {-1},
1301
1300
  #line 85 "win32_vk.list"
1302
- {gperf_offsetof(stringpool, 179), VK_F16},
1301
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, VK_F16},
1303
1302
  {-1}, {-1},
1304
1303
  #line 79 "win32_vk.list"
1305
- {gperf_offsetof(stringpool, 182), VK_F10},
1304
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, VK_F10},
1306
1305
  {-1}, {-1},
1307
1306
  #line 116 "win32_vk.list"
1308
- {gperf_offsetof(stringpool, 185), VK_VOLUME_DOWN},
1307
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str185, VK_VOLUME_DOWN},
1309
1308
  {-1}, {-1},
1310
1309
  #line 89 "win32_vk.list"
1311
- {gperf_offsetof(stringpool, 188), VK_F20},
1310
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str188, VK_F20},
1312
1311
  #line 119 "win32_vk.list"
1313
- {gperf_offsetof(stringpool, 189), VK_MEDIA_PREV_TRACK},
1312
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str189, VK_MEDIA_PREV_TRACK},
1314
1313
  {-1},
1315
1314
  #line 33 "win32_vk.list"
1316
- {gperf_offsetof(stringpool, 191), VK_MODECHANGE},
1315
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str191, VK_MODECHANGE},
1317
1316
  {-1}, {-1}, {-1}, {-1}, {-1},
1318
1317
  #line 83 "win32_vk.list"
1319
- {gperf_offsetof(stringpool, 197), VK_F14},
1318
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str197, VK_F14},
1320
1319
  #line 57 "win32_vk.list"
1321
- {gperf_offsetof(stringpool, 198), VK_NUMPAD3},
1320
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str198, VK_NUMPAD3},
1322
1321
  #line 11 "win32_vk.list"
1323
- {gperf_offsetof(stringpool, 199), VK_XBUTTON1},
1322
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str199, VK_XBUTTON1},
1324
1323
  {-1}, {-1}, {-1},
1325
1324
  #line 93 "win32_vk.list"
1326
- {gperf_offsetof(stringpool, 203), VK_F24},
1325
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str203, VK_F24},
1327
1326
  {-1},
1328
1327
  #line 12 "win32_vk.list"
1329
- {gperf_offsetof(stringpool, 205), VK_XBUTTON2},
1328
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str205, VK_XBUTTON2},
1330
1329
  #line 59 "win32_vk.list"
1331
- {gperf_offsetof(stringpool, 206), VK_NUMPAD5},
1330
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str206, VK_NUMPAD5},
1332
1331
  {-1}, {-1},
1333
1332
  #line 58 "win32_vk.list"
1334
- {gperf_offsetof(stringpool, 209), VK_NUMPAD4},
1333
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str209, VK_NUMPAD4},
1335
1334
  {-1}, {-1}, {-1}, {-1}, {-1},
1336
1335
  #line 121 "win32_vk.list"
1337
- {gperf_offsetof(stringpool, 215), VK_MEDIA_PLAY_PAUSE},
1336
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str215, VK_MEDIA_PLAY_PAUSE},
1338
1337
  {-1},
1339
1338
  #line 123 "win32_vk.list"
1340
- {gperf_offsetof(stringpool, 217), VK_LAUNCH_MEDIA_SELECT},
1339
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str217, VK_LAUNCH_MEDIA_SELECT},
1341
1340
  #line 80 "win32_vk.list"
1342
- {gperf_offsetof(stringpool, 218), VK_F11},
1341
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str218, VK_F11},
1343
1342
  {-1},
1344
1343
  #line 139 "win32_vk.list"
1345
- {gperf_offsetof(stringpool, 220), VK_OEM_102},
1344
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, VK_OEM_102},
1346
1345
  #line 118 "win32_vk.list"
1347
- {gperf_offsetof(stringpool, 221), VK_MEDIA_NEXT_TRACK},
1346
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str221, VK_MEDIA_NEXT_TRACK},
1348
1347
  #line 61 "win32_vk.list"
1349
- {gperf_offsetof(stringpool, 222), VK_NUMPAD7},
1348
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str222, VK_NUMPAD7},
1350
1349
  {-1},
1351
1350
  #line 90 "win32_vk.list"
1352
- {gperf_offsetof(stringpool, 224), VK_F21},
1351
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str224, VK_F21},
1353
1352
  {-1},
1354
1353
  #line 82 "win32_vk.list"
1355
- {gperf_offsetof(stringpool, 226), VK_F13},
1354
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str226, VK_F13},
1356
1355
  {-1}, {-1},
1357
1356
  #line 81 "win32_vk.list"
1358
- {gperf_offsetof(stringpool, 229), VK_F12},
1357
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str229, VK_F12},
1359
1358
  {-1}, {-1},
1360
1359
  #line 92 "win32_vk.list"
1361
- {gperf_offsetof(stringpool, 232), VK_F23},
1360
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str232, VK_F23},
1362
1361
  {-1}, {-1},
1363
1362
  #line 91 "win32_vk.list"
1364
- {gperf_offsetof(stringpool, 235), VK_F22},
1363
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str235, VK_F22},
1365
1364
  {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1366
1365
  #line 84 "win32_vk.list"
1367
- {gperf_offsetof(stringpool, 242), VK_F15},
1366
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str242, VK_F15},
1368
1367
  {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1369
1368
  {-1}, {-1}, {-1}, {-1},
1370
1369
  #line 69 "win32_vk.list"
1371
- {gperf_offsetof(stringpool, 256), VK_DIVIDE}
1370
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str256, VK_DIVIDE}
1372
1371
  };
1373
1372
 
1374
1373
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-console
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nobu Nakada
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-18 00:00:00.000000000 Z
11
+ date: 2024-12-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: add console capabilities to IO instances.
14
14
  email: nobu@ruby-lang.org
@@ -18,7 +18,8 @@ extensions:
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - ".document"
21
- - LICENSE.txt
21
+ - BSDL
22
+ - COPYING
22
23
  - README.md
23
24
  - ext/io/console/console.c
24
25
  - ext/io/console/extconf.rb
@@ -31,7 +32,7 @@ licenses:
31
32
  metadata:
32
33
  source_code_url: https://github.com/ruby/io-console
33
34
  changelog_uri: https://github.com/ruby/io-console/releases
34
- post_install_message:
35
+ post_install_message:
35
36
  rdoc_options: []
36
37
  require_paths:
37
38
  - lib
@@ -46,8 +47,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
46
47
  - !ruby/object:Gem::Version
47
48
  version: '0'
48
49
  requirements: []
49
- rubygems_version: 3.6.0.dev
50
- signing_key:
50
+ rubygems_version: 3.5.11
51
+ signing_key:
51
52
  specification_version: 4
52
53
  summary: Console interface
53
54
  test_files: []