diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-05-09 22:31:26 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-05-09 22:31:26 +0000 |
commit | 3dc889b469bf601eaa4aaa79ca6ea988b9d01ab0 (patch) | |
tree | 3352ef5243a553c56db7ffed23c16e7f9d03257b /readline/readline.c | |
parent | 6ec3bb6a753eff70b112218201f42b8bb83ab271 (diff) | |
download | gdb-3dc889b469bf601eaa4aaa79ca6ea988b9d01ab0.zip gdb-3dc889b469bf601eaa4aaa79ca6ea988b9d01ab0.tar.gz gdb-3dc889b469bf601eaa4aaa79ca6ea988b9d01ab0.tar.bz2 |
* readline.c (readline_default_bindings): Don't compile if
__GO32__ is defined.
* rltty.c (rltty_set_default_bindings): Likewise.
Diffstat (limited to 'readline/readline.c')
-rw-r--r-- | readline/readline.c | 290 |
1 files changed, 199 insertions, 91 deletions
diff --git a/readline/readline.c b/readline/readline.c index c8b19e3..3d28df8 100644 --- a/readline/readline.c +++ b/readline/readline.c @@ -64,6 +64,7 @@ extern char * getenv (); /* Functions imported from other files in the library. */ extern char *tgetstr (); extern void rl_prep_terminal (), rl_deprep_terminal (); +extern void rl_vi_set_last (); extern Function *rl_function_of_keyseq (); extern char *tilde_expand (); @@ -90,15 +91,22 @@ void rl_dispatch (); void free_history_entry (); int _rl_output_character_function (); void _rl_set_screen_size (); +void free_undo_list (), rl_add_undo (); -#if !defined (_GO32_) +#if !defined (__GO32__) static void readline_default_bindings (); -#endif /* !_GO32_ */ +#endif /* !__GO32__ */ -#if defined (_GO32_) +#if defined (__GO32__) # include <sys/pc.h> # undef HANDLE_SIGNALS -#endif /* _GO32_ */ +#endif /* __GO32__ */ + +#if defined (STATIC_MALLOC) +static char *xmalloc (), *xrealloc (); +#else +extern char *xmalloc (), *xrealloc (); +#endif /* STATIC_MALLOC */ /* **************************************************************** */ @@ -201,10 +209,6 @@ char *rl_line_buffer = (char *)NULL; int rl_line_buffer_len = 0; #define DEFAULT_BUFFER_SIZE 256 -#if defined (VISIBLE_STATS) -int rl_visible_stats = 0; -#endif /* VISIBLE_STATS */ - /* **************************************************************** */ /* */ @@ -226,7 +230,7 @@ int _rl_convert_meta_chars_to_ascii = 1; /* Non-zero tells rl_delete_text and rl_insert_text to not add to the undo list. */ -static int doing_an_undo; +static int doing_an_undo = 0; /* **************************************************************** */ /* */ @@ -389,7 +393,6 @@ readline_internal () else return (savestring (the_line)); } - /* **************************************************************** */ /* */ @@ -472,17 +475,19 @@ rl_unget_char (key) void rl_gather_tyi () { -#ifdef __GO32__ +#if defined (__GO32__) char input; + if (isatty (0)) { int i = rl_getc (); + if (i != EOF) rl_stuff_char (i); } else if (kbhit () && ibuffer_space ()) rl_stuff_char (getkey ()); -#else +#else /* !__GO32__ */ int tty = fileno (in_stream); register int tem, result = -1; @@ -536,7 +541,7 @@ rl_gather_tyi () if (chars_avail) rl_stuff_char (input); } -#endif /* def __GO32__/else */ +#endif /* !__GO32__ */ } static int next_macro_key (); @@ -600,7 +605,11 @@ rl_dispatch (key, map) { if (map[ESC].type == ISKMAP) { +#if defined (CRAY) + map = (Keymap)((int)map[ESC].function); +#else map = (Keymap)map[ESC].function; +#endif key = UNMETA (key); rl_key_sequence_length += 2; rl_dispatch (key, map); @@ -648,7 +657,16 @@ rl_dispatch (key, map) rl_key_sequence_length++; newkey = rl_read_key (); +#if defined (CRAY) + /* If you cast map[key].function to type (Keymap) on a Cray, + the compiler takes the value of may[key].function and + divides it by 4 to convert between pointer types (pointers + to functions and pointers to structs are different sizes). + This is not what is wanted. */ + rl_dispatch (newkey, (Keymap)((int)map[key].function)); +#else rl_dispatch (newkey, (Keymap)map[key].function); +#endif /* !CRAY */ } else { @@ -849,10 +867,37 @@ rl_call_last_kbd_macro (count, ignore) if (!current_macro) rl_abort (); + if (defining_kbd_macro) + { + ding (); /* no recursive macros */ + current_macro[--current_macro_index] = '\0'; /* erase this char */ + return 0; + } + while (count--) with_macro_input (savestring (current_macro)); } +void +_rl_kill_kbd_macro () +{ + if (current_macro) + { + free (current_macro); + current_macro = (char *) NULL; + } + current_macro_size = current_macro_index = 0; + + if (executing_macro) + { + free (executing_macro); + executing_macro = (char *) NULL; + } + executing_macro_index = 0; + + defining_kbd_macro = 0; +} + /* **************************************************************** */ /* */ @@ -918,8 +963,10 @@ readline_initialize_everything () /* Initialize the terminal interface. */ init_terminal_io ((char *)NULL); +#if !defined (__GO32__) /* Bind tty characters to readline functions. */ readline_default_bindings (); +#endif /* !__GO32__ */ /* Initialize the function names. */ rl_initialize_funmap (); @@ -938,11 +985,13 @@ readline_initialize_everything () /* If this system allows us to look at the values of the regular input editing characters, then bind them to their readline equivalents, iff the characters are not bound to keymaps. */ +#if !defined (__GO32__) static void readline_default_bindings () { rltty_set_default_bindings (_rl_keymap); } +#endif /* !__GO32__ */ /* **************************************************************** */ @@ -1038,7 +1087,7 @@ static char *term_string_buffer = (char *)NULL; int dumb_term = 0; /* On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC. Unfortunately, PC is a global variable used by the termcap library. */ -#undef PC +#undef PC #if !defined (__linux__) char PC; @@ -1100,11 +1149,11 @@ void _rl_set_screen_size (tty, ignore_env) int tty, ignore_env; { -#if defined (TIOCGWINSZ) +#if defined (TIOCGWINSZ) && !defined (TIOCGWINSZ_BROKEN) struct winsize window_size; #endif /* TIOCGWINSZ */ -#if defined (TIOCGWINSZ) +#if defined (TIOCGWINSZ) && !defined (TIOCGWINSZ_BROKEN) if (ioctl (tty, TIOCGWINSZ, &window_size) == 0) { screenwidth = (int) window_size.ws_col; @@ -1160,14 +1209,14 @@ _rl_set_screen_size (tty, ignore_env) init_terminal_io (terminal_name) char *terminal_name; { -#ifdef __GO32__ +#if defined (__GO32__) screenwidth = ScreenCols (); screenheight = ScreenRows (); term_cr = "\r"; term_im = term_ei = term_ic = term_IC = (char *)NULL; term_up = term_dc = term_DC = visible_bell = (char *)NULL; - /* Does the _GO32_ have a meta key? I don't know. */ + /* Does the __GO32__ have a meta key? I don't know. */ term_has_meta = 0; term_mm = term_mo = (char *)NULL; @@ -1176,10 +1225,11 @@ init_terminal_io (terminal_name) #if defined (HACK_TERMCAP_MOTION) term_forward_char = (char *)NULL; -#endif +#endif /* HACK_TERMCAP_MOTION */ terminal_can_insert = term_xn = 0; return; #else /* !__GO32__ */ + char *term, *buffer; int tty; @@ -1318,6 +1368,7 @@ init_terminal_io (terminal_name) rl_set_key (term_kl, rl_backward, _rl_keymap); } #endif /* !__GO32__ */ + return 0; } /* A function for the use of tputs () */ @@ -1337,15 +1388,13 @@ _rl_output_some_chars (string, count) fwrite (string, 1, count, out_stream); } - - /* Move the cursor back. */ backspace (count) int count; { register int i; -#ifndef __GO32__ +#if !defined (__GO32__) if (term_backspace) for (i = 0; i < count; i++) tputs (term_backspace, 1, _rl_output_character_function); @@ -1385,7 +1434,7 @@ alphabetic (c) return (1); if (allow_pathname_alphabetic_chars) - return ((int) strchr (pathname_alphabetic_chars, c)); + return (strchr (pathname_alphabetic_chars, c) != NULL); else return (0); } @@ -1404,7 +1453,7 @@ ding () { if (readline_echoing_p) { -#ifndef __GO32__ +#if !defined (__GO32__) if (_rl_prefer_visible_bell && visible_bell) tputs (visible_bell, 1, _rl_output_character_function); else @@ -1589,12 +1638,13 @@ rl_forward (count) #endif /* VI_MODE */ { ding (); - return; + return 0; } else rl_point++; --count; } + return 0; } /* Move backward COUNT characters. */ @@ -1609,24 +1659,27 @@ rl_backward (count) if (!rl_point) { ding (); - return; + return 0; } else --rl_point; --count; } + return 0; } /* Move to the beginning of the line. */ rl_beg_of_line () { rl_point = 0; + return 0; } /* Move to the end of the line. */ rl_end_of_line () { rl_point = rl_end; + return 0; } /* Move forward a word. We do what Emacs does. */ @@ -1638,13 +1691,13 @@ rl_forward_word (count) if (count < 0) { rl_backward_word (-count); - return; + return 0; } while (count) { if (rl_point == rl_end) - return; + return 0; /* If we are not in a word, move forward until we are in one. Then, move forward until we hit a non-alphabetic character. */ @@ -1665,6 +1718,7 @@ rl_forward_word (count) } --count; } + return 0; } /* Move backward a word. We do what Emacs does. */ @@ -1676,13 +1730,13 @@ rl_backward_word (count) if (count < 0) { rl_forward_word (-count); - return; + return 0; } while (count) { if (!rl_point) - return; + return 0; /* Like rl_forward_word (), except that we look at the characters just before point. */ @@ -1706,6 +1760,7 @@ rl_backward_word (count) } --count; } + return 0; } /* Clear the current line. Numeric argument to C-l does this. */ @@ -1716,7 +1771,7 @@ rl_refresh_line () _rl_move_vert (curr_line); _rl_move_cursor_relative (0, the_line); /* XXX is this right */ -#ifdef __GO32__ +#if defined (__GO32__) { int row, col, width, row_start; @@ -1725,13 +1780,15 @@ rl_refresh_line () row_start = ScreenPrimary + (row * width); memset (row_start + col, 0, (width - col) * 2); } -#else /* __GO32__ */ +#else /* !__GO32__ */ if (term_clreol) tputs (term_clreol, 1, _rl_output_character_function); -#endif /* __GO32__/else */ +#endif /* !__GO32__ */ rl_forced_update_display (); rl_display_fixed = 1; + + return 0; } /* C-l typed to a line without quoting clears the screen, and then reprints @@ -1742,10 +1799,10 @@ rl_clear_screen () if (rl_explicit_arg) { rl_refresh_line (); - return; + return 0; } -#ifndef __GO32__ +#if !defined (__GO32__) if (term_clrpag) tputs (term_clrpag, 1, _rl_output_character_function); else @@ -1754,6 +1811,8 @@ rl_clear_screen () rl_forced_update_display (); rl_display_fixed = 1; + + return 0; } rl_arrow_keys (count, c) @@ -1784,6 +1843,7 @@ rl_arrow_keys (count, c) default: ding (); } + return 0; } @@ -1801,7 +1861,7 @@ rl_insert (count, c) char *string; if (count <= 0) - return; + return 0; /* If we can optimize, then do it. But don't let people crash readline because of extra large arguments. */ @@ -1814,7 +1874,7 @@ rl_insert (count, c) string[i] = '\0'; rl_insert_text (string); - return; + return 0; } if (count > 1024) @@ -1833,7 +1893,7 @@ rl_insert (count, c) rl_insert_text (string); count -= decreaser; } - return; + return 0; } /* We are inserting a single character. @@ -1858,7 +1918,6 @@ rl_insert (count, c) string[i] = '\0'; rl_insert_text (string); - return; } else { @@ -1869,6 +1928,7 @@ rl_insert (count, c) string[0] = c; rl_insert_text (string); } + return 0; } /* Insert the next typed character verbatim. */ @@ -1878,14 +1938,15 @@ rl_quoted_insert (count) int c; c = rl_read_key (); - rl_insert (count, c); + return (rl_insert (count, c)); + } /* Insert a tab character. */ rl_tab_insert (count) int count; { - rl_insert (count, '\t'); + return (rl_insert (count, '\t')); } /* What to do when a NEWLINE is pressed. We accept the whole line. @@ -1894,7 +1955,6 @@ rl_tab_insert (count) rl_newline (count, key) int count, key; { - rl_done = 1; #if defined (VI_MODE) @@ -1918,6 +1978,7 @@ rl_newline (count, key) fflush (out_stream); rl_display_fixed++; } + return 0; } rl_clean_up_for_exit () @@ -1929,6 +1990,7 @@ rl_clean_up_for_exit () fflush (out_stream); rl_restart_output (); } + return 0; } /* What to do for some uppercase characters, like meta characters, @@ -1938,6 +2000,7 @@ rl_clean_up_for_exit () rl_do_lowercase_version (ignore1, ignore2) int ignore1, ignore2; { + return 0; } /* Rubout the character behind point. */ @@ -1947,13 +2010,13 @@ rl_rubout (count) if (count < 0) { rl_delete (-count); - return; + return 0; } if (!rl_point) { ding (); - return; + return -1; } if (count > 1 || rl_explicit_arg) @@ -1974,6 +2037,7 @@ rl_rubout (count) _rl_erase_at_end_of_line (l); } } + return 0; } /* Delete the character under the cursor. Given a numeric argument, @@ -1983,14 +2047,13 @@ rl_delete (count, invoking_key) { if (count < 0) { - rl_rubout (-count); - return; + return (rl_rubout (-count)); } if (rl_point == rl_end) { ding (); - return; + return -1; } if (count > 1 || rl_explicit_arg) @@ -1999,9 +2062,11 @@ rl_delete (count, invoking_key) rl_forward (count); rl_kill_text (orig_point, rl_point); rl_point = orig_point; + return 0; } else - rl_delete_text (rl_point, rl_point + 1); + return (rl_delete_text (rl_point, rl_point + 1)); + } /* Delete all spaces and tabs around point. */ @@ -2018,14 +2083,14 @@ rl_delete_horizontal_space (count, ignore) while (rl_point < rl_end && whitespace (the_line[rl_point])) rl_point++; - if (start == rl_point) - return; - else + if (start != rl_point) { rl_delete_text (start, rl_point); rl_point = start; } + return 0; } + /* **************************************************************** */ /* */ @@ -2055,6 +2120,7 @@ rl_unix_word_rubout () rl_kill_text (rl_point, orig_point); } + return 0; } /* Here is C-u doing what Unix does. You don't *have* to use these @@ -2072,6 +2138,7 @@ rl_unix_line_discard () rl_kill_text (rl_point, 0); rl_point = 0; } + return 0; } @@ -2094,25 +2161,27 @@ rl_unix_line_discard () #define DownCase 2 #define CapCase 3 +static int rl_change_case (); + /* Uppercase the word at point. */ rl_upcase_word (count) int count; { - rl_change_case (count, UpCase); + return (rl_change_case (count, UpCase)); } /* Lowercase the word at point. */ rl_downcase_word (count) int count; { - rl_change_case (count, DownCase); + return (rl_change_case (count, DownCase)); } /* Upcase the first letter, downcase the rest. */ rl_capitalize_word (count) int count; { - rl_change_case (count, CapCase); + return (rl_change_case (count, CapCase)); } /* The meaty function. @@ -2120,6 +2189,7 @@ rl_capitalize_word (count) OP is one of UpCase, DownCase, or CapCase. If a negative argument is given, leave point where it started, otherwise, leave it where it moves to. */ +static int rl_change_case (count, op) int count, op; { @@ -2167,9 +2237,11 @@ rl_change_case (count, op) default: abort (); + return -1; } } rl_point = end; + return 0; } /* **************************************************************** */ @@ -2186,7 +2258,8 @@ rl_transpose_words (count) int w1_beg, w1_end, w2_beg, w2_end; int orig_point = rl_point; - if (!count) return; + if (!count) + return 0; /* Find the two words. */ rl_forward_word (count); @@ -2203,7 +2276,7 @@ rl_transpose_words (count) { ding (); rl_point = orig_point; - return; + return -1; } /* Get the text of the words. */ @@ -2230,7 +2303,10 @@ rl_transpose_words (count) /* I think that does it. */ rl_end_undo_group (); - free (word1); free (word2); + free (word1); + free (word2); + + return 0; } /* Transpose the characters at point. If point is at the end of the line, @@ -2241,12 +2317,12 @@ rl_transpose_chars (count) char dummy[2]; if (!count) - return; + return 0; if (!rl_point || rl_end < 2) { ding (); - return; + return -1; } rl_begin_undo_group (); @@ -2271,6 +2347,7 @@ rl_transpose_chars (count) rl_insert_text (dummy); rl_end_undo_group (); + return 0; } /* **************************************************************** */ @@ -2284,6 +2361,7 @@ UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL; /* Remember how to undo something. Concatenate some undos if that seems right. */ +void rl_add_undo (what, start, end, text) enum undo_code what; int start, end; @@ -2299,6 +2377,7 @@ rl_add_undo (what, start, end, text) } /* Free the existing undo list. */ +void free_undo_list () { while (rl_undo_list) @@ -2378,12 +2457,14 @@ undo_thing: rl_begin_undo_group () { rl_add_undo (UNDO_BEGIN, 0, 0, 0); + return 0; } /* End an undo group started with rl_begin_undo_group (). */ rl_end_undo_group () { rl_add_undo (UNDO_END, 0, 0, 0); + return 0; } /* Save an undo entry for the text from START to END. */ @@ -2405,6 +2486,7 @@ rl_modifying (start, end) rl_add_undo (UNDO_INSERT, start, end, (char *)NULL); rl_end_undo_group (); } + return 0; } /* Revert the current line to its previous state. */ @@ -2417,25 +2499,27 @@ rl_revert_line () while (rl_undo_list) rl_do_undo (); } + return 0; } /* Do some undoing of things that were done. */ rl_undo_command (count) + int count; { - if (count < 0) return; /* Nothing to do. */ + if (count < 0) + return 0; /* Nothing to do. */ while (count) { if (rl_do_undo ()) - { - count--; - } + count--; else { ding (); break; } } + return 0; } /* **************************************************************** */ @@ -2460,6 +2544,7 @@ start_using_history () free_history_entry (saved_line_for_history); saved_line_for_history = (HIST_ENTRY *)NULL; + return 0; } /* Free the contents (and containing structure) of a HIST_ENTRY. */ @@ -2467,7 +2552,8 @@ void free_history_entry (entry) HIST_ENTRY *entry; { - if (!entry) return; + if (!entry) + return; if (entry->line) free (entry->line); free (entry); @@ -2485,6 +2571,7 @@ maybe_replace_line () free (temp->line); free (temp); } + return 0; } /* Put back the saved_line_for_history if there is one. */ @@ -2507,6 +2594,7 @@ maybe_unsave_line () } else ding (); + return 0; } /* Save the current line in saved_line_for_history. */ @@ -2518,6 +2606,7 @@ maybe_save_line () saved_line_for_history->line = savestring (the_line); saved_line_for_history->data = (char *)rl_undo_list; } + return 0; } /* **************************************************************** */ @@ -2529,7 +2618,7 @@ maybe_save_line () /* Meta-< goes to the start of the history. */ rl_beginning_of_history () { - rl_get_previous_history (1 + where_history ()); + return (rl_get_previous_history (1 + where_history ())); } /* Meta-> goes to the end of the history. (The current line). */ @@ -2538,6 +2627,7 @@ rl_end_of_history () maybe_replace_line (); using_history (); maybe_unsave_line (); + return 0; } /* Move down to the next history line. */ @@ -2547,13 +2637,10 @@ rl_get_next_history (count) HIST_ENTRY *temp = (HIST_ENTRY *)NULL; if (count < 0) - { - rl_get_previous_history (-count); - return; - } + return (rl_get_previous_history (-count)); if (!count) - return; + return 0; maybe_replace_line (); @@ -2584,6 +2671,7 @@ rl_get_next_history (count) rl_point = 0; #endif /* VI_MODE */ } + return 0; } /* Get the previous item out of our interactive history, making it the current @@ -2595,13 +2683,10 @@ rl_get_previous_history (count) HIST_ENTRY *temp = (HIST_ENTRY *)NULL; if (count < 0) - { - rl_get_next_history (-count); - return; - } + return (rl_get_next_history (-count)); if (!count) - return; + return 0; /* If we don't have a line saved, then save this one. */ maybe_save_line (); @@ -2644,6 +2729,7 @@ rl_get_previous_history (count) rl_point = 0; #endif /* VI_MODE */ } + return 0; } /* Make C be the next command to be executed. */ @@ -2651,6 +2737,7 @@ rl_execute_next (c) int c; { rl_pending_input = c; + return 0; } /* **************************************************************** */ @@ -2664,9 +2751,10 @@ rl_set_mark (position) int position; { if (position > rl_end) - return; + return -1; rl_mark = position; + return 0; } /* Exchange the position of mark and point. */ @@ -2678,7 +2766,7 @@ rl_exchange_mark_and_point () if (rl_mark == -1) { ding (); - return; + return -1; } else { @@ -2687,6 +2775,7 @@ rl_exchange_mark_and_point () rl_point = rl_mark; rl_mark = temp; } + return 0; } @@ -2715,7 +2804,9 @@ int rl_kill_ring_length = 0; of kill material. */ rl_set_retained_kills (num) int num; -{} +{ + return 0; +} /* The way to kill something. This appends or prepends to the last kill, if the last command was a kill command. if FROM is less @@ -2733,7 +2824,7 @@ rl_kill_text (from, to) { free (text); last_command_was_kill++; - return; + return 0; } /* Delete the copied text from the line. */ @@ -2804,6 +2895,7 @@ rl_kill_text (from, to) } rl_kill_index = slot; last_command_was_kill++; + return 0; } /* Now REMEMBER! In order to do prepending or appending correctly, kill @@ -2823,7 +2915,7 @@ rl_kill_word (count) int orig_point = rl_point; if (count < 0) - rl_backward_kill_word (-count); + return (rl_backward_kill_word (-count)); else { rl_forward_word (count); @@ -2833,6 +2925,7 @@ rl_kill_word (count) rl_point = orig_point; } + return 0; } /* Rubout the word before point, placing it on the kill ring. */ @@ -2842,7 +2935,7 @@ rl_backward_kill_word (count) int orig_point = rl_point; if (count < 0) - rl_kill_word (-count); + return (rl_kill_word (-count)); else { rl_backward_word (count); @@ -2860,7 +2953,7 @@ rl_kill_line (direction) int orig_point = rl_point; if (direction < 0) - rl_backward_kill_line (1); + return (rl_backward_kill_line (1)); else { rl_end_of_line (); @@ -2868,6 +2961,7 @@ rl_kill_line (direction) rl_kill_text (orig_point, rl_point); rl_point = orig_point; } + return 0; } /* Kill backwards to the start of the line. If DIRECTION is negative, kill @@ -2878,7 +2972,7 @@ rl_backward_kill_line (direction) int orig_point = rl_point; if (direction < 0) - rl_kill_line (1); + return (rl_kill_line (1)); else { if (!rl_point) @@ -2889,16 +2983,21 @@ rl_backward_kill_line (direction) rl_kill_text (orig_point, rl_point); } } + return 0; } /* Yank back the last killed text. This ignores arguments. */ rl_yank () { if (!rl_kill_ring) - rl_abort (); + { + rl_abort (); + return -1; + } rl_set_mark (rl_point); rl_insert_text (rl_kill_ring[rl_kill_index]); + return 0; } /* If the last command was yank, or yank_pop, and the text just @@ -2913,6 +3012,7 @@ rl_yank_pop () !rl_kill_ring) { rl_abort (); + return -1; } l = strlen (rl_kill_ring[rl_kill_index]); @@ -2926,10 +3026,13 @@ rl_yank_pop () if (rl_kill_index < 0) rl_kill_index = rl_kill_ring_length - 1; rl_yank (); + return 0; } else - rl_abort (); - + { + rl_abort (); + return -1; + } } /* Yank the COUNTth argument from the previous history line. */ @@ -2944,14 +3047,14 @@ rl_yank_nth_arg (count, ignore) else { ding (); - return; + return -1; } arg = history_arg_extract (count, count, entry->line); if (!arg || !*arg) { ding (); - return; + return -1; } rl_begin_undo_group (); @@ -2963,13 +3066,16 @@ rl_yank_nth_arg (count, ignore) rl_point++; #endif /* VI_MODE */ +#if 0 if (rl_point && the_line[rl_point - 1] != ' ') rl_insert_text (" "); +#endif rl_insert_text (arg); free (arg); rl_end_undo_group (); + return 0; } /* How to toggle back and forth between editing modes. */ @@ -2978,6 +3084,7 @@ rl_vi_editing_mode () #if defined (VI_MODE) rl_editing_mode = vi_mode; rl_vi_insertion_mode (); + return 0; #endif /* VI_MODE */ } @@ -2985,6 +3092,7 @@ rl_emacs_editing_mode () { rl_editing_mode = emacs_mode; _rl_keymap = emacs_standard_keymap; + return 0; } @@ -3001,9 +3109,9 @@ rl_getc (stream) int result; unsigned char c; -#ifdef __GO32__ +#if defined (__GO32__) if (isatty (0)) - return (getkey () & 0x7f); + return (getkey ()); #endif /* __GO32__ */ while (1) @@ -3051,7 +3159,7 @@ rl_getc (stream) } #endif /* _POSIX_VERSION && EAGAIN && O_NONBLOCK */ -#ifndef __GO32__ +#if !defined (__GO32__) /* If the error that we received was SIGINT, then try again, this is simply an interrupted system call to read (). Otherwise, some error ocurred, also signifying EOF. */ |