You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							73 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							73 lines
						
					
					
						
							2.3 KiB
						
					
					
				| 			     BASH PATCH REPORT | |
| 			     ================= | |
| 
 | |
| Bash-Release:	5.0 | |
| Patch-ID:	bash50-013 | |
| 
 | |
| Bug-Reported-by:	HIROSE Masaaki <hirose31@gmail.com> | |
| Bug-Reference-ID:	<CAGSOfA-RqiTe=+GsXsDKyZrrMWH4bDbXgMVVegMa6OjqC5xbnQ@mail.gmail.com> | |
| Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00038.html | |
| 
 | |
| Bug-Description: | |
| 
 | |
| Reading history entries with timestamps can result in history entries joined | |
| by linefeeds. | |
| 
 | |
| Patch (apply with `patch -p0'): | |
| 
 | |
| *** ../bash-5.0-patched/lib/readline/histfile.c	2018-06-11 09:14:52.000000000 -0400 | |
| --- lib/readline/histfile.c	2019-05-16 15:55:57.000000000 -0400 | |
| *************** | |
| *** 370,376 **** | |
|    | |
|     has_timestamps = HIST_TIMESTAMP_START (buffer); | |
| !   history_multiline_entries += has_timestamps && history_write_timestamps;   | |
|    | |
|     /* Skip lines until we are at FROM. */ | |
|     for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++) | |
|       if (*line_end == '\n') | |
| --- 370,378 ---- | |
|    | |
|     has_timestamps = HIST_TIMESTAMP_START (buffer); | |
| !   history_multiline_entries += has_timestamps && history_write_timestamps; | |
|    | |
|     /* Skip lines until we are at FROM. */ | |
| +   if (has_timestamps) | |
| +     last_ts = buffer; | |
|     for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++) | |
|       if (*line_end == '\n') | |
| *************** | |
| *** 381,385 **** | |
| --- 383,398 ---- | |
|   	if (HIST_TIMESTAMP_START(p) == 0) | |
|   	  current_line++; | |
| + 	else | |
| + 	  last_ts = p; | |
|   	line_start = p; | |
| + 	/* If we are at the last line (current_line == from) but we have | |
| + 	   timestamps (has_timestamps), then line_start points to the | |
| + 	   text of the last command, and we need to skip to its end. */ | |
| + 	if (current_line >= from && has_timestamps) | |
| + 	  { | |
| + 	    for (line_end = p; line_end < bufend && *line_end != '\n'; line_end++) | |
| + 	      ; | |
| + 	    line_start = (*line_end == '\n') ? line_end + 1 : line_end; | |
| + 	  } | |
|         } | |
|    | |
| 
 | |
| *** ../bash-5.0/patchlevel.h	2016-06-22 14:51:03.000000000 -0400 | |
| --- patchlevel.h	2016-10-01 11:01:28.000000000 -0400 | |
| *************** | |
| *** 26,30 **** | |
|      looks for to find the patch level (for the sccs version string). */ | |
|    | |
| ! #define PATCHLEVEL 12 | |
|    | |
|   #endif /* _PATCHLEVEL_H_ */ | |
| --- 26,30 ---- | |
|      looks for to find the patch level (for the sccs version string). */ | |
|    | |
| ! #define PATCHLEVEL 13 | |
|    | |
|   #endif /* _PATCHLEVEL_H_ */
 | |
| 
 |