mirror of https://github.com/mirror/busybox.git
Patch to fix bug 868, and some related cleanup while I was in the area.
A tab is now taken as the end of filename if it's there, but if it isn't (because the timestamp isn't there) we continue with the existing untruncated line as the filename. (r15025 from trunk plus coding-style fixes for the patch)1_1_stable
parent
1de534114f
commit
4ab339129e
|
@ -54,29 +54,19 @@ static unsigned int copy_lines(FILE *src_stream, FILE *dest_stream, const unsign
|
|||
|
||||
static char *extract_filename(char *line, int patch_level)
|
||||
{
|
||||
char *filename_start_ptr = line + 4;
|
||||
char *temp, *filename_start_ptr = line + 4;
|
||||
int i;
|
||||
|
||||
/* Terminate string at end of source filename */
|
||||
{
|
||||
char *line_ptr;
|
||||
line_ptr = strchr(filename_start_ptr, '\t');
|
||||
if (!line_ptr) {
|
||||
bb_perror_msg("Malformed line %s", line);
|
||||
return(NULL);
|
||||
}
|
||||
*line_ptr = '\0';
|
||||
}
|
||||
temp = strchr(filename_start_ptr, '\t');
|
||||
if (temp)
|
||||
*temp = 0;
|
||||
|
||||
/* Skip over (patch_level) number of leading directories */
|
||||
for (i = 0; i < patch_level; i++) {
|
||||
char *dirname_ptr;
|
||||
|
||||
dirname_ptr = strchr(filename_start_ptr, '/');
|
||||
if (!dirname_ptr) {
|
||||
if (!(temp = strchr(filename_start_ptr, '/')))
|
||||
break;
|
||||
}
|
||||
filename_start_ptr = dirname_ptr + 1;
|
||||
filename_start_ptr = temp + 1;
|
||||
}
|
||||
|
||||
return(bb_xstrdup(filename_start_ptr));
|
||||
|
|
Loading…
Reference in New Issue