[前][次][番号順一覧][スレッド一覧]

ruby-changes:38346

From: nobu <ko1@a...>
Date: Mon, 4 May 2015 03:13:18 +0900 (JST)
Subject: [ruby-changes:38346] nobu:r50427 (trunk): console.c: pressed? on Windows

nobu	2015-05-04 03:13:10 +0900 (Mon, 04 May 2015)

  New Revision: 50427

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=50427

  Log:
    console.c: pressed? on Windows
    
    * ext/io/console/console.c (console_key_pressed_p): new method
      IO#pressed? on Windows.  [EXPERIMENTAL]

  Added files:
    trunk/ext/io/console/win32_vk.h
    trunk/ext/io/console/win32_vk.list
  Modified files:
    trunk/ext/io/console/console.c
    trunk/ext/io/console/depend
    trunk/ext/io/console/extconf.rb
Index: ext/io/console/depend
===================================================================
--- ext/io/console/depend	(revision 50426)
+++ ext/io/console/depend	(revision 50427)
@@ -1,4 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ext/io/console/depend#L1
 $(OBJS): $(HDRS) $(ruby_headers) \
+  $(VK_HEADER) \
   $(hdrdir)/ruby/io.h \
   $(hdrdir)/ruby/encoding.h \
   $(hdrdir)/ruby/oniguruma.h
+
+win32_vk.h: win32_vk.list
+
+.list.h:
+	gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k* --output-file=$@ $<
Index: ext/io/console/console.c
===================================================================
--- ext/io/console/console.c	(revision 50426)
+++ ext/io/console/console.c	(revision 50427)
@@ -697,10 +697,36 @@ console_cursor_set(VALUE io, VALUE cpos) https://github.com/ruby/ruby/blob/trunk/ext/io/console/console.c#L697
     if (RARRAY_LEN(cpos) != 2) rb_raise(rb_eArgError, "expected 2D coordinate");
     return console_goto(io, RARRAY_AREF(cpos, 0), RARRAY_AREF(cpos, 1));
 }
+
+#include "win32_vk.h"
+
+static VALUE
+console_key_pressed_p(VALUE io, VALUE k)
+{
+    int vk = -1;
+
+    if (FIXNUM_P(k)) {
+	vk = NUM2UINT(k);
+    }
+    else {
+	const struct vktable *t;
+	if (SYMBOL_P(k)) {
+	    k = rb_sym2str(k);
+	}
+	else {
+	    StringValueCStr(k);
+	}
+	t = console_win32_vk(RSTRING_PTR(k), RSTRING_LEN(k));
+	if (!t) rb_raise(rb_eArgError, "unknown virtual key code: %"PRIsVALUE, k);
+	vk = t->vk;
+    }
+    return GetKeyState(vk) & 0x80 ? Qtrue : Qfalse;
+}
 #else
 # define console_goto rb_f_notimplement
 # define console_cursor_pos rb_f_notimplement
 # define console_cursor_set rb_f_notimplement
+# define console_key_pressed_p rb_f_notimplement
 #endif
 
 /*
@@ -850,6 +876,7 @@ InitVM_console(void) https://github.com/ruby/ruby/blob/trunk/ext/io/console/console.c#L876
     rb_define_method(rb_cIO, "goto", console_goto, 2);
     rb_define_method(rb_cIO, "cursor", console_cursor_pos, 0);
     rb_define_method(rb_cIO, "cursor=", console_cursor_set, 1);
+    rb_define_method(rb_cIO, "pressed?", console_key_pressed_p, 1);
     rb_define_singleton_method(rb_cIO, "console", console_dev, -1);
     {
 	VALUE mReadable = rb_define_module_under(rb_cIO, "generic_readable");
Index: ext/io/console/extconf.rb
===================================================================
--- ext/io/console/extconf.rb	(revision 50426)
+++ ext/io/console/extconf.rb	(revision 50427)
@@ -5,6 +5,7 @@ hdr = nil https://github.com/ruby/ruby/blob/trunk/ext/io/console/extconf.rb#L5
 case
 when macro_defined?("_WIN32", "")
   # rb_w32_map_errno: 1.8.7
+  win32 = true
 when hdr = %w"termios.h termio.h".find {|h| have_header(h)}
   have_func("cfmakeraw", hdr)
 when have_header(hdr = "sgtty.h")
@@ -17,5 +18,7 @@ if ok https://github.com/ruby/ruby/blob/trunk/ext/io/console/extconf.rb#L18
   # rb_check_hash_type: 1.9.3
   # rb_io_get_write_io: 1.9.1
   # rb_cloexec_open: 2.0.0
-  create_makefile("io/console")
+  create_makefile("io/console") {|conf|
+    conf << "\n""VK_HEADER = win32_vk.h\n"
+  }
 end
Index: ext/io/console/win32_vk.h
===================================================================
--- ext/io/console/win32_vk.h	(revision 0)
+++ ext/io/console/win32_vk.h	(revision 50427)
@@ -0,0 +1,919 @@ https://github.com/ruby/ruby/blob/trunk/ext/io/console/win32_vk.h#L1
+/* C code produced by gperf version 3.0.4 */
+/* Command-line: gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' --output-file=win32_vk.h win32_vk.list  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@g...>."
+#endif
+
+#line 1 "win32_vk.list"
+
+struct vktable {short ofs; unsigned short vk;};
+static const struct vktable *console_win32_vk(const char *, unsigned int);
+#line 5 "win32_vk.list"
+struct vktable;
+/* maximum key range = 245, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (s1, s2)
+     register const char *s1;
+     register const char *s2;
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)
+inline
+#elif defined(__GNUC__)
+__inline
+#endif
+static unsigned int
+hash (str, len)
+     register const char *str;
+     register unsigned int len;
+{
+  static const unsigned short asso_values[] =
+    {
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257,  51,  74,
+       80, 116, 127, 124,  95, 140,  77,  53,   7,   3,
+      257, 257, 257, 257, 257,   1,  11,   1,  55,   1,
+       25,  84,  31,  33,  13,  16,   2,  28,   8,   1,
+        6,  10,   1,   1,   3,   4,  45,  18,  73,  79,
+       30, 257, 257, 257, 257,   5, 257,   1,  11,   1,
+       55,   1,  25,  84,  31,  33,  13,  16,   2,  28,
+        8,   1,   6,  10,   1,   1,   3,   4,  45,  18,
+       73,  79,  30, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+      257, 257, 257, 257, 257, 257, 257, 257
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[18]];
+      /*FALLTHROUGH*/
+      case 18:
+        hval += asso_values[(unsigned char)str[17]];
+      /*FALLTHROUGH*/
+      case 17:
+        hval += asso_values[(unsigned char)str[16]];
+      /*FALLTHROUGH*/
+      case 16:
+        hval += asso_values[(unsigned char)str[15]];
+      /*FALLTHROUGH*/
+      case 15:
+        hval += asso_values[(unsigned char)str[14]];
+      /*FALLTHROUGH*/
+      case 14:
+        hval += asso_values[(unsigned char)str[13]];
+      /*FALLTHROUGH*/
+      case 13:
+        hval += asso_values[(unsigned char)str[12]];
+      /*FALLTHROUGH*/
+      case 12:
+        hval += asso_values[(unsigned char)str[11]];
+      /*FALLTHROUGH*/
+      case 11:
+        hval += asso_values[(unsigned char)str[10]];
+      /*FALLTHROUGH*/
+      case 10:
+        hval += asso_values[(unsigned char)str[9]];
+      /*FALLTHROUGH*/
+      case 9:
+        hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
+      case 8:
+        hval += asso_values[(unsigned char)str[7]];
+      /*FALLTHROUGH*/
+      case 7:
+        hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
+      case 6:
+        hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
+      case 5:
+        hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
+      case 4:
+        hval += asso_values[(unsigned char)str[3]];
+      /*FALLTHROUGH*/
+      case 3:
+        hval += asso_values[(unsigned char)str[2]+2];
+      /*FALLTHROUGH*/
+      case 2:
+        hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
+      case 1:
+        hval += asso_values[(unsigned char)str[0]];
+        break;
+    }
+  return hval;
+}
+
+struct stringpool_t
+  {
+    char stringpool_str12[sizeof("UP")];
+    char stringpool_str13[sizeof("APPS")];
+    char stringpool_str14[sizeof("CRSEL")];
+    char stringpool_str15[sizeof("SPACE")];
+    char stringpool_str16[sizeof("SCROLL")];
+    char stringpool_str17[sizeof("ESCAPE")];
+    char stringpool_str18[sizeof("CANCEL")];
+    char stringpool_str19[sizeof("ACCEPT")];
+    char stringpool_str20[sizeof("SEPARATOR")];
+    char stringpool_str21[sizeof("SELECT")];
+    char stringpool_str22[sizeof("CONTROL")];
+    char stringpool_str23[sizeof("OEM_CLEAR")];
+    char stringpool_str24[sizeof("OEM_RESET")];
+    char stringpool_str25[sizeof("OEM_AUTO")];
+    char stringpool_str26[sizeof("OEM_CUSEL")];
+    char stringpool_str28[sizeof("KANA")];
+    char stringpool_str29[sizeof("OEM_PLUS")];
+    char stringpool_str30[sizeof("PRIOR")];
+    char stringpool_str31[sizeof("OEM_ATTN")];
+    char stringpool_str32[sizeof("PAUSE")];
+    char stringpool_str33[sizeof("BACK")];
+    char stringpool_str34[sizeof("PACKET")];
+    char stringpool_str35[sizeof("RCONTROL")];
+    char stringpool_str36[sizeof("LCONTROL")];
+    char stringpool_str37[sizeof("END")];
+    char stringpool_str38[sizeof("HOME")];
+    char stringpool_str39[sizeof("PRINT")];
+    char stringpool_str40[sizeof("NUMLOCK")];
+    char stringpool_str41[sizeof("LEFT")];
+    char stringpool_str42[sizeof("JUNJA")];
+    char stringpool_str43[sizeof("MENU")];
+    char stringpool_str44[sizeof("OEM_WSCTRL")];
+    char stringpool_str45[sizeof("OEM_ENLW")];
+    char stringpool_str46[sizeof("NEXT")];
+    char stringpool_str47[sizeof("RWIN")];
+    char stringpool_str48[sizeof("LWIN")];
+    char stringpool_str49[sizeof("CAPITAL")];
+    char stringpool_str50[sizeof("HELP")];
+    char stringpool_str51[sizeof("NONAME")];
+    char stringpool_str52[sizeof("RBUTTON")];
+    char stringpool_str53[sizeof("LBUTTON")];
+    char stringpool_str54[sizeof("OEM_NEC_EQUAL")];
+    char stringpool_str56[sizeof("INSERT")];
+    char stringpool_str57[sizeof("HANJA")];
+    char stringpool_str60[sizeof("SNAPSHOT")];
+    char stringpool_str61[sizeof("ATTN")];
+    char stringpool_str62[sizeof("TAB")];
+    char stringpool_str63[sizeof("OEM_BACKTAB")];
+    char stringpool_str64[sizeof("ICO_CLEAR")];
+    char stringpool_str65[sizeof("CONVERT")];
+    char stringpool_str66[sizeof("RETURN")];
+    char stringpool_str67[sizeof("OEM_JUMP")];
+    char stringpool_str71[sizeof("BROWSER_STOP")];
+    char stringpool_str72[sizeof("FINAL")];
+    char stringpool_str73[sizeof("ZOOM")];
+    char stringpool_str74[sizeof("KANJI")];
+    char stringpool_str75[sizeof("DELETE")];
+    char stringpool_str76[sizeof("OEM_COMMA")];
+    char stringpool_str77[sizeof("SUBTRACT")];
+    char stringpool_str79[sizeof("MBUTTON")];
+    char stringpool_str80[sizeof("F9")];
+    char stringpool_str81[sizeof("SHIFT")];
+    char stringpool_str82[sizeof("RSHIFT")];
+    char stringpool_str83[sizeof("LSHIFT")];
+    char stringpool_str84[sizeof("ADD")];
+    char stringpool_str85[sizeof("NONCONVERT")];
+    char stringpool_str86[sizeof("EXSEL")];
+    char stringpool_str87[sizeof("OEM_1")];
+    char stringpool_str88[sizeof("OEM_AX")];
+    char stringpool_str89[sizeof("BROWSER_BACK")];
+    char stringpool_str90[sizeof("OEM_8")];
+    char stringpool_str91[sizeof("OEM_MINUS")];
+    char stringpool_str92[sizeof("PLAY")];
+    char stringpool_str93[sizeof("OEM_2")];
+    char stringpool_str94[sizeof("CLEAR")];
+    char stringpool_str95[sizeof("OEM_FJ_TOUROKU")];
+    char stringpool_str96[sizeof("OEM_PA1")];
+    char stringpool_str97[sizeof("ICO_HELP")];
+    char stringpool_str98[sizeof("BROWSER_SEARCH")];
+    char stringpool_str99[sizeof("SLEEP")];
+    char stringpool_str101[sizeof("F1")];
+    char stringpool_str102[sizeof("OEM_PA2")];
+    char stringpool_str103[sizeof("OEM_COPY")];
+    char stringpool_str104[sizeof("F8")];
+    char stringpool_str105[sizeof("F19")];
+    char stringpool_str106[sizeof("RIGHT")];
+    char stringpool_str107[sizeof("F2")];
+    char stringpool_str108[sizeof("OEM_6")];
+    char stringpool_str109[sizeof("F18")];
+    char stringpool_str111[sizeof("VOLUME_UP")];
+    char stringpool_str114[sizeof("MEDIA_STOP")];
+    char stringpool_str115[sizeof("OEM_PERIOD")];
+    char stringpool_str117[sizeof("EREOF")];
+    char stringpool_str121[sizeof("BROWSER_HOME")];
+    char stringpool_str122[sizeof("F6")];
+    char stringpool_str124[sizeof("BROWSER_REFRESH")];
+    char stringpool_str126[sizeof("PA1")];
+    char stringpool_str127[sizeof("PROCESSKEY")];
+    char stringpool_str128[sizeof("DECIMAL")];
+    char stringpool_str129[sizeof("OEM_3")];
+    char stringpool_str130[sizeof("RMENU")];
+    char stringpool_str131[sizeof("LMENU")];
+    char stringpool_str132[sizeof("OEM_FJ_MASSHOU")];
+    char stringpool_str133[sizeof("NUMPAD0")];
+    char stringpool_str134[sizeof("HANGUL")];
+    char stringpool_str135[sizeof("NUMPAD9")];
+    char stringpool_str136[sizeof("HANGEUL")];
+    char stringpool_str137[sizeof("OEM_5")];
+    char stringpool_str138[sizeof("OEM_PA3")];
+    char stringpool_str139[sizeof("VOLUME_MUTE")];
+    char stringpool_str140[sizeof("OEM_4")];
+    char stringpool_str141[sizeof("LAUNCH_MAIL")];
+    char stringpool_str142[sizeof("OEM_FJ_JISHO")];
+    char stringpool_str143[sizeof("F3")];
+    char stringpool_str144[sizeof("OEM_FJ_ROYA")];
+    char stringpool_str145[sizeof("OEM_FJ_LOYA")];
+    char stringpool_str147[sizeof("DOWN")];
+    char stringpool_str149[sizeof("OEM_FINISH")];
+    char stringpool_str151[sizeof("F5")];
+    char stringpool_str153[sizeof("OEM_7")];
+    char stringpool_str154[sizeof("F4")];
+    char stringpool_str155[sizeof("F17")];
+    char stringpool_str156[sizeof("NUMPAD1")];
+    char stringpool_str157[sizeof("ICO_00")];
+    char stringpool_str159[sizeof("NUMPAD8")];
+    char stringpool_str162[sizeof("NUMPAD2")];
+    char stringpool_str164[sizeof("LAUNCH_APP1")];
+    char stringpool_str165[sizeof("BROWSER_FORWARD")];
+    char stringpool_str167[sizeof("F7")];
+    char stringpool_str170[sizeof("LAUNCH_APP2")];
+    char stringpool_str171[sizeof("MULTIPLY")];
+    char stringpool_str174[sizeof("EXECUTE")];
+    char stringpool_str176[sizeof("BROWSER_FAVORITES")];
+    char stringpool_str177[sizeof("NUMPAD6")];
+    char stringpool_str179[sizeof("F16")];
+    char stringpool_str182[sizeof("F10")];
+    char stringpool_str185[sizeof("VOLUME_DOWN")];
+    char stringpool_str188[sizeof("F20")];
+    char stringpool_str189[sizeof("MEDIA_PREV_TRACK")];
+    char stringpool_str191[sizeof("MODECHANGE")];
+    char stringpool_str197[sizeof("F14")];
+    char stringpool_str198[sizeof("NUMPAD3")];
+    char stringpool_str199[sizeof("XBUTTON1")];
+    char stringpool_str203[sizeof("F24")];
+    char stringpool_str205[sizeof("XBUTTON2")];
+    char stringpool_str206[sizeof("NUMPAD5")];
+    char stringpool_str209[sizeof("NUMPAD4")];
+    char stringpool_str215[sizeof("MEDIA_PLAY_PAUSE")];
+    char stringpool_str217[sizeof("LAUNCH_MEDIA_SELECT")];
+    char stringpool_str218[sizeof("F11")];
+    char stringpool_str220[sizeof("OEM_102")];
+    char stringpool_str221[sizeof("MEDIA_NEXT_TRACK")];
+    char stringpool_str222[sizeof("NUMPAD7")];
+    char stringpool_str224[sizeof("F21")];
+    char stringpool_str226[sizeof("F13")];
+    char stringpool_str229[sizeof("F12")];
+    char stringpool_str232[sizeof("F23")];
+    char stringpool_str235[sizeof("F22")];
+    char stringpool_str242[sizeof("F15")];
+    char stringpool_str256[sizeof("DIVIDE")];
+  };
+static const struct stringpool_t stringpool_contents =
+  {
+    "UP",
+    "APPS",
+    "CRSEL",
+    "SPACE",
+    "SCROLL",
+    "ESCAPE",
+    "CANCEL",
+    "ACCEPT",
+    "SEPARATOR",
+    "SELECT",
+    "CONTROL",
+    "OEM_CLEAR",
+    "OEM_RESET",
+    "OEM_AUTO",
+    "OEM_CUSEL",
+    "KANA",
+    "OEM_PLUS",
+    "PRIOR",
+    "OEM_ATTN",
+    "PAUSE",
+    "BACK",
+    "PACKET",
+    "RCONTROL",
+    "LCONTROL",
+    "END",
+    "HOME",
+    "PRINT",
+    "NUMLOCK",
+    "LEFT",
+    "JUNJA",
+    "MENU",
+    "OEM_WSCTRL",
+    "OEM_ENLW",
+    "NEXT",
+    "RWIN",
+    "LWIN",
+    "CAPITAL",
+    "HELP",
+    "NONAME",
+    "RBUTTON",
+    "LBUTTON",
+    "OEM_NEC_EQUAL",
+    "INSERT",
+    "HANJA",
+    "SNAPSHOT",
+    "ATTN",
+    "TAB",
+    "OEM_BACKTAB",
+    "ICO_CLEAR",
+    "CONVERT",
+    "RETURN",
+    "OEM_JUMP",
+    "BROWSER_STOP",
+    "FINAL",
+    "ZOOM",
+    "KANJI",
+    "DELETE",
+    "OEM_COMMA",
+    "SUBTRACT",
+    "MBUTTON",
+    "F9",
+    "SHIFT",
+    "RSHIFT",
+    "LSHIFT",
+    "ADD",
+    "NONCONVERT",
+    "EXSEL",
+    "OEM_1",
+    "OEM_AX",
+    "BROWSER_BACK",
+    "OEM_8",
+    "OEM_MINUS",
+    "PLAY",
+    "OEM_2",
+    "CLEAR",
+    "OEM_FJ_TOUROKU",
+    "OEM_PA1",
+    "ICO_HELP",
+    "BROWSER_SEARCH",
+    "SLEEP",
+ (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]