svn commit: r346149 - in head: contrib/mandoc usr.bin/mandoc
Baptiste Daroussin
bapt at FreeBSD.org
Fri Apr 12 10:13:20 UTC 2019
Author: bapt
Date: Fri Apr 12 10:13:17 2019
New Revision: 346149
URL: https://svnweb.freebsd.org/changeset/base/346149
Log:
Update mandoc to 1.14.5
MFC after: 2 weeks
Added:
head/contrib/mandoc/arch.c
- copied unchanged from r346148, vendor/mandoc/dist/arch.c
head/contrib/mandoc/eqn.h
- copied unchanged from r346148, vendor/mandoc/dist/eqn.h
head/contrib/mandoc/eqn_parse.h
- copied unchanged from r346148, vendor/mandoc/dist/eqn_parse.h
head/contrib/mandoc/mandoc_msg.c
- copied unchanged from r346148, vendor/mandoc/dist/mandoc_msg.c
head/contrib/mandoc/mandoc_parse.h
- copied unchanged from r346148, vendor/mandoc/dist/mandoc_parse.h
head/contrib/mandoc/tbl.h
- copied unchanged from r346148, vendor/mandoc/dist/tbl.h
head/contrib/mandoc/tbl_int.h
- copied unchanged from r346148, vendor/mandoc/dist/tbl_int.h
head/contrib/mandoc/tbl_parse.h
- copied unchanged from r346148, vendor/mandoc/dist/tbl_parse.h
Deleted:
head/contrib/mandoc/st.in
Modified:
head/contrib/mandoc/INSTALL
head/contrib/mandoc/LICENSE
head/contrib/mandoc/Makefile
head/contrib/mandoc/Makefile.depend
head/contrib/mandoc/NEWS
head/contrib/mandoc/TODO
head/contrib/mandoc/apropos.1
head/contrib/mandoc/att.c
head/contrib/mandoc/cgi.c
head/contrib/mandoc/chars.c
head/contrib/mandoc/config.h
head/contrib/mandoc/configure
head/contrib/mandoc/configure.local.example
head/contrib/mandoc/dbm.c
head/contrib/mandoc/demandoc.c
head/contrib/mandoc/eqn.c
head/contrib/mandoc/eqn_html.c
head/contrib/mandoc/eqn_term.c
head/contrib/mandoc/gmdiff
head/contrib/mandoc/html.c
head/contrib/mandoc/html.h
head/contrib/mandoc/lib.c
head/contrib/mandoc/lib.in
head/contrib/mandoc/libman.h
head/contrib/mandoc/libmandoc.h
head/contrib/mandoc/libmdoc.h
head/contrib/mandoc/main.c
head/contrib/mandoc/main.h
head/contrib/mandoc/man.1
head/contrib/mandoc/man.7
head/contrib/mandoc/man.c
head/contrib/mandoc/man.conf.5
head/contrib/mandoc/man.h
head/contrib/mandoc/man_html.c
head/contrib/mandoc/man_macro.c
head/contrib/mandoc/man_term.c
head/contrib/mandoc/man_validate.c
head/contrib/mandoc/manconf.h
head/contrib/mandoc/mandoc.1
head/contrib/mandoc/mandoc.3
head/contrib/mandoc/mandoc.c
head/contrib/mandoc/mandoc.css
head/contrib/mandoc/mandoc.h
head/contrib/mandoc/mandoc_char.7
head/contrib/mandoc/mandoc_headers.3
head/contrib/mandoc/mandoc_html.3
head/contrib/mandoc/mandocd.c
head/contrib/mandoc/mandocdb.c
head/contrib/mandoc/manpath.c
head/contrib/mandoc/mansearch.c
head/contrib/mandoc/mansearch.h
head/contrib/mandoc/mdoc.7
head/contrib/mandoc/mdoc.c
head/contrib/mandoc/mdoc.h
head/contrib/mandoc/mdoc_argv.c
head/contrib/mandoc/mdoc_html.c
head/contrib/mandoc/mdoc_macro.c
head/contrib/mandoc/mdoc_man.c
head/contrib/mandoc/mdoc_markdown.c
head/contrib/mandoc/mdoc_state.c
head/contrib/mandoc/mdoc_term.c
head/contrib/mandoc/mdoc_validate.c
head/contrib/mandoc/msec.c
head/contrib/mandoc/out.c
head/contrib/mandoc/out.h
head/contrib/mandoc/preconv.c
head/contrib/mandoc/read.c
head/contrib/mandoc/roff.7
head/contrib/mandoc/roff.c
head/contrib/mandoc/roff.h
head/contrib/mandoc/roff_html.c
head/contrib/mandoc/roff_int.h
head/contrib/mandoc/roff_term.c
head/contrib/mandoc/roff_validate.c
head/contrib/mandoc/st.c
head/contrib/mandoc/tag.c
head/contrib/mandoc/tag.h
head/contrib/mandoc/tbl.3
head/contrib/mandoc/tbl.7
head/contrib/mandoc/tbl.c
head/contrib/mandoc/tbl_data.c
head/contrib/mandoc/tbl_html.c
head/contrib/mandoc/tbl_layout.c
head/contrib/mandoc/tbl_opts.c
head/contrib/mandoc/tbl_term.c
head/contrib/mandoc/term.c
head/contrib/mandoc/term.h
head/contrib/mandoc/term_ascii.c
head/contrib/mandoc/term_tab.c
head/contrib/mandoc/test-getsubopt.c
head/contrib/mandoc/test-strcasestr.c
head/contrib/mandoc/test-stringlist.c
head/contrib/mandoc/test-strptime.c
head/contrib/mandoc/test-vasprintf.c
head/contrib/mandoc/test-wchar.c
head/contrib/mandoc/tree.c
head/usr.bin/mandoc/Makefile
Directory Properties:
head/contrib/mandoc/ (props changed)
Modified: head/contrib/mandoc/INSTALL
==============================================================================
--- head/contrib/mandoc/INSTALL Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/INSTALL Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,4 +1,4 @@
-$Id: INSTALL,v 1.22 2018/07/31 15:34:00 schwarze Exp $
+$Id: INSTALL,v 1.23 2019/03/06 15:58:10 schwarze Exp $
About the portable mandoc distribution
--------------------------------------
@@ -18,7 +18,7 @@ tech@ mailing list, too.
Enjoy using the mandoc toolset!
-Ingo Schwarze, Karlsruhe, August 2018
+Ingo Schwarze, Karlsruhe, March 2019
Installation
@@ -67,7 +67,8 @@ variables into "configure.local" and go back to step 4
7. Optionally run the regression suite.
Basically, that amounts to "cd regress && ./regress.pl".
But you should probably look at "./mandoc -l regress/regress.pl.1"
-first.
+first. In particular, regarding Solaris systems, look at the BUGS
+section of that manual page.
8. Run "sudo make install". If you intend to build a binary
package using some kind of fake root mechanism, you may need a
Modified: head/contrib/mandoc/LICENSE
==============================================================================
--- head/contrib/mandoc/LICENSE Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/LICENSE Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,8 +1,8 @@
-$Id: LICENSE,v 1.19 2018/07/31 10:18:15 schwarze Exp $
+$Id: LICENSE,v 1.21 2018/11/26 17:11:11 schwarze Exp $
-With the exceptions noted below, all code and documentation
-contained in the mandoc toolkit is protected by the Copyright
-of the following developers:
+With the exceptions noted below, all non-trivial files contained
+in the mandoc toolkit are protected by the Copyright of the following
+developers:
Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps at bsd.lv>
Copyright (c) 2010-2018 Ingo Schwarze <schwarze at openbsd.org>
@@ -12,13 +12,14 @@ Copyright (c) 2013 Franco Fichtner <franco at lastsummer.
Copyright (c) 2014 Baptiste Daroussin <bapt at freebsd.org>
Copyright (c) 2016 Ed Maste <emaste at freebsd.org>
Copyright (c) 2017 Michael Stapelberg <stapelberg at debian.org>
+Copyright (c) 2017 Anthony Bentley <bentley at openbsd.org>
Copyright (c) 1998, 2004, 2010 Todd C. Miller <Todd.Miller at courtesan.com>
Copyright (c) 2008, 2017 Otto Moerbeek <otto at drijf.net>
Copyright (c) 2004 Ted Unangst <tedu at openbsd.org>
Copyright (c) 1994 Christos Zoulas <christos at netbsd.org>
Copyright (c) 2003, 2007, 2008, 2014 Jason McIntyre <jmc at openbsd.org>
-See the individual source files for information about who contributed
+See the individual files for information about who contributed
to which file during which years.
Modified: head/contrib/mandoc/Makefile
==============================================================================
--- head/contrib/mandoc/Makefile Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/Makefile Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,7 +1,7 @@
-# $Id: Makefile,v 1.519 2018/07/31 15:34:00 schwarze Exp $
+# $Id: Makefile,v 1.530 2019/03/06 16:08:41 schwarze Exp $
#
# Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps at bsd.lv>
-# Copyright (c) 2011, 2013-2018 Ingo Schwarze <schwarze at openbsd.org>
+# Copyright (c) 2011, 2013-2019 Ingo Schwarze <schwarze at 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
@@ -15,7 +15,7 @@
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-VERSION = 1.14.4
+VERSION = 1.14.5
# === LIST OF FILES ====================================================
@@ -37,9 +37,9 @@ TESTSRCS = test-be32toh.c \
test-PATH_MAX.c \
test-pledge.c \
test-progname.c \
- test-recvmsg.c \
test-reallocarray.c \
test-recallocarray.c \
+ test-recvmsg.c \
test-rewb-bsd.c \
test-rewb-sysv.c \
test-sandbox_init.c \
@@ -54,7 +54,8 @@ TESTSRCS = test-be32toh.c \
test-vasprintf.c \
test-wchar.c
-SRCS = att.c \
+SRCS = arch.c \
+ att.c \
catman.c \
cgi.c \
chars.c \
@@ -96,6 +97,7 @@ SRCS = att.c \
man_validate.c \
mandoc.c \
mandoc_aux.c \
+ mandoc_msg.c \
mandoc_ohash.c \
mandoc_xr.c \
mandocd.c \
@@ -155,13 +157,14 @@ DISTFILES = INSTALL \
dbm_map.h \
demandoc.1 \
eqn.7 \
+ eqn.h \
+ eqn_parse.h \
gmdiff \
html.h \
lib.in \
libman.h \
libmandoc.h \
libmdoc.h \
- libroff.h \
main.h \
makewhatis.8 \
man.1 \
@@ -184,6 +187,7 @@ DISTFILES = INSTALL \
mandoc_html.3 \
mandoc_malloc.3 \
mandoc_ohash.h \
+ mandoc_parse.h \
mandoc_xr.h \
mandocd.8 \
mansearch.3 \
@@ -198,10 +202,12 @@ DISTFILES = INSTALL \
roff.h \
roff_int.h \
soelim.1 \
- st.in \
tag.h \
tbl.3 \
tbl.7 \
+ tbl.h \
+ tbl_int.h \
+ tbl_parse.h \
term.h \
$(SRCS) \
$(TESTSRCS)
@@ -230,9 +236,11 @@ LIBROFF_OBJS = eqn.o \
LIBMANDOC_OBJS = $(LIBMAN_OBJS) \
$(LIBMDOC_OBJS) \
$(LIBROFF_OBJS) \
+ arch.o \
chars.o \
mandoc.o \
mandoc_aux.o \
+ mandoc_msg.o \
mandoc_ohash.o \
mandoc_xr.o \
msec.o \
@@ -320,6 +328,7 @@ SOELIM_OBJS = soelim.o \
WWW_MANS = apropos.1.html \
demandoc.1.html \
man.1.html \
+ man.options.1.html \
mandoc.1.html \
soelim.1.html \
man.cgi.3.html \
@@ -336,20 +345,27 @@ WWW_MANS = apropos.1.html \
eqn.7.html \
man.7.html \
mandoc_char.7.html \
- mandocd.8.html \
mdoc.7.html \
roff.7.html \
tbl.7.html \
catman.8.html \
makewhatis.8.html \
man.cgi.8.html \
+ mandocd.8.html
+
+WWW_INCS = eqn.h.html \
+ html.h.html \
man.h.html \
manconf.h.html \
mandoc.h.html \
mandoc_aux.h.html \
+ mandoc_parse.h.html \
mansearch.h.html \
mdoc.h.html \
- roff.h.html
+ roff.h.html \
+ tbl.h.html \
+ tbl_int.h.html \
+ tbl_parse.h.html
# === USER CONFIGURATION ===============================================
@@ -361,9 +377,9 @@ all: mandoc demandoc soelim $(BUILD_TARGETS) Makefile.
install: base-install $(INSTALL_TARGETS)
-www: $(WWW_MANS)
+www: $(WWW_MANS) $(WWW_INCS)
-$(WWW_MANS): mandoc
+$(WWW_MANS) $(WWW_INCS): mandoc
.PHONY: base-install cgi-install install www-install
.PHONY: clean distclean depend
@@ -382,7 +398,7 @@ clean:
rm -f mandocd catman catman.o $(MANDOCD_OBJS)
rm -f demandoc $(DEMANDOC_OBJS)
rm -f soelim $(SOELIM_OBJS)
- rm -f $(WWW_MANS) mandoc.tar.gz mandoc.sha256
+ rm -f $(WWW_MANS) $(WWW_INCS) mandoc*.tar.gz mandoc*.sha256
rm -rf *.dSYM
base-install: mandoc demandoc soelim
@@ -420,8 +436,8 @@ lib-install: libmandoc.a
mkdir -p $(DESTDIR)$(INCLUDEDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man3
$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
- $(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
- $(DESTDIR)$(INCLUDEDIR)
+ $(INSTALL_LIB) eqn.h man.h mandoc.h mandoc_aux.h mandoc_parse.h \
+ mdoc.h roff.h tbl.h $(DESTDIR)$(INCLUDEDIR)
$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
mansearch.3 mchars_alloc.3 tbl.3 $(DESTDIR)$(MANDIR)/man3
@@ -475,11 +491,14 @@ uninstall:
rm -f $(DESTDIR)$(MANDIR)/man3/mansearch.3
rm -f $(DESTDIR)$(MANDIR)/man3/mchars_alloc.3
rm -f $(DESTDIR)$(MANDIR)/man3/tbl.3
+ rm -f $(DESTDIR)$(INCLUDEDIR)/eqn.h
rm -f $(DESTDIR)$(INCLUDEDIR)/man.h
rm -f $(DESTDIR)$(INCLUDEDIR)/mandoc.h
rm -f $(DESTDIR)$(INCLUDEDIR)/mandoc_aux.h
+ rm -f $(DESTDIR)$(INCLUDEDIR)/mandoc_parse.h
rm -f $(DESTDIR)$(INCLUDEDIR)/mdoc.h
rm -f $(DESTDIR)$(INCLUDEDIR)/roff.h
+ rm -f $(DESTDIR)$(INCLUDEDIR)/tbl.h
[ ! -e $(DESTDIR)$(INCLUDEDIR) ] || rmdir $(DESTDIR)$(INCLUDEDIR)
regress: all
@@ -516,7 +535,9 @@ soelim: $(SOELIM_OBJS)
# --- maintainer targets ---
www-install: www
- $(INSTALL_DATA) $(WWW_MANS) mandoc.css $(HTDOCDIR)
+ $(INSTALL_DATA) mandoc.css $(HTDOCDIR)
+ $(INSTALL_DATA) $(WWW_MANS) $(HTDOCDIR)/man
+ $(INSTALL_DATA) $(WWW_INCS) $(HTDOCDIR)/includes
depend: config.h
mkdep -f Makefile.depend $(CFLAGS) $(SRCS)
@@ -564,6 +585,10 @@ mandoc-$(VERSION).tar.gz: $(DISTFILES)
( cd .dist/ && tar zcf ../$@ mandoc-$(VERSION) )
rm -rf .dist/
+dist-install: dist
+ $(INSTALL_DATA) mandoc-$(VERSION).tar.gz mandoc-$(VERSION).sha256 \
+ $(HTDOCDIR)/snapshots
+
# === SUFFIX RULES =====================================================
.SUFFIXES: .1 .3 .5 .7 .8 .h
@@ -573,5 +598,6 @@ mandoc-$(VERSION).tar.gz: $(DISTFILES)
highlight -I $< > $@
.1.1.html .3.3.html .5.5.html .7.7.html .8.8.html: mandoc
- ./mandoc -Thtml -Wall,stop \
- -Ostyle=mandoc.css,man=%N.%S.html,includes=%I.html $< > $@
+ mandoc -Thtml -Wwarning,stop \
+ -O 'style=/mandoc.css,man=/man/%N.%S.html;https://man.openbsd.org/%N.%S,includes=/includes/%I.html' \
+ $< > $@
Modified: head/contrib/mandoc/Makefile.depend
==============================================================================
--- head/contrib/mandoc/Makefile.depend Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/Makefile.depend Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,6 +1,7 @@
-att.o: att.c config.h mandoc.h roff.h mdoc.h libmdoc.h
+arch.o: arch.c config.h roff.h
+att.o: att.c config.h roff.h libmdoc.h
catman.o: catman.c config.h compat_fts.h
-cgi.o: cgi.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h main.h manconf.h mansearch.h cgi.h
+cgi.o: cgi.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h main.h manconf.h mansearch.h cgi.h
chars.o: chars.c config.h mandoc.h mandoc_aux.h mandoc_ohash.h compat_ohash.h libmandoc.h
compat_err.o: compat_err.c config.h
compat_fts.o: compat_fts.c config.h compat_fts.h
@@ -26,54 +27,55 @@ dba_read.o: dba_read.c mandoc_aux.h mansearch.h dba_ar
dba_write.o: dba_write.c config.h dba_write.h
dbm.o: dbm.c config.h mansearch.h dbm_map.h dbm.h
dbm_map.o: dbm_map.c config.h mansearch.h dbm_map.h dbm.h
-demandoc.o: demandoc.c config.h mandoc.h roff.h man.h mdoc.h
-eqn.o: eqn.c config.h mandoc_aux.h mandoc.h roff.h libmandoc.h libroff.h
-eqn_html.o: eqn_html.c config.h mandoc.h out.h html.h
-eqn_term.o: eqn_term.c config.h mandoc.h out.h term.h
+demandoc.o: demandoc.c config.h mandoc.h roff.h man.h mdoc.h mandoc_parse.h
+eqn.o: eqn.c config.h mandoc_aux.h mandoc.h roff.h eqn.h libmandoc.h eqn_parse.h
+eqn_html.o: eqn_html.c config.h mandoc.h eqn.h out.h html.h
+eqn_term.o: eqn_term.c config.h eqn.h out.h term.h
html.o: html.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h out.h html.h manconf.h main.h
-lib.o: lib.c config.h mandoc.h roff.h mdoc.h libmdoc.h lib.in
-main.o: main.c config.h mandoc_aux.h mandoc.h mandoc_xr.h roff.h mdoc.h man.h tag.h main.h manconf.h mansearch.h
+lib.o: lib.c config.h roff.h libmdoc.h lib.in
+main.o: main.c config.h mandoc_aux.h mandoc.h mandoc_xr.h roff.h mdoc.h man.h mandoc_parse.h tag.h main.h manconf.h mansearch.h
man.o: man.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h
man_html.o: man_html.c config.h mandoc_aux.h mandoc.h roff.h man.h out.h html.h main.h
man_macro.o: man_macro.c config.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h
-man_term.o: man_term.c config.h mandoc_aux.h mandoc.h roff.h man.h out.h term.h main.h
+man_term.o: man_term.c config.h mandoc_aux.h roff.h man.h out.h term.h main.h
man_validate.o: man_validate.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h
-mandoc.o: mandoc.c config.h mandoc_aux.h mandoc.h roff.h libmandoc.h
+mandoc.o: mandoc.c config.h mandoc_aux.h mandoc.h roff.h libmandoc.h roff_int.h
mandoc_aux.o: mandoc_aux.c config.h mandoc.h mandoc_aux.h
+mandoc_msg.o: mandoc_msg.c mandoc.h
mandoc_ohash.o: mandoc_ohash.c mandoc_aux.h mandoc_ohash.h compat_ohash.h
mandoc_xr.o: mandoc_xr.c mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc_xr.h
-mandocd.o: mandocd.c config.h mandoc.h roff.h mdoc.h man.h main.h manconf.h
-mandocdb.o: mandocdb.c config.h compat_fts.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mdoc.h man.h manconf.h mansearch.h dba_array.h dba.h
+mandocd.o: mandocd.c config.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h main.h manconf.h
+mandocdb.o: mandocdb.c config.h compat_fts.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h manconf.h mansearch.h dba_array.h dba.h
manpath.o: manpath.c config.h mandoc_aux.h manconf.h
-mansearch.o: mansearch.c config.h mandoc.h mandoc_aux.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h dbm.h
+mansearch.o: mansearch.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h dbm.h
mdoc.o: mdoc.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
mdoc_argv.o: mdoc_argv.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
mdoc_html.o: mdoc_html.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h out.h html.h main.h
mdoc_macro.o: mdoc_macro.c config.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
mdoc_man.o: mdoc_man.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h out.h main.h
mdoc_markdown.o: mdoc_markdown.c mandoc_aux.h mandoc.h roff.h mdoc.h main.h
-mdoc_state.o: mdoc_state.c mandoc.h roff.h mdoc.h libmandoc.h libmdoc.h
-mdoc_term.o: mdoc_term.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h out.h term.h tag.h main.h
+mdoc_state.o: mdoc_state.c mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
+mdoc_term.o: mdoc_term.c config.h mandoc_aux.h roff.h mdoc.h out.h term.h tag.h main.h
mdoc_validate.o: mdoc_validate.c config.h mandoc_aux.h mandoc.h mandoc_xr.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
msec.o: msec.c config.h mandoc.h libmandoc.h msec.in
-out.o: out.c config.h mandoc_aux.h mandoc.h out.h
-preconv.o: preconv.c config.h mandoc.h libmandoc.h
-read.o: read.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h libmandoc.h
-roff.o: roff.c config.h mandoc.h mandoc_aux.h mandoc_ohash.h compat_ohash.h roff.h libmandoc.h roff_int.h libroff.h predefs.in
+out.o: out.c config.h mandoc_aux.h tbl.h out.h
+preconv.o: preconv.c config.h mandoc.h roff.h mandoc_parse.h libmandoc.h
+read.o: read.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h libmandoc.h roff_int.h
+roff.o: roff.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mandoc_parse.h libmandoc.h roff_int.h tbl_parse.h eqn_parse.h predefs.in
roff_html.o: roff_html.c mandoc.h roff.h out.h html.h
roff_term.o: roff_term.c mandoc.h roff.h out.h term.h
roff_validate.o: roff_validate.c mandoc.h roff.h libmandoc.h roff_int.h
soelim.o: soelim.c config.h compat_stringlist.h
-st.o: st.c config.h mandoc.h roff.h mdoc.h libmdoc.h st.in
+st.o: st.c config.h mandoc.h roff.h libmdoc.h
tag.o: tag.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h tag.h
-tbl.o: tbl.c config.h mandoc.h mandoc_aux.h libmandoc.h libroff.h
-tbl_data.o: tbl_data.c config.h mandoc.h mandoc_aux.h libmandoc.h libroff.h
-tbl_html.o: tbl_html.c config.h mandoc.h out.h html.h
-tbl_layout.o: tbl_layout.c config.h mandoc.h mandoc_aux.h libmandoc.h libroff.h
-tbl_opts.o: tbl_opts.c config.h mandoc.h libmandoc.h libroff.h
-tbl_term.o: tbl_term.c config.h mandoc.h out.h term.h
+tbl.o: tbl.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_parse.h tbl_int.h
+tbl_data.o: tbl_data.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h
+tbl_html.o: tbl_html.c config.h mandoc.h tbl.h out.h html.h
+tbl_layout.o: tbl_layout.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h
+tbl_opts.o: tbl_opts.c config.h mandoc.h tbl.h libmandoc.h tbl_int.h
+tbl_term.o: tbl_term.c config.h mandoc.h tbl.h out.h term.h
term.o: term.c config.h mandoc.h mandoc_aux.h out.h term.h main.h
term_ascii.o: term_ascii.c config.h mandoc.h mandoc_aux.h out.h term.h manconf.h main.h
term_ps.o: term_ps.c config.h mandoc_aux.h out.h term.h manconf.h main.h
term_tab.o: term_tab.c mandoc_aux.h out.h term.h
-tree.o: tree.c config.h mandoc.h roff.h mdoc.h man.h main.h
+tree.o: tree.c config.h mandoc.h roff.h mdoc.h man.h tbl.h eqn.h main.h
Modified: head/contrib/mandoc/NEWS
==============================================================================
--- head/contrib/mandoc/NEWS Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/NEWS Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,6 +1,80 @@
-$Id: NEWS,v 1.32 2018/08/08 14:47:38 schwarze Exp $
+$Id: NEWS,v 1.34 2019/03/10 09:32:00 schwarze Exp $
This file lists the most important changes in the mandoc.bsd.lv distribution.
+
+Changes in version 1.14.5, released on March 10, 2019
+
+ --- MAJOR NEW FEATURES ---
+ * apropos(1): improve POSIX compliance by accepting case-insensitive
+ extended regular expressions by default
+ * new -O tag[=term] output option (open a page at the definition of a term)
+ * tbl(7) -T html: spanning and horizontal and vertical alignment of cells
+ * tbl(7) -T html: draw lines on the edges of table cells
+ * tbl(7) -T utf8: render lines with the Unicode box drawing characters
+ * mandoc is now able to handle the manual pages of the groff package.
+ --- MINOR NEW FEATURES ---
+ * -T html: new option -O toc (table of contents)
+ * -T html: second argument to -O man to support local and remote links
+ * mdoc(7) .Bd -centered now fills the text contained in it
+ * man-ext .SY and .YS macros (synopsis block)
+ * man-ext .TQ macro (tagged paragraph without vertical space before it)
+ * tbl(7) \& explicit alignment indicator
+ * roff(7) .shift, .while, and .return requests
+ * roff(7) .char request (output glyph definition)
+ * roff(7) .nop request (no operation)
+ * roff(7) .ft request: handle the CB, CI, and CR fonts
+ * roff(7) .if c conditional (character available)
+ * roff(7) \\$@ escape sequence (insert all macro arguments, quoted)
+ * roff(7) \*(.T predefined string (interpolate output device name)
+ * roff(7) \[charNNN] escape sequence (for printable ASCII characters)
+ * roff(7) \# escape sequence (line continuation with comment)
+ --- HTML OUTPUT SYNTAX CORRECTIONS ---
+ * Render .br and \p as <br/>, not as an empty <div>.
+ * Render .Pp and .PP as <p> and automatically close it when needed.
+ * Stop writing empty list elements for non-compact .Bl -tag lists.
+ * Do not put <p> inside <a> if .UR or .MT contain .PP.
+ * Implement tooltips purely in CSS rather than abusing title= attributes.
+ --- MINOR FUNCTIONAL IMPROVEMENTS ---
+ * many improvements to the handling of fill and no-fill mode
+ * tbl(7): better column widths in the presence of horizontal spans
+ * several minor improvements to escape sequence handling
+ * several minor improvements to manual font handling
+ * portability: autodetect need for _GNU_SOURCE or _OPENBSD_SOURCE
+ * portability: autodetect whether less(1) supports the -T option
+ * large numbers of bugfixes of diverse kinds
+ --- STRUCTURAL IMPROVEMENTS ---
+ * Disentangle eqn(7) and tbl(7) from other parser header files,
+ and clean up some parser data structures.
+ * Substantially simplify error and warning message infrastructure.
+ --- THANKS TO ---
+ * John Gardner for crucial help implementing tooltips in CSS.
+ * Alexander Bluhm, Raphael Graf, Ted Unangst (OpenBSD)
+ and Daniel Sabogal (Alpine Linux) for patches.
+ * Anthony Bentley and Jason McIntyre (OpenBSD) for documentation patches,
+ suggesting new features, bug reports, and useful discussions.
+ * Kyle Evans and Baptiste Daroussin (FreeBSD) for minor patches.
+ * Pali Rohar for suggesting multiple new features and for reporting
+ several bugs and missing features.
+ * Klemens Nanni (OpenBSD) for suggesting multiple new features.
+ * Kristaps Dzonsons (bsd.lv), Marc Espie (OpenBSD), Adam Kalisz,
+ and Laura Morales for suggesting new features.
+ * Wolfram Schneider and Yuri Pankov (FreeBSD) for reporting missing features.
+ * Edward Tomasz Napierala (FreeBSD) for suggesting a feature improvement.
+ * Thomas Klausner (NetBSD) and Sevan Janiyan (SmartOS)
+ for bug reports and release testing.
+ * Bryan Steele, Janne Johansson, Kurt Mosiejczuk, Mike Belopuhov, Theo
+ Buehler, Todd Miller (OpenBSD), Andreas Gustafsson, Christos Zoulas,
+ Robert Elz (NetBSD), Kurt Jaeger (FreeBSD), Fabio Scotoni, Kelvin
+ Sherlock, Mark Harris, Orestis Ioannou, Raf Czlonka, and Sean Farrell
+ for bug reports.
+ * Ulrich Spoerlein (FreeBSD), Leah Neukirchen (Void Linux),
+ Matej Cepl (openSUSE), and Jan Stary (MacOS X) for release testing.
+ * Brian Callahan and Stuart Henderson (OpenBSD) for help
+ with the OpenBSD groff port.
+ * Bertrand Garrigues, Branden Robinson, Ralph Corderoy, and Werner
+ Lemberg (GNU troff) for checking groff patches.
+ * Scott Cheloha, Theo de Raadt (OpenBSD)
+ and Natanael Copa (Alpine Linux) for useful discussions.
Changes in version 1.14.4, released on August 8, 2018
Modified: head/contrib/mandoc/TODO
==============================================================================
--- head/contrib/mandoc/TODO Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/TODO Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,6 +1,6 @@
************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.258 2018/08/06 14:16:30 schwarze Exp $
+* $Id: TODO,v 1.289 2019/03/04 13:01:57 schwarze Exp $
************************************************************************
Many issues are annotated for difficulty as follows:
@@ -38,18 +38,6 @@ are mere guesses, and some may be wrong.
--- missing roff features ----------------------------------------------
-- .nop prints its arguments as text,
- see groff(7) for an example
-
-- .ft CB selects constant-width bold font
- see groff_out(7) for examples
-
-- \*(.T prints the device being used,
- see groff_char(7) for an example
-
-- \[charNN], \[charNNN] prints a single-byte codepoint
- see groff_char(7) for examples
-
- .ad (adjust margins)
.ad l -- adjust left margin only (flush left)
.ad r -- adjust right margin only (flush right)
@@ -69,34 +57,11 @@ are mere guesses, and some may be wrong.
reported by brad@ Sat, 15 Jan 2011 15:45:23 -0500
loc *** exist *** algo *** size ** imp *
-- .while and .shift
- found by jca@ in ratpoison(1) Sun, 30 Jun 2013 12:01:09 +0200
- loc * exist ** algo ** size ** imp **
-
- \w'' improve width measurements
would not be very useful without an expression parser, see below
needed for Tcl_NewStringObj(3) via wiz@ Wed, 5 Mar 2014 22:27:43 +0100
loc ** exist *** algo *** size * imp ***
-- \\ in high-level macro arguments
- Currently, \\ is expanded in two situations:
- 1) macro and string definition (roff.c setstrn())
- 2) macro argument parsing (mandoc.c mandoc_getarg())
- For user defined macros, the second happens in time because of ROFF_REPARSE.
- But for standard high-level macros, it only happens after entering the
- high level parsers, which is too late because the code doesn't get
- back to roff.c roff_res() from that point. Because this requires
- distinguishing requests, user-defined macros and standard macros
- on the roff_res() level, it is hard to solve without the parser reorg.
- Found by naddy@ in devel/cutils cobfusc(1) Mon, 16 Feb 2015 19:10:52 +0100
- loc *** exist *** algo *** size ** imp *
-
-- check for missing roff escape sequences, implement those that are
- trivial even if not usually appearing in manual pages, gracefully
- ignore the non-trivial ones, document what they are supposed to do
- and what mandoc does instead
- loc * exist ** algo * size * imp *
-
--- missing mdoc features ----------------------------------------------
- .Bl -column .Xo support is missing
@@ -112,13 +77,6 @@ are mere guesses, and some may be wrong.
from jmc@ Wed, 14 Jul 2010 18:10:32 +0100
loc * exist *** algo *** size ** imp **
-- .Bd -centered implies -filled, not -unfilled, which is not
- easy to implement; it requires code similar to .ce, which
- we don't have either.
- Besides, groff has bug causing text right *before* .Bd -centered
- to be centered as well.
- loc *** exist *** algo ** size ** imp ** (parser reorg would help)
-
- .Bd -filled should not be the same as .Bd -ragged, but align both
the left and right margin. In groff, it is implemented in terms
of .ad b, which we don't have either. Found in cksum(1).
@@ -174,15 +132,6 @@ are mere guesses, and some may be wrong.
--- missing man features -----------------------------------------------
-- .SY and .YS,
- used by many groff manual pages
-
-- preserve punctuation following .ME,
- see ditroff(7) for an example
-
-- .TQ tagged paragraph continuation,
- see groff_diff(7) for examples
-
- groff_www(7) .MTO and .URL
These macros were used by the GNU grep(1) man page.
The groff_www(7) manual page itself uses them, too.
@@ -193,18 +142,10 @@ are mere guesses, and some may be wrong.
--- missing tbl features -----------------------------------------------
-- the "s" layout column specifier is used for placement of data
- into columns, but ignored during column width calculations
- synaptics(4) found by tedu@ Mon, 17 Aug 2015 21:17:42 -0400
- loc * exist ** algo *** size * imp **
-
- vertical centering in cells vertically spanned with ^
pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200
loc * exist *** algo *** size ** imp *
-- support .ds requests inside tbl(7) code,
- see tbl(1) for an example
-
- support mdoc(7) and man(7) macros inside tbl(7) code;
probably requires the parser reorg and letting tbl(7)
use roff_node such that macro sets can mix;
@@ -212,35 +153,24 @@ are mere guesses, and some may be wrong.
loc *** exist ** algo *** size ** imp ***
- look at the POSIX manuals in the books/man-pages-posix port,
- they use some unsupported tbl(7) features.
+ they use some unsupported tbl(7) features, mostly macros in tbl(7).
loc * exist ** algo ** size ** imp ***
- look what Joerg Schilling manual pages use
Thu, 19 Mar 2015 18:31:48 +0100
-- use Unicode U+2500 to U+256C for table borders
- in tbl(7) -Tutf-8 output
- suggested by bentley@ Tue, 14 Oct 2014 04:10:55 -0600
- loc * exist ** algo * size * imp **
-
-- implement horizontal and vertical alignment in HTML output
- pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200
- loc * exist * algo * size * imp ***
-
-- implement cell spanning in HTML output
- pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200
- loc * exist * algo ** size ** imp **
-
-- implement table borders in HTML output
- pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200
- loc * exist * algo ** size ** imp **
-
--- missing eqn features -----------------------------------------------
- In a matrix, break the output line after each matrix line.
- Found in the discussion at CDBUG 2015.
- Suggested by Avi Weinstock.
- loc * exist * algo * size * imp **
+ Found in the discussion at CDBUG 2015. Suggested by Avi Weinstock.
+ This may not be the ideal solution after all: eqn(7) matrices
+ are lists of columns, so Avi's proposal would show each *column*
+ on its own *line*, which is likely to cause confusion.
+ A better solution, but much harder to implement, would be to
+ actually show the coordinates of column vectors on different
+ terminal output lines, using the clumnated output facilities
+ developed for .Bl -tag, .Bl -column, and also used for tbl(7).
+ loc * exist * algo ** size ** imp **
- The "size" keyword is parsed, but ignored by the formatter.
loc * exist * algo * size * imp *
@@ -341,9 +271,6 @@ are mere guesses, and some may be wrong.
* formatting issues: ugly output
************************************************************************
-- .UR can nest inside .TP,
- see roff(7) for examples
-
- revisit empty in-line macros
look at the difference between "Em x Em ." and "Sq x Em ."
Carsten Kunze Fri, 12 Dec 2014 00:15:41 +0100
@@ -400,6 +327,8 @@ are mere guesses, and some may be wrong.
- a line starting with "\fB something" counts as starting with whitespace
and triggers a line break; found in audio/normalize-mp3(1)
+ This will become easier once escape sequences are represented
+ by syntax tree nodes.
loc ** exist * algo ** size * imp **
- formatting /usr/local/man/man1/latex2man.1 with groff and mandoc
@@ -421,17 +350,6 @@ are mere guesses, and some may be wrong.
--- HTML issues --------------------------------------------------------
-- wrap Sh and Ss content into <div>
- Laura Morales <lauretas at mail dot com> 21 Apr 2018 18:10:48 +0200
- (Evaluate whether this is really useful and has no adverse
- side effects before implementing; if it is possible,
- it does seem cleaner.)
- loc ** exist ** algo * size * imp ***
-
-- format ".IP *" etc. as <ul> rather than <dl>
- https://github.com/Debian/debiman/issues/67
- loc ** exist ** algo ** size * imp ***
-
- .Bf at the beginning of a paragraph inserts a bogus 1ex horizontal
space, see for example random(3). Introduced in
http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_html.c.diff?r1=1.91&r2=1.92
@@ -558,18 +476,11 @@ are mere guesses, and some may be wrong.
all over mdoc_macro.c and all subtly different.
loc ** exist ** algo ** size ** imp **
-- style message about suspicious uses of - vs. \- vs. \(mi
- e.g. -1 is likely wrong (from the mdoclint TODO)
-
- warn about punctuation - e.g. ',' and ';' - at the beginning
of a text line, if it is likely intended to follow the preceding
output without intervening whitespace, in particular after a
macro line (from the mdoclint TODO)
-- mandoc_special does not really check the escape sequence,
- but just the overall format
- loc ** exist ** algo *** size ** imp **
-
- makewhatis -p complains about language subdirectories:
/usr/local/man//ru: Unknown directory part
@@ -578,9 +489,6 @@ are mere guesses, and some may be wrong.
* documentation issues
************************************************************************
-- dashes, hyphens, and minus signs in manual pages
- jmc@ Fri, 28 Mar 2014 07:19:27 +0000
-
- mark macros as: page structure domain, manual domain, general text domain
is this useful?
@@ -606,10 +514,6 @@ are mere guesses, and some may be wrong.
Found by Aaron M. Ucko in the GNU Hurd via Bdale Garbee,
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829624
-- We use the input line number at several places to distinguish
- same-line from different-line input. That plainly doesn't work
- with user-defined macros, leading to random breakage.
-
- Is it possible to further simplify ENDBODY_SPACE?
- Find better ways to prevent endless loops
@@ -629,8 +533,6 @@ are mere guesses, and some may be wrong.
output through libz.
- Privilege separation (see OpenSSH).
- Enable caching support via HTTP 304 and If-Modified-Since.
- - Have Mac OSX systems automatically disable -static compilation of the
- CGI: -static isn't supported.
************************************************************************
* to improve in the groff_mdoc(7) macros
Modified: head/contrib/mandoc/apropos.1
==============================================================================
--- head/contrib/mandoc/apropos.1 Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/apropos.1 Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,7 +1,7 @@
-.\" $Id: apropos.1,v 1.47 2018/02/23 18:54:02 schwarze Exp $
+.\" $Id: apropos.1,v 1.49 2018/11/22 12:33:52 schwarze Exp $
.\"
.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps at bsd.lv>
-.\" Copyright (c) 2011, 2012, 2014, 2017 Ingo Schwarze <schwarze at openbsd.org>
+.\" Copyright (c) 2011,2012,2014,2017,2018 Ingo Schwarze <schwarze at 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
@@ -15,7 +15,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: February 23 2018 $
+.Dd $Mdocdate: November 22 2018 $
.Dt APROPOS 1
.Os
.Sh NAME
@@ -51,8 +51,7 @@ searches for
.Xr makewhatis 8
databases in the default paths stipulated by
.Xr man 1
-and uses case-insensitive substring matching
-.Pq the Cm = No operator
+and uses case-insensitive extended regular expression matching
over manual names and descriptions
.Pq the Li \&Nm No and Li \&Nd No macro keys .
Multiple terms imply pairwise
@@ -93,7 +92,7 @@ format.
Search for all words in
.Ar expression
in manual page names only.
-The search is case insensitive and matches whole words only.
+The search is case-insensitive and matches whole words only.
In this mode, macro keys, comparison operators, and logical operators
are not available.
.It Fl k
@@ -123,7 +122,7 @@ Restrict the search to pages for the specified
.Xr machine 1
architecture.
.Ar arch
-is case insensitive.
+is case-insensitive.
By default, pages for all architectures are shown.
.It Fl s Ar section
Restrict the search to the specified section of the manual.
@@ -199,7 +198,7 @@ Operator
.Cm =
evaluates a substring, while
.Cm \(ti
-evaluates a regular expression.
+evaluates a case-sensitive extended regular expression.
.It Fl i Ar term
If
.Ar term
@@ -208,26 +207,10 @@ is evaluated case-insensitively.
Has no effect on substring terms.
.El
.Pp
-Results are sorted according to the following criteria:
-.Bl -enum
-.It
-The manpath directory tree the page is found in, according to the
-order specified with
-.Fl M ,
-.Fl m ,
-the
-.Ev MANPATH
-environment variable, the
-.Xr man.conf 5
-configuration file, or the default documented in
-.Xr man.conf 5 .
-.It
-The section number in ascending numerical order.
-.It
-The page name in ascending
+Results are sorted first according to the section number in ascending
+numerical order, then by the page name in ascending
.Xr ascii 7
alphabetical order, case-insensitive.
-.El
.Pp
Each output line is formatted as
.Pp
@@ -339,7 +322,7 @@ function arguments appearing on
.Ic \&Fn
lines
.It Li \&Fn
-fuction names marked up with
+function names marked up with
.Ic \&Fo
macros
.It Li \&In
@@ -407,7 +390,7 @@ Search for
.Qq .cf
as a substring of manual names and descriptions:
.Pp
-.Dl $ apropos .cf
+.Dl $ apropos =.cf
.Pp
Include matches for
.Qq .cnf
@@ -415,9 +398,9 @@ and
.Qq .conf
as well:
.Pp
-.Dl $ apropos .cf .cnf .conf
+.Dl $ apropos =.cf =.cnf =.conf
.Pp
-Search in names and descriptions using a regular expression:
+Search in names and descriptions using a case-sensitive regular expression:
.Pp
.Dl $ apropos \(aq\(tiset.?[ug]id\(aq
.Pp
@@ -448,6 +431,24 @@ The following two invocations are equivalent:
.Xr man 1 ,
.Xr re_format 7 ,
.Xr makewhatis 8
+.Sh STANDARDS
+The
+.Nm
+utility is compliant with the
+.St -p1003.1-2008
+specification of
+.Xr man 1
+.Fl k .
+.Pp
+All options, the
+.Nm whatis
+command, support for logical operators, macro keys,
+substring matching, sorting of results, the environment variables
+.Ev MANPAGER
+and
+.Ev MANPATH ,
+the database format, and the configuration file
+are extensions to that specification.
.Sh HISTORY
Part of the functionality of
.Nm whatis
Copied: head/contrib/mandoc/arch.c (from r346148, vendor/mandoc/dist/arch.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/contrib/mandoc/arch.c Fri Apr 12 10:13:17 2019 (r346149, copy of r346148, vendor/mandoc/dist/arch.c)
@@ -0,0 +1,54 @@
+/* $Id: arch.c,v 1.14 2019/03/04 13:01:57 schwarze Exp $ */
+/*
+ * Copyright (c) 2017, 2019 Ingo Schwarze <schwarze at 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
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#include "config.h"
+
+#include <string.h>
+
+#include "roff.h"
+
+int
+arch_valid(const char *arch, enum mandoc_os os)
+{
+ const char *openbsd_arch[] = {
+ "alpha", "amd64", "arm64", "armv7", "hppa", "i386",
+ "landisk", "loongson", "luna88k", "macppc", "mips64",
+ "octeon", "sgi", "socppc", "sparc64", NULL
+ };
+ const char *netbsd_arch[] = {
+ "acorn26", "acorn32", "algor", "alpha", "amiga",
+ "arc", "atari",
+ "bebox", "cats", "cesfic", "cobalt", "dreamcast",
+ "emips", "evbarm", "evbmips", "evbppc", "evbsh3", "evbsh5",
+ "hp300", "hpcarm", "hpcmips", "hpcsh", "hppa",
+ "i386", "ibmnws", "luna68k",
+ "mac68k", "macppc", "mipsco", "mmeye", "mvme68k", "mvmeppc",
+ "netwinder", "news68k", "newsmips", "next68k",
+ "pc532", "playstation2", "pmax", "pmppc", "prep",
+ "sandpoint", "sbmips", "sgimips", "shark",
+ "sparc", "sparc64", "sun2", "sun3",
+ "vax", "walnut", "x68k", "x86", "x86_64", "xen", NULL
+ };
+ const char **arches[] = { NULL, netbsd_arch, openbsd_arch };
+ const char **arch_p;
+
+ if ((arch_p = arches[os]) == NULL)
+ return 1;
+ for (; *arch_p != NULL; arch_p++)
+ if (strcmp(*arch_p, arch) == 0)
+ return 1;
+ return 0;
+}
Modified: head/contrib/mandoc/att.c
==============================================================================
--- head/contrib/mandoc/att.c Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/att.c Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,4 +1,4 @@
-/* $Id: att.c,v 1.16 2017/06/24 14:38:32 schwarze Exp $ */
+/* $Id: att.c,v 1.18 2018/12/13 11:55:46 schwarze Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps at bsd.lv>
*
@@ -19,9 +19,7 @@
#include <sys/types.h>
#include <string.h>
-#include "mandoc.h"
#include "roff.h"
-#include "mdoc.h"
#include "libmdoc.h"
#define LINE(x, y) \
Modified: head/contrib/mandoc/cgi.c
==============================================================================
--- head/contrib/mandoc/cgi.c Fri Apr 12 05:43:01 2019 (r346148)
+++ head/contrib/mandoc/cgi.c Fri Apr 12 10:13:17 2019 (r346149)
@@ -1,7 +1,7 @@
-/* $Id: cgi.c,v 1.158 2018/05/29 20:32:45 schwarze Exp $ */
+/* $Id: cgi.c,v 1.166 2019/03/06 12:32:41 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps at bsd.lv>
- * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze at usta.de>
+ * Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze <schwarze at usta.de>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -38,6 +38,7 @@
#include "roff.h"
#include "mdoc.h"
#include "man.h"
+#include "mandoc_parse.h"
#include "main.h"
#include "manconf.h"
#include "mansearch.h"
@@ -69,6 +70,7 @@ enum focus {
static void html_print(const char *);
static void html_putchar(char);
static int http_decode(char *);
+static void http_encode(const char *p);
static void parse_manpath_conf(struct req *);
static void parse_path_info(struct req *req, const char *path);
static void parse_query_string(struct req *, const char *);
@@ -90,6 +92,7 @@ static void resp_format(const struct req *, const ch
static void resp_searchform(const struct req *, enum focus);
static void resp_show(const struct req *, const char *);
static void set_query_attr(char **, char **);
+static int validate_arch(const char *);
static int validate_filename(const char *);
static int validate_manpath(const struct req *, const char *);
static int validate_urifrag(const char *);
@@ -316,6 +319,18 @@ http_decode(char *p)
}
static void
+http_encode(const char *p)
+{
+ for (; *p != '\0'; p++) {
+ if (isalnum((unsigned char)*p) == 0 &&
+ strchr("-._~", *p) == NULL)
+ printf("%%%2.2X", (unsigned char)*p);
+ else
+ putchar(*p);
+ }
+}
+
+static void
resp_begin_http(int code, const char *msg)
{
@@ -490,6 +505,18 @@ validate_manpath(const struct req *req, const char* ma
}
static int
+validate_arch(const char *arch)
+{
+ int i;
+
+ for (i = 0; i < arch_MAX; i++)
+ if (strcmp(arch, arch_names[i]) == 0)
+ return 1;
+
+ return 0;
+}
+
+static int
validate_filename(const char *file)
{
@@ -562,9 +589,11 @@ pg_redirect(const struct req *req, const char *name)
printf("%s/", req->q.manpath);
if (req->q.arch != NULL)
printf("%s/", req->q.arch);
- printf("%s", name);
- if (req->q.sec != NULL)
- printf(".%s", req->q.sec);
+ http_encode(name);
+ if (req->q.sec != NULL) {
+ putchar('.');
+ http_encode(req->q.sec);
+ }
printf("\r\nContent-Type: text/html; charset=utf-8\r\n\r\n");
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-head
mailing list