C   19

append.c

Guest on 14th January 2022 06:12:39 PM

  1. #include "sort.h"
  2.  
  3. __RCSID("$NetBSD: append.c,v 1.23 2009/11/06 18:34:22 joerg Exp $");
  4.  
  5. #include <stdlib.h>
  6.  
  7. /*
  8.  * copy sorted lines to output
  9.  * Ignore duplicates (marked with -ve keylen)
  10.  */
  11. void
  12. append(RECHEADER **keylist, int nelem, FILE *fp, put_func_t put)
  13. {
  14.         RECHEADER **cpos, **lastkey;
  15.         RECHEADER *crec;
  16.  
  17.         lastkey = keylist + nelem;
  18.         if (REVERSE) {
  19.                 for (cpos = lastkey; cpos-- > keylist;) {
  20.                         crec = *cpos;
  21.                         if (crec->keylen >= 0)
  22.                                 put(crec, fp);
  23.                 }
  24.         } else {
  25.                 for (cpos = keylist; cpos < lastkey; cpos++) {
  26.                         crec = *cpos;
  27.                         if (crec->keylen >= 0)
  28.                                 put(crec, fp);
  29.                 }
  30.         }
  31. }

Raw Paste


Login or Register to edit or fork this paste. It's free.