86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 			     BASH PATCH REPORT
 | |
| 			     =================
 | |
| 
 | |
| Bash-Release: 3.2
 | |
| Patch-ID: bash32-017
 | |
| 
 | |
| Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
 | |
| Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
 | |
| Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
 | |
| 
 | |
| Bug-Description:
 | |
| 
 | |
| When restoring the original prompt after finishing an incremental search,
 | |
| bash sometimes places the cursor incorrectly if the primary prompt contains
 | |
| invisible characters.
 | |
| 
 | |
| Patch:
 | |
| 
 | |
| *** ../bash-3.2.16/lib/readline/display.c	Fri Apr 20 13:30:16 2007
 | |
| --- lib/readline/display.c	Fri Apr 20 15:17:01 2007
 | |
| ***************
 | |
| *** 1599,1604 ****
 | |
|   	  if (temp > 0)
 | |
|   	    {
 | |
|   	      _rl_output_some_chars (nfd, temp);
 | |
| ! 	      _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
 | |
|   	    }
 | |
|   	}
 | |
| --- 1599,1618 ----
 | |
|   	  if (temp > 0)
 | |
|   	    {
 | |
| + 	      /* If nfd begins at the prompt, or before the invisible
 | |
| + 		 characters in the prompt, we need to adjust _rl_last_c_pos
 | |
| + 		 in a multibyte locale to account for the wrap offset and
 | |
| + 		 set cpos_adjusted accordingly. */
 | |
|   	      _rl_output_some_chars (nfd, temp);
 | |
| ! 	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
 | |
| ! 		{
 | |
| !                   _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
 | |
| !                   if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
 | |
| ! 		    {
 | |
| ! 		      _rl_last_c_pos -= wrap_offset;
 | |
| ! 		      cpos_adjusted = 1;
 | |
| ! 		    }
 | |
| ! 		}
 | |
| !               else
 | |
| !                 _rl_last_c_pos += temp;
 | |
|   	    }
 | |
|   	}
 | |
| ***************
 | |
| *** 1608,1613 ****
 | |
| --- 1622,1639 ----
 | |
|   	  if (temp > 0)
 | |
|   	    {
 | |
| + 	      /* If nfd begins at the prompt, or before the invisible
 | |
| + 		 characters in the prompt, we need to adjust _rl_last_c_pos
 | |
| + 		 in a multibyte locale to account for the wrap offset and
 | |
| + 		 set cpos_adjusted accordingly. */
 | |
|   	      _rl_output_some_chars (nfd, temp);
 | |
|   	      _rl_last_c_pos += col_temp;		/* XXX */
 | |
| + 	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
 | |
| + 		{
 | |
| + 		  if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
 | |
| + 		    {
 | |
| + 		      _rl_last_c_pos -= wrap_offset;
 | |
| + 		      cpos_adjusted = 1;
 | |
| + 		    }
 | |
| + 		}
 | |
|   	    }
 | |
|   	  lendiff = (oe - old) - (ne - new);
 | |
| *** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
 | |
| --- patchlevel.h	Mon Oct 16 14:22:54 2006
 | |
| ***************
 | |
| *** 26,30 ****
 | |
|      looks for to find the patch level (for the sccs version string). */
 | |
|   
 | |
| ! #define PATCHLEVEL 16
 | |
|   
 | |
|   #endif /* _PATCHLEVEL_H_ */
 | |
| --- 26,30 ----
 | |
|      looks for to find the patch level (for the sccs version string). */
 | |
|   
 | |
| ! #define PATCHLEVEL 17
 | |
|   
 | |
|   #endif /* _PATCHLEVEL_H_ */
 |