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

Diff for /mandoc/mandocdb.c between version 1.199 and 1.200

version 1.199, 2015/10/12 00:08:15 version 1.200, 2015/10/12 00:32:55
Line 584  treescan(void)
Line 584  treescan(void)
   
         f = fts_open((char * const *)argv,          f = fts_open((char * const *)argv,
             FTS_PHYSICAL | FTS_NOCHDIR, NULL);              FTS_PHYSICAL | FTS_NOCHDIR, NULL);
         if (NULL == f) {          if (f == NULL) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;
                 say("", "&fts_open");                  say("", "&fts_open");
                 return 0;                  return 0;
Line 593  treescan(void)
Line 593  treescan(void)
         dsec = arch = NULL;          dsec = arch = NULL;
         dform = FORM_NONE;          dform = FORM_NONE;
   
         while (NULL != (ff = fts_read(f))) {          while ((ff = fts_read(f)) != NULL) {
                 path = ff->fts_path + 2;                  path = ff->fts_path + 2;
                 switch (ff->fts_info) {                  switch (ff->fts_info) {
   
Line 602  treescan(void)
Line 602  treescan(void)
                  * then get handled just like regular files.                   * then get handled just like regular files.
                  */                   */
                 case FTS_SL:                  case FTS_SL:
                         if (NULL == realpath(path, buf)) {                          if (realpath(path, buf) == NULL) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "&realpath");                                          say(path, "&realpath");
                                 continue;                                  continue;
Line 617  treescan(void)
Line 617  treescan(void)
                                 continue;                                  continue;
                         }                          }
                         /* Use logical inode to avoid mpages dupe. */                          /* Use logical inode to avoid mpages dupe. */
                         if (-1 == stat(path, ff->fts_statp)) {                          if (stat(path, ff->fts_statp) == -1) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "&stat");                                          say(path, "&stat");
                                 continue;                                  continue;
Line 629  treescan(void)
Line 629  treescan(void)
                  * stored directory data and handling the filename.                   * stored directory data and handling the filename.
                  */                   */
                 case FTS_F:                  case FTS_F:
                         if (0 == strcmp(path, MANDOC_DB))                          if ( ! strcmp(path, MANDOC_DB))
                                 continue;                                  continue;
                         if ( ! use_all && ff->fts_level < 2) {                          if ( ! use_all && ff->fts_level < 2) {
                                 if (warnings)                                  if (warnings)
Line 638  treescan(void)
Line 638  treescan(void)
                         }                          }
                         gzip = 0;                          gzip = 0;
                         fsec = NULL;                          fsec = NULL;
                         while (NULL == fsec) {                          while (fsec == NULL) {
                                 fsec = strrchr(ff->fts_name, '.');                                  fsec = strrchr(ff->fts_name, '.');
                                 if (NULL == fsec || strcmp(fsec+1, "gz"))                                  if (fsec == NULL || strcmp(fsec+1, "gz"))
                                         break;                                          break;
                                 gzip = 1;                                  gzip = 1;
                                 *fsec = '\0';                                  *fsec = '\0';
                                 fsec = NULL;                                  fsec = NULL;
                         }                          }
                         if (NULL == fsec) {                          if (fsec == NULL) {
                                 if ( ! use_all) {                                  if ( ! use_all) {
                                         if (warnings)                                          if (warnings)
                                                 say(path,                                                  say(path,
                                                     "No filename suffix");                                                      "No filename suffix");
                                         continue;                                          continue;
                                 }                                  }
                         } else if (0 == strcmp(++fsec, "html")) {                          } else if ( ! strcmp(++fsec, "html")) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "Skip html");                                          say(path, "Skip html");
                                 continue;                                  continue;
                         } else if (0 == strcmp(fsec, "ps")) {                          } else if ( ! strcmp(fsec, "ps")) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "Skip ps");                                          say(path, "Skip ps");
                                 continue;                                  continue;
                         } else if (0 == strcmp(fsec, "pdf")) {                          } else if ( ! strcmp(fsec, "pdf")) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "Skip pdf");                                          say(path, "Skip pdf");
                                 continue;                                  continue;
                         } else if ( ! use_all &&                          } else if ( ! use_all &&
                             ((FORM_SRC == dform &&                              ((dform == FORM_SRC &&
                               strncmp(fsec, dsec, strlen(dsec))) ||                                strncmp(fsec, dsec, strlen(dsec))) ||
                              (FORM_CAT == dform && strcmp(fsec, "0")))) {                               (dform == FORM_CAT && strcmp(fsec, "0")))) {
                                 if (warnings)                                  if (warnings)
                                         say(path, "Wrong filename suffix");                                          say(path, "Wrong filename suffix");
                                 continue;                                  continue;
Line 713  treescan(void)
Line 713  treescan(void)
                          * If we're not in use_all, enforce it.                           * If we're not in use_all, enforce it.
                          */                           */
                         cp = ff->fts_name;                          cp = ff->fts_name;
                         if (FTS_DP == ff->fts_info)                          if (ff->fts_info == FTS_DP) {
                                   dform = FORM_NONE;
                                   dsec = NULL;
                                 break;                                  break;
                           }
   
                         if (0 == strncmp(cp, "man", 3)) {                          if ( ! strncmp(cp, "man", 3)) {
                                 dform = FORM_SRC;                                  dform = FORM_SRC;
                                 dsec = cp + 3;                                  dsec = cp + 3;
                         } else if (0 == strncmp(cp, "cat", 3)) {                          } else if ( ! strncmp(cp, "cat", 3)) {
                                 dform = FORM_CAT;                                  dform = FORM_CAT;
                                 dsec = cp + 3;                                  dsec = cp + 3;
                         } else {                          } else {
Line 727  treescan(void)
Line 730  treescan(void)
                                 dsec = NULL;                                  dsec = NULL;
                         }                          }
   
                         if (NULL != dsec || use_all)                          if (dsec != NULL || use_all)
                                 break;                                  break;
   
                         if (warnings)                          if (warnings)
Line 739  treescan(void)
Line 742  treescan(void)
                          * Possibly our architecture.                           * Possibly our architecture.
                          * If we're descending, keep tabs on it.                           * If we're descending, keep tabs on it.
                          */                           */
                         if (FTS_DP != ff->fts_info && NULL != dsec)                          if (ff->fts_info != FTS_DP && dsec != NULL)
                                 arch = ff->fts_name;                                  arch = ff->fts_name;
                         else                          else
                                 arch = NULL;                                  arch = NULL;
                         break;                          break;
                 default:                  default:
                         if (FTS_DP == ff->fts_info || use_all)                          if (ff->fts_info == FTS_DP || use_all)
                                 break;                                  break;
                         if (warnings)                          if (warnings)
                                 say(path, "Extraneous directory part");                                  say(path, "Extraneous directory part");

Legend:
Removed from v.1.199  
changed lines
  Added in v.1.200

CVSweb