[BACK]Return to compat_fts.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/compat_fts.c between version 1.14 and 1.17

version 1.14, 2017/02/18 12:24:24 version 1.17, 2020/06/15 01:37:14
Line 1 
Line 1 
 #include "config.h"  
   
 #if HAVE_FTS  
   
 int dummy;  
   
 #else  
   
 /*      $Id$    */  /*      $Id$    */
 /*      $OpenBSD$       */  /*      $OpenBSD$       */
   
Line 37  int dummy;
Line 29  int dummy;
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.   * SUCH DAMAGE.
  */   */
   #include "config.h"
   
 #include <sys/stat.h>  #include <sys/stat.h>
 #include <sys/types.h>  #include <sys/types.h>
Line 62  static int  fts_palloc(FTS *, size_t);
Line 55  static int  fts_palloc(FTS *, size_t);
 static FTSENT   *fts_sort(FTS *, FTSENT *, int);  static FTSENT   *fts_sort(FTS *, FTSENT *, int);
 static unsigned short    fts_stat(FTS *, FTSENT *);  static unsigned short    fts_stat(FTS *, FTSENT *);
   
   typedef int (*qsort_compar_proto)(const void *, const void *);
   
 #define ISDOT(a)        (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))  #define ISDOT(a)        (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
 #ifndef O_CLOEXEC  #ifndef O_CLOEXEC
 #define O_CLOEXEC       0  #define O_CLOEXEC       0
Line 573  fts_sort(FTS *sp, FTSENT *head, int nitems)
Line 568  fts_sort(FTS *sp, FTSENT *head, int nitems)
         if (nitems > sp->fts_nitems) {          if (nitems > sp->fts_nitems) {
                 struct _ftsent **a;                  struct _ftsent **a;
   
                 sp->fts_nitems = nitems + 40;  
                 if ((a = reallocarray(sp->fts_array,                  if ((a = reallocarray(sp->fts_array,
                     sp->fts_nitems, sizeof(FTSENT *))) == NULL) {                      nitems + 40, sizeof(FTSENT *))) == NULL) {
                         free(sp->fts_array);                          free(sp->fts_array);
                         sp->fts_array = NULL;                          sp->fts_array = NULL;
                         sp->fts_nitems = 0;                          sp->fts_nitems = 0;
                         return (head);                          return (head);
                 }                  }
                   sp->fts_nitems = nitems + 40;
                 sp->fts_array = a;                  sp->fts_array = a;
         }          }
         for (ap = sp->fts_array, p = head; p; p = p->fts_link)          for (ap = sp->fts_array, p = head; p; p = p->fts_link)
                 *ap++ = p;                  *ap++ = p;
         qsort(sp->fts_array, nitems, sizeof(FTSENT *), sp->fts_compar);          qsort(sp->fts_array, nitems, sizeof(FTSENT *),
               (qsort_compar_proto)sp->fts_compar);
         for (head = *(ap = sp->fts_array); --nitems; ++ap)          for (head = *(ap = sp->fts_array); --nitems; ++ap)
                 ap[0]->fts_link = ap[1];                  ap[0]->fts_link = ap[1];
         ap[0]->fts_link = NULL;          ap[0]->fts_link = NULL;
Line 648  fts_palloc(FTS *sp, size_t more)
Line 644  fts_palloc(FTS *sp, size_t more)
                 errno = ENAMETOOLONG;                  errno = ENAMETOOLONG;
                 return (1);                  return (1);
         }          }
         sp->fts_pathlen += more;          p = recallocarray(sp->fts_path, sp->fts_pathlen,
         p = realloc(sp->fts_path, sp->fts_pathlen);              sp->fts_pathlen + more, 1);
         if (p == NULL) {          if (p == NULL) {
                 free(sp->fts_path);                  free(sp->fts_path);
                 sp->fts_path = NULL;                  sp->fts_path = NULL;
                 return (1);                  return (1);
         }          }
           sp->fts_pathlen += more;
         sp->fts_path = p;          sp->fts_path = p;
         return (0);          return (0);
 }  }
Line 697  fts_maxarglen(char * const *argv)
Line 694  fts_maxarglen(char * const *argv)
                         max = len;                          max = len;
         return (max + 1);          return (max + 1);
 }  }
   
 #endif  

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.17

CVSweb