[ceca635c] | 1 | Submitted By: Jim Gifford (jim at cross-lfs dot org)
|
---|
| 2 | Date: 06-05-2009
|
---|
| 3 | Initial Package Version: 6.0
|
---|
| 4 | Origin: Upstream
|
---|
| 5 | Upstream Status: Applied
|
---|
| 6 | Description: Contains all upstream patches up to 6.0-003
|
---|
| 7 |
|
---|
| 8 | diff -Naur readline-6.0.orig/display.c readline-6.0/display.c
|
---|
| 9 | --- readline-6.0.orig/display.c 2009-01-04 11:32:32.000000000 -0800
|
---|
| 10 | +++ readline-6.0/display.c 2009-06-05 14:07:00.000000000 -0700
|
---|
| 11 | @@ -512,6 +512,7 @@
|
---|
| 12 | /* Block keyboard interrupts because this function manipulates global
|
---|
| 13 | data structures. */
|
---|
| 14 | _rl_block_sigint ();
|
---|
| 15 | + RL_SETSTATE (RL_STATE_REDISPLAYING);
|
---|
| 16 |
|
---|
| 17 | if (!rl_display_prompt)
|
---|
| 18 | rl_display_prompt = "";
|
---|
| 19 | @@ -1236,6 +1237,7 @@
|
---|
| 20 | visible_wrap_offset = wrap_offset;
|
---|
| 21 | }
|
---|
| 22 |
|
---|
| 23 | + RL_UNSETSTATE (RL_STATE_REDISPLAYING);
|
---|
| 24 | _rl_release_sigint ();
|
---|
| 25 | }
|
---|
| 26 |
|
---|
| 27 | @@ -1772,7 +1774,7 @@
|
---|
| 28 | space_to_eol will insert too many spaces. XXX - maybe we should
|
---|
| 29 | adjust col_lendiff based on the difference between _rl_last_c_pos
|
---|
| 30 | and _rl_screenwidth */
|
---|
| 31 | - if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth))
|
---|
| 32 | + if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth)))
|
---|
| 33 | #endif
|
---|
| 34 | {
|
---|
| 35 | if (_rl_term_autowrap && current_line < inv_botlin)
|
---|
| 36 | @@ -1892,6 +1894,10 @@
|
---|
| 37 |
|
---|
| 38 | woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
|
---|
| 39 | cpos = _rl_last_c_pos;
|
---|
| 40 | +
|
---|
| 41 | + if (cpos == 0 && cpos == new)
|
---|
| 42 | + return;
|
---|
| 43 | +
|
---|
| 44 | #if defined (HANDLE_MULTIBYTE)
|
---|
| 45 | /* If we have multibyte characters, NEW is indexed by the buffer point in
|
---|
| 46 | a multibyte string, but _rl_last_c_pos is the display position. In
|
---|
| 47 | @@ -1905,9 +1911,9 @@
|
---|
| 48 | prompt string, since they're both buffer indices and DPOS is a
|
---|
| 49 | desired display position. */
|
---|
| 50 | if ((new > prompt_last_invisible) || /* XXX - don't use woff here */
|
---|
| 51 | - (prompt_physical_chars > _rl_screenwidth &&
|
---|
| 52 | + (prompt_physical_chars >= _rl_screenwidth &&
|
---|
| 53 | _rl_last_v_pos == prompt_last_screen_line &&
|
---|
| 54 | - wrap_offset >= woff &&
|
---|
| 55 | + wrap_offset >= woff && dpos >= woff &&
|
---|
| 56 | new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
|
---|
| 57 | /* XXX last comparison might need to be >= */
|
---|
| 58 | {
|
---|
| 59 | diff -Naur readline-6.0.orig/patchlevel readline-6.0/patchlevel
|
---|
| 60 | --- readline-6.0.orig/patchlevel 2008-11-18 08:01:14.000000000 -0800
|
---|
| 61 | +++ readline-6.0/patchlevel 2009-06-05 14:07:00.000000000 -0700
|
---|
| 62 | @@ -1,3 +1,3 @@
|
---|
| 63 | # Do not edit -- exists only for use by patch
|
---|
| 64 |
|
---|
| 65 | -0
|
---|
| 66 | +3
|
---|
| 67 | diff -Naur readline-6.0.orig/readline.h readline-6.0/readline.h
|
---|
| 68 | --- readline-6.0.orig/readline.h 2009-01-04 11:32:33.000000000 -0800
|
---|
| 69 | +++ readline-6.0/readline.h 2009-06-05 14:06:57.000000000 -0700
|
---|
| 70 | @@ -814,8 +814,9 @@
|
---|
| 71 | #define RL_STATE_VIMOTION 0x100000 /* reading vi motion arg */
|
---|
| 72 | #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */
|
---|
| 73 | #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */
|
---|
| 74 | +#define RL_STATE_REDISPLAYING 0x800000 /* updating terminal display */
|
---|
| 75 |
|
---|
| 76 | -#define RL_STATE_DONE 0x800000 /* done; accepted line */
|
---|
| 77 | +#define RL_STATE_DONE 0x1000000 /* done; accepted line */
|
---|
| 78 |
|
---|
| 79 | #define RL_SETSTATE(x) (rl_readline_state |= (x))
|
---|
| 80 | #define RL_UNSETSTATE(x) (rl_readline_state &= ~(x))
|
---|
| 81 | diff -Naur readline-6.0.orig/terminal.c readline-6.0/terminal.c
|
---|
| 82 | --- readline-6.0.orig/terminal.c 2009-01-04 11:32:34.000000000 -0800
|
---|
| 83 | +++ readline-6.0/terminal.c 2009-06-05 14:06:57.000000000 -0700
|
---|
| 84 | @@ -355,7 +355,7 @@
|
---|
| 85 | _rl_get_screen_size (fileno (rl_instream), 1);
|
---|
| 86 | if (CUSTOM_REDISPLAY_FUNC ())
|
---|
| 87 | rl_forced_update_display ();
|
---|
| 88 | - else
|
---|
| 89 | + else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0)
|
---|
| 90 | _rl_redisplay_after_sigwinch ();
|
---|
| 91 | }
|
---|
| 92 | }
|
---|