annotate src/readline-2-event-hook.patch @ 3725:2acaa9943159

qscintilla: update 2.8.4 * src/qscintilla.mk: update to version and checksum for 2.8.4
author John Donoghue
date Mon, 20 Oct 2014 11:01:00 -0400
parents 098ca5276ab8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3340
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
1 diff -ur readline-6.2-orig/input.c readline-6.2/input.c
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
2 --- readline-6.2-orig/input.c 2013-11-24 19:19:30 -0500
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
3 +++ readline-6.2/input.c 2013-11-29 11:19:59 -0500
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
4 @@ -54,6 +54,11 @@
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
5 #include <stdio.h>
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
6 #include <errno.h>
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
7
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
8 +#if defined (__MINGW32__)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
9 +# define WIN32_LEAN_AND_MEAN
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
10 +# include <windows.h>
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
11 +#endif
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
12 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
13 #if !defined (errno)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
14 extern int errno;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
15 #endif /* !errno */
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
16 @@ -96,6 +101,11 @@
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
17 static unsigned char ibuffer[512];
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
18 static int ibuffer_len = sizeof (ibuffer) - 1;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
19
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
20 +#if defined (__MINGW32__)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
21 +static int _win32_getch (void);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
22 +static int _win32_kbhit (void);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
23 +#endif
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
24 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
25 #define any_typein (push_index != pop_index)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
26
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
27 int
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
28 @@ -219,8 +229,8 @@
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
29 #if defined (__MINGW32__)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
30 /* Use getch/_kbhit to check for available console input, in the same way
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
31 that we read it normally. */
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
32 - chars_avail = isatty (tty) ? _kbhit () : 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
33 - result = 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
34 + chars_avail = isatty (tty) ? _win32_kbhit () : 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
35 + result = 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
36 #endif
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
37
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
38 /* If there's nothing available, don't waste time trying to read
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
39 @@ -457,6 +467,123 @@
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
40 return (c);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
41 }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
42
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
43 +#if defined (__MINGW32__)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
44 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
45 +#define _WIN32_READ_NOCHAR (-2)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
46 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
47 +static char _win32_buf[16] = {'0'};
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
48 +static int _win32_bufidx = 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
49 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
50 +static int
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
51 +_win32_getch_internal (int block)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
52 +{
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
53 + INPUT_RECORD rec;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
54 + DWORD evRead, waitResult;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
55 + HANDLE hInput = (HANDLE) _get_osfhandle (fileno (rl_instream));
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
56 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
57 + if (_win32_bufidx > 0)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
58 + return _win32_buf[--_win32_bufidx];
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
59 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
60 + hInput = (HANDLE) _get_osfhandle (fileno (rl_instream));
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
61 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
62 + do
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
63 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
64 + if (! block)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
65 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
66 + if (WaitForSingleObject(hInput, _keyboard_input_timeout/1000) != WAIT_OBJECT_0)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
67 + return _WIN32_READ_NOCHAR;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
68 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
69 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
70 + if (!ReadConsoleInput(hInput, &rec, 1, &evRead) || evRead != 1)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
71 + return EOF;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
72 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
73 + switch (rec.EventType)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
74 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
75 + case KEY_EVENT:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
76 + if ((rec.Event.KeyEvent.bKeyDown &&
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
77 + (rec.Event.KeyEvent.wVirtualKeyCode < VK_SHIFT ||
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
78 + rec.Event.KeyEvent.wVirtualKeyCode > VK_MENU)) ||
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
79 + (!rec.Event.KeyEvent.bKeyDown &&
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
80 + rec.Event.KeyEvent.wVirtualKeyCode == VK_MENU &&
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
81 + rec.Event.KeyEvent.uChar.AsciiChar))
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
82 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
83 + if (rec.Event.KeyEvent.uChar.AsciiChar)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
84 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
85 + if (rec.Event.KeyEvent.uChar.AsciiChar < 0 ||
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
86 + (rec.Event.KeyEvent.uChar.AsciiChar < 32 &&
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
87 + !(rec.Event.KeyEvent.dwControlKeyState & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED))))
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
88 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
89 + char c = rec.Event.KeyEvent.uChar.AsciiChar;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
90 + if (GetOEMCP () == GetConsoleCP ())
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
91 + OemToCharBuff (&c, &c, 1);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
92 + return (int)(unsigned char)c;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
93 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
94 + else
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
95 + return (int)rec.Event.KeyEvent.uChar.UnicodeChar;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
96 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
97 + else
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
98 + switch (rec.Event.KeyEvent.wVirtualKeyCode)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
99 + {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
100 + case VK_UP:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
101 + _win32_buf[_win32_bufidx++] = 'H';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
102 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
103 + case VK_DOWN:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
104 + _win32_buf[_win32_bufidx++] = 'P';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
105 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
106 + case VK_RIGHT:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
107 + _win32_buf[_win32_bufidx++] = 'M';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
108 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
109 + case VK_LEFT:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
110 + _win32_buf[_win32_bufidx++] = 'K';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
111 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
112 + case VK_HOME:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
113 + _win32_buf[_win32_bufidx++] = 'G';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
114 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
115 + case VK_END:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
116 + _win32_buf[_win32_bufidx++] = 'O';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
117 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
118 + case VK_DELETE:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
119 + _win32_buf[_win32_bufidx++] = 'S';
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
120 + return 0340;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
121 + default:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
122 + break;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
123 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
124 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
125 + break;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
126 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
127 + case WINDOW_BUFFER_SIZE_EVENT:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
128 + rl_resize_terminal ();
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
129 + break;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
130 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
131 + default:
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
132 + break;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
133 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
134 + }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
135 + while (1);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
136 +}
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
137 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
138 +static int
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
139 +_win32_kbhit (void)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
140 +{
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
141 + int result;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
142 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
143 + result = _win32_getch_internal (0);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
144 + if (result == _WIN32_READ_NOCHAR
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
145 + || result == EOF)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
146 + return 0;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
147 + _win32_buf[_win32_bufidx++] = result;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
148 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
149 + return _win32_bufidx;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
150 +}
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
151 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
152 +static int
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
153 +_win32_getch (void)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
154 +{
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
155 + return _win32_getch_internal (1);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
156 +}
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
157 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
158 +#endif
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
159 +
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
160 int
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
161 rl_getc (stream)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
162 FILE *stream;
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
163 @@ -471,9 +598,9 @@
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
164 #if defined (__MINGW32__)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
165 if (isatty (fileno (stream)))
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
166 {
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
167 - int c = _getch ();
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
168 + int c = _win32_getch ();
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
169 if (c == 0xe0)
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
170 - rl_execute_next (_getch ());
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
171 + rl_execute_next (_win32_getch ());
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
172 return (c);
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
173 }
098ca5276ab8 Add readline patch for interrupt and CPU usage.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff changeset
174 #endif