fix to x option per rich wales
[unix-history] / usr / src / old / arff / arff.c
index 3553841..b7199f7 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)arff.c      4.8 (Berkeley) 81/11/13";
+static char *sccsid = "@(#)arff.c      4.11 (Berkeley) 82/06/27";
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -22,7 +22,7 @@ struct rt_ent {
        char    rt_pad;         /* unusued */
        char    rt_stat;        /* type of entry, or end of seg */
        u_short rt_name[3];     /* name, 3 words in rad50 form */
        char    rt_pad;         /* unusued */
        char    rt_stat;        /* type of entry, or end of seg */
        u_short rt_name[3];     /* name, 3 words in rad50 form */
-       short   rt_len;         /* length of file */
+       u_short rt_len;         /* length of file */
        char    rt_chan;        /* only used in temporary files */
        char    rt_job;         /* only used in temporary files */
        struct rt_dat rt_date;  /* creation date */
        char    rt_chan;        /* only used in temporary files */
        char    rt_job;         /* only used in temporary files */
        struct rt_dat rt_date;  /* creation date */
@@ -288,14 +288,23 @@ xcmd()
        register int i;
 
        rt_init();
        register int i;
 
        rt_init();
-       if (namc == 0)
+       if (namc == 0) {
                for (segnum = 0; segnum != -1;
                     segnum = rt_dir[segnum].rt_axhead.rt_nxtseg-1)
                        for (last = rt_last+(segnum*2*RT_BLOCK),
                             de = ((char *)&rt_dir[segnum])+10; de <= last; 
                             de += rt_entsiz)
                for (segnum = 0; segnum != -1;
                     segnum = rt_dir[segnum].rt_axhead.rt_nxtseg-1)
                        for (last = rt_last+(segnum*2*RT_BLOCK),
                             de = ((char *)&rt_dir[segnum])+10; de <= last; 
                             de += rt_entsiz)
-                               sunrad50(name, rt(de)->rt_name), rtx(name);
-       else
+                               switch (rt(de)->rt_stat) {
+                               case RT_ESEG:
+                                       return;
+                               case RT_TEMP:
+                               case RT_FILE:
+                                       sunrad50(name,rt(de)->rt_name);
+                                       rtx(name);
+                               case RT_NULL:
+                               ;
+                               }
+       } else
                for (i = 0; i < namc; i++)
                        if (rtx(namv[i]) == 0)
                                namv[i] = 0;
                for (i = 0; i < namc; i++)
                        if (rtx(namv[i]) == 0)
                                namv[i] = 0;
@@ -716,7 +725,7 @@ mkent(de, segnum, bufp, name)
 overwrite:
        srad50(name,de->rt_name);
        timp = localtime(&bufp->st_mtime);
 overwrite:
        srad50(name,de->rt_name);
        timp = localtime(&bufp->st_mtime);
-       de->rt_date.rt_dy = timp->tm_mday + 1;
+       de->rt_date.rt_dy = timp->tm_mday;
        de->rt_date.rt_mo = timp->tm_mon + 1;
        de->rt_date.rt_yr = timp->tm_year - 72;
        de->rt_stat = RT_FILE;
        de->rt_date.rt_mo = timp->tm_mon + 1;
        de->rt_date.rt_yr = timp->tm_year - 72;
        de->rt_stat = RT_FILE;