X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=restore%2Frestore.c;h=fe6c2ccd3454b0377dd2a994d5c26d3389c840db;hb=9be511dc8a07570d6c95075573272fce6e9113d4;hp=c5770849b4eaf01c85806fe6892914c91837429f;hpb=3d78f5f2dbe4f24a0c80f286e67ce79e9ef377c4;p=dump.git diff --git a/restore/restore.c b/restore/restore.c index c577084..fe6c2cc 100644 --- a/restore/restore.c +++ b/restore/restore.c @@ -40,7 +40,7 @@ #ifndef lint static const char rcsid[] = - "$Id: restore.c,v 1.8 2000/05/28 16:52:21 stelian Exp $"; + "$Id: restore.c,v 1.10 2000/08/20 15:17:36 stelian Exp $"; #endif /* not lint */ #include @@ -89,7 +89,7 @@ listfile(char *name, ino_t ino, int type) long addfile(char *name, ino_t ino, int type) { - register struct entry *ep; + register struct entry *ep, *np; long descend = hflag ? GOOD : FAIL; char buf[100]; @@ -114,6 +114,11 @@ addfile(char *name, ino_t ino, int type) return (descend); } type |= LINK; + for (np = ep->e_links; np; np = np->e_links) + if (strcmp(name, myname(np)) == 0) { + np->e_flags |= NEW; + return (descend); + } } ep = addentry(name, ino, type); if (type == NODE) @@ -481,6 +486,7 @@ nodeupdates(char *name, ino_t ino, int type) if (compare_ignore_not_found) break; fprintf(stderr, "%s: (inode %lu) not found on tape\n", name, (unsigned long)ino); + compare_errors = 1; break; /*