source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Simplify the mparse_open() interface.
@ 2016-01-08  2:53 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2016-01-08  2:53 UTC (permalink / raw)
  To: source

Log Message:
-----------
Simplify the mparse_open() interface.
Just return the file descriptor or -1 on error;
there is just one kind of error anyway.
Suggested by Christos Zoulas (NetBSD).

Modified Files:
--------------
    mdocml:
        demandoc.c
        main.c
        mandoc.3
        mandoc.h
        mandocdb.c
        read.c

Revision Data
-------------
Index: mandocdb.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mandocdb.c,v
retrieving revision 1.212
retrieving revision 1.213
diff -Lmandocdb.c -Lmandocdb.c -u -p -r1.212 -r1.213
--- mandocdb.c
+++ mandocdb.c
@@ -1134,8 +1134,7 @@ mpages_merge(struct mparse *mp)
 		man = NULL;
 		sodest = NULL;
 
-		mparse_open(mp, &fd, mlink->file);
-		if (fd == -1) {
+		if ((fd = mparse_open(mp, mlink->file)) == -1) {
 			say(mlink->file, "&open");
 			goto nextpage;
 		}
Index: read.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/read.c,v
retrieving revision 1.147
retrieving revision 1.148
diff -Lread.c -Lread.c -u -p -r1.147 -r1.148
--- read.c
+++ read.c
@@ -1,7 +1,7 @@
 /*	$Id$ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010-2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2016 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2010, 2012 Joerg Sonnenberger <joerg@netbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -539,8 +539,7 @@ rerun:
 			if (curp->secondary)
 				curp->secondary->sz -= pos + 1;
 			save_file = curp->file;
-			if (mparse_open(curp, &fd, ln.buf + of) ==
-			    MANDOCLEVEL_OK) {
+			if ((fd = mparse_open(curp, ln.buf + of)) != -1) {
 				mparse_readfd(curp, fd, ln.buf + of);
 				close(fd);
 				curp->file = save_file;
@@ -777,10 +776,11 @@ mparse_readfd(struct mparse *curp, int f
 	return curp->file_status;
 }
 
-enum mandoclevel
-mparse_open(struct mparse *curp, int *fd, const char *file)
+int
+mparse_open(struct mparse *curp, const char *file)
 {
 	char		 *cp;
+	int		  fd;
 
 	curp->file = file;
 	cp = strrchr(file, '.');
@@ -788,8 +788,8 @@ mparse_open(struct mparse *curp, int *fd
 
 	/* First try to use the filename as it is. */
 
-	if ((*fd = open(file, O_RDONLY)) != -1)
-		return MANDOCLEVEL_OK;
+	if ((fd = open(file, O_RDONLY)) != -1)
+		return fd;
 
 	/*
 	 * If that doesn't work and the filename doesn't
@@ -798,18 +798,18 @@ mparse_open(struct mparse *curp, int *fd
 
 	if ( ! curp->gzip) {
 		mandoc_asprintf(&cp, "%s.gz", file);
-		*fd = open(file, O_RDONLY);
+		fd = open(file, O_RDONLY);
 		free(cp);
-		if (*fd != -1) {
+		if (fd != -1) {
 			curp->gzip = 1;
-			return MANDOCLEVEL_OK;
+			return fd;
 		}
 	}
 
 	/* Neither worked, give up. */
 
 	mandoc_msg(MANDOCERR_FILE, curp, 0, 0, strerror(errno));
-	return MANDOCLEVEL_ERROR;
+	return -1;
 }
 
 struct mparse *
Index: main.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/main.c,v
retrieving revision 1.261
retrieving revision 1.262
diff -Lmain.c -Lmain.c -u -p -r1.261 -r1.262
--- main.c
+++ main.c
@@ -1,7 +1,7 @@
 /*	$Id$ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2012, 2014-2016 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -126,7 +126,6 @@ main(int argc, char *argv[])
 	size_t		 isec, i, sz;
 	int		 prio, best_prio;
 	char		 sec;
-	enum mandoclevel rctmp;
 	enum outmode	 outmode;
 	int		 fd;
 	int		 show_usage;
@@ -459,11 +458,7 @@ main(int argc, char *argv[])
 	}
 
 	while (argc > 0) {
-		rctmp = mparse_open(curp.mp, &fd,
-		    resp != NULL ? resp->file : *argv);
-		if (rc < rctmp)
-			rc = rctmp;
-
+		fd = mparse_open(curp.mp, resp != NULL ? resp->file : *argv);
 		if (fd != -1) {
 			if (use_pager) {
 				tag_files = tag_init();
@@ -482,7 +477,8 @@ main(int argc, char *argv[])
 
 			if (argc > 1 && curp.outtype <= OUTT_UTF8)
 				ascii_sepline(curp.outdata);
-		}
+		} else if (rc < MANDOCLEVEL_ERROR)
+			rc = MANDOCLEVEL_ERROR;
 
 		if (MANDOCLEVEL_OK != rc && curp.wstop)
 			break;
Index: mandoc.h
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mandoc.h,v
retrieving revision 1.208
retrieving revision 1.209
diff -Lmandoc.h -Lmandoc.h -u -p -r1.208 -r1.209
--- mandoc.h
+++ mandoc.h
@@ -1,7 +1,7 @@
 /*	$Id$ */
 /*
  * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010-2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2016 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
@@ -423,7 +423,7 @@ const char	 *mchars_spec2str(const char 
 struct mparse	 *mparse_alloc(int, enum mandoclevel, mandocmsg, const char *);
 void		  mparse_free(struct mparse *);
 void		  mparse_keep(struct mparse *);
-enum mandoclevel  mparse_open(struct mparse *, int *, const char *);
+int		  mparse_open(struct mparse *, const char *);
 enum mandoclevel  mparse_readfd(struct mparse *, int, const char *);
 enum mandoclevel  mparse_readmem(struct mparse *, void *, size_t,
 			const char *);
Index: mandoc.3
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mandoc.3,v
retrieving revision 1.34
retrieving revision 1.35
diff -Lmandoc.3 -Lmandoc.3 -u -p -r1.34 -r1.35
--- mandoc.3
+++ mandoc.3
@@ -73,10 +73,9 @@
 .Fo mparse_keep
 .Fa "struct mparse *parse"
 .Fc
-.Ft "enum mandoclevel"
+.Ft int
 .Fo mparse_open
 .Fa "struct mparse *parse"
-.Fa "int *fd"
 .Fa "const char *fname"
 .Fc
 .Ft "enum mandoclevel"
@@ -388,9 +387,7 @@ does not already end in
 try again after appending
 .Ql .gz .
 Save the information whether the file is zipped or not.
-Return a file descriptor open for reading in
-.Fa fd ,
-or -1 on failure.
+Return a file descriptor open for reading or -1 on failure.
 It can be passed to
 .Fn mparse_readfd
 or used directly.
Index: demandoc.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/demandoc.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -Ldemandoc.c -Ldemandoc.c -u -p -r1.25 -r1.26
--- demandoc.c
+++ demandoc.c
@@ -87,7 +87,7 @@ main(int argc, char *argv[])
 
 	for (i = 0; i < argc; i++) {
 		mparse_reset(mp);
-		if (mparse_open(mp, &fd, argv[i]) != MANDOCLEVEL_OK) {
+		if ((fd = mparse_open(mp, argv[i])) == -1) {
 			perror(argv[i]);
 			continue;
 		}
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

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

only message in thread, other threads:[~2016-01-08  2:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-08  2:53 mdocml: Simplify the mparse_open() interface schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).