Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Jun 2019 08:00:33 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r349013 - in stable/12: contrib/mandoc usr.bin/mandoc
Message-ID:  <201906130800.x5D80XXc019906@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Thu Jun 13 08:00:32 2019
New Revision: 349013
URL: https://svnweb.freebsd.org/changeset/base/349013

Log:
  MFC r346149:
  
  Update mandoc to 1.14.5
  
  Relnotes:	yes

Added:
  stable/12/contrib/mandoc/arch.c
     - copied unchanged from r346149, head/contrib/mandoc/arch.c
  stable/12/contrib/mandoc/eqn.h
     - copied unchanged from r346149, head/contrib/mandoc/eqn.h
  stable/12/contrib/mandoc/eqn_parse.h
     - copied unchanged from r346149, head/contrib/mandoc/eqn_parse.h
  stable/12/contrib/mandoc/mandoc_msg.c
     - copied unchanged from r346149, head/contrib/mandoc/mandoc_msg.c
  stable/12/contrib/mandoc/mandoc_parse.h
     - copied unchanged from r346149, head/contrib/mandoc/mandoc_parse.h
  stable/12/contrib/mandoc/tbl.h
     - copied unchanged from r346149, head/contrib/mandoc/tbl.h
  stable/12/contrib/mandoc/tbl_int.h
     - copied unchanged from r346149, head/contrib/mandoc/tbl_int.h
  stable/12/contrib/mandoc/tbl_parse.h
     - copied unchanged from r346149, head/contrib/mandoc/tbl_parse.h
Deleted:
  stable/12/contrib/mandoc/st.in
Modified:
  stable/12/contrib/mandoc/INSTALL
  stable/12/contrib/mandoc/LICENSE
  stable/12/contrib/mandoc/Makefile
  stable/12/contrib/mandoc/Makefile.depend
  stable/12/contrib/mandoc/NEWS
  stable/12/contrib/mandoc/TODO
  stable/12/contrib/mandoc/apropos.1
  stable/12/contrib/mandoc/att.c
  stable/12/contrib/mandoc/cgi.c
  stable/12/contrib/mandoc/chars.c
  stable/12/contrib/mandoc/config.h
  stable/12/contrib/mandoc/configure
  stable/12/contrib/mandoc/configure.local.example
  stable/12/contrib/mandoc/dbm.c
  stable/12/contrib/mandoc/demandoc.c
  stable/12/contrib/mandoc/eqn.c
  stable/12/contrib/mandoc/eqn_html.c
  stable/12/contrib/mandoc/eqn_term.c
  stable/12/contrib/mandoc/gmdiff
  stable/12/contrib/mandoc/html.c
  stable/12/contrib/mandoc/html.h
  stable/12/contrib/mandoc/lib.c
  stable/12/contrib/mandoc/lib.in
  stable/12/contrib/mandoc/libman.h
  stable/12/contrib/mandoc/libmandoc.h
  stable/12/contrib/mandoc/libmdoc.h
  stable/12/contrib/mandoc/main.c
  stable/12/contrib/mandoc/main.h
  stable/12/contrib/mandoc/man.1
  stable/12/contrib/mandoc/man.7
  stable/12/contrib/mandoc/man.c
  stable/12/contrib/mandoc/man.conf.5
  stable/12/contrib/mandoc/man.h
  stable/12/contrib/mandoc/man_html.c
  stable/12/contrib/mandoc/man_macro.c
  stable/12/contrib/mandoc/man_term.c
  stable/12/contrib/mandoc/man_validate.c
  stable/12/contrib/mandoc/manconf.h
  stable/12/contrib/mandoc/mandoc.1
  stable/12/contrib/mandoc/mandoc.3
  stable/12/contrib/mandoc/mandoc.c
  stable/12/contrib/mandoc/mandoc.css
  stable/12/contrib/mandoc/mandoc.h
  stable/12/contrib/mandoc/mandoc_char.7
  stable/12/contrib/mandoc/mandoc_headers.3
  stable/12/contrib/mandoc/mandoc_html.3
  stable/12/contrib/mandoc/mandocd.c
  stable/12/contrib/mandoc/mandocdb.c
  stable/12/contrib/mandoc/manpath.c
  stable/12/contrib/mandoc/mansearch.c
  stable/12/contrib/mandoc/mansearch.h
  stable/12/contrib/mandoc/mdoc.7
  stable/12/contrib/mandoc/mdoc.c
  stable/12/contrib/mandoc/mdoc.h
  stable/12/contrib/mandoc/mdoc_argv.c
  stable/12/contrib/mandoc/mdoc_html.c
  stable/12/contrib/mandoc/mdoc_macro.c
  stable/12/contrib/mandoc/mdoc_man.c
  stable/12/contrib/mandoc/mdoc_markdown.c
  stable/12/contrib/mandoc/mdoc_state.c
  stable/12/contrib/mandoc/mdoc_term.c
  stable/12/contrib/mandoc/mdoc_validate.c
  stable/12/contrib/mandoc/msec.c
  stable/12/contrib/mandoc/out.c
  stable/12/contrib/mandoc/out.h
  stable/12/contrib/mandoc/preconv.c
  stable/12/contrib/mandoc/read.c
  stable/12/contrib/mandoc/roff.7
  stable/12/contrib/mandoc/roff.c
  stable/12/contrib/mandoc/roff.h
  stable/12/contrib/mandoc/roff_html.c
  stable/12/contrib/mandoc/roff_int.h
  stable/12/contrib/mandoc/roff_term.c
  stable/12/contrib/mandoc/roff_validate.c
  stable/12/contrib/mandoc/st.c
  stable/12/contrib/mandoc/tag.c
  stable/12/contrib/mandoc/tag.h
  stable/12/contrib/mandoc/tbl.3
  stable/12/contrib/mandoc/tbl.7
  stable/12/contrib/mandoc/tbl.c
  stable/12/contrib/mandoc/tbl_data.c
  stable/12/contrib/mandoc/tbl_html.c
  stable/12/contrib/mandoc/tbl_layout.c
  stable/12/contrib/mandoc/tbl_opts.c
  stable/12/contrib/mandoc/tbl_term.c
  stable/12/contrib/mandoc/term.c
  stable/12/contrib/mandoc/term.h
  stable/12/contrib/mandoc/term_ascii.c
  stable/12/contrib/mandoc/term_tab.c
  stable/12/contrib/mandoc/test-getsubopt.c
  stable/12/contrib/mandoc/test-strcasestr.c
  stable/12/contrib/mandoc/test-stringlist.c
  stable/12/contrib/mandoc/test-strptime.c
  stable/12/contrib/mandoc/test-vasprintf.c
  stable/12/contrib/mandoc/test-wchar.c
  stable/12/contrib/mandoc/tree.c
  stable/12/usr.bin/mandoc/Makefile
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/contrib/mandoc/INSTALL
==============================================================================
--- stable/12/contrib/mandoc/INSTALL	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/INSTALL	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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: stable/12/contrib/mandoc/LICENSE
==============================================================================
--- stable/12/contrib/mandoc/LICENSE	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/LICENSE	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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@bsd.lv>
 Copyright (c) 2010-2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -12,13 +12,14 @@ Copyright (c) 2013 Franco Fichtner <franco@lastsummer.
 Copyright (c) 2014 Baptiste Daroussin <bapt@freebsd.org>
 Copyright (c) 2016 Ed Maste <emaste@freebsd.org>
 Copyright (c) 2017 Michael Stapelberg <stapelberg@debian.org>
+Copyright (c) 2017 Anthony Bentley <bentley@openbsd.org>
 Copyright (c) 1998, 2004, 2010 Todd C. Miller <Todd.Miller@courtesan.com>
 Copyright (c) 2008, 2017 Otto Moerbeek <otto@drijf.net>
 Copyright (c) 2004 Ted Unangst <tedu@openbsd.org>
 Copyright (c) 1994 Christos Zoulas <christos@netbsd.org>
 Copyright (c) 2003, 2007, 2008, 2014 Jason McIntyre <jmc@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: stable/12/contrib/mandoc/Makefile
==============================================================================
--- stable/12/contrib/mandoc/Makefile	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/Makefile	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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@bsd.lv>
-# Copyright (c) 2011, 2013-2018 Ingo Schwarze <schwarze@openbsd.org>
+# Copyright (c) 2011, 2013-2019 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
@@ -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: stable/12/contrib/mandoc/Makefile.depend
==============================================================================
--- stable/12/contrib/mandoc/Makefile.depend	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/Makefile.depend	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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: stable/12/contrib/mandoc/NEWS
==============================================================================
--- stable/12/contrib/mandoc/NEWS	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/NEWS	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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: stable/12/contrib/mandoc/TODO
==============================================================================
--- stable/12/contrib/mandoc/TODO	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/TODO	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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: stable/12/contrib/mandoc/apropos.1
==============================================================================
--- stable/12/contrib/mandoc/apropos.1	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/apropos.1	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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@bsd.lv>
-.\" Copyright (c) 2011, 2012, 2014, 2017 Ingo Schwarze <schwarze@openbsd.org>
+.\" Copyright (c) 2011,2012,2014,2017,2018 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
@@ -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: stable/12/contrib/mandoc/arch.c (from r346149, head/contrib/mandoc/arch.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/contrib/mandoc/arch.c	Thu Jun 13 08:00:32 2019	(r349013, copy of r346149, head/contrib/mandoc/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@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: stable/12/contrib/mandoc/att.c
==============================================================================
--- stable/12/contrib/mandoc/att.c	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/att.c	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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@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: stable/12/contrib/mandoc/cgi.c
==============================================================================
--- stable/12/contrib/mandoc/cgi.c	Thu Jun 13 07:13:22 2019	(r349012)
+++ stable/12/contrib/mandoc/cgi.c	Thu Jun 13 08:00:32 2019	(r349013)
@@ -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@bsd.lv>
- * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@usta.de>
+ * Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze <schwarze@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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906130800.x5D80XXc019906>