[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 | } |
---|