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

Diff for /mandoc/mandocdb.c between version 1.249 and 1.250

version 1.249, 2017/05/05 15:17:32 version 1.250, 2017/05/17 22:27:12
Line 2122  dbwrite(struct dba *dba)
Line 2122  dbwrite(struct dba *dba)
         int              status;          int              status;
         pid_t            child;          pid_t            child;
   
           /*
            * Do not write empty databases, and delete existing ones
            * when makewhatis -u causes them to become empty.
            */
   
           dba_array_start(dba->pages);
           if (dba_array_next(dba->pages) == NULL) {
                   if (unlink(MANDOC_DB) == -1)
                           say(MANDOC_DB, "&unlink");
                   return;
           }
   
           /*
            * Build the database in a temporary file,
            * then atomically move it into place.
            */
   
         if (dba_write(MANDOC_DB "~", dba) != -1) {          if (dba_write(MANDOC_DB "~", dba) != -1) {
                 if (rename(MANDOC_DB "~", MANDOC_DB) == -1) {                  if (rename(MANDOC_DB "~", MANDOC_DB) == -1) {
                         exitcode = (int)MANDOCLEVEL_SYSERR;                          exitcode = (int)MANDOCLEVEL_SYSERR;
Line 2130  dbwrite(struct dba *dba)
Line 2147  dbwrite(struct dba *dba)
                 }                  }
                 return;                  return;
         }          }
   
           /*
            * We lack write permission and cannot replace the database
            * file, but let's at least check whether the data changed.
            */
   
         (void)strlcpy(tfn, "/tmp/mandocdb.XXXXXXXX", sizeof(tfn));          (void)strlcpy(tfn, "/tmp/mandocdb.XXXXXXXX", sizeof(tfn));
         if (mkdtemp(tfn) == NULL) {          if (mkdtemp(tfn) == NULL) {

Legend:
Removed from v.1.249  
changed lines
  Added in v.1.250

CVSweb