[BACK]Return to sort.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sort

Diff for /src/usr.bin/sort/sort.c between version 1.11 and 1.12

version 1.11, 1998/07/24 00:32:24 version 1.12, 1999/05/24 17:57:19
Line 82 
Line 82 
  */   */
 u_char dtable[NBINS], itable[NBINS], alltable[NBINS];  u_char dtable[NBINS], itable[NBINS], alltable[NBINS];
 int SINGL_FLD = 0, SEP_FLAG = 0, UNIQUE = 0;  int SINGL_FLD = 0, SEP_FLAG = 0, UNIQUE = 0;
 struct coldesc clist[(ND+1)*2];  struct coldesc *clist;
 int ncols = 0;  int ncols = 0;
 extern struct coldesc clist[(ND+1)*2];  int ND = 10;                    /* limit on number of -k options. */
 extern int ncols;  
   
 char devstdin[] = _PATH_STDIN;  char devstdin[] = _PATH_STDIN;
 char toutpath[_POSIX_PATH_MAX];  char toutpath[_POSIX_PATH_MAX];
Line 95 
Line 94 
 static void onsig __P((int));  static void onsig __P((int));
 static void usage __P((char *));  static void usage __P((char *));
   
   #define CHECK_NFIELDS                                           \
           if (++nfields == ND) {                                  \
                   ND += 10;                                       \
                   if ((p = realloc(fldtab, ND)) == NULL)          \
                           errx(2, "cannot allocate memory");      \
                   ftpos = p + (ftpos - fldtab);                   \
                   fldtab = p;                                     \
           }
   
 int  int
 main(argc, argv)  main(argc, argv)
         int argc;          int argc;
Line 102 
Line 110 
 {  {
         int (*get)();          int (*get)();
         int ch, i, stdinflag = 0, tmp = 0;          int ch, i, stdinflag = 0, tmp = 0;
         char cflag = 0, mflag = 0;          char nfields = 0, cflag = 0, mflag = 0;
         char *outfile, *outpath = 0;          char *outfile, *outpath = 0;
         struct field fldtab[ND+2], *ftpos;          struct field *fldtab, *ftpos;
         union f_handle filelist;          union f_handle filelist;
         FILE *outfp = NULL;          FILE *outfp = NULL;
           void *p;
   
         memset(fldtab, 0, (ND+2)*sizeof(struct field));          if ((clist = calloc((ND+1)*2, sizeof(struct coldesc))) == NULL ||
               (ftpos = fldtab = calloc(ND+2, sizeof(struct field))) == NULL)
                   errx(2, "cannot allocate memory");
         memset(d_mask, 0, NBINS);          memset(d_mask, 0, NBINS);
         d_mask[REC_D = '\n'] = REC_D_F;          d_mask[REC_D = '\n'] = REC_D_F;
         SINGL_FLD = SEP_FLAG = 0;          SINGL_FLD = SEP_FLAG = 0;
         d_mask['\t'] = d_mask[' '] = BLANK | FLD_D;          d_mask['\t'] = d_mask[' '] = BLANK | FLD_D;
         ftpos = fldtab;  
         fixit(&argc, argv);          fixit(&argc, argv);
         if (!issetugid() && (outfile = getenv("TMPDIR")))          if (!issetugid() && (outfile = getenv("TMPDIR")))
                 tmpdir = outfile;                  tmpdir = outfile;
Line 138 
Line 148 
                         outpath = optarg;                          outpath = optarg;
                         break;                          break;
                 case 'k':                  case 'k':
                           CHECK_NFIELDS;
                         setfield(optarg, ++ftpos, fldtab->flags);                          setfield(optarg, ++ftpos, fldtab->flags);
                         break;                          break;
                 case 't':                  case 't':
Line 212 
Line 223 
                 fldtab[0].icol.num = 1;                  fldtab[0].icol.num = 1;
         } else {          } else {
                 if (!fldtab[1].icol.num) {                  if (!fldtab[1].icol.num) {
                           CHECK_NFIELDS;
                         fldtab[0].flags &= ~(BI|BT);                          fldtab[0].flags &= ~(BI|BT);
                         setfield("1", ++ftpos, fldtab->flags);                          setfield("1", ++ftpos, fldtab->flags);
                 }                  }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12