From: schwarze@mdocml.bsd.lv
To: source@mdocml.bsd.lv
Subject: mdocml: Simplify the mparse_open() interface.
Date: Thu, 7 Jan 2016 21:53:44 -0500 (EST) [thread overview]
Message-ID: <11388471879340437416.enqueue@fantadrom.bsd.lv> (raw)
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
reply other threads:[~2016-01-08 2:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11388471879340437416.enqueue@fantadrom.bsd.lv \
--to=schwarze@mdocml.bsd.lv \
--cc=source@mdocml.bsd.lv \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).