[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.17 and 1.18

version 1.17, 2006/10/29 18:40:34 version 1.18, 2007/03/07 18:11:03
Line 56 
Line 56 
         short flno;          short flno;
         RECHEADER rec[1];          RECHEADER rec[1];
 } MFILE;  } MFILE;
 typedef struct tmfile {  static u_char *wts, *wts1;
         u_char *end;  static struct mfile *cfilebuf;
         short flno;  static void *buffer;
         TRECHEADER rec[1];  static size_t bufsize;
 } 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 80 
Line 77 
         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) {          if (cfilebuf == NULL) {
                 cfilebuf = malloc(MAXLLEN + sizeof(TMFILE));                  cfilebuf = malloc(MAXLLEN + sizeof(MFILE));
                 if (cfilebuf == NULL)                  if (cfilebuf == NULL)
                         errx(2, "cannot allocate memory");                          errx(2, "cannot allocate memory");
         }          }
   
         i = min(16, nfiles) * LALIGN(MAXLLEN+sizeof(TMFILE));          i = min(16, nfiles) * LALIGN(MAXLLEN + sizeof(MFILE));
         if (i > bufsize) {          if (i > bufsize) {
                 do {                  bufsize = i;
                         bufsize *= 2;                  if ((buffer = realloc(buffer, bufsize)) == NULL)
                 } while  (i > bufsize);                          err(2, NULL);
                 buffer = realloc(buffer, bufsize);  
                 if (!buffer)  
                         errx(2, "cannot allocate memory");  
                 bufend = buffer + bufsize - 1;  
         }          }
   
         if (binno >= 0)          if (binno >= 0)
Line 148 
Line 141 
   
         for (i = j = 0; i < nfiles; i++) {          for (i = j = 0; i < nfiles; i++) {
                 cfile = (MFILE *) (buffer +                  cfile = (MFILE *) (buffer +
                     i * LALIGN(MAXLLEN + sizeof(TMFILE)));                      i * LALIGN(MAXLLEN + sizeof(MFILE)));
                 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 253 
Line 246 
         int c;          int c;
         RECHEADER *crec, *prec, *trec;          RECHEADER *crec, *prec, *trec;
   
         if (bufsize < 2 * ALIGN(MAXLLEN + sizeof(TRECHEADER))) {          if (bufsize < 2 * ALIGN(MAXLLEN + sizeof(RECHEADER))) {
                 do {                  bufsize = 2 * ALIGN(MAXLLEN + sizeof(RECHEADER));
                         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(TRECHEADER));          crec_end = ((char *)crec) + ALIGN(MAXLLEN + sizeof(RECHEADER));
         prec = (RECHEADER *) crec_end;          prec = (RECHEADER *) crec_end;
         prec_end = ((char *)prec) + ALIGN(MAXLLEN + sizeof(TRECHEADER));          prec_end = ((char *)prec) + ALIGN(MAXLLEN + sizeof(RECHEADER));
         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.17  
changed lines
  Added in v.1.18