source@mandoc.bsd.lv
 help / color / Atom feed
* mandoc: Move two more output state variables into the new struct 
@ 2019-07-27 13:41 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2019-07-27 13:41 UTC (permalink / raw)
  To: source

Log Message:
-----------
Move two more output state variables into the new struct outstate.
Also, move setting of tag_files.tagname into tag_init().
No functional change.

Modified Files:
--------------
    mandoc:
        main.c
        tag.c
        tag.h

Revision Data
-------------
Index: tag.h
===================================================================
RCS file: /home/cvs/mandoc/mandoc/tag.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -Ltag.h -Ltag.h -u -p -r1.8 -r1.9
--- tag.h
+++ tag.h
@@ -1,6 +1,6 @@
 /*      $Id$    */
 /*
- * Copyright (c) 2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2015, 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
@@ -26,7 +26,7 @@ struct	tag_files {
 };
 
 
-struct tag_files *tag_init(void);
+struct tag_files *tag_init(char *);
 void	 tag_put(const char *, int, size_t);
 void	 tag_write(void);
 void	 tag_unlink(void);
Index: tag.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/tag.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -Ltag.c -Ltag.c -u -p -r1.24 -r1.25
--- tag.c
+++ tag.c
@@ -53,7 +53,7 @@ static struct tag_files	 tag_files;
  * but for simplicity, create it anyway.
  */
 struct tag_files *
-tag_init(void)
+tag_init(char *tagname)
 {
 	struct sigaction	 sa;
 	int			 ofd;
@@ -61,6 +61,7 @@ tag_init(void)
 	ofd = -1;
 	tag_files.tfd = -1;
 	tag_files.tcpgid = -1;
+	tag_files.tagname = tagname;
 
 	/* Clean up when dying from a signal. */
 
@@ -129,6 +130,7 @@ fail:
 	*tag_files.tfn = '\0';
 	tag_files.ofd = -1;
 	tag_files.tfd = -1;
+	tag_files.tagname = NULL;
 	return NULL;
 }
 
Index: main.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/main.c,v
retrieving revision 1.335
retrieving revision 1.336
diff -Lmain.c -Lmain.c -u -p -r1.335 -r1.336
--- main.c
+++ main.c
@@ -78,7 +78,9 @@ enum	outt {
 };
 
 struct	outstate {
+	struct tag_files *tag_files;	/* Tagging state variables. */
 	void		 *outdata;	/* data for output */
+	int		  use_pager;
 	int		  wstop;	/* stop after a file with a warning */
 	enum outt	  outtype;	/* which output to use */
 };
@@ -117,7 +119,6 @@ main(int argc, char *argv[])
 	struct mansearch search;	/* Search options. */
 	struct manpage	*res, *resp;	/* Search results. */
 	struct mparse	*mp;		/* Opaque parser object. */
-	struct tag_files *tag_files;	/* Tagging state variables. */
 	const char	*conf_file;	/* -C: alternate config file. */
 	const char	*os_s;		/* -I: Operating system for display. */
 	const char	*progname, *sec, *thisarg;
@@ -130,7 +131,6 @@ main(int argc, char *argv[])
 	size_t		 i, ssz;
 	int		 options;	/* Parser options. */
 	int		 show_usage;	/* Invalid argument: give up. */
-	int		 use_pager;	/* According to command line. */
 	int		 prio, best_prio;
 	int		 fd, startdir;
 	int		 c;
@@ -195,10 +195,10 @@ main(int argc, char *argv[])
 	/* Formatter options. */
 
 	memset(&outst, 0, sizeof(outst));
+	outst.tag_files = NULL;
 	outst.outtype = OUTT_LOCALE;
+	outst.use_pager = 1;
 
-	use_pager = 1;
-	tag_files = NULL;
 	show_usage = 0;
 	outmode = OUTMODE_DEF;
 
@@ -216,14 +216,14 @@ main(int argc, char *argv[])
 			conf_file = optarg;
 			break;
 		case 'c':
-			use_pager = 0;
+			outst.use_pager = 0;
 			break;
 		case 'f':
 			search.argmode = ARG_WORD;
 			break;
 		case 'h':
 			conf.output.synopsisonly = 1;
-			use_pager = 0;
+			outst.use_pager = 0;
 			outmode = OUTMODE_ALL;
 			break;
 		case 'I':
@@ -324,7 +324,7 @@ main(int argc, char *argv[])
 		switch (search.argmode) {
 		case ARG_FILE:
 			outmode = OUTMODE_ALL;
-			use_pager = 0;
+			outst.use_pager = 0;
 			break;
 		case ARG_NAME:
 			outmode = OUTMODE_ONE;
@@ -353,9 +353,9 @@ main(int argc, char *argv[])
 	if (outmode == OUTMODE_FLN ||
 	    outmode == OUTMODE_LST ||
 	    !isatty(STDOUT_FILENO))
-		use_pager = 0;
+		outst.use_pager = 0;
 
-	if (use_pager &&
+	if (outst.use_pager &&
 	    (conf.output.width == 0 || conf.output.indent == 0) &&
 	    ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1 &&
 	    ws.ws_col > 1) {
@@ -366,7 +366,7 @@ main(int argc, char *argv[])
 	}
 
 #if HAVE_PLEDGE
-	if (use_pager == 0) {
+	if (outst.use_pager == 0) {
 		if (pledge("stdio rpath", NULL) == -1) {
 			mandoc_msg(MANDOCERR_PLEDGE, 0, 0,
 			    "%s", strerror(errno));
@@ -533,7 +533,7 @@ main(int argc, char *argv[])
 	/* mandoc(1) */
 
 #if HAVE_PLEDGE
-	if (use_pager) {
+	if (outst.use_pager) {
 		if (pledge("stdio rpath tmppath tty proc exec", NULL) == -1) {
 			mandoc_msg(MANDOCERR_PLEDGE, 0, 0,
 			    "%s", strerror(errno));
@@ -559,11 +559,8 @@ main(int argc, char *argv[])
 	mp = mparse_alloc(options, os_e, os_s);
 
 	if (argc < 1) {
-		if (use_pager) {
-			tag_files = tag_init();
-			if (tag_files != NULL)
-				tag_files->tagname = conf.output.tag;
-		}
+		if (outst.use_pager)
+			outst.tag_files = tag_init(conf.output.tag);
 		thisarg = "<stdin>";
 		mandoc_msg_setinfilename(thisarg);
 		parse(mp, STDIN_FILENO, thisarg, &outst, &conf.output);
@@ -598,11 +595,9 @@ main(int argc, char *argv[])
 		mandoc_msg_setinfilename(thisarg);
 		fd = mparse_open(mp, thisarg);
 		if (fd != -1) {
-			if (use_pager) {
-				use_pager = 0;
-				tag_files = tag_init();
-				if (tag_files != NULL)
-					tag_files->tagname = conf.output.tag;
+			if (outst.use_pager) {
+				outst.use_pager = 0;
+				outst.tag_files = tag_init(conf.output.tag);
 			}
 
 			if (resp == NULL || resp->form == FORM_SRC)
@@ -611,12 +606,12 @@ main(int argc, char *argv[])
 				passthrough(fd, conf.output.synopsisonly);
 
 			if (ferror(stdout)) {
-				if (tag_files != NULL) {
+				if (outst.tag_files != NULL) {
 					mandoc_msg(MANDOCERR_WRITE, 0, 0,
-					    "%s: %s", tag_files->ofn,
+					    "%s: %s", outst.tag_files->ofn,
 					    strerror(errno));
 					tag_unlink();
-					tag_files = NULL;
+					outst.tag_files = NULL;
 				} else
 					mandoc_msg(MANDOCERR_WRITE, 0, 0,
 					    "%s", strerror(errno));
@@ -677,10 +672,10 @@ out:
 		mansearch_free(res, sz);
 	}
 
-	if (tag_files != NULL) {
+	if (outst.tag_files != NULL) {
 		fclose(stdout);
 		tag_write();
-		run_pager(tag_files);
+		run_pager(outst.tag_files);
 		tag_unlink();
 	} else if (outst.outtype != OUTT_LINT &&
 	    (search.argmode == ARG_FILE || sz > 0))
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-27 13:41 mandoc: Move two more output state variables into the new struct schwarze

source@mandoc.bsd.lv

Archives are clonable: git clone --mirror http://inbox.vuxu.org/mandoc-source

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.mandoc.source


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git