aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mandoc.3
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-11-26 23:42:14 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-11-26 23:42:14 +0000
commitcf199a76d662055ce96b65d3442832db41fbc63c (patch)
tree742aa626bed96e2494214c7a0bdbf3f553525abf /mandoc.3
parent0334f84d7012e2930aa3d735e3c95f156bb3a679 (diff)
downloadmandoc-cf199a76d662055ce96b65d3442832db41fbc63c.tar.gz
mandoc-cf199a76d662055ce96b65d3442832db41fbc63c.tar.zst
mandoc-cf199a76d662055ce96b65d3442832db41fbc63c.zip
Let mparse_readfd() use mparse_open() and mparse_wait()
and let mparse_open() fall back to .gz files such that .so works even when the target is zipped, requested by and in part using ideas from <bapt at FreeBSD>. While here, make sure files are readable before forking, both for efficiency and for better error reporting.
Diffstat (limited to 'mandoc.3')
-rw-r--r--mandoc.325
1 files changed, 18 insertions, 7 deletions
diff --git a/mandoc.3 b/mandoc.3
index 08a0d168..f05fdac9 100644
--- a/mandoc.3
+++ b/mandoc.3
@@ -1,4 +1,4 @@
-.\" $Id: mandoc.3,v 1.28 2014/11/26 21:40:17 schwarze Exp $
+.\" $Id: mandoc.3,v 1.29 2014/11/26 23:42:14 schwarze Exp $
.\"
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
.\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -396,6 +396,12 @@ open with
.Xr gunzip 1 ;
otherwise, with
.Xr open 2 .
+If
+.Xr open 2
+fails, append
+.Pa .gz
+and try with
+.Xr gunzip 1 .
Return a file descriptor open for reading in
.Fa fd ,
or -1 on failure.
@@ -410,14 +416,18 @@ implemented in
Parse a file or file descriptor.
If
.Va fd
-is -1,
+is -1, open
.Va fname
-is opened for reading.
+with
+.Fn mparse_open .
Otherwise,
.Va fname
is assumed to be the name associated with
.Va fd .
-This may be called multiple times with different parameters; however,
+Calls
+.Fn mparse_wait
+before returning.
+This function may be called multiple times with different parameters; however,
.Fn mparse_reset
should be invoked between parses.
Declared in
@@ -461,11 +471,12 @@ implemented in
.It Fn mparse_wait
Bury a
.Xr gunzip 1
-child process
-.Fa child_pid
-that was spawned with
+child process that was spawned with
.Fn mparse_open .
To be called after the parse sequence is complete.
+Not needed after
+.Fn mparse_readfd ,
+but does no harm in that case, either.
Returns
.Dv MANDOCLEVEL_OK
on success and