Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2018 10:58:53 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r338826 - in head: contrib/mandoc contrib/mdocml usr.bin/mandoc
Message-ID:  <201809201058.w8KAwrZR031731@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Thu Sep 20 10:58:52 2018
New Revision: 338826
URL: https://svnweb.freebsd.org/changeset/base/338826

Log:
  Import mandoc 1.14.4
  
  Approved by:	re (kib)
  MFC after:	1 week

Added:
     - copied from r338825, head/contrib/mdocml/
  head/contrib/mandoc/compat_strndup.c
     - copied unchanged from r338821, vendor/mandoc/dist/compat_strndup.c
  head/contrib/mandoc/test-noop.c
     - copied unchanged from r338821, vendor/mandoc/dist/test-noop.c
  head/contrib/mandoc/test-strndup.c
     - copied unchanged from r338821, vendor/mandoc/dist/test-strndup.c
Directory Properties:
  head/contrib/mandoc/   (props changed)
Deleted:
  head/contrib/mdocml/
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/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/eqn.7
  head/contrib/mandoc/eqn_term.c
  head/contrib/mandoc/gmdiff
  head/contrib/mandoc/html.c
  head/contrib/mandoc/html.h
  head/contrib/mandoc/lib.in
  head/contrib/mandoc/libmandoc.h
  head/contrib/mandoc/main.c
  head/contrib/mandoc/man.1
  head/contrib/mandoc/man.7
  head/contrib/mandoc/man.cgi.8
  head/contrib/mandoc/man.conf.5
  head/contrib/mandoc/man_html.c
  head/contrib/mandoc/man_term.c
  head/contrib/mandoc/man_validate.c
  head/contrib/mandoc/mandoc.1
  head/contrib/mandoc/mandoc.c
  head/contrib/mandoc/mandoc.css
  head/contrib/mandoc/mandoc.h
  head/contrib/mandoc/mandoc_aux.c
  head/contrib/mandoc/mandoc_char.7
  head/contrib/mandoc/mandoc_html.3
  head/contrib/mandoc/mandocdb.c
  head/contrib/mandoc/mansearch.c
  head/contrib/mandoc/mdoc.7
  head/contrib/mandoc/mdoc.c
  head/contrib/mandoc/mdoc_html.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/out.h
  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/st.in
  head/contrib/mandoc/tag.c
  head/contrib/mandoc/tbl.7
  head/contrib/mandoc/tbl_html.c
  head/contrib/mandoc/term_ascii.c
  head/contrib/mandoc/term_ps.c
  head/contrib/mandoc/tree.c
  head/usr.bin/mandoc/Makefile

Modified: head/contrib/mandoc/INSTALL
==============================================================================
--- head/contrib/mdocml/INSTALL	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/INSTALL	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,4 +1,4 @@
-$Id: INSTALL,v 1.20 2017/07/28 14:57:56 schwarze Exp $
+$Id: INSTALL,v 1.22 2018/07/31 15:34:00 schwarze Exp $
 
 About the portable mandoc distribution
 --------------------------------------
@@ -18,7 +18,7 @@ tech@ mailing list, too.
 
 Enjoy using the mandoc toolset!
 
-Ingo Schwarze, Karlsruhe, July 2017
+Ingo Schwarze, Karlsruhe, August 2018
 
 
 Installation
@@ -54,8 +54,6 @@ generates.  If anything looks wrong or different from 
 wish, read the file "configure.local.example", create and edit
 a file "configure.local", and re-run "./configure" until the
 result seems right to you.
-On Solaris 10 and earlier, you may have to run "ksh ./configure"
-because the native /bin/sh lacks some POSIX features.
 
 5. Run "make".
 Any POSIX-compatible make, in particular both BSD make and GNU make,
@@ -83,12 +81,14 @@ apropos(1) will not find the new pages.
 
 10. To set up a man.cgi(8) server, read its manual page.
 
-Note that some man(7) pages may contain low-level roff(7) markup
-that mandoc does not yet understand.  On some BSD systems using
-mandoc, third-party software is vetted on whether it may be formatted
-with mandoc.  If not, groff(1) is pulled in as a dependency and
-used to install a pre-formatted "catpage" instead of directly as
-manual page source.
+Note that a very small number of man(7) pages contain low-level
+roff(7) markup that mandoc does not yet understand.  On some BSD
+systems using mandoc, third-party software is vetted on whether it
+may be formatted with mandoc.  If not, groff(1) is pulled in as a
+dependency and used to install pre-formatted "catpages" instead of
+manual page sources.  This mechanism is used much less frequently
+than in the past.  On OpenBSD, only 25 out of about 10000 ports
+still require formatting with groff(1).
 
 
 Understanding mandoc dependencies

Modified: head/contrib/mandoc/LICENSE
==============================================================================
--- head/contrib/mdocml/LICENSE	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/LICENSE	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,17 +1,17 @@
-$Id: LICENSE,v 1.17 2017/06/23 15:58:14 schwarze Exp $
+$Id: LICENSE,v 1.19 2018/07/31 10:18:15 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:
 
 Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
-Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
+Copyright (c) 2010-2018 Ingo Schwarze <schwarze@openbsd.org>
+Copyright (c) 1999, 2004, 2017 Marc Espie <espie@openbsd.org>
 Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger <joerg@netbsd.org>
 Copyright (c) 2013 Franco Fichtner <franco@lastsummer.de>
 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) 1999, 2004 Marc Espie <espie@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>

Modified: head/contrib/mandoc/Makefile
==============================================================================
--- head/contrib/mdocml/Makefile	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/Makefile	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,7 +1,7 @@
-# $Id: Makefile,v 1.516 2017/07/20 16:24:53 schwarze Exp $
+# $Id: Makefile,v 1.519 2018/07/31 15:34:00 schwarze Exp $
 #
 # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
-# Copyright (c) 2011, 2013-2017 Ingo Schwarze <schwarze@openbsd.org>
+# Copyright (c) 2011, 2013-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.
 
-VERSION = 1.14.3
+VERSION = 1.14.4
 
 # === LIST OF FILES ====================================================
 
@@ -30,6 +30,7 @@ TESTSRCS	 = test-be32toh.c \
 		   test-isblank.c \
 		   test-mkdtemp.c \
 		   test-nanosleep.c \
+		   test-noop.c \
 		   test-ntohl.c \
 		   test-O_DIRECTORY.c \
 		   test-ohash.c \
@@ -46,6 +47,7 @@ TESTSRCS	 = test-be32toh.c \
 		   test-stringlist.c \
 		   test-strlcat.c \
 		   test-strlcpy.c \
+		   test-strndup.c \
 		   test-strptime.c \
 		   test-strsep.c \
 		   test-strtonum.c \
@@ -70,6 +72,7 @@ SRCS		 = att.c \
 		   compat_stringlist.c \
 		   compat_strlcat.c \
 		   compat_strlcpy.c \
+		   compat_strndup.c \
 		   compat_strsep.c \
 		   compat_strtonum.c \
 		   compat_vasprintf.c \
@@ -249,6 +252,7 @@ COMPAT_OBJS	 = compat_err.o \
 		   compat_strcasestr.o \
 		   compat_strlcat.o \
 		   compat_strlcpy.o \
+		   compat_strndup.o \
 		   compat_strsep.o \
 		   compat_strtonum.o \
 		   compat_vasprintf.o
@@ -544,12 +548,12 @@ regress-distcheck:
 		! -path regress/regress.pl \
 		! -path regress/regress.pl.1
 
-dist: mandoc.sha256
+dist: mandoc-$(VERSION).sha256
 
-mandoc.sha256: mandoc.tar.gz
-	sha256 mandoc.tar.gz > $@
+mandoc-$(VERSION).sha256: mandoc-$(VERSION).tar.gz
+	sha256 mandoc-$(VERSION).tar.gz > $@
 
-mandoc.tar.gz: $(DISTFILES)
+mandoc-$(VERSION).tar.gz: $(DISTFILES)
 	ls regress/*/*/*.mandoc_* && exit 1 || true
 	mkdir -p .dist/mandoc-$(VERSION)/
 	$(INSTALL) -m 0644 $(DISTFILES) .dist/mandoc-$(VERSION)

Modified: head/contrib/mandoc/Makefile.depend
==============================================================================
--- head/contrib/mdocml/Makefile.depend	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/Makefile.depend	Thu Sep 20 10:58:52 2018	(r338826)
@@ -16,6 +16,7 @@ compat_strcasestr.o: compat_strcasestr.c config.h
 compat_stringlist.o: compat_stringlist.c config.h compat_stringlist.h
 compat_strlcat.o: compat_strlcat.c config.h
 compat_strlcpy.o: compat_strlcpy.c config.h
+compat_strndup.o: compat_strndup.c config.h
 compat_strsep.o: compat_strsep.c config.h
 compat_strtonum.o: compat_strtonum.c config.h
 compat_vasprintf.o: compat_vasprintf.c config.h
@@ -29,7 +30,7 @@ demandoc.o: demandoc.c config.h mandoc.h roff.h man.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
-html.o: html.c config.h mandoc_aux.h mandoc.h roff.h out.h html.h manconf.h main.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
 man.o: man.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h

Modified: head/contrib/mandoc/NEWS
==============================================================================
--- head/contrib/mdocml/NEWS	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/NEWS	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,6 +1,83 @@
-$Id: NEWS,v 1.26 2017/07/28 14:57:56 schwarze Exp $
+$Id: NEWS,v 1.32 2018/08/08 14:47:38 schwarze Exp $
 
 This file lists the most important changes in the mandoc.bsd.lv distribution.
+
+Changes in version 1.14.4, released on August 8, 2018
+
+    --- MAJOR NEW FEATURES ---
+ * In ASCII output, render mathematical symbols and greek letters
+   as transliterations conveying the characters' meanings rather
+   than trying to imitate their shape.  Consequently, such characters
+   can now be used in portable manual pages.  All the same, please
+   limit their use to contexts where they really matter, for example
+   when showing complicated mathematical formulae.
+ * First steps towards better support for small screens in HTML
+   output (responsive design): avoid most style= attributes, in
+   particular all hard-coded indentations and column widths, and
+   provide a better mandoc.css style sheet with a @media query,
+   using em units throughout, and avoiding redundancy in selectors.
+ * Better HTML output with some more fitting HTML elements, eliminating
+   needless class= attributes, and avoiding various HTML syntax errors
+   (element nesting, URL-fragment syntax, duplicate id= attributes).
+    --- MINOR NEW FEATURES ---
+ * When a man(1) argument contains a slash, imply -l like in man-db.
+ * Use TIOCGWINSZ to reduce the default -Owidth and -Oindent during
+   interactive use on terminals narrower than 79 columns.
+ * Generated PostScript files are now more than 50% smaller.
+ * Terminal rendering of eqn(7) is improved in several respects.
+ * Simplified and nicer output from the mdoc(7) .Lk macro, formatting
+   all links in-line, even long ones.
+ * roff(7) \n+ and \n- numerical register auto-increment and -decrement
+ * roff(7) .nr optional third argument (auto-increment step size)
+ * Autodetect in ./configure whether the compiler can use -W and -static,
+   allowing to build on Solaris 10 and 11 without any configure.local.
+    --- RELIABILITY BUGFIXES ---
+ * Only activate UTF-8 output when the user really selected UTF-8,
+   not some other multibyte character encoding.
+ * Prevent excessive .ll arguments from generating infinite output.
+ * Fix out of bounds accesses to parse buffers that could happen when
+   using renamed or user defined macros after roff(7) conditionals.
+ * Avoid an assertion failure in certain .Bl -column lists.
+ * Avoid a NULL pointer access on deroff() failure after '.SS ""'.
+ * Fix a segfault that could be triggered by two invalid .Dt macros.
+ * Fix two syntax errors in generated PDF files.
+ * Properly state the page size in generated PostScript files.
+ * Close a memory leak caused by missing gzclose(3).
+ * Fix misformatting of man(7) documents lacking .SH macros
+   in PostScript and PDF output.
+ * And many minor bugfixes.
+    --- THANKS TO ---
+ * Marc Espie (OpenBSD) for implementing the size reduction of
+   PostScript files, one additional patch for code simplification,
+   and two bug reports.
+ * Theo Buehler (OpenBSD) for a bugfix patch,
+   and Theo de Raadt (OpenBSD) for checking it.
+ * John Gardner for more than a dozen suggestions regarding HTML output.
+ * Mike Williams for teaching me how to use %%DocumentMedia and
+   setpagedevice in PostScript files.
+ * Werner Lemberg (groff) for feedback on mdoc(7) language changes.
+ * Colin Watson (man-db) for feedback on man-db semantics.
+ * Jason McIntyre (OpenBSD) for lots of feedback and suggestions
+   on diagnostic messages and on the documentation.
+ * Thomas Klausner (NetBSD) for suggesting two new style messages
+   and one new feature, for two bug reports, and for release testing.
+ * Leah Neukirchen (Void Linux) for suggesting a new style message,
+   five bug reports, and release testing.
+ * Anthony Bentley (OpenBSD) for reporting multiple bugs and missing
+   features.
+ * Paul Irofti (OpenBSD) and Nate Bargmann for suggesting new features.
+ * Michael Stapelberg (Debian) for bug reports and release testing.
+ * Christian Weisgerber, Jonathan Gray, Stuart Henderson,
+   Ted Unangst (OpenBSD), Takeshi Nakayama (NetBSD),
+   Anton Lazarov, Jakub Klinkovsky, Jan Stary, Jesper Wallin,
+   Will Backmam, and Wolfgang Mueller for bug reports.
+ * Sevan Janiyan (NetBSD) for additions to lib.in.
+ * George Brown for suggesting code simplifications.
+ * David Coppa, Igor Sobrado (OpenBSD), and Alexander Kuleshov
+   for documentation improvements.
+ * Laura Morales and Raf Czlonka for questions resulting in better
+   documentation.
+ * Yuri Pankov (illumos) for release testing.
 
 Changes in version 1.14.3, released on August 5, 2017
 

Modified: head/contrib/mandoc/TODO
==============================================================================
--- head/contrib/mdocml/TODO	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/TODO	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,6 +1,6 @@
 ************************************************************************
 * Official mandoc TODO.
-* $Id: TODO,v 1.246 2017/07/24 11:15:12 schwarze Exp $
+* $Id: TODO,v 1.258 2018/08/06 14:16:30 schwarze Exp $
 ************************************************************************
 
 Many issues are annotated for difficulty as follows:
@@ -38,6 +38,18 @@ 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)
@@ -52,10 +64,6 @@ are mere guesses, and some may be wrong.
   found by naddy@ in xloadimage(1)
   loc **  exist ***  algo *  size *  imp *
 
-- .nr third argument (auto-increment step size, requires \n+)
-  found by bentley@ in sbcl(1)  Mon, 9 Dec 2013 18:36:57 -0700
-  loc *  exist *  algo *  size *  imp **
-
 - .ns (no-space mode) occurs in xine-config(1)
   when implementing this, also let .TH set it
   reported by brad@  Sat, 15 Jan 2011 15:45:23 -0500
@@ -65,10 +73,6 @@ are mere guesses, and some may be wrong.
   found by jca@ in ratpoison(1)  Sun, 30 Jun 2013 12:01:09 +0200
   loc *  exist **  algo **  size **  imp **
 
-- \n+ and \n- numerical register increment and decrement
-  found by bentley@ in sbcl(1)  Mon, 9 Dec 2013 18:36:57 -0700
-  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
@@ -87,9 +91,11 @@ are mere guesses, and some may be wrong.
   Found by naddy@ in devel/cutils cobfusc(1)  Mon, 16 Feb 2015 19:10:52 +0100
   loc ***  exist ***  algo ***  size **  imp *
 
-- using undefined strings or macros defines them to be empty
-  wl@  Mon, 14 Nov 2011 14:37:01 +0000
-  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 ----------------------------------------------
 
@@ -146,10 +152,6 @@ are mere guesses, and some may be wrong.
   is not safe, e.g. `.Bl -column .It Pf a b .' gives "ab."
   but should give "ab ."
 
-- check whether it is correct that `D1' uses INDENT+1;
-  does it need its own constant?
-  loc *  exist **  algo **  size *  imp **
-
 - prohibit `Nm' from having non-text HEAD children
   (e.g., NetBSD mDNSShared/dns-sd.1)
   (mdoc_html.c and mdoc_term.c `Nm' handlers can be slightly simplified)
@@ -170,6 +172,25 @@ are mere guesses, and some may be wrong.
   uqs@  Thu, 2 Jun 2011 11:33:35 +0200
   loc *  exist **  algo ***  size *  imp **
 
+--- 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.
+  We should probably *not* add them to mandoc.
+  Just mentioning this here to keep track of the abuse.
+  Laura Morales <lauretas at mail dot com> 20 Apr 2018 07:33:02 +0200
+  loc **  exist *  algo *  size **  imp *
+
 --- missing tbl features -----------------------------------------------
 
 - the "s" layout column specifier is used for placement of data
@@ -177,6 +198,13 @@ are mere guesses, and some may be wrong.
   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;
@@ -195,6 +223,18 @@ are mere guesses, and some may be wrong.
   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.
@@ -219,12 +259,15 @@ are mere guesses, and some may be wrong.
   surrounded by blanks, not when it is part of an unquoted word.
   Also, check whether there are more such cases (e.g., +?).
   reported by bentley@  20 Jun 2017 02:04:29 -0600
+  loc *  exist **  algo **  size *  imp *
 
 - Primes, opprime, and '
   bentley@  Thu, 13 Jul 2017 23:14:20 -0600
 
 --- missing misc features ----------------------------------------------
 
+- man -ks 1,8 route; kn@ Jul 13, 2018 orally
+
 - italic correction (\/) in PostScript mode
   Werner LEMBERG on groff at gnu dot org  Sun, 10 Nov 2013 12:47:46
   loc **  exist **  algo *  size *  imp *
@@ -298,6 +341,9 @@ 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
@@ -375,6 +421,17 @@ 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
@@ -471,6 +528,10 @@ are mere guesses, and some may be wrong.
 * warning issues
 ************************************************************************
 
+- warn about duplicate .Sh/.Ss heads
+  gre(4): Rename duplicate sections 20 Apr 2018 15:27:33 +0200
+  loc *  exist *  algo *  size *  imp **
+
 - style message about macros inside .Bd -literal and .Dl, in particular
   font changing macros like .Cm, .Ar, .Fa (from the mdoclint TODO)
 
@@ -509,6 +570,10 @@ are mere guesses, and some may be wrong.
   but just the overall format
   loc **  exist **  algo ***  size **  imp **
 
+- makewhatis -p complains about language subdirectories:
+  /usr/local/man//ru: Unknown directory part
+
+
 ************************************************************************
 * documentation issues
 ************************************************************************
@@ -562,7 +627,7 @@ are mere guesses, and some may be wrong.
 
  - Enable HTTP compression by detecting gzip encoding and filtering
    output through libz.
- - Sandbox (see OpenSSH).
+ - 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.
@@ -570,6 +635,16 @@ are mere guesses, and some may be wrong.
 ************************************************************************
 * to improve in the groff_mdoc(7) macros
 ************************************************************************
+
+- .Cd # arch1, arch2 in section 4 pages:
+  find better way to indicate multiple architectures, maybe:
+  allow .Dt vgafb 4 "macppc sparc64"
+  already shown as "Device Drivers Manual (macppc sparc64)"
+  for apropos, make that "vgafb(4) - macppc # sparc64" instead of "- all"
+  groff can be made to show multiple arches, too, but it is
+  tedious to do the string parsing in roff code...
+  jmc@ 23 Apr 2018 07:24:52 +0100 [man for vgafb(4)...]
+  loc **  exist **  algo *  size *  imp ***
 
 - use uname(1) to set doc-default-operating-system at install time
   tobimensch  Mon, 1 Dec 2014 00:25:07 +0100

Modified: head/contrib/mandoc/apropos.1
==============================================================================
--- head/contrib/mdocml/apropos.1	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/apropos.1	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,4 +1,4 @@
-.\"	$Id: apropos.1,v 1.46 2017/07/04 23:40:01 schwarze Exp $
+.\"	$Id: apropos.1,v 1.47 2018/02/23 18:54:02 schwarze Exp $
 .\"
 .\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
 .\" Copyright (c) 2011, 2012, 2014, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -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: August 8 2018 $
+.Dd $Mdocdate: February 23 2018 $
 .Dt APROPOS 1
 .Os
 .Sh NAME
@@ -74,7 +74,7 @@ would.
 If the standard output is a terminal device and
 .Fl c
 is not specified, use
-.Xr less 1
+.Xr more 1
 to paginate them.
 In
 .Fl a
@@ -328,13 +328,36 @@ Text production:
 .It Li \&Ox Ta Ox No version reference
 .It Li \&Dx Ta Dx No version reference
 .El
+.Pp
+In general, macro keys are supposed to yield complete results without
+expecting the user to consider actual macro usage.
+For example, results include:
+.Pp
+.Bl -tag -width 3n -offset 3n -compact
+.It Li \&Fa
+function arguments appearing on
+.Ic \&Fn
+lines
+.It Li \&Fn
+fuction names marked up with
+.Ic \&Fo
+macros
+.It Li \&In
+include file names marked up with
+.Ic \&Fd
+macros
+.It Li \&Vt
+types appearing as function return types and
+.It \&
+types appearing in function arguments in the SYNOPSIS
+.El
 .Sh ENVIRONMENT
 .Bl -tag -width MANPAGER
 .It Ev MANPAGER
 Any non-empty value of the environment variable
 .Ev MANPAGER
 is used instead of the standard pagination program,
-.Xr less 1 ;
+.Xr more 1 ;
 see
 .Xr man 1
 for details.
@@ -357,7 +380,7 @@ Specifies the pagination program to use when
 .Ev MANPAGER
 is not defined.
 If neither PAGER nor MANPAGER is defined,
-.Xr less 1
+.Xr more 1
 .Fl s
 is used.
 Only used if

Modified: head/contrib/mandoc/cgi.c
==============================================================================
--- head/contrib/mdocml/cgi.c	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/cgi.c	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,4 +1,4 @@
-/*	$Id: cgi.c,v 1.156 2017/06/24 14:38:32 schwarze Exp $ */
+/*	$Id: cgi.c,v 1.158 2018/05/29 20:32:45 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@usta.de>
@@ -356,6 +356,8 @@ resp_begin_html(int code, const char *msg, const char 
 	       "<html>\n"
 	       "<head>\n"
 	       "  <meta charset=\"UTF-8\"/>\n"
+	       "  <meta name=\"viewport\""
+		      " content=\"width=device-width, initial-scale=1.0\">\n"
 	       "  <link rel=\"stylesheet\" href=\"%s/mandoc.css\""
 	       " type=\"text/css\" media=\"all\">\n"
 	       "  <title>",
@@ -398,7 +400,7 @@ resp_searchform(const struct req *req, enum focus focu
 
 	/* Write query input box. */
 
-	printf("    <input type=\"text\" name=\"query\" value=\"");
+	printf("    <input type=\"search\" name=\"query\" value=\"");
 	if (req->q.query != NULL)
 		html_print(req->q.query);
 	printf( "\" size=\"40\"");
@@ -434,7 +436,7 @@ resp_searchform(const struct req *req, enum focus focu
 		printf(" selected=\"selected\"");
 	puts(">All Architectures</option>");
 	for (i = 0; i < arch_MAX; i++) {
-		printf("      <option value=\"%s\"", arch_names[i]);
+		printf("      <option");
 		if (NULL != req->q.arch &&
 		    0 == strcmp(arch_names[i], req->q.arch))
 			printf(" selected=\"selected\"");
@@ -447,12 +449,10 @@ resp_searchform(const struct req *req, enum focus focu
 	if (req->psz > 1) {
 		puts("    <select name=\"manpath\">");
 		for (i = 0; i < (int)req->psz; i++) {
-			printf("      <option ");
+			printf("      <option");
 			if (strcmp(req->q.manpath, req->p[i]) == 0)
-				printf("selected=\"selected\" ");
-			printf("value=\"");
-			html_print(req->p[i]);
-			printf("\">");
+				printf(" selected=\"selected\"");
+			printf(">");
 			html_print(req->p[i]);
 			puts("</option>");
 		}

Modified: head/contrib/mandoc/chars.c
==============================================================================
--- head/contrib/mdocml/chars.c	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/chars.c	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,4 +1,4 @@
-/*	$Id: chars.c,v 1.71 2017/06/14 20:57:07 schwarze Exp $ */
+/*	$Id: chars.c,v 1.73 2017/08/23 13:01:29 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -70,17 +70,17 @@ static struct ln lines[] = {
 	/* Text markers. */
 	{ "ci",			"O",		0x25cb	},
 	{ "bu",			"+\bo",		0x2022	},
-	{ "dd",			"|\b=",		0x2021	},
-	{ "dg",			"|\b-",		0x2020	},
+	{ "dd",			"<**>",		0x2021	},
+	{ "dg",			"<*>",		0x2020	},
 	{ "lz",			"<>",		0x25ca	},
 	{ "sq",			"[]",		0x25a1	},
-	{ "ps",			"<par>",	0x00b6	},
-	{ "sc",			"<sec>",	0x00a7	},
+	{ "ps",			"<paragraph>",	0x00b6	},
+	{ "sc",			"<section>",	0x00a7	},
 	{ "lh",			"<=",		0x261c	},
 	{ "rh",			"=>",		0x261e	},
 	{ "at",			"@",		0x0040	},
 	{ "sh",			"#",		0x0023	},
-	{ "CR",			"_|",		0x21b5	},
+	{ "CR",			"<cr>",		0x21b5	},
 	{ "OK",			"\\/",		0x2713	},
 	{ "CL",			"<club>",	0x2663	},
 	{ "SP",			"<spade>",	0x2660	},
@@ -173,11 +173,11 @@ static struct ln lines[] = {
 	{ "OR",			"v",		0x2228	},
 	{ "no",			"~",		0x00ac	},
 	{ "tno",		"~",		0x00ac	},
-	{ "te",			"3",		0x2203	},
-	{ "fa",			"-\bV",		0x2200	},
-	{ "st",			"-)",		0x220b	},
-	{ "tf",			".:.",		0x2234	},
-	{ "3d",			".:.",		0x2234	},
+	{ "te",			"<there\037exists>", 0x2203 },
+	{ "fa",			"<for\037all>",	0x2200	},
+	{ "st",			"<such\037that>", 0x220b },
+	{ "tf",			"<therefore>",	0x2234	},
+	{ "3d",			"<therefore>",	0x2234	},
 	{ "or",			"|",		0x007c	},
 
 	/* Mathematicals. */
@@ -193,8 +193,8 @@ static struct ln lines[] = {
 	{ "tmu",		"x",		0x00d7	},
 	{ "c*",			"O\bx",		0x2297	},
 	{ "c+",			"O\b+",		0x2295	},
-	{ "di",			"-:-",		0x00f7	},
-	{ "tdi",		"-:-",		0x00f7	},
+	{ "di",			"/",		0x00f7	},
+	{ "tdi",		"/",		0x00f7	},
 	{ "f/",			"/",		0x2044	},
 	{ "**",			"*",		0x2217	},
 	{ "<=",			"<=",		0x2264	},
@@ -210,38 +210,38 @@ static struct ln lines[] = {
 	{ "=~",			"=~",		0x2245	},
 	{ "~~",			"~~",		0x2248	},
 	{ "~=",			"~=",		0x2248	},
-	{ "pt",			"oc",		0x221d	},
+	{ "pt",			"<proportional\037to>", 0x221d },
 	{ "es",			"{}",		0x2205	},
-	{ "mo",			"E",		0x2208	},
-	{ "nm",			"!E",		0x2209	},
-	{ "sb",			"(=",		0x2282	},
-	{ "nb",			"(!=",		0x2284	},
-	{ "sp",			"=)",		0x2283	},
-	{ "nc",			"!=)",		0x2285	},
-	{ "ib",			"(=\b_",	0x2286	},
-	{ "ip",			"=\b_)",	0x2287	},
-	{ "ca",			"(^)",		0x2229	},
-	{ "cu",			"U",		0x222a	},
-	{ "/_",			"_\b/",		0x2220	},
-	{ "pp",			"_\b|",		0x22a5	},
-	{ "is",			"'\b,\bI",	0x222b	},
-	{ "integral",		"'\b,\bI",	0x222b	},
-	{ "sum",		"E",		0x2211	},
-	{ "product",		"TT",		0x220f	},
-	{ "coproduct",		"U",		0x2210	},
-	{ "gr",			"V",		0x2207	},
-	{ "sr",			"\\/",		0x221a	},
-	{ "sqrt",		"\\/",		0x221a	},
+	{ "mo",			"<element\037of>", 0x2208 },
+	{ "nm",			"<not\037element\037of>", 0x2209 },
+	{ "sb",			"<proper\037subset>", 0x2282 },
+	{ "nb",			"<not\037subset>", 0x2284 },
+	{ "sp",			"<proper\037superset>", 0x2283 },
+	{ "nc",			"<not\037superset>", 0x2285 },
+	{ "ib",			"<subset\037or\037equal>", 0x2286 },
+	{ "ip",			"<superset\037or\037equal>", 0x2287 },
+	{ "ca",			"<intersection>", 0x2229 },
+	{ "cu",			"<union>",	0x222a	},
+	{ "/_",			"<angle>",	0x2220	},
+	{ "pp",			"<perpendicular>", 0x22a5 },
+	{ "is",			"<integral>",	0x222b	},
+	{ "integral",		"<integral>",	0x222b	},
+	{ "sum",		"<sum>",	0x2211	},
+	{ "product",		"<product>",	0x220f	},
+	{ "coproduct",		"<coproduct>",	0x2210	},
+	{ "gr",			"<nabla>",	0x2207	},
+	{ "sr",			"<sqrt>",	0x221a	},
+	{ "sqrt",		"<sqrt>",	0x221a	},
 	{ "lc",			"|~",		0x2308	},
 	{ "rc",			"~|",		0x2309	},
 	{ "lf",			"|_",		0x230a	},
 	{ "rf",			"_|",		0x230b	},
-	{ "if",			"oo",		0x221e	},
-	{ "Ah",			"N",		0x2135	},
-	{ "Im",			"I",		0x2111	},
-	{ "Re",			"R",		0x211c	},
+	{ "if",			"<infinity>",	0x221e	},
+	{ "Ah",			"<Aleph>",	0x2135	},
+	{ "Im",			"<Im>",		0x2111	},
+	{ "Re",			"<Re>",		0x211c	},
 	{ "wp",			"P",		0x2118	},
-	{ "pd",			"a",		0x2202	},
+	{ "pd",			"<del>",	0x2202	},
 	{ "-h",			"/h",		0x210f	},
 	{ "hbar",		"/h",		0x210f	},
 	{ "12",			"1/2",		0x00bd	},
@@ -251,9 +251,9 @@ static struct ln lines[] = {
 	{ "38",			"3/8",		0x215C	},
 	{ "58",			"5/8",		0x215D	},
 	{ "78",			"7/8",		0x215E	},
-	{ "S1",			"1",		0x00B9	},
-	{ "S2",			"2",		0x00B2	},
-	{ "S3",			"3",		0x00B3	},
+	{ "S1",			"^1",		0x00B9	},
+	{ "S2",			"^2",		0x00B2	},
+	{ "S3",			"^3",		0x00B3	},
 
 	/* Ligatures. */
 	{ "ff",			"ff",		0xfb00	},
@@ -346,8 +346,8 @@ static struct ln lines[] = {
 	{ "oa",			"o\ba",		0x00e5	},
 
 	/* Special letters. */
-	{ "-D",			"-\bD",		0x00d0	},
-	{ "Sd",			"d",		0x00f0	},
+	{ "-D",			"Dh",		0x00d0	},
+	{ "Sd",			"dh",		0x00f0	},
 	{ "TP",			"Th",		0x00de	},
 	{ "Tp",			"th",		0x00fe	},
 	{ ".i",			"i",		0x0131	},
@@ -364,68 +364,68 @@ static struct ln lines[] = {
 	{ "Fn",			",\bf",		0x0192	},
 
 	/* Units. */
-	{ "de",			"<deg>",	0x00b0	},
-	{ "%0",			"%o",		0x2030	},
+	{ "de",			"<degree>",	0x00b0	},
+	{ "%0",			"<permille>",	0x2030	},
 	{ "fm",			"\'",		0x2032	},
 	{ "sd",			"''",		0x2033	},
-	{ "mc",			",\bu",		0x00b5	},
+	{ "mc",			"<micro>",	0x00b5	},
 	{ "Of",			"_\ba",		0x00aa	},
 	{ "Om",			"_\bo",		0x00ba	},
 
 	/* Greek characters. */
 	{ "*A",			"A",		0x0391	},
 	{ "*B",			"B",		0x0392	},
-	{ "*G",			"G",		0x0393	},
-	{ "*D",			"_\b/_\b\\",	0x0394	},
+	{ "*G",			"<Gamma>",	0x0393	},
+	{ "*D",			"<Delta>",	0x0394	},
 	{ "*E",			"E",		0x0395	},
 	{ "*Z",			"Z",		0x0396	},
 	{ "*Y",			"H",		0x0397	},
-	{ "*H",			"-\bO",		0x0398	},
+	{ "*H",			"<Theta>",	0x0398	},
 	{ "*I",			"I",		0x0399	},
 	{ "*K",			"K",		0x039a	},
-	{ "*L",			"/\\",		0x039b	},
+	{ "*L",			"<Lambda>",	0x039b	},
 	{ "*M",			"M",		0x039c	},
 	{ "*N",			"N",		0x039d	},
-	{ "*C",			"_\bH",		0x039e	},
+	{ "*C",			"<Xi>",		0x039e	},
 	{ "*O",			"O",		0x039f	},
-	{ "*P",			"TT",		0x03a0	},
+	{ "*P",			"<Pi>",		0x03a0	},
 	{ "*R",			"P",		0x03a1	},
-	{ "*S",			"S",		0x03a3	},
+	{ "*S",			"<Sigma>",	0x03a3	},
 	{ "*T",			"T",		0x03a4	},
 	{ "*U",			"Y",		0x03a5	},
-	{ "*F",			"I\bO",		0x03a6	},
+	{ "*F",			"<Phi>",	0x03a6	},
 	{ "*X",			"X",		0x03a7	},
-	{ "*Q",			"I\bY",		0x03a8	},
-	{ "*W",			"_\bO",		0x03a9	},
-	{ "*a",			"a",		0x03b1	},
-	{ "*b",			"B",		0x03b2	},
-	{ "*g",			"y",		0x03b3	},
-	{ "*d",			"d",		0x03b4	},
-	{ "*e",			"e",		0x03b5	},
-	{ "*z",			",\bC",		0x03b6	},
-	{ "*y",			"n",		0x03b7	},
-	{ "*h",			"-\b0",		0x03b8	},
-	{ "*i",			"i",		0x03b9	},
-	{ "*k",			"k",		0x03ba	},
-	{ "*l",			">\b\\",	0x03bb	},
-	{ "*m",			",\bu",		0x03bc	},
-	{ "*n",			"v",		0x03bd	},
-	{ "*c",			",\bE",		0x03be	},
+	{ "*Q",			"<Psi>",	0x03a8	},
+	{ "*W",			"<Omega>",	0x03a9	},
+	{ "*a",			"<alpha>",	0x03b1	},
+	{ "*b",			"<beta>",	0x03b2	},
+	{ "*g",			"<gamma>",	0x03b3	},
+	{ "*d",			"<delta>",	0x03b4	},
+	{ "*e",			"<epsilon>",	0x03b5	},
+	{ "*z",			"<zeta>",	0x03b6	},
+	{ "*y",			"<eta>",	0x03b7	},
+	{ "*h",			"<theta>",	0x03b8	},
+	{ "*i",			"<iota>",	0x03b9	},
+	{ "*k",			"<kappa>",	0x03ba	},
+	{ "*l",			"<lambda>",	0x03bb	},
+	{ "*m",			"<mu>",		0x03bc	},
+	{ "*n",			"<nu>",		0x03bd	},
+	{ "*c",			"<xi>",		0x03be	},
 	{ "*o",			"o",		0x03bf	},
-	{ "*p",			"-\bn",		0x03c0	},
-	{ "*r",			"p",		0x03c1	},
-	{ "*s",			"-\bo",		0x03c3	},
-	{ "*t",			"~\bt",		0x03c4	},
-	{ "*u",			"u",		0x03c5	},
-	{ "*f",			"|\bo",		0x03d5	},
-	{ "*x",			"x",		0x03c7	},
-	{ "*q",			"|\bu",		0x03c8	},
-	{ "*w",			"w",		0x03c9	},
-	{ "+h",			"-\b0",		0x03d1	},
-	{ "+f",			"|\bo",		0x03c6	},
-	{ "+p",			"-\bw",		0x03d6	},
-	{ "+e",			"e",		0x03f5	},
-	{ "ts",			"s",		0x03c2	},
+	{ "*p",			"<pi>",		0x03c0	},
+	{ "*r",			"<rho>",	0x03c1	},
+	{ "*s",			"<sigma>",	0x03c3	},
+	{ "*t",			"<tau>",	0x03c4	},
+	{ "*u",			"<upsilon>",	0x03c5	},
+	{ "*f",			"<phi>",	0x03d5	},
+	{ "*x",			"<chi>",	0x03c7	},
+	{ "*q",			"<psi>",	0x03c8	},
+	{ "*w",			"<omega>",	0x03c9	},
+	{ "+h",			"<theta>",	0x03d1	},
+	{ "+f",			"<phi>",	0x03c6	},
+	{ "+p",			"<pi>",		0x03d6	},
+	{ "+e",			"<epsilon>",	0x03f5	},
+	{ "ts",			"<sigma>",	0x03c2	},
 };
 
 static	struct ohash	  mchars;

Copied: head/contrib/mandoc/compat_strndup.c (from r338821, vendor/mandoc/dist/compat_strndup.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/mandoc/compat_strndup.c	Thu Sep 20 10:58:52 2018	(r338826, copy of r338821, vendor/mandoc/dist/compat_strndup.c)
@@ -0,0 +1,50 @@
+#include "config.h"
+
+#if HAVE_STRNDUP
+
+int dummy;
+
+#else
+
+/* $Id: compat_strndup.c,v 1.1 2018/02/27 11:16:23 schwarze Exp $ */
+/* OpenBSD: strndup.c,v 1.2 2015/08/31 02:53:57 guenther Exp */
+/*
+ * Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * 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 <sys/types.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+char *
+strndup(const char *str, size_t maxlen)
+{
+	char *copy;
+	size_t len;
+
+	for (len = 0; len < maxlen && str[len] != '\0'; len++)
+		continue;
+
+	copy = malloc(len + 1);
+	if (copy != NULL) {
+		(void)memcpy(copy, str, len);
+		copy[len] = '\0';
+	}
+
+	return copy;
+}
+
+#endif

Modified: head/contrib/mandoc/config.h
==============================================================================
--- head/contrib/mdocml/config.h	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/config.h	Thu Sep 20 10:58:52 2018	(r338826)
@@ -38,6 +38,7 @@
 #define HAVE_STRINGLIST 1
 #define HAVE_STRLCAT 1
 #define HAVE_STRLCPY 1
+#define HAVE_STRNDUP 1
 #define HAVE_STRPTIME 1
 #define HAVE_STRSEP 1
 #define HAVE_STRTONUM 1
@@ -47,6 +48,7 @@
 #define HAVE_OHASH 1
 
 #define BINM_APROPOS "apropos"
+#define BINM_CATMAN "catman"
 #define BINM_MAKEWHATIS "makewhatis"
 #define BINM_MAN "man"
 #define BINM_SOELIM "soelim"

Modified: head/contrib/mandoc/configure
==============================================================================
--- head/contrib/mdocml/configure	Thu Sep 20 09:34:55 2018	(r338825)
+++ head/contrib/mandoc/configure	Thu Sep 20 10:58:52 2018	(r338826)
@@ -1,8 +1,8 @@
 #!/bin/sh
 #
-# $Id: configure,v 1.64 2017/07/01 09:47:30 schwarze Exp $
+# $Id: configure,v 1.66 2018/07/31 15:34:00 schwarze Exp $
 #
-# Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
+# Copyright (c) 2014,2015,2016,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
@@ -27,7 +27,7 @@ set -e
 # 3: config.log
 
 exec 3> config.log
-echo "config.log: writing..."
+echo "file config.log: writing..."
 
 # --- default settings -------------------------------------------------
 # Initialize all variables here,
@@ -41,14 +41,13 @@ OSNAME=
 UTF8_LOCALE=
 
 CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -`
-CFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings"
-CFLAGS="${CFLAGS} -Wno-unused-parameter"
+CFLAGS=
 LDADD=
 LDFLAGS=
 LD_NANOSLEEP=
 LD_OHASH=
 LD_RECVMSG=
-STATIC="-static"
+STATIC=
 
 BUILD_CGI=0
 BUILD_CATMAN=0
@@ -83,6 +82,7 @@ HAVE_STRCASESTR=
 HAVE_STRINGLIST=
 HAVE_STRLCAT=
 HAVE_STRLCPY=
+HAVE_STRNDUP=
 HAVE_STRPTIME=
 HAVE_STRSEP=
 HAVE_STRTONUM=
@@ -126,27 +126,25 @@ LN="ln -f"
 # --- manual settings from configure.local -----------------------------
 
 if [ -r ./configure.local ]; then
-	echo "configure.local: reading..." 1>&2
-	echo "configure.local: reading..." 1>&3
+	echo "file configure.local: reading..." 1>&2
+	echo "file configure.local: reading..." 1>&3
 	cat ./configure.local 1>&3
 	. ./configure.local
 else
-	echo "configure.local: no (fully automatic configuration)" 1>&2
-	echo "configure.local: no (fully automatic configuration)" 1>&3
+	echo "file configure.local: no (fully automatic configuration)" 1>&2
+	echo "file configure.local: no (fully automatic configuration)" 1>&3
 fi
 echo 1>&3
 
-# --- tests for config.h  ----------------------------------------------
+# --- tests functions --------------------------------------------------
 
-COMP="${CC} ${CFLAGS} -Wno-unused -Werror"
-
 # Check whether this HAVE_ setting is manually overridden.
 # If yes, use the override, if no, do not decide anything yet.
-# Arguments: lower-case test name, manual value

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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