summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
4a5e619)
SCCS-vsn: old/tar/tar.c 4.19
-static char *sccsid = "@(#)tar.c 4.18 (Berkeley) %G%";
+static char *sccsid = "@(#)tar.c 4.19 (Berkeley) %G%";
cp2++;
}
putfile(*argv++, cp2, parent);
cp2++;
}
putfile(*argv++, cp2, parent);
+ if (chdir(wdir) < 0) {
+ fprintf(stderr, "cannot change back?: ");
+ perror(wdir);
+ }
}
putempty();
putempty();
}
putempty();
putempty();
writetape((char *)&dblock);
}
sprintf(newparent, "%s/%s", parent, shortname);
writetape((char *)&dblock);
}
sprintf(newparent, "%s/%s", parent, shortname);
+ if (chdir(shortname) < 0) {
+ perror(shortname);
+ return;
+ }
if ((dirp = opendir(".")) == NULL) {
fprintf(stderr, "tar: %s: directory read error\n",
longname);
if ((dirp = opendir(".")) == NULL) {
fprintf(stderr, "tar: %s: directory read error\n",
longname);
+ if (chdir(parent) < 0) {
+ fprintf(stderr, "cannot change back?: ");
+ perror(parent);
+ }
return;
}
while ((dp = readdir(dirp)) != NULL && !term) {
return;
}
while ((dp = readdir(dirp)) != NULL && !term) {
seekdir(dirp, i);
}
closedir(dirp);
seekdir(dirp, i);
}
closedir(dirp);
+ if (chdir(parent) < 0) {
+ fprintf(stderr, "cannot change back?: ");
+ perror(parent);
+ }