aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tag.c
diff options
context:
space:
mode:
Diffstat (limited to 'tag.c')
-rw-r--r--tag.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/tag.c b/tag.c
index 473ea7b6..4ba38241 100644
--- a/tag.c
+++ b/tag.c
@@ -1,6 +1,6 @@
-/* $Id: tag.c,v 1.21 2018/11/22 11:30:23 schwarze Exp $ */
+/* $Id: tag.c,v 1.22 2019/07/10 19:39:01 schwarze Exp $ */
/*
- * 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
* purpose with or without fee is hereby granted, provided that the above
@@ -18,9 +18,7 @@
#include <sys/types.h>
-#if HAVE_ERR
-#include <err.h>
-#endif
+#include <errno.h>
#include <limits.h>
#include <signal.h>
#include <stddef.h>
@@ -32,6 +30,7 @@
#include "mandoc_aux.h"
#include "mandoc_ohash.h"
+#include "mandoc.h"
#include "tag.h"
struct tag_entry {
@@ -83,8 +82,10 @@ tag_init(void)
/* 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;
+ }
/* Create both temporary output files. */
@@ -92,12 +93,20 @@ tag_init(void)
sizeof(tag_files.ofn));
(void)strlcpy(tag_files.tfn, "/tmp/man.XXXXXXXXXX",
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;
- 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;
- if (dup2(ofd, STDOUT_FILENO) == -1)
+ }
+ if (dup2(ofd, STDOUT_FILENO) == -1) {
+ mandoc_msg(MANDOCERR_DUP, 0, 0, "%s", strerror(errno));
goto fail;
+ }
close(ofd);
/*
@@ -221,10 +230,11 @@ tag_write(void)
return;
if (tag_files.tagname != NULL && ohash_find(&tag_data,
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;
}
- 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);
while (entry != NULL) {
if (stream != NULL && entry->prio >= 0)