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

Diff for /mandoc/tag.c between version 1.20 and 1.22

version 1.20, 2018/10/23 20:42:37 version 1.22, 2019/07/10 19:39:01
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2015, 2016, 2018 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2015, 2016, 2018, 2019 Ingo Schwarze <schwarze@openbsd.org>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 18 
Line 18 
   
 #include <sys/types.h>  #include <sys/types.h>
   
   #include <errno.h>
 #include <limits.h>  #include <limits.h>
 #include <signal.h>  #include <signal.h>
 #include <stddef.h>  #include <stddef.h>
Line 29 
Line 30 
   
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "mandoc_ohash.h"  #include "mandoc_ohash.h"
   #include "mandoc.h"
 #include "tag.h"  #include "tag.h"
   
 struct tag_entry {  struct tag_entry {
Line 80  tag_init(void)
Line 82  tag_init(void)
   
         /* Save the original standard output for use by the pager. */          /* Save the original standard output for use by the pager. */
   
         if ((tag_files.ofd = dup(STDOUT_FILENO)) == -1)          if ((tag_files.ofd = dup(STDOUT_FILENO)) == -1) {
                   mandoc_msg(MANDOCERR_DUP, 0, 0, "%s", strerror(errno));
                 goto fail;                  goto fail;
           }
   
         /* Create both temporary output files. */          /* Create both temporary output files. */
   
Line 89  tag_init(void)
Line 93  tag_init(void)
             sizeof(tag_files.ofn));              sizeof(tag_files.ofn));
         (void)strlcpy(tag_files.tfn, "/tmp/man.XXXXXXXXXX",          (void)strlcpy(tag_files.tfn, "/tmp/man.XXXXXXXXXX",
             sizeof(tag_files.tfn));              sizeof(tag_files.tfn));
         if ((ofd = mkstemp(tag_files.ofn)) == -1)          if ((ofd = mkstemp(tag_files.ofn)) == -1) {
                   mandoc_msg(MANDOCERR_MKSTEMP, 0, 0,
                       "%s: %s", tag_files.ofn, strerror(errno));
                 goto fail;                  goto fail;
         if ((tag_files.tfd = mkstemp(tag_files.tfn)) == -1)          }
           if ((tag_files.tfd = mkstemp(tag_files.tfn)) == -1) {
                   mandoc_msg(MANDOCERR_MKSTEMP, 0, 0,
                       "%s: %s", tag_files.tfn, strerror(errno));
                 goto fail;                  goto fail;
         if (dup2(ofd, STDOUT_FILENO) == -1)          }
           if (dup2(ofd, STDOUT_FILENO) == -1) {
                   mandoc_msg(MANDOCERR_DUP, 0, 0, "%s", strerror(errno));
                 goto fail;                  goto fail;
           }
         close(ofd);          close(ofd);
   
         /*          /*
Line 216  tag_write(void)
Line 228  tag_write(void)
   
         if (tag_files.tfd <= 0)          if (tag_files.tfd <= 0)
                 return;                  return;
         stream = fdopen(tag_files.tfd, "w");          if (tag_files.tagname != NULL && ohash_find(&tag_data,
               ohash_qlookup(&tag_data, tag_files.tagname)) == NULL) {
                   mandoc_msg(MANDOCERR_TAG, 0, 0, "%s", tag_files.tagname);
                   tag_files.tagname = NULL;
           }
           if ((stream = fdopen(tag_files.tfd, "w")) == NULL)
                   mandoc_msg(MANDOCERR_FDOPEN, 0, 0, "%s", strerror(errno));
         entry = ohash_first(&tag_data, &slot);          entry = ohash_first(&tag_data, &slot);
         while (entry != NULL) {          while (entry != NULL) {
                 if (stream != NULL && entry->prio >= 0)                  if (stream != NULL && entry->prio >= 0)

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.22

CVSweb