Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | #define READLINE_LIBRARY | - |
24 | | - |
25 | #if defined (HAVE_CONFIG_H) | - |
26 | # include <config.h> | - |
27 | #endif | - |
28 | | - |
29 | #include <sys/types.h> | - |
30 | #include "posixstat.h" | - |
31 | #include <fcntl.h> | - |
32 | #if defined (HAVE_SYS_FILE_H) | - |
33 | # include <sys/file.h> | - |
34 | #endif /* HAVE_SYS_FILE_H */ | - |
35 | | - |
36 | #if defined (HAVE_UNISTD_H) | - |
37 | # include <unistd.h> | - |
38 | #endif /* HAVE_UNISTD_H */ | - |
39 | | - |
40 | #if defined (HAVE_STDLIB_H) | - |
41 | # include <stdlib.h> | - |
42 | #else | - |
43 | # include "ansi_stdlib.h" | - |
44 | #endif /* HAVE_STDLIB_H */ | - |
45 | | - |
46 | #if defined (HAVE_LOCALE_H) | - |
47 | # include <locale.h> | - |
48 | #endif | - |
49 | | - |
50 | #include <stdio.h> | - |
51 | #include "posixjmp.h" | - |
52 | #include <errno.h> | - |
53 | | - |
54 | #if !defined (errno) | - |
55 | extern int errno; | - |
56 | #endif /* !errno */ | - |
57 | | - |
58 | | - |
59 | #include "rldefs.h" | - |
60 | #include "rlmbutil.h" | - |
61 | | - |
62 | #if defined (__EMX__) | - |
63 | # define INCL_DOSPROCESS | - |
64 | # include <os2.h> | - |
65 | #endif /* __EMX__ */ | - |
66 | | - |
67 | | - |
68 | #include "readline.h" | - |
69 | #include "history.h" | - |
70 | | - |
71 | #include "rlprivate.h" | - |
72 | #include "rlshell.h" | - |
73 | #include "xmalloc.h" | - |
74 | | - |
75 | #ifndef RL_LIBRARY_VERSION | - |
76 | # define RL_LIBRARY_VERSION "5.1" | - |
77 | #endif | - |
78 | | - |
79 | #ifndef RL_READLINE_VERSION | - |
80 | # define RL_READLINE_VERSION 0x0501 | - |
81 | #endif | - |
82 | | - |
83 | extern void _rl_free_history_entry PARAMS((HIST_ENTRY *)); | - |
84 | | - |
85 | #if defined (COLOR_SUPPORT) | - |
86 | extern void _rl_parse_colors PARAMS((void)); | - |
87 | #endif | - |
88 | | - |
89 | | - |
90 | | - |
91 | static char *readline_internal PARAMS((void)); | - |
92 | static void readline_initialize_everything PARAMS((void)); | - |
93 | | - |
94 | static void bind_arrow_keys_internal PARAMS((Keymap)); | - |
95 | static void bind_arrow_keys PARAMS((void)); | - |
96 | | - |
97 | static void bind_bracketed_paste_prefix PARAMS((void)); | - |
98 | | - |
99 | static void readline_default_bindings PARAMS((void)); | - |
100 | static void reset_default_bindings PARAMS((void)); | - |
101 | | - |
102 | static int _rl_subseq_result PARAMS((int, Keymap, int, int)); | - |
103 | static int _rl_subseq_getchar PARAMS((int)); | - |
104 | | - |
105 | | - |
106 | | - |
107 | | - |
108 | | - |
109 | | - |
110 | | - |
111 | const char *rl_library_version = RL_LIBRARY_VERSION; | - |
112 | | - |
113 | int rl_readline_version = RL_READLINE_VERSION; | - |
114 | | - |
115 | | - |
116 | int rl_gnu_readline_p = 1; | - |
117 | | - |
118 | | - |
119 | | - |
120 | Keymap _rl_keymap = emacs_standard_keymap; | - |
121 | | - |
122 | | - |
123 | int rl_editing_mode = emacs_mode; | - |
124 | | - |
125 | | - |
126 | int rl_insert_mode = RL_IM_DEFAULT; | - |
127 | | - |
128 | | - |
129 | | - |
130 | | - |
131 | int rl_dispatching; | - |
132 | | - |
133 | | - |
134 | int _rl_last_command_was_kill = 0; | - |
135 | | - |
136 | | - |
137 | int rl_numeric_arg = 1; | - |
138 | | - |
139 | | - |
140 | int rl_explicit_arg = 0; | - |
141 | | - |
142 | | - |
143 | int rl_arg_sign = 1; | - |
144 | | - |
145 | | - |
146 | static int rl_initialized; | - |
147 | | - |
148 | #if 0 | - |
149 | | - |
150 | static int running_in_emacs; | - |
151 | #endif | - |
152 | | - |
153 | | - |
154 | unsigned long rl_readline_state = RL_STATE_NONE; | - |
155 | | - |
156 | | - |
157 | int rl_point; | - |
158 | | - |
159 | | - |
160 | int rl_mark; | - |
161 | | - |
162 | | - |
163 | int rl_end; | - |
164 | | - |
165 | | - |
166 | int rl_done; | - |
167 | | - |
168 | | - |
169 | rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL; | - |
170 | | - |
171 | | - |
172 | procenv_t _rl_top_level; | - |
173 | | - |
174 | | - |
175 | FILE *_rl_in_stream, *_rl_out_stream; | - |
176 | | - |
177 | | - |
178 | FILE *rl_instream = (FILE *)NULL; | - |
179 | FILE *rl_outstream = (FILE *)NULL; | - |
180 | | - |
181 | | - |
182 | | - |
183 | | - |
184 | | - |
185 | int _rl_echoing_p = 0; | - |
186 | | - |
187 | | - |
188 | char *rl_prompt = (char *)NULL; | - |
189 | int rl_visible_prompt_length = 0; | - |
190 | | - |
191 | | - |
192 | | - |
193 | int rl_already_prompted = 0; | - |
194 | | - |
195 | | - |
196 | int rl_key_sequence_length = 0; | - |
197 | | - |
198 | | - |
199 | | - |
200 | rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL; | - |
201 | | - |
202 | | - |
203 | | - |
204 | | - |
205 | rl_hook_func_t *rl_pre_input_hook = (rl_hook_func_t *)NULL; | - |
206 | | - |
207 | | - |
208 | static char *the_line; | - |
209 | | - |
210 | | - |
211 | | - |
212 | int _rl_eof_char = CTRL ('D'); | - |
213 | | - |
214 | | - |
215 | int rl_pending_input = 0; | - |
216 | | - |
217 | | - |
218 | const char *rl_terminal_name = (const char *)NULL; | - |
219 | | - |
220 | | - |
221 | int _rl_horizontal_scroll_mode = 0; | - |
222 | | - |
223 | | - |
224 | | - |
225 | int _rl_mark_modified_lines = 0; | - |
226 | | - |
227 | | - |
228 | | - |
229 | int _rl_bell_preference = AUDIBLE_BELL; | - |
230 | | - |
231 | | - |
232 | char *_rl_comment_begin; | - |
233 | | - |
234 | | - |
235 | Keymap rl_executing_keymap; | - |
236 | | - |
237 | | - |
238 | Keymap _rl_dispatching_keymap; | - |
239 | | - |
240 | | - |
241 | int rl_erase_empty_line = 0; | - |
242 | | - |
243 | | - |
244 | | - |
245 | int rl_num_chars_to_read = 0; | - |
246 | | - |
247 | | - |
248 | char *rl_line_buffer = (char *)NULL; | - |
249 | int rl_line_buffer_len = 0; | - |
250 | | - |
251 | | - |
252 | _rl_keyseq_cxt *_rl_kscxt = 0; | - |
253 | | - |
254 | int rl_executing_key; | - |
255 | char *rl_executing_keyseq = 0; | - |
256 | int _rl_executing_keyseq_size = 0; | - |
257 | | - |
258 | | - |
259 | | - |
260 | int _rl_keyseq_timeout = 500; | - |
261 | | - |
262 | #define RESIZE_KEYSEQ_BUFFER() \ | - |
263 | do \ | - |
264 | { \ | - |
265 | if (rl_key_sequence_length + 2 >= _rl_executing_keyseq_size) \ | - |
266 | { \ | - |
267 | _rl_executing_keyseq_size += 16; \ | - |
268 | rl_executing_keyseq = xrealloc (rl_executing_keyseq, _rl_executing_keyseq_size); \ | - |
269 | } \ | - |
270 | } \ | - |
271 | while (0); | - |
272 | | - |
273 | | - |
274 | | - |
275 | | - |
276 | | - |
277 | | - |
278 | | - |
279 | | - |
280 | | - |
281 | | - |
282 | | - |
283 | unsigned char _rl_parsing_conditionalized_out = 0; | - |
284 | | - |
285 | | - |
286 | | - |
287 | | - |
288 | int _rl_convert_meta_chars_to_ascii = 1; | - |
289 | | - |
290 | | - |
291 | | - |
292 | int _rl_output_meta_chars = 0; | - |
293 | | - |
294 | | - |
295 | | - |
296 | int _rl_bind_stty_chars = 1; | - |
297 | | - |
298 | | - |
299 | | - |
300 | | - |
301 | int _rl_revert_all_at_newline = 0; | - |
302 | | - |
303 | | - |
304 | | - |
305 | int _rl_echo_control_chars = 1; | - |
306 | | - |
307 | | - |
308 | | - |
309 | int _rl_show_mode_in_prompt = 0; | - |
310 | | - |
311 | | - |
312 | | - |
313 | | - |
314 | int _rl_enable_bracketed_paste = 0; | - |
315 | | - |
316 | | - |
317 | | - |
318 | | - |
319 | | - |
320 | | - |
321 | | - |
322 | | - |
323 | int _rl_meta_flag = 0; | - |
324 | | - |
325 | | - |
326 | | - |
327 | int | - |
328 | rl_set_prompt (const char *prompt) | - |
329 | { | - |
330 | FREE (rl_prompt); never executed: free (rl_prompt); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
331 | rl_prompt = prompt ? savestring (prompt) : (char *)NULL;TRUE | never evaluated | FALSE | never evaluated |
| 0 |
332 | rl_display_prompt = rl_prompt ? rl_prompt : "";TRUE | never evaluated | FALSE | never evaluated |
| 0 |
333 | | - |
334 | rl_visible_prompt_length = rl_expand_prompt (rl_prompt); | - |
335 | return 0; never executed: return 0; | 0 |
336 | } | - |
337 | | - |
338 | | - |
339 | | - |
340 | char * | - |
341 | readline (const char *prompt) | - |
342 | { | - |
343 | char *value; | - |
344 | #if 0 | - |
345 | int in_callback; | - |
346 | #endif | - |
347 | | - |
348 | | - |
349 | if (rl_pending_input == EOF)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
350 | { | - |
351 | rl_clear_pending_input (); | - |
352 | return ((char *)NULL); never executed: return ((char *) ((void *)0) ); | 0 |
353 | } | - |
354 | | - |
355 | #if 0 | - |
356 | | - |
357 | | - |
358 | | - |
359 | | - |
360 | if (in_callback = RL_ISSTATE (RL_STATE_CALLBACK)) | - |
361 | RL_UNSETSTATE (RL_STATE_CALLBACK); | - |
362 | #endif | - |
363 | | - |
364 | rl_set_prompt (prompt); | - |
365 | | - |
366 | rl_initialize (); | - |
367 | if (rl_prep_term_function)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
368 | (*rl_prep_term_function) (_rl_meta_flag); never executed: (*rl_prep_term_function) (_rl_meta_flag); | 0 |
369 | | - |
370 | #if defined (HANDLE_SIGNALS) | - |
371 | rl_set_signals (); | - |
372 | #endif | - |
373 | | - |
374 | value = readline_internal (); | - |
375 | if (rl_deprep_term_function)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
376 | (*rl_deprep_term_function) (); never executed: (*rl_deprep_term_function) (); | 0 |
377 | | - |
378 | #if defined (HANDLE_SIGNALS) | - |
379 | rl_clear_signals (); | - |
380 | #endif | - |
381 | | - |
382 | #if 0 | - |
383 | if (in_callback) | - |
384 | RL_SETSTATE (RL_STATE_CALLBACK); | - |
385 | #endif | - |
386 | | - |
387 | #if HAVE_DECL_AUDIT_USER_TTY && defined (HAVE_LIBAUDIT_H) && defined (ENABLE_TTY_AUDIT_SUPPORT) | - |
388 | if (value) | - |
389 | _rl_audit_tty (value); | - |
390 | #endif | - |
391 | | - |
392 | return (value); never executed: return (value); | 0 |
393 | } | - |
394 | | - |
395 | #if defined (READLINE_CALLBACKS) | - |
396 | # define STATIC_CALLBACK | - |
397 | #else | - |
398 | # define STATIC_CALLBACK static | - |
399 | #endif | - |
400 | | - |
401 | STATIC_CALLBACK void | - |
402 | readline_internal_setup (void) | - |
403 | { | - |
404 | char *nprompt; | - |
405 | | - |
406 | _rl_in_stream = rl_instream; | - |
407 | _rl_out_stream = rl_outstream; | - |
408 | | - |
409 | | - |
410 | | - |
411 | if (_rl_enable_meta & RL_ISSTATE (RL_STATE_TERMPREPPED))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
412 | _rl_enable_meta_key (); never executed: _rl_enable_meta_key (); | 0 |
413 | | - |
414 | if (rl_startup_hook)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
415 | (*rl_startup_hook) (); never executed: (*rl_startup_hook) (); | 0 |
416 | | - |
417 | #if defined (VI_MODE) | - |
418 | if (rl_editing_mode == vi_mode)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
419 | rl_vi_insertion_mode (1, 'i'); never executed: rl_vi_insertion_mode (1, 'i'); | 0 |
420 | else | - |
421 | #endif /* VI_MODE */ | - |
422 | if (_rl_show_mode_in_prompt)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
423 | _rl_reset_prompt (); never executed: _rl_reset_prompt (); | 0 |
424 | | - |
425 | | - |
426 | | - |
427 | | - |
428 | if (_rl_echoing_p == 0 && rl_redisplay_function == rl_redisplay)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
429 | { | - |
430 | if (rl_prompt && rl_already_prompted == 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
431 | { | - |
432 | nprompt = _rl_strip_prompt (rl_prompt); | - |
433 | fprintf (_rl_out_stream, "%s", nprompt); | - |
434 | fflush (_rl_out_stream); | - |
435 | xfree (nprompt); | - |
436 | } never executed: end of block | 0 |
437 | } never executed: end of block | 0 |
438 | else | - |
439 | { | - |
440 | if (rl_prompt && rl_already_prompted)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
441 | rl_on_new_line_with_prompt (); never executed: rl_on_new_line_with_prompt (); | 0 |
442 | else | - |
443 | rl_on_new_line (); never executed: rl_on_new_line (); | 0 |
444 | (*rl_redisplay_function) (); | - |
445 | } never executed: end of block | 0 |
446 | | - |
447 | if (rl_pre_input_hook)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
448 | (*rl_pre_input_hook) (); never executed: (*rl_pre_input_hook) (); | 0 |
449 | | - |
450 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
451 | } never executed: end of block | 0 |
452 | | - |
453 | STATIC_CALLBACK char * | - |
454 | readline_internal_teardown (int eof) | - |
455 | { | - |
456 | char *temp; | - |
457 | HIST_ENTRY *entry; | - |
458 | | - |
459 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
460 | | - |
461 | | - |
462 | | - |
463 | entry = current_history (); | - |
464 | | - |
465 | if (entry && rl_undo_list)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
466 | { | - |
467 | temp = savestring (the_line); | - |
468 | rl_revert_line (1, 0); | - |
469 | entry = replace_history_entry (where_history (), the_line, (histdata_t)NULL); | - |
470 | _rl_free_history_entry (entry); | - |
471 | | - |
472 | strcpy (the_line, temp); | - |
473 | xfree (temp); | - |
474 | } never executed: end of block | 0 |
475 | | - |
476 | if (_rl_revert_all_at_newline)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
477 | _rl_revert_all_lines (); never executed: _rl_revert_all_lines (); | 0 |
478 | | - |
479 | | - |
480 | | - |
481 | if (rl_undo_list)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
482 | rl_free_undo_list (); never executed: rl_free_undo_list (); | 0 |
483 | | - |
484 | | - |
485 | | - |
486 | | - |
487 | _rl_disable_meta_key (); | - |
488 | | - |
489 | | - |
490 | _rl_set_insert_mode (RL_IM_INSERT, 0); | - |
491 | | - |
492 | return (eof ? (char *)NULL : savestring (the_line)); never executed: return (eof ? (char *) ((void *)0) : strcpy ((char *)xmalloc (1 + strlen (the_line)), (the_line))); | 0 |
493 | } | - |
494 | | - |
495 | void | - |
496 | _rl_internal_char_cleanup (void) | - |
497 | { | - |
498 | #if defined (VI_MODE) | - |
499 | | - |
500 | | - |
501 | if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
502 | rl_vi_check (); never executed: rl_vi_check (); | 0 |
503 | #endif /* VI_MODE */ | - |
504 | | - |
505 | if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
506 | { | - |
507 | (*rl_redisplay_function) (); | - |
508 | _rl_want_redisplay = 0; | - |
509 | rl_newline (1, '\n'); | - |
510 | } never executed: end of block | 0 |
511 | | - |
512 | if (rl_done == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
513 | { | - |
514 | (*rl_redisplay_function) (); | - |
515 | _rl_want_redisplay = 0; | - |
516 | } never executed: end of block | 0 |
517 | | - |
518 | | - |
519 | | - |
520 | if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
521 | rl_point == 0 && rl_end == 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
522 | _rl_erase_entire_line (); never executed: _rl_erase_entire_line (); | 0 |
523 | } never executed: end of block | 0 |
524 | | - |
525 | STATIC_CALLBACK int | - |
526 | #if defined (READLINE_CALLBACKS) | - |
527 | readline_internal_char (void) | - |
528 | #else | - |
529 | readline_internal_charloop (void) | - |
530 | #endif | - |
531 | { | - |
532 | static int lastc, eof_found; | - |
533 | int c, code, lk, r; | - |
534 | | - |
535 | lastc = EOF; | - |
536 | | - |
537 | #if !defined (READLINE_CALLBACKS) | - |
538 | eof_found = 0; | - |
539 | while (rl_done == 0) | - |
540 | { | - |
541 | #endif | - |
542 | lk = _rl_last_command_was_kill; | - |
543 | | - |
544 | #if defined (HAVE_POSIX_SIGSETJMP) | - |
545 | code = sigsetjmp (_rl_top_level, 0); | - |
546 | #else | - |
547 | code = setjmp (_rl_top_level); | - |
548 | #endif | - |
549 | | - |
550 | if (code)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
551 | { | - |
552 | (*rl_redisplay_function) (); | - |
553 | _rl_want_redisplay = 0; | - |
554 | | - |
555 | | - |
556 | | - |
557 | | - |
558 | if (RL_ISSTATE (RL_STATE_CALLBACK))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
559 | return (0); never executed: return (0); | 0 |
560 | } never executed: end of block | 0 |
561 | | - |
562 | if (rl_pending_input == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
563 | { | - |
564 | | - |
565 | _rl_reset_argument (); | - |
566 | rl_executing_keyseq[rl_key_sequence_length = 0] = '\0'; | - |
567 | } never executed: end of block | 0 |
568 | | - |
569 | RL_SETSTATE(RL_STATE_READCMD); | - |
570 | c = rl_read_key (); | - |
571 | RL_UNSETSTATE(RL_STATE_READCMD); | - |
572 | | - |
573 | | - |
574 | | - |
575 | | - |
576 | | - |
577 | if (c == READERR)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
578 | { | - |
579 | #if defined (READLINE_CALLBACKS) | - |
580 | RL_SETSTATE(RL_STATE_DONE); | - |
581 | return (rl_done = 1); never executed: return (rl_done = 1); | 0 |
582 | #else | - |
583 | eof_found = 1; | - |
584 | break; | - |
585 | #endif | - |
586 | } | - |
587 | | - |
588 | | - |
589 | | - |
590 | | - |
591 | | - |
592 | if (c == EOF && rl_end)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
593 | { | - |
594 | if (RL_SIG_RECEIVED ())TRUE | never evaluated | FALSE | never evaluated |
| 0 |
595 | { | - |
596 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
597 | if (rl_signal_event_hook)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
598 | (*rl_signal_event_hook) (); never executed: (*rl_signal_event_hook) (); | 0 |
599 | } never executed: end of block | 0 |
600 | | - |
601 | | - |
602 | if (RL_ISSTATE (RL_STATE_TERMPREPPED))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
603 | { | - |
604 | if (lastc == _rl_eof_char || lastc == EOF)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
605 | rl_end = 0; never executed: rl_end = 0; | 0 |
606 | else | - |
607 | c = _rl_eof_char; never executed: c = _rl_eof_char; | 0 |
608 | } | - |
609 | else | - |
610 | c = NEWLINE; never executed: c = '\n'; | 0 |
611 | } | - |
612 | | - |
613 | | - |
614 | | - |
615 | | - |
616 | | - |
617 | if (((c == _rl_eof_char && lastc != c) || c == EOF) && rl_end == 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
618 | { | - |
619 | #if defined (READLINE_CALLBACKS) | - |
620 | RL_SETSTATE(RL_STATE_DONE); | - |
621 | return (rl_done = 1); never executed: return (rl_done = 1); | 0 |
622 | #else | - |
623 | eof_found = 1; | - |
624 | break; | - |
625 | #endif | - |
626 | } | - |
627 | | - |
628 | lastc = c; | - |
629 | r = _rl_dispatch ((unsigned char)c, _rl_keymap); | - |
630 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
631 | | - |
632 | | - |
633 | | - |
634 | | - |
635 | if (rl_pending_input == 0 && lk == _rl_last_command_was_kill)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
636 | _rl_last_command_was_kill = 0; never executed: _rl_last_command_was_kill = 0; | 0 |
637 | | - |
638 | _rl_internal_char_cleanup (); | - |
639 | | - |
640 | #if defined (READLINE_CALLBACKS) | - |
641 | return 0; never executed: return 0; | 0 |
642 | #else | - |
643 | } | - |
644 | | - |
645 | return (eof_found); | - |
646 | #endif | - |
647 | } | - |
648 | | - |
649 | #if defined (READLINE_CALLBACKS) | - |
650 | static int | - |
651 | readline_internal_charloop (void) | - |
652 | { | - |
653 | int eof = 1; | - |
654 | | - |
655 | while (rl_done == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
656 | eof = readline_internal_char (); never executed: eof = readline_internal_char (); | 0 |
657 | return (eof); never executed: return (eof); | 0 |
658 | } | - |
659 | #endif /* READLINE_CALLBACKS */ | - |
660 | | - |
661 | | - |
662 | | - |
663 | | - |
664 | static char * | - |
665 | readline_internal (void) | - |
666 | { | - |
667 | int eof; | - |
668 | | - |
669 | readline_internal_setup (); | - |
670 | eof = readline_internal_charloop (); | - |
671 | return (readline_internal_teardown (eof)); never executed: return (readline_internal_teardown (eof)); | 0 |
672 | } | - |
673 | | - |
674 | void | - |
675 | _rl_init_line_state (void) | - |
676 | { | - |
677 | rl_point = rl_end = rl_mark = 0; | - |
678 | the_line = rl_line_buffer; | - |
679 | the_line[0] = 0; | - |
680 | } never executed: end of block | 0 |
681 | | - |
682 | void | - |
683 | _rl_set_the_line (void) | - |
684 | { | - |
685 | the_line = rl_line_buffer; | - |
686 | } never executed: end of block | 0 |
687 | | - |
688 | #if defined (READLINE_CALLBACKS) | - |
689 | _rl_keyseq_cxt * | - |
690 | _rl_keyseq_cxt_alloc (void) | - |
691 | { | - |
692 | _rl_keyseq_cxt *cxt; | - |
693 | | - |
694 | cxt = (_rl_keyseq_cxt *)xmalloc (sizeof (_rl_keyseq_cxt)); | - |
695 | | - |
696 | cxt->flags = cxt->subseq_arg = cxt->subseq_retval = 0; | - |
697 | | - |
698 | cxt->okey = 0; | - |
699 | cxt->ocxt = _rl_kscxt; | - |
700 | cxt->childval = 42; | - |
701 | | - |
702 | return cxt; never executed: return cxt; | 0 |
703 | } | - |
704 | | - |
705 | void | - |
706 | _rl_keyseq_cxt_dispose (_rl_keyseq_cxt *cxt) | - |
707 | { | - |
708 | xfree (cxt); | - |
709 | } never executed: end of block | 0 |
710 | | - |
711 | void | - |
712 | _rl_keyseq_chain_dispose (void) | - |
713 | { | - |
714 | _rl_keyseq_cxt *cxt; | - |
715 | | - |
716 | while (_rl_kscxt)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
717 | { | - |
718 | cxt = _rl_kscxt; | - |
719 | _rl_kscxt = _rl_kscxt->ocxt; | - |
720 | _rl_keyseq_cxt_dispose (cxt); | - |
721 | } never executed: end of block | 0 |
722 | } never executed: end of block | 0 |
723 | #endif | - |
724 | | - |
725 | static int | - |
726 | _rl_subseq_getchar (int key) | - |
727 | { | - |
728 | int k; | - |
729 | | - |
730 | if (key == ESC)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
731 | RL_SETSTATE(RL_STATE_METANEXT); never executed: (rl_readline_state |= (0x0000010)); | 0 |
732 | RL_SETSTATE(RL_STATE_MOREINPUT); | - |
733 | k = rl_read_key (); | - |
734 | RL_UNSETSTATE(RL_STATE_MOREINPUT); | - |
735 | if (key == ESC)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
736 | RL_UNSETSTATE(RL_STATE_METANEXT); never executed: (rl_readline_state &= ~(0x0000010)); | 0 |
737 | | - |
738 | return k; never executed: return k; | 0 |
739 | } | - |
740 | | - |
741 | #if defined (READLINE_CALLBACKS) | - |
742 | int | - |
743 | _rl_dispatch_callback (_rl_keyseq_cxt *cxt) | - |
744 | { | - |
745 | int nkey, r; | - |
746 | | - |
747 | | - |
748 | | - |
749 | | - |
750 | | - |
751 | | - |
752 | if ((cxt->flags & KSEQ_DISPATCHED) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
753 | { | - |
754 | nkey = _rl_subseq_getchar (cxt->okey); | - |
755 | if (nkey < 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
756 | { | - |
757 | _rl_abort_internal (); | - |
758 | return -1; never executed: return -1; | 0 |
759 | } | - |
760 | r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); | - |
761 | cxt->flags |= KSEQ_DISPATCHED; | - |
762 | } never executed: end of block | 0 |
763 | else | - |
764 | r = cxt->childval; never executed: r = cxt->childval; | 0 |
765 | | - |
766 | | - |
767 | if (r != -3) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
768 | r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); never executed: r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & 0x02)); | 0 |
769 | | - |
770 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
771 | | - |
772 | if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
773 | { | - |
774 | _rl_keyseq_chain_dispose (); | - |
775 | RL_UNSETSTATE (RL_STATE_MULTIKEY); | - |
776 | return r; never executed: return r; | 0 |
777 | } | - |
778 | | - |
779 | if (r != -3) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
780 | _rl_kscxt = cxt->ocxt; never executed: _rl_kscxt = cxt->ocxt; | 0 |
781 | if (_rl_kscxt)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
782 | _rl_kscxt->childval = r; never executed: _rl_kscxt->childval = r; | 0 |
783 | if (r != -3)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
784 | _rl_keyseq_cxt_dispose (cxt); never executed: _rl_keyseq_cxt_dispose (cxt); | 0 |
785 | | - |
786 | return r; never executed: return r; | 0 |
787 | } | - |
788 | #endif /* READLINE_CALLBACKS */ | - |
789 | | - |
790 | | - |
791 | | - |
792 | | - |
793 | int | - |
794 | _rl_dispatch (register int key, Keymap map) | - |
795 | { | - |
796 | _rl_dispatching_keymap = map; | - |
797 | return _rl_dispatch_subseq (key, map, 0); never executed: return _rl_dispatch_subseq (key, map, 0); | 0 |
798 | } | - |
799 | | - |
800 | int | - |
801 | _rl_dispatch_subseq (register int key, Keymap map, int got_subseq) | - |
802 | { | - |
803 | int r, newkey; | - |
804 | char *macro; | - |
805 | rl_command_func_t *func; | - |
806 | #if defined (READLINE_CALLBACKS) | - |
807 | _rl_keyseq_cxt *cxt; | - |
808 | #endif | - |
809 | | - |
810 | if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
811 | { | - |
812 | if (map[ESC].type == ISKMAP)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
813 | { | - |
814 | if (RL_ISSTATE (RL_STATE_MACRODEF))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
815 | _rl_add_macro_char (ESC); never executed: _rl_add_macro_char ((('[') & 0x1f)); | 0 |
816 | RESIZE_KEYSEQ_BUFFER (); never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
| 0 |
817 | rl_executing_keyseq[rl_key_sequence_length++] = ESC; | - |
818 | map = FUNCTION_TO_KEYMAP (map, ESC); | - |
819 | key = UNMETA (key); | - |
820 | return (_rl_dispatch (key, map)); never executed: return (_rl_dispatch (key, map)); | 0 |
821 | } | - |
822 | else | - |
823 | rl_ding (); never executed: rl_ding (); | 0 |
824 | return 0; never executed: return 0; | 0 |
825 | } | - |
826 | | - |
827 | if (RL_ISSTATE (RL_STATE_MACRODEF))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
828 | _rl_add_macro_char (key); never executed: _rl_add_macro_char (key); | 0 |
829 | | - |
830 | r = 0; | - |
831 | switch (map[key].type) | - |
832 | { | - |
833 | case ISFUNC: never executed: case 0: | 0 |
834 | func = map[key].function; | - |
835 | if (func)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
836 | { | - |
837 | | - |
838 | if (func == rl_do_lowercase_version)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
839 | | - |
840 | return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map)); never executed: return (_rl_dispatch (((((unsigned char)((unsigned char)key) == ((unsigned char)key)) && (1 && ((*__ctype_b_loc ())[(int) (( (unsigned char)(unsigned char)key ))] & (unsigned short int) _ISupper) )) ? (__extension__ ({ int __res; if (sizeof ( (unsigned ch...__c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (unsigned char)(unsigned char)key ); } else __res = (*__ctype_tolower_loc ())[(int) ( (unsigned char)(unsigned char)key )]; __res; })) : ((unsigned char)key)), map)); never executed: end of block never executed: __res = tolower ( (unsigned char)(unsigned char)key ); never executed: __res = (*__ctype_tolower_loc ())[(int) ( (unsigned char)(unsigned char)key )]; TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
841 | | - |
842 | rl_executing_keymap = map; | - |
843 | rl_executing_key = key; | - |
844 | | - |
845 | RESIZE_KEYSEQ_BUFFER(); never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
| 0 |
846 | rl_executing_keyseq[rl_key_sequence_length++] = key; | - |
847 | rl_executing_keyseq[rl_key_sequence_length] = '\0'; | - |
848 | | - |
849 | rl_dispatching = 1; | - |
850 | RL_SETSTATE(RL_STATE_DISPATCHING); | - |
851 | r = (*func) (rl_numeric_arg * rl_arg_sign, key); | - |
852 | RL_UNSETSTATE(RL_STATE_DISPATCHING); | - |
853 | rl_dispatching = 0; | - |
854 | | - |
855 | | - |
856 | | - |
857 | | - |
858 | if (rl_pending_input == 0 && map[key].function != rl_digit_argument)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
859 | rl_last_func = map[key].function; never executed: rl_last_func = map[key].function; | 0 |
860 | | - |
861 | RL_CHECK_SIGNALS (); never executed: _rl_signal_handler (_rl_caught_signal); TRUE | never evaluated | FALSE | never evaluated |
| 0 |
862 | } never executed: end of block | 0 |
863 | else if (map[ANYOTHERKEY].function)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
864 | { | - |
865 | | - |
866 | | - |
867 | | - |
868 | if (RL_ISSTATE (RL_STATE_MACROINPUT))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
869 | _rl_prev_macro_key (); never executed: _rl_prev_macro_key (); | 0 |
870 | else | - |
871 | _rl_unget_char (key); never executed: _rl_unget_char (key); | 0 |
872 | return -2; never executed: return -2; | 0 |
873 | } | - |
874 | else if (got_subseq)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
875 | { | - |
876 | | - |
877 | | - |
878 | | - |
879 | | - |
880 | if (RL_ISSTATE (RL_STATE_MACROINPUT))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
881 | _rl_prev_macro_key (); never executed: _rl_prev_macro_key (); | 0 |
882 | else | - |
883 | _rl_unget_char (key); never executed: _rl_unget_char (key); | 0 |
884 | return -1; never executed: return -1; | 0 |
885 | } | - |
886 | else | - |
887 | { | - |
888 | #if defined (READLINE_CALLBACKS) | - |
889 | RL_UNSETSTATE (RL_STATE_MULTIKEY); | - |
890 | _rl_keyseq_chain_dispose (); | - |
891 | #endif | - |
892 | _rl_abort_internal (); | - |
893 | return -1; never executed: return -1; | 0 |
894 | } | - |
895 | break; never executed: break; | 0 |
896 | | - |
897 | case ISKMAP: never executed: case 1: | 0 |
898 | if (map[key].function != 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
899 | { | - |
900 | #if defined (VI_MODE) | - |
901 | | - |
902 | | - |
903 | | - |
904 | | - |
905 | | - |
906 | | - |
907 | | - |
908 | | - |
909 | | - |
910 | if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
911 | (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
912 | _rl_pushed_input_available () == 0 &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
913 | _rl_input_queued ((_rl_keyseq_timeout > 0) ? _rl_keyseq_timeout*1000 : 0) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
914 | return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key))); never executed: return (_rl_dispatch (257 -1, (Keymap)(map[key].function))); | 0 |
915 | | - |
916 | | - |
917 | | - |
918 | if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
919 | (RL_ISSTATE (RL_STATE_INPUTPENDING) == 0) &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
920 | (RL_ISSTATE (RL_STATE_MACROINPUT) && _rl_peek_macro_key () == 0) &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
921 | _rl_pushed_input_available () == 0 &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
922 | _rl_input_queued ((_rl_keyseq_timeout > 0) ? _rl_keyseq_timeout*1000 : 0) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
923 | return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key))); never executed: return (_rl_dispatch (257 -1, (Keymap)(map[key].function))); | 0 |
924 | #endif | - |
925 | | - |
926 | RESIZE_KEYSEQ_BUFFER (); never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
| 0 |
927 | rl_executing_keyseq[rl_key_sequence_length++] = key; | - |
928 | _rl_dispatching_keymap = FUNCTION_TO_KEYMAP (map, key); | - |
929 | | - |
930 | | - |
931 | | - |
932 | #if defined (READLINE_CALLBACKS) | - |
933 | # if defined (VI_MODE) | - |
934 | | - |
935 | | - |
936 | | - |
937 | | - |
938 | | - |
939 | if (_rl_vi_redoing && RL_ISSTATE (RL_STATE_CALLBACK) &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
940 | map[ANYOTHERKEY].function != 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
941 | return (_rl_subseq_result (-2, map, key, got_subseq)); never executed: return (_rl_subseq_result (-2, map, key, got_subseq)); | 0 |
942 | # endif | - |
943 | if (RL_ISSTATE (RL_STATE_CALLBACK))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
944 | { | - |
945 | | - |
946 | | - |
947 | | - |
948 | | - |
949 | r = RL_ISSTATE (RL_STATE_MULTIKEY) ? -3 : 0;TRUE | never evaluated | FALSE | never evaluated |
| 0 |
950 | cxt = _rl_keyseq_cxt_alloc (); | - |
951 | | - |
952 | if (got_subseq)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
953 | cxt->flags |= KSEQ_SUBSEQ; never executed: cxt->flags |= 0x02; | 0 |
954 | cxt->okey = key; | - |
955 | cxt->oldmap = map; | - |
956 | cxt->dmap = _rl_dispatching_keymap; | - |
957 | cxt->subseq_arg = got_subseq || cxt->dmap[ANYOTHERKEY].function;TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
958 | | - |
959 | RL_SETSTATE (RL_STATE_MULTIKEY); | - |
960 | _rl_kscxt = cxt; | - |
961 | | - |
962 | return r; never executed: return r; | 0 |
963 | } | - |
964 | #endif | - |
965 | | - |
966 | | - |
967 | | - |
968 | | - |
969 | | - |
970 | | - |
971 | if (_rl_keyseq_timeout > 0 &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
972 | (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
973 | _rl_pushed_input_available () == 0 &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
974 | _rl_dispatching_keymap[ANYOTHERKEY].function &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
975 | _rl_input_queued (_rl_keyseq_timeout*1000) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
976 | return (_rl_subseq_result (-2, map, key, got_subseq)); never executed: return (_rl_subseq_result (-2, map, key, got_subseq)); | 0 |
977 | | - |
978 | newkey = _rl_subseq_getchar (key); | - |
979 | if (newkey < 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
980 | { | - |
981 | _rl_abort_internal (); | - |
982 | return -1; never executed: return -1; | 0 |
983 | } | - |
984 | | - |
985 | r = _rl_dispatch_subseq (newkey, _rl_dispatching_keymap, got_subseq || map[ANYOTHERKEY].function); | - |
986 | return _rl_subseq_result (r, map, key, got_subseq); never executed: return _rl_subseq_result (r, map, key, got_subseq); | 0 |
987 | } | - |
988 | else | - |
989 | { | - |
990 | _rl_abort_internal (); | - |
991 | return -1; never executed: return -1; | 0 |
992 | } | - |
993 | break; dead code: break; | - |
994 | | - |
995 | case ISMACR: never executed: case 2: | 0 |
996 | if (map[key].function != 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
997 | { | - |
998 | rl_executing_keyseq[rl_key_sequence_length] = '\0'; | - |
999 | macro = savestring ((char *)map[key].function); | - |
1000 | _rl_with_macro_input (macro); | - |
1001 | return 0; never executed: return 0; | 0 |
1002 | } | - |
1003 | break; never executed: break; | 0 |
1004 | } | - |
1005 | | - |
1006 | #if defined (VI_MODE) | - |
1007 | if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1008 | key != ANYOTHERKEY &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1009 | _rl_dispatching_keymap == vi_movement_keymap &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1010 | _rl_vi_textmod_command (key))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1011 | _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); never executed: _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); | 0 |
1012 | #endif | - |
1013 | | - |
1014 | return (r); never executed: return (r); | 0 |
1015 | } | - |
1016 | | - |
1017 | static int | - |
1018 | _rl_subseq_result (int r, Keymap map, int key, int got_subseq) | - |
1019 | { | - |
1020 | Keymap m; | - |
1021 | int type, nt; | - |
1022 | rl_command_func_t *func, *nf; | - |
1023 | | - |
1024 | if (r == -2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1025 | | - |
1026 | | - |
1027 | | - |
1028 | | - |
1029 | | - |
1030 | { | - |
1031 | m = _rl_dispatching_keymap; | - |
1032 | type = m[ANYOTHERKEY].type; | - |
1033 | func = m[ANYOTHERKEY].function; | - |
1034 | if (type == ISFUNC && func == rl_do_lowercase_version)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1035 | r = _rl_dispatch (_rl_to_lower ((unsigned char)key), map); never executed: r = _rl_dispatch (((((unsigned char)((unsigned char)key) == ((unsigned char)key)) && (1 && ((*__ctype_b_loc ())[(int) (( (unsigned char)(unsigned char)key ))] & (unsigned short int) _ISupper) )) ? (__extension__ ({ int __res; if (sizeof ( (unsigned char)(... __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower ( (unsigned char)(unsigned char)key ); } else __res = (*__ctype_tolower_loc ())[(int) ( (unsigned char)(unsigned char)key )]; __res; })) : ((unsigned char)key)), map); never executed: end of block never executed: __res = tolower ( (unsigned char)(unsigned char)key ); never executed: __res = (*__ctype_tolower_loc ())[(int) ( (unsigned char)(unsigned char)key )]; TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1036 | else if (type == ISFUNC)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1037 | { | - |
1038 | | - |
1039 | | - |
1040 | | - |
1041 | | - |
1042 | | - |
1043 | nt = m[key].type; | - |
1044 | nf = m[key].function; | - |
1045 | | - |
1046 | m[key].type = type; | - |
1047 | m[key].function = func; | - |
1048 | | - |
1049 | _rl_dispatching_keymap = map; | - |
1050 | r = _rl_dispatch_subseq (key, m, 0); | - |
1051 | m[key].type = nt; | - |
1052 | m[key].function = nf; | - |
1053 | } never executed: end of block | 0 |
1054 | else | - |
1055 | | - |
1056 | r = _rl_dispatch (ANYOTHERKEY, m); never executed: r = _rl_dispatch (257 -1, m); | 0 |
1057 | } | - |
1058 | else if (r && map[ANYOTHERKEY].function)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1059 | { | - |
1060 | | - |
1061 | | - |
1062 | | - |
1063 | if (RL_ISSTATE (RL_STATE_MACROINPUT))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1064 | _rl_prev_macro_key (); never executed: _rl_prev_macro_key (); | 0 |
1065 | else | - |
1066 | _rl_unget_char (key); never executed: _rl_unget_char (key); | 0 |
1067 | _rl_dispatching_keymap = map; | - |
1068 | return -2; never executed: return -2; | 0 |
1069 | } | - |
1070 | else if (r < 0 && got_subseq) TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1071 | { | - |
1072 | | - |
1073 | if (RL_ISSTATE (RL_STATE_MACROINPUT))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1074 | _rl_prev_macro_key (); never executed: _rl_prev_macro_key (); | 0 |
1075 | else | - |
1076 | _rl_unget_char (key); never executed: _rl_unget_char (key); | 0 |
1077 | _rl_dispatching_keymap = map; | - |
1078 | return -1; never executed: return -1; | 0 |
1079 | } | - |
1080 | | - |
1081 | return r; never executed: return r; | 0 |
1082 | } | - |
1083 | | - |
1084 | | - |
1085 | | - |
1086 | | - |
1087 | | - |
1088 | | - |
1089 | | - |
1090 | | - |
1091 | int | - |
1092 | rl_initialize (void) | - |
1093 | { | - |
1094 | | - |
1095 | | - |
1096 | if (rl_initialized == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1097 | { | - |
1098 | RL_SETSTATE(RL_STATE_INITIALIZING); | - |
1099 | readline_initialize_everything (); | - |
1100 | RL_UNSETSTATE(RL_STATE_INITIALIZING); | - |
1101 | rl_initialized++; | - |
1102 | RL_SETSTATE(RL_STATE_INITIALIZED); | - |
1103 | } never executed: end of block | 0 |
1104 | else | - |
1105 | (void)_rl_init_locale (); never executed: (void)_rl_init_locale (); | 0 |
1106 | | - |
1107 | | - |
1108 | _rl_init_line_state (); | - |
1109 | | - |
1110 | | - |
1111 | rl_done = 0; | - |
1112 | RL_UNSETSTATE(RL_STATE_DONE); | - |
1113 | | - |
1114 | | - |
1115 | _rl_start_using_history (); | - |
1116 | | - |
1117 | | - |
1118 | rl_reset_line_state (); | - |
1119 | | - |
1120 | | - |
1121 | rl_last_func = (rl_command_func_t *)NULL; | - |
1122 | | - |
1123 | | - |
1124 | _rl_parsing_conditionalized_out = 0; | - |
1125 | | - |
1126 | #if defined (VI_MODE) | - |
1127 | if (rl_editing_mode == vi_mode)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1128 | _rl_vi_initialize_line (); never executed: _rl_vi_initialize_line (); | 0 |
1129 | #endif | - |
1130 | | - |
1131 | | - |
1132 | _rl_set_insert_mode (RL_IM_DEFAULT, 1); | - |
1133 | | - |
1134 | return 0; never executed: return 0; | 0 |
1135 | } | - |
1136 | | - |
1137 | #if 0 | - |
1138 | #if defined (__EMX__) | - |
1139 | static void | - |
1140 | _emx_build_environ (void) | - |
1141 | { | - |
1142 | TIB *tibp; | - |
1143 | PIB *pibp; | - |
1144 | char *t, **tp; | - |
1145 | int c; | - |
1146 | | - |
1147 | DosGetInfoBlocks (&tibp, &pibp); | - |
1148 | t = pibp->pib_pchenv; | - |
1149 | for (c = 1; *t; c++) | - |
1150 | t += strlen (t) + 1; | - |
1151 | tp = environ = (char **)xmalloc ((c + 1) * sizeof (char *)); | - |
1152 | t = pibp->pib_pchenv; | - |
1153 | while (*t) | - |
1154 | { | - |
1155 | *tp++ = t; | - |
1156 | t += strlen (t) + 1; | - |
1157 | } | - |
1158 | *tp = 0; | - |
1159 | } | - |
1160 | #endif /* __EMX__ */ | - |
1161 | #endif | - |
1162 | | - |
1163 | | - |
1164 | static void | - |
1165 | readline_initialize_everything (void) | - |
1166 | { | - |
1167 | #if 0 | - |
1168 | #if defined (__EMX__) | - |
1169 | if (environ == 0) | - |
1170 | _emx_build_environ (); | - |
1171 | #endif | - |
1172 | #endif | - |
1173 | | - |
1174 | #if 0 | - |
1175 | | - |
1176 | running_in_emacs = sh_get_env_value ("EMACS") != (char *)0; | - |
1177 | #endif | - |
1178 | | - |
1179 | | - |
1180 | if (!rl_instream)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1181 | rl_instream = stdin; never executed: rl_instream = stdin ; | 0 |
1182 | | - |
1183 | if (!rl_outstream)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1184 | rl_outstream = stdout; never executed: rl_outstream = stdout ; | 0 |
1185 | | - |
1186 | | - |
1187 | | - |
1188 | | - |
1189 | _rl_in_stream = rl_instream; | - |
1190 | _rl_out_stream = rl_outstream; | - |
1191 | | - |
1192 | | - |
1193 | if (rl_line_buffer == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1194 | rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE); never executed: rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = 256); | 0 |
1195 | | - |
1196 | | - |
1197 | if (rl_terminal_name == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1198 | rl_terminal_name = sh_get_env_value ("TERM"); never executed: rl_terminal_name = sh_get_env_value ("TERM"); | 0 |
1199 | _rl_init_terminal_io (rl_terminal_name); | - |
1200 | | - |
1201 | | - |
1202 | readline_default_bindings (); | - |
1203 | | - |
1204 | | - |
1205 | rl_initialize_funmap (); | - |
1206 | | - |
1207 | | - |
1208 | _rl_init_eightbit (); | - |
1209 | | - |
1210 | | - |
1211 | rl_read_init_file ((char *)NULL); | - |
1212 | | - |
1213 | | - |
1214 | if (_rl_horizontal_scroll_mode && _rl_term_autowrap)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1215 | { | - |
1216 | _rl_screenwidth--; | - |
1217 | _rl_screenchars -= _rl_screenheight; | - |
1218 | } never executed: end of block | 0 |
1219 | | - |
1220 | | - |
1221 | | - |
1222 | rl_set_keymap_from_edit_mode (); | - |
1223 | | - |
1224 | | - |
1225 | bind_arrow_keys (); | - |
1226 | | - |
1227 | | - |
1228 | | - |
1229 | bind_bracketed_paste_prefix (); | - |
1230 | | - |
1231 | | - |
1232 | | - |
1233 | if (rl_completer_word_break_characters == (char *)NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1234 | rl_completer_word_break_characters = (char *)rl_basic_word_break_characters; never executed: rl_completer_word_break_characters = (char *)rl_basic_word_break_characters; | 0 |
1235 | | - |
1236 | #if defined (COLOR_SUPPORT) | - |
1237 | if (_rl_colored_stats || _rl_colored_completion_prefix)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1238 | _rl_parse_colors (); never executed: _rl_parse_colors (); | 0 |
1239 | #endif | - |
1240 | | - |
1241 | rl_executing_keyseq = malloc (_rl_executing_keyseq_size = 16); | - |
1242 | if (rl_executing_keyseq)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1243 | rl_executing_keyseq[0] = '\0'; never executed: rl_executing_keyseq[0] = '\0'; | 0 |
1244 | } never executed: end of block | 0 |
1245 | | - |
1246 | | - |
1247 | | - |
1248 | | - |
1249 | static void | - |
1250 | readline_default_bindings (void) | - |
1251 | { | - |
1252 | if (_rl_bind_stty_chars)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1253 | rl_tty_set_default_bindings (_rl_keymap); never executed: rl_tty_set_default_bindings (_rl_keymap); | 0 |
1254 | } never executed: end of block | 0 |
1255 | | - |
1256 | | - |
1257 | | - |
1258 | static void | - |
1259 | reset_default_bindings (void) | - |
1260 | { | - |
1261 | if (_rl_bind_stty_chars)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1262 | { | - |
1263 | rl_tty_unset_default_bindings (_rl_keymap); | - |
1264 | rl_tty_set_default_bindings (_rl_keymap); | - |
1265 | } never executed: end of block | 0 |
1266 | } never executed: end of block | 0 |
1267 | | - |
1268 | | - |
1269 | static void | - |
1270 | bind_arrow_keys_internal (Keymap map) | - |
1271 | { | - |
1272 | Keymap xkeymap; | - |
1273 | | - |
1274 | xkeymap = _rl_keymap; | - |
1275 | _rl_keymap = map; | - |
1276 | | - |
1277 | #if defined (__MSDOS__) | - |
1278 | rl_bind_keyseq_if_unbound ("\033[0A", rl_get_previous_history); | - |
1279 | rl_bind_keyseq_if_unbound ("\033[0B", rl_backward_char); | - |
1280 | rl_bind_keyseq_if_unbound ("\033[0C", rl_forward_char); | - |
1281 | rl_bind_keyseq_if_unbound ("\033[0D", rl_get_next_history); | - |
1282 | #endif | - |
1283 | | - |
1284 | rl_bind_keyseq_if_unbound ("\033[A", rl_get_previous_history); | - |
1285 | rl_bind_keyseq_if_unbound ("\033[B", rl_get_next_history); | - |
1286 | rl_bind_keyseq_if_unbound ("\033[C", rl_forward_char); | - |
1287 | rl_bind_keyseq_if_unbound ("\033[D", rl_backward_char); | - |
1288 | rl_bind_keyseq_if_unbound ("\033[H", rl_beg_of_line); | - |
1289 | rl_bind_keyseq_if_unbound ("\033[F", rl_end_of_line); | - |
1290 | | - |
1291 | rl_bind_keyseq_if_unbound ("\033OA", rl_get_previous_history); | - |
1292 | rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history); | - |
1293 | rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char); | - |
1294 | rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char); | - |
1295 | rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line); | - |
1296 | rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line); | - |
1297 | | - |
1298 | | - |
1299 | rl_bind_keyseq_if_unbound ("\033[1;5C", rl_forward_word); | - |
1300 | rl_bind_keyseq_if_unbound ("\033[1;5D", rl_backward_word); | - |
1301 | rl_bind_keyseq_if_unbound ("\033[3;5~", rl_kill_word); | - |
1302 | | - |
1303 | | - |
1304 | rl_bind_keyseq_if_unbound ("\033[1;3C", rl_forward_word); | - |
1305 | rl_bind_keyseq_if_unbound ("\033[1;3D", rl_backward_word); | - |
1306 | | - |
1307 | #if defined (__MINGW32__) | - |
1308 | rl_bind_keyseq_if_unbound ("\340H", rl_get_previous_history); | - |
1309 | rl_bind_keyseq_if_unbound ("\340P", rl_get_next_history); | - |
1310 | rl_bind_keyseq_if_unbound ("\340M", rl_forward_char); | - |
1311 | rl_bind_keyseq_if_unbound ("\340K", rl_backward_char); | - |
1312 | rl_bind_keyseq_if_unbound ("\340G", rl_beg_of_line); | - |
1313 | rl_bind_keyseq_if_unbound ("\340O", rl_end_of_line); | - |
1314 | rl_bind_keyseq_if_unbound ("\340S", rl_delete); | - |
1315 | rl_bind_keyseq_if_unbound ("\340R", rl_overwrite_mode); | - |
1316 | | - |
1317 | | - |
1318 | rl_bind_keyseq_if_unbound ("\\000H", rl_get_previous_history); | - |
1319 | rl_bind_keyseq_if_unbound ("\\000P", rl_get_next_history); | - |
1320 | rl_bind_keyseq_if_unbound ("\\000M", rl_forward_char); | - |
1321 | rl_bind_keyseq_if_unbound ("\\000K", rl_backward_char); | - |
1322 | rl_bind_keyseq_if_unbound ("\\000G", rl_beg_of_line); | - |
1323 | rl_bind_keyseq_if_unbound ("\\000O", rl_end_of_line); | - |
1324 | rl_bind_keyseq_if_unbound ("\\000S", rl_delete); | - |
1325 | rl_bind_keyseq_if_unbound ("\\000R", rl_overwrite_mode); | - |
1326 | #endif | - |
1327 | | - |
1328 | _rl_keymap = xkeymap; | - |
1329 | } never executed: end of block | 0 |
1330 | | - |
1331 | | - |
1332 | | - |
1333 | | - |
1334 | static void | - |
1335 | bind_arrow_keys (void) | - |
1336 | { | - |
1337 | bind_arrow_keys_internal (emacs_standard_keymap); | - |
1338 | | - |
1339 | #if defined (VI_MODE) | - |
1340 | bind_arrow_keys_internal (vi_movement_keymap); | - |
1341 | | - |
1342 | | - |
1343 | if (vi_movement_keymap[ESC].type == ISKMAP)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1344 | rl_bind_keyseq_in_map ("\033", (rl_command_func_t *)NULL, vi_movement_keymap); never executed: rl_bind_keyseq_in_map ("\033", (rl_command_func_t *) ((void *)0) , vi_movement_keymap); | 0 |
1345 | bind_arrow_keys_internal (vi_insertion_keymap); | - |
1346 | #endif | - |
1347 | } never executed: end of block | 0 |
1348 | | - |
1349 | static void | - |
1350 | bind_bracketed_paste_prefix (void) | - |
1351 | { | - |
1352 | Keymap xkeymap; | - |
1353 | | - |
1354 | xkeymap = _rl_keymap; | - |
1355 | | - |
1356 | _rl_keymap = emacs_standard_keymap; | - |
1357 | rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin); | - |
1358 | | - |
1359 | _rl_keymap = vi_insertion_keymap; | - |
1360 | rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin); | - |
1361 | | - |
1362 | _rl_keymap = xkeymap; | - |
1363 | } never executed: end of block | 0 |
1364 | | - |
1365 | | - |
1366 | | - |
1367 | | - |
1368 | | - |
1369 | | - |
1370 | | - |
1371 | int | - |
1372 | rl_save_state (struct readline_state *sp) | - |
1373 | { | - |
1374 | if (sp == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1375 | return -1; never executed: return -1; | 0 |
1376 | | - |
1377 | sp->point = rl_point; | - |
1378 | sp->end = rl_end; | - |
1379 | sp->mark = rl_mark; | - |
1380 | sp->buffer = rl_line_buffer; | - |
1381 | sp->buflen = rl_line_buffer_len; | - |
1382 | sp->ul = rl_undo_list; | - |
1383 | sp->prompt = rl_prompt; | - |
1384 | | - |
1385 | sp->rlstate = rl_readline_state; | - |
1386 | sp->done = rl_done; | - |
1387 | sp->kmap = _rl_keymap; | - |
1388 | | - |
1389 | sp->lastfunc = rl_last_func; | - |
1390 | sp->insmode = rl_insert_mode; | - |
1391 | sp->edmode = rl_editing_mode; | - |
1392 | sp->kseq = rl_executing_keyseq; | - |
1393 | sp->kseqlen = rl_key_sequence_length; | - |
1394 | sp->inf = rl_instream; | - |
1395 | sp->outf = rl_outstream; | - |
1396 | sp->pendingin = rl_pending_input; | - |
1397 | sp->macro = rl_executing_macro; | - |
1398 | | - |
1399 | sp->catchsigs = rl_catch_signals; | - |
1400 | sp->catchsigwinch = rl_catch_sigwinch; | - |
1401 | | - |
1402 | sp->entryfunc = rl_completion_entry_function; | - |
1403 | sp->menuentryfunc = rl_menu_completion_entry_function; | - |
1404 | sp->ignorefunc = rl_ignore_some_completions_function; | - |
1405 | sp->attemptfunc = rl_attempted_completion_function; | - |
1406 | sp->wordbreakchars = rl_completer_word_break_characters; | - |
1407 | | - |
1408 | return (0); never executed: return (0); | 0 |
1409 | } | - |
1410 | | - |
1411 | int | - |
1412 | rl_restore_state (struct readline_state *sp) | - |
1413 | { | - |
1414 | if (sp == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1415 | return -1; never executed: return -1; | 0 |
1416 | | - |
1417 | rl_point = sp->point; | - |
1418 | rl_end = sp->end; | - |
1419 | rl_mark = sp->mark; | - |
1420 | the_line = rl_line_buffer = sp->buffer; | - |
1421 | rl_line_buffer_len = sp->buflen; | - |
1422 | rl_undo_list = sp->ul; | - |
1423 | rl_prompt = sp->prompt; | - |
1424 | | - |
1425 | rl_readline_state = sp->rlstate; | - |
1426 | rl_done = sp->done; | - |
1427 | _rl_keymap = sp->kmap; | - |
1428 | | - |
1429 | rl_last_func = sp->lastfunc; | - |
1430 | rl_insert_mode = sp->insmode; | - |
1431 | rl_editing_mode = sp->edmode; | - |
1432 | rl_executing_keyseq = sp->kseq; | - |
1433 | rl_key_sequence_length = sp->kseqlen; | - |
1434 | rl_instream = sp->inf; | - |
1435 | rl_outstream = sp->outf; | - |
1436 | rl_pending_input = sp->pendingin; | - |
1437 | rl_executing_macro = sp->macro; | - |
1438 | | - |
1439 | rl_catch_signals = sp->catchsigs; | - |
1440 | rl_catch_sigwinch = sp->catchsigwinch; | - |
1441 | | - |
1442 | rl_completion_entry_function = sp->entryfunc; | - |
1443 | rl_menu_completion_entry_function = sp->menuentryfunc; | - |
1444 | rl_ignore_some_completions_function = sp->ignorefunc; | - |
1445 | rl_attempted_completion_function = sp->attemptfunc; | - |
1446 | rl_completer_word_break_characters = sp->wordbreakchars; | - |
1447 | | - |
1448 | return (0); never executed: return (0); | 0 |
1449 | } | - |
| | |