Here is a new patch to address the compile-time issues
of afio.   It supersedes the earlier patch I provided, and
should be applied to 2.4.7-2.

I hope that I'm providing these patches right. I'm producing
them with diff -ur .



diff -u afio-2.4.7-old/Makefile afio-2.4.7/Makefile
--- afio-2.4.7-old/Makefile     Wed Jul 24 16:57:44 2002
+++ afio-2.4.7/Makefile Wed Jul 24 15:48:12 2002
@@ -58,7 +58,7 @@
 #CFLAGS1 = -Wall -s -g -O2 -fomit-frame-pointer
 #CFLAGS1 = -Wall -O2 -fomit-frame-pointer
 # edd 14 Mar 2002  added -D_FILE_OFFSET_BITS=64 and -D_LARGEFILE_SOURCE
-CFLAGS1 = -W -s -g -O2 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE
+CFLAGS1 = -Wall -s -g -O2 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE
 
 
 CC=gcc
diff -u afio-2.4.7-old/afio.c afio-2.4.7/afio.c
--- afio-2.4.7-old/afio.c       Wed Oct 10 02:03:53 2001
+++ afio-2.4.7/afio.c   Wed Jul 24 16:56:08 2002
@@ -1138,14 +1138,7 @@
   if (inread (header, H_STRLEN) < 0)
     return (warnarch ("Corrupt ASCII header", (off_t) H_STRLEN));
   header[H_STRLEN] = '\0';
-#if 0
-  if (sscanf (header, H_SCAN, &asb->sb_dev,
-             &asb->sb_ino, &asb->sb_mode, &asb->sb_uid,
-             &asb->sb_gid, &asb->sb_nlink, &asb->sb_rdev,
-             &asb->sb_mtime, &namelen, &asb->sb_size) != H_COUNT)
-    return (warnarch ("Bad ASCII header", (off_t) H_STRLEN));
-#else
-  /* this should be much more portable than the one above */
+
   if (sscanf (header, PH_SCAN, &pasb.PSt_dev,
              &pasb.PSt_ino, &pasb.PSt_mode, &pasb.PSt_uid,
              &pasb.PSt_gid, &pasb.PSt_nlink, &pasb.PSt_rdev,
@@ -1161,7 +1154,6 @@
   asb->sb_rdev = pasb.PSt_rdev;
   asb->sb_mtime = pasb.PSt_mtime;
   asb->sb_size = pasb.PSt_size;
-#endif
   if (namelen == 0 || namelen >= PATHSIZE)
     return (warnarch ("Bad ASCII pathname length", (off_t) H_STRLEN));
   if (inread (name, namelen) < 0)
@@ -1550,7 +1542,7 @@
      char *name;
      reg Stat *asb;
 {
-  reg Link *linkp;
+  reg Link *linkp=NULL;
   reg int ifd;
   auto int compression;
 
@@ -1599,16 +1591,18 @@
   bufend = bufidx = buffer;
   if (!failed)
     {
-      if (areof)
-       if (total == 0)
+      if (areof) {
+       if (total == 0) {
          fatal (arspec, "No input");
-       else
+       } else
        {
-           if((aruntil!=0) || askfornext)
+           if((aruntil!=0) || askfornext) {
                next (O_RDONLY, "Input EOF");
-           else
+           } else {
                fatal (arspec, "Premature input EOF");      
+           }
        }
+      }
 #if 0
     fprintf(stderr,"aruntil=%Ld arleft=%Ld 
arbsize=%d\n",aruntil,arleft,arbsize);
 #endif
@@ -1721,12 +1715,15 @@
       asb->sb_size = 0;
     }
 #endif /* S_IFLNK */
-  if ((name[0] == '/') && !abspaths)
-    if (name[1])
+  if ((name[0] == '/') && !abspaths) {
+    if (name[1]) {
       while ((name[0] = name[1]))
        ++name;
-    else
+    } else {
       name[0] = '.';
+    }
+  }
+
   asb->sb_atime = asb->sb_ctime = asb->sb_mtime;
   return (0);
 }
@@ -2854,12 +2851,12 @@
     }
   else
     namedot = NULL;            /* not uncompressing */
-  if ((exists = (LSTAT (name, &osb) == 0)))
+  if ((exists = (LSTAT (name, &osb) == 0))) {
     /* The asb.sb_ino here has not been truncated to 16 bits, so the check is
        safe and may even add some protection. */
     if (ispass
        && osb.sb_ino == asb->sb_ino
-       && osb.sb_dev == asb->sb_dev)
+       && osb.sb_dev == asb->sb_dev) 
       return (warn (name, "Same file"));
     else if ((osb.sb_mode & S_IFMT) == (asb->sb_mode & S_IFMT))
       operm = osb.sb_mode & (xflag ? S_IPERM : S_IPOPN);
@@ -2867,6 +2864,7 @@
       return (warn (name, syserr ()));
     else
       exists = 0;
+  }
   if (linkp)
     {
       if (exists)
@@ -2914,7 +2912,7 @@
     case S_IFBLK:
     case S_IFCHR:
       fd = 0;
-      if (exists)
+      if (exists) {
        if (asb->sb_rdev == osb.sb_rdev)
          if (perm != operm && chmod (name, perm) < 0)
            return (warn (name, syserr ()));
@@ -2928,6 +2926,8 @@
          and is encoded in dev and ino instead
          see out(). 
        */
+      }
+
       if(asb->sb_rdev==0) asb->sb_rdev=(asb->sb_dev << 16) + asb->sb_ino;
       if (mknod (name, asb->sb_mode, asb->sb_rdev) < 0
          && (errno != ENOENT
@@ -2977,7 +2977,7 @@
 #ifdef S_IFLNK
     case S_IFLNK:
       fd = 0;
-      if (exists)
+      if (exists) {
        if ((ssize = readlink (name, sname, sizeof (sname))) < 0)
          return (warn (name, syserr ()));
        else if (strncmp (sname, asb->sb_link, ssize) == 0)
@@ -2986,6 +2986,7 @@
          return (warn (name, syserr ()));
        else
          exists = 0;
+      }
       if (symlink (asb->sb_link, name) < 0
          && (errno != ENOENT
              || dirneed (name) < 0
@@ -2994,13 +2995,15 @@
       break;
 #endif /* S_IFLNK */
     case S_IFREG:
-      if (exists)
+      if (exists) {
        if (nflag && osb.sb_mtime > asb->sb_mtime)
          return (warn_nocount (name, "Newer file exists"));
        else if (unlink (name) < 0)
          return (warn (name, syserr ()));
        else
          exists = 0;
+      }
+
       if ((fd = creat (name, perm)) < 0
          && (errno != ENOENT
              || dirneed (name) < 0
@@ -3059,7 +3062,7 @@
   if((asb->sb_mode & S_IFMT) != S_IFLNK)
     {
       if (xflag && (!exists || asb->sb_uid != osb.sb_uid
-                   || asb->sb_gid != osb.sb_gid))
+                   || asb->sb_gid != osb.sb_gid)) {
        if (chown (name, uid == 0 ? ush (asb->sb_uid) : uid,
                   ush (asb->sb_gid)))
          perror (name);
@@ -3067,6 +3070,7 @@
          if(perm&S_IPEXE)
            if(chmod (name, perm) < 0)
              return (warn (name, syserr ()));
+      }
     }
 
   if (linkp == NULL && asb->sb_nlink > 1)
@@ -3271,8 +3275,8 @@
            sb.sb_rdev=(dev_t)0; 
          }
        
-       if(extfmt) outhead2 (name, &sb); else outhead (name, &sb);
-       if (fd)
+       if(extfmt) { outhead2 (name, &sb); } else { outhead (name, &sb); }
+       if (fd) {
            if (fd==ZIPFD) 
            {
                outdatazip(zipfdfd,name,sb.sb_size);
@@ -3284,6 +3288,7 @@
            }
            else
                VOID close (outdata (fd, name, sb.sb_size));
+       }
        
        if (vflag)
        {
@@ -3500,8 +3505,8 @@
   if ((pad = (total + M_STRLEN + H_STRLEN + namelen) % arpad))
     pad = arpad - pad;
   VOID strcpy (header, M_ASCII);
-  VOID sprintf (header + M_STRLEN, H_PRINT, 0, 0,
-               0, 0, 0, 1, 0, (time_t) 0, namelen, pad);
+  VOID sprintf (header + M_STRLEN, H_PRINT, 0, (unsigned long long)0,
+               0, 0, 0, 1, 0, (time_t) 0, namelen, (unsigned long long)pad);
   outwrite (header, M_STRLEN + H_STRLEN);
   outwrite (name, namelen);
   outpad (pad);
@@ -3556,15 +3561,16 @@
   reg uint namelen;
   auto char header[M_STRLEN + H_STRLEN + 1];
 
-  if ((name[0] == '/') && !abspaths)
+  if ((name[0] == '/') && !abspaths) {
     if (name[1])
       ++name;
     else
       name = ".";
+  }
   namelen = (uint) strlen (name) + 1;
   VOID strcpy (header, M_ASCII);
   VOID sprintf (header + M_STRLEN, H_PRINT, ush (asb->sb_dev),
-               ush (asb->sb_ino), ush (asb->sb_mode), ush (asb->sb_uid),
+               asb->sb_ino, ush (asb->sb_mode), ush (asb->sb_uid),
                ush (asb->sb_gid), ush (asb->sb_nlink), ush (asb->sb_rdev),
                mflag ? timenow : asb->sb_mtime, namelen, asb->sb_size);
   outwrite (header, M_STRLEN + H_STRLEN);
@@ -3588,17 +3594,18 @@
   reg uint namelen;
   auto char header[M_STRLEN + H_STRLEN2 + 1];
 
-  if ((name[0] == '/') && !abspaths)
+  if ((name[0] == '/') && !abspaths) {
     if (name[1])
       ++name;
     else
       name = ".";
+  }
   namelen = (uint) strlen (name) + 1;
   VOID strcpy (header, M_ASCII2);
-  VOID sprintf (header + M_STRLEN, H_PRINT2, ush (asb->sb_dev),
-               (asb->sb_ino), ush (asb->sb_mode), ush (asb->sb_uid),
+  VOID sprintf (header + M_STRLEN, H_PRINT2, ush(asb->sb_dev),
+              asb->sb_ino, ush (asb->sb_mode), ush (asb->sb_uid),
                ush (asb->sb_gid), ush (asb->sb_nlink), ush (asb->sb_rdev),
-               mflag ? timenow : asb->sb_mtime, namelen, asb->sb_size);
+               mflag ? timenow : asb->sb_mtime, namelen, (unsigned long 
long)asb->sb_size);
   outwrite (header, M_STRLEN + H_STRLEN2);
   outwrite (name, namelen);
 #ifdef S_IFLNK
@@ -4079,7 +4086,7 @@
                       major (asb->sb_rdev), minor (asb->sb_rdev));
          break;
        case S_IFREG:
-         VOID printf (" %8ld", asb->sb_size);
+         VOID printf (" %8Ld", asb->sb_size);
          break;
        default:
          VOID printf ("         ");
@@ -4121,11 +4128,12 @@
   if (vflag || lflag)
     {
       from=NULL;
-      if (asb->sb_nlink > 1)
+      if (asb->sb_nlink > 1) {
        if ((from = linkfrom (asb,1)))
          VOID printf (" -> %s", from->l_path->p_name);
        else
          VOID linkto (name, asb);
+      }
          
 #ifdef S_IFLNK
       if (((asb->sb_mode & S_IFMT) == S_IFLNK)&&(from==NULL))
@@ -4301,11 +4309,13 @@
 #endif
   for (idx = 0; (pid = fork ()) < 0; ++idx)
     {
-      if (idx == sizeof (delay))
+      if (idx == sizeof (delay)) {
        if (die)
          fatal (arspec, syserr ());
        else
          return (-1);
+      }
+
       VOID warn_nocount (what, "Trouble forking...");
       if (Fflag && !die)       /* give up and go on... */
        return (-1);
diff -u afio-2.4.7-old/afio.h afio-2.4.7/afio.h
--- afio-2.4.7-old/afio.h       Sat Oct  6 23:43:47 2001
+++ afio-2.4.7/afio.h   Wed Jul 24 16:54:48 2002
@@ -101,10 +101,8 @@
 #define        H_COUNT 10              /* Number of items in ASCII header */
 
 /* old ASCII format */
-#define        H_PRINT "%06o%06o%06o%06o%06o%06o%06o%011lo%06o%011lo"
-/* H_SCAN is obsolete, replaced by PH_SCAN to be more portable. */
-#define        H_SCAN  "%6ho%6ho%6ho%6ho%6ho%6ho%6ho%11lo%6o%11lo"
-#define PH_SCAN  "%6lo%6lo%6lo%6lo%6lo%6lo%6lo%11lo%6o%11lo"
+#define        H_PRINT "%06o%06Lo%06o%06o%06o%06o%06o%011lo%06o%011Lo"
+#define PH_SCAN  "%6lo%6lo%6lo%6lo%6lo%6lo%6lo%11lo%6o%11Lo"
 
 /*
 Below is a handy piece of ASCII art which can be used to decode old
@@ -118,8 +116,8 @@
 
 
 /* extended ASCII format */
-#define        H_PRINT2  "%06o%011lo%06o%06o%06o%06o%06o%011lo%06o%011lo"
-#define PH_SCAN2  "%6lo%11lo%6lo%6lo%6lo%6lo%6lo%11lo%6o%11lo"
+#define        H_PRINT2  "%06o%011Lo%06o%06o%06o%06o%06o%011lo%06o%011Lo"
+#define PH_SCAN2  "%6lo%11lo%6lo%6lo%6lo%6lo%6lo%11lo%6o%11Lo"
 
 
 typedef struct {
@@ -131,7 +129,7 @@
 long unsigned int PSt_nlink;
 long unsigned int PSt_rdev;
 long unsigned int PSt_mtime;
-long unsigned int PSt_size;
+unsigned long long PSt_size;
 } PStat;
 
 #define        H_STRLEN 70             /* old ASCII header string length */
Common subdirectories: afio-2.4.7-old/debian and afio-2.4.7/debian
Common subdirectories: afio-2.4.7-old/script1 and afio-2.4.7/script1
Common subdirectories: afio-2.4.7-old/script2 and afio-2.4.7/script2
Common subdirectories: afio-2.4.7-old/script3 and afio-2.4.7/script3
Common subdirectories: afio-2.4.7-old/script4 and afio-2.4.7/script4
Common subdirectories: afio-2.4.7-old/script5 and afio-2.4.7/script5


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to