From 5836a818eccb180d75c92ce4c861abb6fe8dec23 Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Sat, 25 Jul 2015 15:41:05 -0400 Subject: Revert "Sync readline/ to version 7.0 alpha" This reverts commit b558ff043d41ba8d17a82f5f9ae5f9dade66160e. This reverts commit 4a11f2065906976675808364ddbd1c0f77eea41f. The initial import commit failed to retain local changes made to readline's configure.in (and the commit message erroneously stated that there were no local changes that needed to be reapplied). Also the import caused a couple of build errors and a scattering of testsuite regressions throughout many arches. It's probably better to start over with this import, hopefully more carefully next time. --- readline/text.c | 77 ++++++++++++++------------------------------------------- 1 file changed, 19 insertions(+), 58 deletions(-) (limited to 'readline/text.c') diff --git a/readline/text.c b/readline/text.c index f2bb224..536e31a 100644 --- a/readline/text.c +++ b/readline/text.c @@ -71,8 +71,6 @@ static int _rl_char_search_callback PARAMS((_rl_callback_generic_arg *)); rl_insert_text. Text blocks larger than this are divided. */ #define TEXT_COUNT_MAX 1024 -int _rl_optimize_typeahead = 1; /* rl_insert tries to read typeahead */ - /* **************************************************************** */ /* */ /* Insert and Delete */ @@ -242,7 +240,7 @@ rl_replace_line (text, clear_undo) this is the same as rl_end. Any command that is called interactively receives two arguments. - The first is a count: the numeric arg passed to this command. + The first is a count: the numeric arg pased to this command. The second is the key which invoked this command. */ @@ -828,7 +826,7 @@ _rl_insert_char (count, c) pending characters that are bound to rl_insert, and insert them all. Don't do this if we're current reading input from a macro. */ - if ((RL_ISSTATE (RL_STATE_MACROINPUT) == 0) && _rl_pushed_input_available ()) + if ((RL_ISSTATE (RL_STATE_MACROINPUT) == 0) && _rl_any_typein ()) _rl_insert_typein (c); else { @@ -892,42 +890,8 @@ int rl_insert (count, c) int count, c; { - int r, n, x; - - r = (rl_insert_mode == RL_IM_INSERT) ? _rl_insert_char (count, c) : _rl_overwrite_char (count, c); - - /* XXX -- attempt to batch-insert pending input that maps to self-insert */ - x = 0; - n = (unsigned short)-2; - while (_rl_optimize_typeahead && - (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) && - _rl_pushed_input_available () == 0 && - _rl_input_queued (0) && - (n = rl_read_key ()) > 0 && - _rl_keymap[(unsigned char)n].type == ISFUNC && - _rl_keymap[(unsigned char)n].function == rl_insert) - { - r = (rl_insert_mode == RL_IM_INSERT) ? _rl_insert_char (1, n) : _rl_overwrite_char (1, n); - /* _rl_insert_char keeps its own set of pending characters to compose a - complete multibyte character, and only returns 1 if it sees a character - that's part of a multibyte character but too short to complete one. We - can try to read another character in the hopes that we will get the - next one or just punt. Right now we try to read another character. - We don't want to call rl_insert_next if _rl_insert_char has already - stored the character in the pending_bytes array because that will - result in doubled input. */ - n = (unsigned short)-2; - x++; /* count of bytes of typeahead read, currently unused */ - if (r == 1) /* read partial multibyte character */ - continue; - if (rl_done || r != 0) - break; - } - - if (n != (unsigned short)-2) /* -2 = sentinel value for having inserted N */ - r = rl_execute_next (n); - - return r; + return (rl_insert_mode == RL_IM_INSERT ? _rl_insert_char (count, c) + : _rl_overwrite_char (count, c)); } /* Insert the next typed character verbatim. */ @@ -942,10 +906,7 @@ _rl_insert_next (count) RL_UNSETSTATE(RL_STATE_MOREINPUT); if (c < 0) - return 1; - - if (RL_ISSTATE (RL_STATE_MACRODEF)) - _rl_add_macro_char (c); + return -1; #if defined (HANDLE_SIGNALS) if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) @@ -1102,7 +1063,7 @@ rl_rubout (count, key) if (!rl_point) { rl_ding (); - return 1; + return -1; } if (rl_insert_mode == RL_IM_OVERWRITE) @@ -1125,7 +1086,7 @@ _rl_rubout_char (count, key) if (rl_point == 0) { rl_ding (); - return 1; + return -1; } orig_point = rl_point; @@ -1139,7 +1100,7 @@ _rl_rubout_char (count, key) c = rl_line_buffer[--rl_point]; rl_delete_text (rl_point, orig_point); /* The erase-at-end-of-line hack is of questionable merit now. */ - if (rl_point == rl_end && ISPRINT ((unsigned char)c) && _rl_last_c_pos) + if (rl_point == rl_end && ISPRINT (c) && _rl_last_c_pos) { int l; l = rl_character_len (c, rl_point); @@ -1169,7 +1130,7 @@ rl_delete (count, key) if (rl_point == rl_end) { rl_ding (); - return 1; + return -1; } if (count > 1 || rl_explicit_arg) @@ -1339,7 +1300,7 @@ rl_change_case (count, op) if (op != UpCase && op != DownCase && op != CapCase) { rl_ding (); - return 1; + return -1; } if (count < 0) @@ -1373,7 +1334,7 @@ rl_change_case (count, op) } else nop = op; - if (MB_CUR_MAX == 1 || rl_byte_oriented || isascii ((unsigned char)c)) + if (MB_CUR_MAX == 1 || rl_byte_oriented || isascii (c)) { nc = (nop == UpCase) ? _rl_to_upper (c) : _rl_to_lower (c); rl_line_buffer[start] = nc; @@ -1439,7 +1400,7 @@ rl_transpose_words (count, key) { rl_ding (); rl_point = orig_point; - return 1; + return -1; } /* Get the text of the words. */ @@ -1492,7 +1453,7 @@ rl_transpose_chars (count, key) if (!rl_point || rl_end < 2) { rl_ding (); - return 1; + return -1; } rl_begin_undo_group (); @@ -1555,7 +1516,7 @@ _rl_char_search_internal (count, dir, schar) #endif if (dir == 0) - return 1; + return -1; pos = rl_point; inc = (dir < 0) ? -1 : 1; @@ -1564,7 +1525,7 @@ _rl_char_search_internal (count, dir, schar) if ((dir < 0 && pos <= 0) || (dir > 0 && pos >= rl_end)) { rl_ding (); - return 1; + return -1; } #if defined (HANDLE_MULTIBYTE) @@ -1619,7 +1580,7 @@ _rl_char_search (count, fdir, bdir) mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); if (mb_len <= 0) - return 1; + return -1; if (count < 0) return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); @@ -1638,7 +1599,7 @@ _rl_char_search (count, fdir, bdir) RL_UNSETSTATE(RL_STATE_MOREINPUT); if (c < 0) - return 1; + return -1; if (count < 0) return (_rl_char_search_internal (-count, bdir, c)); @@ -1707,7 +1668,7 @@ _rl_set_mark_at_pos (position) int position; { if (position > rl_end) - return 1; + return -1; rl_mark = position; return 0; @@ -1732,7 +1693,7 @@ rl_exchange_point_and_mark (count, key) if (rl_mark == -1) { rl_ding (); - return 1; + return -1; } else SWAP (rl_point, rl_mark); -- cgit v1.1