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

Diff for /src/usr.bin/sort/Attic/msort.c between version 1.18 and 1.19

version 1.18, 2007/03/07 18:11:03 version 1.19, 2007/03/11 00:38:01
Line 56 
Line 56 
         short flno;          short flno;
         RECHEADER rec[1];          RECHEADER rec[1];
 } MFILE;  } MFILE;
 static u_char *wts, *wts1;  typedef struct tmfile {
 static struct mfile *cfilebuf;          u_char *end;
 static void *buffer;          short flno;
 static size_t bufsize;          TRECHEADER rec[1];
   } TMFILE;
   u_char *wts, *wts1 = 0;
   struct mfile *cfilebuf;
   
 static int cmp(RECHEADER *, RECHEADER *);  static int cmp(RECHEADER *, RECHEADER *);
 static int insert(struct mfile **, struct mfile **, int, int);  static int insert(struct mfile **, struct mfile **, int, int);
Line 77 
Line 80 
         wts = ftbl->weights;          wts = ftbl->weights;
         if (!UNIQUE && SINGL_FLD && (ftbl->flags & F))          if (!UNIQUE && SINGL_FLD && (ftbl->flags & F))
                 wts1 = (ftbl->flags & R) ? Rascii : ascii;                  wts1 = (ftbl->flags & R) ? Rascii : ascii;
         if (cfilebuf == NULL) {          if (!cfilebuf) {
                 cfilebuf = malloc(MAXLLEN + sizeof(MFILE));                  cfilebuf = malloc(MAXLLEN + sizeof(TMFILE));
                 if (cfilebuf == NULL)                  if (cfilebuf == NULL)
                         errx(2, "cannot allocate memory");                          errx(2, "cannot allocate memory");
         }          }
   
         i = min(16, nfiles) * LALIGN(MAXLLEN + sizeof(MFILE));          i = min(16, nfiles) * LALIGN(MAXLLEN+sizeof(TMFILE));
         if (i > bufsize) {          if (i > bufsize) {
                 bufsize = i;                  do {
                 if ((buffer = realloc(buffer, bufsize)) == NULL)                          bufsize *= 2;
                         err(2, NULL);                  } while  (i > bufsize);
                   buffer = realloc(buffer, bufsize);
                   if (!buffer)
                           errx(2, "cannot allocate memory");
                   bufend = buffer + bufsize - 1;
         }          }
   
         if (binno >= 0)          if (binno >= 0)
Line 141 
Line 148 
   
         for (i = j = 0; i < nfiles; i++) {          for (i = j = 0; i < nfiles; i++) {
                 cfile = (MFILE *) (buffer +                  cfile = (MFILE *) (buffer +
                     i * LALIGN(MAXLLEN + sizeof(MFILE)));                      i * LALIGN(MAXLLEN + sizeof(TMFILE)));
                 cfile->flno = j + infl0;                  cfile->flno = j + infl0;
                 cfile->end = cfile->rec->data + MAXLLEN;                  cfile->end = cfile->rec->data + MAXLLEN;
                 for (c = 1; c == 1;) {                  for (c = 1; c == 1;) {
Line 246 
Line 253 
         int c;          int c;
         RECHEADER *crec, *prec, *trec;          RECHEADER *crec, *prec, *trec;
   
         if (bufsize < 2 * ALIGN(MAXLLEN + sizeof(RECHEADER))) {          if (bufsize < 2 * ALIGN(MAXLLEN + sizeof(TRECHEADER))) {
                 bufsize = 2 * ALIGN(MAXLLEN + sizeof(RECHEADER));                  do {
                           bufsize *= 2;
                   } while (bufsize < 2 * ALIGN(MAXLLEN + sizeof(TRECHEADER)));
                 if ((buffer = realloc(buffer, bufsize)) == NULL)                  if ((buffer = realloc(buffer, bufsize)) == NULL)
                         err(2, NULL);                          err(2, NULL);
                   bufend = buffer + bufsize - 1;
         }          }
         crec = (RECHEADER *) buffer;          crec = (RECHEADER *) buffer;
         crec_end = ((char *)crec) + ALIGN(MAXLLEN + sizeof(RECHEADER));          crec_end = ((char *)crec) + ALIGN(MAXLLEN + sizeof(TRECHEADER));
         prec = (RECHEADER *) crec_end;          prec = (RECHEADER *) crec_end;
         prec_end = ((char *)prec) + ALIGN(MAXLLEN + sizeof(RECHEADER));          prec_end = ((char *)prec) + ALIGN(MAXLLEN + sizeof(TRECHEADER));
         wts = ftbl->weights;          wts = ftbl->weights;
         if (SINGL_FLD && (ftbl->flags & F))          if (SINGL_FLD && (ftbl->flags & F))
                 wts1 = ftbl->flags & R ? Rascii : ascii;                  wts1 = ftbl->flags & R ? Rascii : ascii;

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19