Mercurial > mxe-octave
annotate src/readline-2-event-hook.patch @ 3778:f981744a8f4a
uuid: dont install libuuid.dll.a when creating libuuid.dll
* src/uuid.mk: remove created libuuid.dll.a
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Mon, 26 Jan 2015 19:01:48 -0500 |
parents | 098ca5276ab8 |
children |
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 |