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

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

version 1.21, 2018/11/22 11:30:23 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>
   
 #if HAVE_ERR  #include <errno.h>
 #include <err.h>  
 #endif  
 #include <limits.h>  #include <limits.h>
 #include <signal.h>  #include <signal.h>
 #include <stddef.h>  #include <stddef.h>
Line 32 
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 83  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 92  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 221  tag_write(void)
Line 230  tag_write(void)
                 return;                  return;
         if (tag_files.tagname != NULL && ohash_find(&tag_data,          if (tag_files.tagname != NULL && ohash_find(&tag_data,
             ohash_qlookup(&tag_data, tag_files.tagname)) == NULL) {              ohash_qlookup(&tag_data, tag_files.tagname)) == NULL) {
                 warnx("%s: no such tag", tag_files.tagname);                  mandoc_msg(MANDOCERR_TAG, 0, 0, "%s", tag_files.tagname);
                 tag_files.tagname = NULL;                  tag_files.tagname = NULL;
         }          }
         stream = fdopen(tag_files.tfd, "w");          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.21  
changed lines
  Added in v.1.22

CVSweb