*** empty log message ***
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/* Diff files from a tar archive.
|
||||
Copyright (C) 1988 Free Software Foundation
|
||||
Copyright (C) 1988, 1992 Free Software Foundation
|
||||
|
||||
This file is part of GNU Tar.
|
||||
|
||||
@@ -139,7 +139,7 @@ diff_archive()
|
||||
|
||||
default:
|
||||
msg("Unknown file type '%c' for %s, diffed as normal file",
|
||||
head->header.linkflag, head->header.name);
|
||||
head->header.linkflag, current_file_name);
|
||||
/* FALL THRU */
|
||||
|
||||
case LF_OLDNORMAL:
|
||||
@@ -150,8 +150,8 @@ diff_archive()
|
||||
* Appears to be a file.
|
||||
* See if it's really a directory.
|
||||
*/
|
||||
namelen = strlen(head->header.name)-1;
|
||||
if (head->header.name[namelen] == '/')
|
||||
namelen = strlen(current_file_name)-1;
|
||||
if (current_file_name[namelen] == '/')
|
||||
goto really_dir;
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ diff_archive()
|
||||
|
||||
if (!S_ISREG(filestat.st_mode)) {
|
||||
fprintf(msg_file, "%s: not a regular file\n",
|
||||
head->header.name);
|
||||
current_file_name);
|
||||
skip_file((long)hstat.st_size);
|
||||
different++;
|
||||
goto quit;
|
||||
@@ -187,17 +187,17 @@ diff_archive()
|
||||
goto quit;
|
||||
}
|
||||
|
||||
diff_fd = open(head->header.name, O_NDELAY|O_RDONLY|O_BINARY);
|
||||
diff_fd = open(current_file_name, O_NDELAY|O_RDONLY|O_BINARY);
|
||||
|
||||
if (diff_fd < 0 && !f_absolute_paths) {
|
||||
char tmpbuf[NAMSIZ+2];
|
||||
|
||||
tmpbuf[0]='/';
|
||||
strcpy(&tmpbuf[1],head->header.name);
|
||||
strcpy(&tmpbuf[1],current_file_name);
|
||||
diff_fd=open(tmpbuf, O_NDELAY|O_RDONLY);
|
||||
}
|
||||
if (diff_fd < 0) {
|
||||
msg_perror("cannot open %s",head->header.name);
|
||||
msg_perror("cannot open %s",current_file_name);
|
||||
if (head->header.isextended)
|
||||
skip_extended_headers();
|
||||
skip_file((long)hstat.st_size);
|
||||
@@ -214,7 +214,7 @@ diff_archive()
|
||||
|
||||
check = close(diff_fd);
|
||||
if (check < 0)
|
||||
msg_perror("Error while closing %s",head->header.name);
|
||||
msg_perror("Error while closing %s",current_file_name);
|
||||
|
||||
quit:
|
||||
break;
|
||||
@@ -225,18 +225,18 @@ diff_archive()
|
||||
break;
|
||||
dev = filestat.st_dev;
|
||||
ino = filestat.st_ino;
|
||||
err = stat(head->header.linkname, &filestat);
|
||||
err = stat(current_link_name, &filestat);
|
||||
if (err < 0) {
|
||||
if (errno==ENOENT) {
|
||||
fprintf(msg_file, "%s: does not exist\n",head->header.name);
|
||||
fprintf(msg_file, "%s: does not exist\n",current_file_name);
|
||||
} else {
|
||||
msg_perror("cannot stat file %s",head->header.name);
|
||||
msg_perror("cannot stat file %s",current_file_name);
|
||||
}
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
if(filestat.st_dev!=dev || filestat.st_ino!=ino) {
|
||||
fprintf(msg_file, "%s not linked to %s\n",head->header.name,head->header.linkname);
|
||||
fprintf(msg_file, "%s not linked to %s\n",current_file_name,current_link_name);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -246,25 +246,25 @@ diff_archive()
|
||||
case LF_SYMLINK:
|
||||
{
|
||||
char linkbuf[NAMSIZ+3];
|
||||
check = readlink(head->header.name, linkbuf,
|
||||
check = readlink(current_file_name, linkbuf,
|
||||
(sizeof linkbuf)-1);
|
||||
|
||||
if (check < 0) {
|
||||
if (errno == ENOENT) {
|
||||
fprintf(msg_file,
|
||||
"%s: no such file or directory\n",
|
||||
head->header.name);
|
||||
current_file_name);
|
||||
} else {
|
||||
msg_perror("cannot read link %s",head->header.name);
|
||||
msg_perror("cannot read link %s",current_file_name);
|
||||
}
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
|
||||
linkbuf[check] = '\0'; /* Null-terminate it */
|
||||
if (strncmp(head->header.linkname, linkbuf, check) != 0) {
|
||||
if (strncmp(current_link_name, linkbuf, check) != 0) {
|
||||
fprintf(msg_file, "%s: symlink differs\n",
|
||||
head->header.linkname);
|
||||
current_link_name);
|
||||
different++;
|
||||
}
|
||||
}
|
||||
@@ -299,7 +299,7 @@ diff_archive()
|
||||
if(do_stat(&filestat))
|
||||
break;
|
||||
if(hstat.st_rdev != filestat.st_rdev) {
|
||||
fprintf(msg_file, "%s: device numbers changed\n", head->header.name);
|
||||
fprintf(msg_file, "%s: device numbers changed\n", current_file_name);
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
@@ -309,14 +309,14 @@ diff_archive()
|
||||
if((hstat.st_mode & 07777) != (filestat.st_mode & 07777))
|
||||
#endif
|
||||
{
|
||||
fprintf(msg_file, "%s: mode or device-type changed\n", head->header.name);
|
||||
fprintf(msg_file, "%s: mode or device-type changed\n", current_file_name);
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case LF_DUMPDIR:
|
||||
data=diff_dir=get_dir_contents(head->header.name,0);
|
||||
data=diff_dir=get_dir_contents(current_file_name,0);
|
||||
if (data) {
|
||||
wantbytes((long)(hstat.st_size),compare_dir);
|
||||
free(data);
|
||||
@@ -326,15 +326,15 @@ diff_archive()
|
||||
|
||||
case LF_DIR:
|
||||
/* Check for trailing / */
|
||||
namelen = strlen(head->header.name)-1;
|
||||
namelen = strlen(current_file_name)-1;
|
||||
really_dir:
|
||||
while (namelen && head->header.name[namelen] == '/')
|
||||
head->header.name[namelen--] = '\0'; /* Zap / */
|
||||
while (namelen && current_file_name[namelen] == '/')
|
||||
current_file_name[namelen--] = '\0'; /* Zap / */
|
||||
|
||||
if(do_stat(&filestat))
|
||||
break;
|
||||
if(!S_ISDIR(filestat.st_mode)) {
|
||||
fprintf(msg_file, "%s is no longer a directory\n",head->header.name);
|
||||
fprintf(msg_file, "%s is no longer a directory\n",current_file_name);
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
@@ -346,8 +346,8 @@ diff_archive()
|
||||
break;
|
||||
|
||||
case LF_MULTIVOL:
|
||||
namelen = strlen(head->header.name)-1;
|
||||
if (head->header.name[namelen] == '/')
|
||||
namelen = strlen(current_file_name)-1;
|
||||
if (current_file_name[namelen] == '/')
|
||||
goto really_dir;
|
||||
|
||||
if(do_stat(&filestat))
|
||||
@@ -355,7 +355,7 @@ diff_archive()
|
||||
|
||||
if (!S_ISREG(filestat.st_mode)) {
|
||||
fprintf(msg_file, "%s: not a regular file\n",
|
||||
head->header.name);
|
||||
current_file_name);
|
||||
skip_file((long)hstat.st_size);
|
||||
different++;
|
||||
break;
|
||||
@@ -370,17 +370,17 @@ diff_archive()
|
||||
break;
|
||||
}
|
||||
|
||||
diff_fd = open(head->header.name, O_NDELAY|O_RDONLY|O_BINARY);
|
||||
diff_fd = open(current_file_name, O_NDELAY|O_RDONLY|O_BINARY);
|
||||
|
||||
if (diff_fd < 0) {
|
||||
msg_perror("cannot open file %s",head->header.name);
|
||||
msg_perror("cannot open file %s",current_file_name);
|
||||
skip_file((long)hstat.st_size);
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
err = lseek(diff_fd, offset, 0);
|
||||
if(err!=offset) {
|
||||
msg_perror("cannot seek to %ld in file %s",offset,head->header.name);
|
||||
msg_perror("cannot seek to %ld in file %s",offset,current_file_name);
|
||||
different++;
|
||||
break;
|
||||
}
|
||||
@@ -389,7 +389,7 @@ diff_archive()
|
||||
|
||||
check = close(diff_fd);
|
||||
if (check < 0) {
|
||||
msg_perror("Error while closing %s",head->header.name);
|
||||
msg_perror("Error while closing %s",current_file_name);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -409,15 +409,15 @@ char *buffer;
|
||||
err=read(diff_fd,diff_buf,bytes);
|
||||
if(err!=bytes) {
|
||||
if(err<0) {
|
||||
msg_perror("can't read %s",head->header.name);
|
||||
msg_perror("can't read %s",current_file_name);
|
||||
} else {
|
||||
fprintf(msg_file,"%s: could only read %d of %d bytes\n",head->header.name,err,bytes);
|
||||
fprintf(msg_file,"%s: could only read %d of %d bytes\n",current_file_name,err,bytes);
|
||||
}
|
||||
different++;
|
||||
return -1;
|
||||
}
|
||||
if(bcmp(buffer,diff_buf,bytes)) {
|
||||
fprintf(msg_file, "%s: data differs\n",head->header.name);
|
||||
fprintf(msg_file, "%s: data differs\n",current_file_name);
|
||||
different++;
|
||||
return -1;
|
||||
}
|
||||
@@ -430,7 +430,7 @@ long bytes;
|
||||
char *buffer;
|
||||
{
|
||||
if(bcmp(buffer,diff_dir,bytes)) {
|
||||
fprintf(msg_file, "%s: data differs\n",head->header.name);
|
||||
fprintf(msg_file, "%s: data differs\n",current_file_name);
|
||||
different++;
|
||||
return -1;
|
||||
}
|
||||
@@ -447,7 +447,7 @@ sigh(what)
|
||||
{
|
||||
|
||||
fprintf(msg_file, "%s: %s differs\n",
|
||||
head->header.name, what);
|
||||
current_file_name, what);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -506,12 +506,12 @@ struct stat *statp;
|
||||
{
|
||||
int err;
|
||||
|
||||
err = f_follow_links ? stat(head->header.name, statp) : lstat(head->header.name, statp);
|
||||
err = f_follow_links ? stat(current_file_name, statp) : lstat(current_file_name, statp);
|
||||
if (err < 0) {
|
||||
if (errno==ENOENT) {
|
||||
fprintf(msg_file, "%s: does not exist\n",head->header.name);
|
||||
fprintf(msg_file, "%s: does not exist\n",current_file_name);
|
||||
} else
|
||||
msg_perror("can't stat file %s",head->header.name);
|
||||
msg_perror("can't stat file %s",current_file_name);
|
||||
/* skip_file((long)hstat.st_size);
|
||||
different++;*/
|
||||
return 1;
|
||||
@@ -569,7 +569,7 @@ int filesize;
|
||||
while (numbytes > RECORDSIZE) {
|
||||
if ((err = read(diff_fd, buf, RECORDSIZE)) != RECORDSIZE) {
|
||||
if (err < 0)
|
||||
msg_perror("can't read %s", head->header.name);
|
||||
msg_perror("can't read %s", current_file_name);
|
||||
else
|
||||
fprintf(msg_file, "%s: could only read %d of %d bytes\n",
|
||||
err, numbytes);
|
||||
@@ -586,7 +586,7 @@ int filesize;
|
||||
}
|
||||
if ((err = read(diff_fd, buf, numbytes)) != numbytes) {
|
||||
if (err < 0)
|
||||
msg_perror("can't read %s", head->header.name);
|
||||
msg_perror("can't read %s", current_file_name);
|
||||
else
|
||||
fprintf(msg_file, "%s: could only read %d of %d bytes\n",
|
||||
err, numbytes);
|
||||
@@ -617,7 +617,7 @@ int filesize;
|
||||
userec(datarec);
|
||||
free(sparsearray);
|
||||
if (different)
|
||||
fprintf(msg_file, "%s: data differs\n", head->header.name);
|
||||
fprintf(msg_file, "%s: data differs\n", current_file_name);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user