]> git.wh0rd.org - dump.git/blobdiff - restore/dirs.c
Prepare for release 0.4b37
[dump.git] / restore / dirs.c
index f93e19f32d064200e760c89cdb41b4ee26356e03..2a23f9486b62c940530954b69b1bdf346ff3b8f7 100644 (file)
@@ -42,7 +42,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: dirs.c,v 1.25 2004/03/29 13:57:29 stelian Exp $";
+       "$Id: dirs.c,v 1.28 2004/05/25 10:39:30 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -384,7 +384,7 @@ putdir(char *buf, size_t size)
        struct direct *dp;
        long loc, i;
 
-       if (cvtflag) {
+       if (cvtflag && !ufs2flag) {
                eodp = (struct odirect *)&buf[size];
                for (odp = (struct odirect *)buf; odp < eodp; odp++)
                        if (odp->d_ino != 0) {
@@ -419,8 +419,11 @@ putdir(char *buf, size_t size)
                        i = DIRBLKSIZ - (loc & (DIRBLKSIZ - 1));
                        if ((dp->d_reclen & 0x3) != 0 ||
                            dp->d_reclen > i ||
-                           dp->d_reclen < DIRSIZ(0, dp) ||
-                           dp->d_namlen > MAXNAMLEN) {
+                           dp->d_reclen < DIRSIZ(0, dp)
+#if MAXNAMLEN < 255
+                           || dp->d_namlen > MAXNAMLEN
+#endif
+                           ) {
                                Vprintf(stdout, "Mangled directory: ");
                                if ((dp->d_reclen & 0x3) != 0)
                                        Vprintf(stdout,
@@ -429,10 +432,12 @@ putdir(char *buf, size_t size)
                                        Vprintf(stdout,
                                           "reclen less than DIRSIZ (%d < %d) ",
                                           dp->d_reclen, DIRSIZ(0, dp));
+#if MAXNAMLEN < 255
                                if (dp->d_namlen > MAXNAMLEN)
                                        Vprintf(stdout,
                                           "reclen name too big (%d > %d) ",
                                           dp->d_namlen, MAXNAMLEN);
+#endif
                                Vprintf(stdout, "\n");
                                loc += i;
                                continue;
@@ -513,7 +518,7 @@ rst_seekdir(RST_DIR *dirp, OFF_T loc, OFF_T base)
                return;
        loc -= base;
        if (loc < 0)
-               fprintf(stderr, "bad seek pointer to rst_seekdir %lld\n", loc);
+               fprintf(stderr, "bad seek pointer to rst_seekdir %lld\n", (long long int)loc);
        (void) LSEEK(dirp->dd_fd, base + (loc & ~(DIRBLKSIZ - 1)), SEEK_SET);
        dirp->dd_loc = loc & (DIRBLKSIZ - 1);
        if (dirp->dd_loc != 0)