From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id d8798516 for ; Thu, 7 Jan 2016 21:53:44 -0500 (EST) Date: Thu, 7 Jan 2016 21:53:44 -0500 (EST) Message-Id: <11388471879340437416.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Simplify the mparse_open() interface. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 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 - * Copyright (c) 2010-2015 Ingo Schwarze + * Copyright (c) 2010-2016 Ingo Schwarze * Copyright (c) 2010, 2012 Joerg Sonnenberger * * 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 - * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze + * Copyright (c) 2010-2012, 2014-2016 Ingo Schwarze * Copyright (c) 2010 Joerg Sonnenberger * * 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 - * Copyright (c) 2010-2015 Ingo Schwarze + * Copyright (c) 2010-2016 Ingo Schwarze * * 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