From nobody Mon Jul 14 16:47:15 2025
X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bgpBr38LLz61xMj;
Mon, 14 Jul 2025 16:47:16 +0000 (UTC)
(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
client-signature RSA-PSS (4096 bits) client-digest SHA256)
(Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK))
by mx1.freebsd.org (Postfix) with ESMTPS id 4bgpBq5pztz481D;
Mon, 14 Jul 2025 16:47:15 +0000 (UTC)
(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
t=1752511635;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type:
content-transfer-encoding:content-transfer-encoding;
bh=tuSrBbkfpgp3mJx50NXTs7JCgzhI2I3vNCGrSJ0OXt8=;
b=g0fngHRZ1vo+NGMrctq3k72+GieARkoZRrrFdfC3qZDCMHsZTWGGrepId44Tr8oWPN3fcz
z/Hu2fZ/9hWs6IwGB1JZC15Fe5U+SafWCVo+r4W9e5Mb3cj41msksMKvEnotgUfrEcXLe8
62qA5RIHol52ZgL+DoQj5BGUJFYJBZBBGqyLF3ixX5HxGfgIP4tyQgHdfDXoDA+CvSe0Qb
/W6iuhdR8Lcbb0UvYzn7QzYXaGHLLTNWYPYA02Mm1zetnWi58mGCh6aUEd3t4KmhdyFE2p
xcixXi242RNs0ZJMba+BFz9vX/FjqEJxQ9TBNVi2OkcbRu/5hKdP7VcgqPPSfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
s=dkim; t=1752511635;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type:
content-transfer-encoding:content-transfer-encoding;
bh=tuSrBbkfpgp3mJx50NXTs7JCgzhI2I3vNCGrSJ0OXt8=;
b=LXAh/YBDkhrRCM5ArxHj5qAZYpm7LpdlYk7C5bJKZwmuDObNHfcTdJTGVjX/2dJoqj1vwA
09fo4uB4laI+fvmqtwTQwDEjc6tsQcWfhC4Qn7yJMvyCO4dyFCec1SsdwabrNBEBsiJUHB
2AwGTUG6NdzUE0YazFaV1TxFP3ZcxN4Z7aSG4dYSAHWwnJ54sDkSPlQzzqlEKrKZEsYYmS
YSJLomuBfLswomoOo66Yt12AA7tIAaUIu5aGaRk1IlPK5Frh6i2uWQDaCA9CaJWLpxEPOm
67XNozNWL0fawH0SuVdMTamv49kCWvHHWW8II3i2H0/zx9s/eOPItqMdBUEd9A==
ARC-Authentication-Results: i=1;
mx1.freebsd.org;
none
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752511635; a=rsa-sha256; cv=none;
b=QLSTODX4TR/tKFif6kq0aptc/i5gUAeucLP+Yq1HK4yjKo1RWz29Ev60ncR0uvKGRn99L4
/+9meAMP0dGqrIbEIC0TPuOokTUSystTjfZYPw9P4DQdw2RSs8xMhrh4Dmb/DliI2V2AdL
nGYgXkAzFBeHGtaLblBK3Ug7ndx3L83JokS000fHYSMFPyCCiUfO7OM6mTt6lDBeHyL6Og
wOO7L8FVbswUk0EMvCdMXvkzIV5sDZiVf3B3PGplnAtGuPEkJBU04RCBgKvy4cpswi3nk8
10sjdck/9xjBSIujJH3FH8Oaidl31XtugUwCzXTs6Tv4d1DtCKACyqRJG0357g==
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
(Client did not present a certificate)
by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bgpBq4zrLz12R5;
Mon, 14 Jul 2025 16:47:15 +0000 (UTC)
(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56EGlF5u065175;
Mon, 14 Jul 2025 16:47:15 GMT
(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56EGlFke065172;
Mon, 14 Jul 2025 16:47:15 GMT
(envelope-from git)
Date: Mon, 14 Jul 2025 16:47:15 GMT
Message-Id: <202507141647.56EGlFke065172@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
dev-commits-src-branches@FreeBSD.org
From: Alexander Ziaee
Subject: git: dd276946d561 - stable/14 - Merge mandoc snapshot
2024-09-22
List-Id: Commit messages for all branches of the src repository
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all
List-Help:
List-Post:
List-Subscribe:
List-Unsubscribe:
X-BeenThere: dev-commits-src-all@freebsd.org
Sender: owner-dev-commits-src-all@FreeBSD.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: ziaee
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/14
X-Git-Reftype: branch
X-Git-Commit: dd276946d56197947c47fa7a37255859aea6e942
Auto-Submitted: auto-generated
The branch stable/14 has been updated by ziaee:
URL: https://cgit.FreeBSD.org/src/commit/?id=dd276946d56197947c47fa7a37255859aea6e942
commit dd276946d56197947c47fa7a37255859aea6e942
Author: Brooks Davis
AuthorDate: 2024-12-06 20:47:31 +0000
Commit: Alexander Ziaee
CommitDate: 2025-07-14 16:44:44 +0000
Merge mandoc snapshot 2024-09-22
(cherry picked from commit c1c95add8c80843ba15d784f95c361d795b1f593)
---
contrib/mandoc/LICENSE | 5 +-
contrib/mandoc/Makefile | 13 +-
contrib/mandoc/Makefile.depend | 89 ++--
contrib/mandoc/NEWS | 4 +-
contrib/mandoc/TODO | 105 +++-
contrib/mandoc/catman.c | 4 +-
contrib/mandoc/cgi.c | 121 +++--
contrib/mandoc/chars.c | 5 +-
contrib/mandoc/compat_strsep.c | 4 +-
contrib/mandoc/configure | 13 +-
contrib/mandoc/configure.local.example | 14 +-
contrib/mandoc/dba_read.c | 4 +-
contrib/mandoc/demandoc.1 | 5 +-
contrib/mandoc/demandoc.c | 13 +-
contrib/mandoc/eqn.c | 28 +-
contrib/mandoc/eqn_parse.h | 6 +-
contrib/mandoc/html.c | 17 +-
contrib/mandoc/html.h | 6 +-
contrib/mandoc/main.c | 43 +-
contrib/mandoc/makewhatis.8 | 8 +-
contrib/mandoc/man.1 | 8 +-
contrib/mandoc/man.7 | 34 +-
contrib/mandoc/man.c | 43 +-
contrib/mandoc/man.cgi.8 | 14 +-
contrib/mandoc/man_html.c | 112 +++--
contrib/mandoc/man_macro.c | 24 +-
contrib/mandoc/man_term.c | 108 +++--
contrib/mandoc/man_validate.c | 68 +--
contrib/mandoc/mandoc.1 | 206 +++++---
contrib/mandoc/mandoc.c | 394 +--------------
contrib/mandoc/mandoc.css | 51 +-
contrib/mandoc/mandoc.h | 32 +-
contrib/mandoc/mandoc_aux.c | 5 +-
contrib/mandoc/mandoc_aux.h | 8 +-
contrib/mandoc/mandoc_char.7 | 21 +-
contrib/mandoc/mandoc_dbg.c | 343 +++++++++++++
contrib/mandoc/mandoc_dbg.h | 55 +++
contrib/mandoc/mandoc_dbg_init.3 | 280 +++++++++++
contrib/mandoc/mandoc_escape.3 | 172 ++++---
contrib/mandoc/mandoc_headers.3 | 37 +-
contrib/mandoc/mandoc_html.3 | 8 +-
contrib/mandoc/mandoc_msg.c | 13 +-
contrib/mandoc/mandocd.8 | 8 +-
contrib/mandoc/mandocd.c | 15 +-
contrib/mandoc/mandocdb.c | 75 ++-
contrib/mandoc/manpath.c | 87 ++--
contrib/mandoc/mansearch.c | 6 +-
contrib/mandoc/mdoc.7 | 75 +--
contrib/mandoc/mdoc_html.c | 81 ++--
contrib/mandoc/mdoc_macro.c | 12 +-
contrib/mandoc/mdoc_man.c | 4 +-
contrib/mandoc/mdoc_markdown.c | 6 +-
contrib/mandoc/mdoc_state.c | 53 +-
contrib/mandoc/mdoc_term.c | 29 +-
contrib/mandoc/mdoc_validate.c | 16 +-
contrib/mandoc/out.c | 39 +-
contrib/mandoc/out.h | 7 +-
contrib/mandoc/read.c | 9 +-
contrib/mandoc/roff.7 | 43 +-
contrib/mandoc/roff.c | 858 +++++++++++++++++----------------
contrib/mandoc/roff.h | 27 +-
contrib/mandoc/roff_escape.c | 546 +++++++++++++++++++++
contrib/mandoc/roff_int.h | 5 +-
contrib/mandoc/roff_term.c | 4 +-
contrib/mandoc/st.c | 5 +-
contrib/mandoc/tag.c | 74 ++-
contrib/mandoc/tbl.7 | 12 +-
contrib/mandoc/tbl_html.c | 15 +-
contrib/mandoc/tbl_term.c | 23 +-
contrib/mandoc/term.c | 137 ++++--
contrib/mandoc/term.h | 7 +-
contrib/mandoc/term_ascii.c | 9 +-
contrib/mandoc/term_tab.c | 24 +-
contrib/mandoc/tree.c | 14 +-
usr.bin/mandoc/Makefile | 2 +
75 files changed, 3215 insertions(+), 1655 deletions(-)
diff --git a/contrib/mandoc/LICENSE b/contrib/mandoc/LICENSE
index 0a0fc1acd2ac..8b464f4e6aec 100644
--- a/contrib/mandoc/LICENSE
+++ b/contrib/mandoc/LICENSE
@@ -1,11 +1,11 @@
-$Id: LICENSE,v 1.22 2021/09/19 11:02:09 schwarze Exp $
+$Id: LICENSE,v 1.23 2022/06/25 12:44:25 schwarze Exp $
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) 2010-2022 Ingo Schwarze
Copyright (c) 2008-2012, 2014 Kristaps Dzonsons
-Copyright (c) 2010-2021 Ingo Schwarze
Copyright (c) 1999, 2004, 2017 Marc Espie
Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger
Copyright (c) 2013 Franco Fichtner
@@ -13,6 +13,7 @@ Copyright (c) 2014 Baptiste Daroussin
Copyright (c) 2016 Ed Maste
Copyright (c) 2017 Michael Stapelberg
Copyright (c) 2017 Anthony Bentley
+Copyright (c) 2022 Anna Vyalkova
Copyright (c) 1998, 2004, 2010, 2015 Todd C. Miller
Copyright (c) 2008, 2017 Otto Moerbeek
Copyright (c) 2004 Ted Unangst
diff --git a/contrib/mandoc/Makefile b/contrib/mandoc/Makefile
index 48c4741812b6..cd3f16652069 100644
--- a/contrib/mandoc/Makefile
+++ b/contrib/mandoc/Makefile
@@ -1,6 +1,6 @@
-# $Id: Makefile,v 1.540 2021/09/21 11:04:40 schwarze Exp $
+# $Id: Makefile,v 1.543 2023/10/19 11:45:42 schwarze Exp $
#
-# Copyright (c) 2011, 2013-2021 Ingo Schwarze
+# Copyright (c) 2011, 2013-2022 Ingo Schwarze
# Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons
#
# Permission to use, copy, modify, and distribute this software for any
@@ -100,6 +100,7 @@ SRCS = arch.c \
man_validate.c \
mandoc.c \
mandoc_aux.c \
+ mandoc_dbg.c \
mandoc_msg.c \
mandoc_ohash.c \
mandoc_xr.c \
@@ -121,6 +122,7 @@ SRCS = arch.c \
preconv.c \
read.c \
roff.c \
+ roff_escape.c \
roff_html.c \
roff_term.c \
roff_validate.c \
@@ -186,6 +188,8 @@ DISTFILES = INSTALL \
mandoc.h \
mandoc_aux.h \
mandoc_char.7 \
+ mandoc_dbg.h \
+ mandoc_dbg_init.3 \
mandoc_escape.3 \
mandoc_headers.3 \
mandoc_html.3 \
@@ -232,6 +236,7 @@ LIBMDOC_OBJS = att.o \
LIBROFF_OBJS = eqn.o \
roff.o \
+ roff_escape.o \
roff_validate.o \
tbl.o \
tbl_data.o \
@@ -241,6 +246,7 @@ LIBROFF_OBJS = eqn.o \
LIBMANDOC_OBJS = $(LIBMAN_OBJS) \
$(LIBMDOC_OBJS) \
$(LIBROFF_OBJS) \
+ $(DEBUG_OBJS) \
arch.o \
chars.o \
mandoc.o \
@@ -333,6 +339,7 @@ WWW_MANS = apropos.1.html \
soelim.1.html \
man.cgi.3.html \
mandoc.3.html \
+ mandoc_dbg_init.3.html \
mandoc_escape.3.html \
mandoc_headers.3.html \
mandoc_html.3.html \
@@ -409,6 +416,7 @@ base-install: mandoc demandoc soelim
mkdir -p $(DESTDIR)$(MANDIR)/man5
mkdir -p $(DESTDIR)$(MANDIR)/man7
mkdir -p $(DESTDIR)$(MANDIR)/man8
+ mkdir -p $(DESTDIR)$(MISCDIR)
$(INSTALL_PROGRAM) mandoc demandoc $(DESTDIR)$(BINDIR)
$(INSTALL_PROGRAM) soelim $(DESTDIR)$(BINDIR)/$(BINM_SOELIM)
cd $(DESTDIR)$(BINDIR) && $(LN) mandoc $(BINM_MAN)
@@ -431,6 +439,7 @@ base-install: mandoc demandoc soelim
$(INSTALL_MAN) mandoc_char.7 $(DESTDIR)$(MANDIR)/man7
$(INSTALL_MAN) makewhatis.8 \
$(DESTDIR)$(MANDIR)/man8/$(BINM_MAKEWHATIS).8
+ $(INSTALL_DATA) mandoc.css $(DESTDIR)$(MISCDIR)
lib-install: libmandoc.a
mkdir -p $(DESTDIR)$(LIBDIR)
diff --git a/contrib/mandoc/Makefile.depend b/contrib/mandoc/Makefile.depend
index d5f6556c3e7e..5179e95d4715 100644
--- a/contrib/mandoc/Makefile.depend
+++ b/contrib/mandoc/Makefile.depend
@@ -1,8 +1,8 @@
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 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
+cgi.o: cgi.c config.h mandoc_aux.h mandoc_dbg.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_dbg.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
compat_getline.o: compat_getline.c config.h
@@ -22,62 +22,63 @@ 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
-dba.o: dba.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mansearch.h dba_write.h dba_array.h dba.h
-dba_array.o: dba_array.c config.h mandoc_aux.h dba_write.h dba_array.h
-dba_read.o: dba_read.c config.h mandoc_aux.h mansearch.h dba_array.h dba.h dbm.h
+dba.o: dba.c config.h mandoc_aux.h mandoc_dbg.h mandoc_ohash.h compat_ohash.h mansearch.h dba_write.h dba_array.h dba.h
+dba_array.o: dba_array.c config.h mandoc_aux.h mandoc_dbg.h dba_write.h dba_array.h
+dba_read.o: dba_read.c config.h mandoc_aux.h mandoc_dbg.h mansearch.h dba_array.h dba.h dbm.h
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 mandoc_parse.h
-eqn.o: eqn.c config.h mandoc_aux.h mandoc.h roff.h eqn.h libmandoc.h eqn_parse.h
+demandoc.o: demandoc.c config.h mandoc.h mandoc_dbg.h roff.h man.h mdoc.h mandoc_parse.h
+eqn.o: eqn.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h roff.h eqn.h libmandoc.h eqn_parse.h
eqn_html.o: eqn_html.c config.h mandoc.h roff.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
+html.o: html.c config.h mandoc_aux.h mandoc_dbg.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 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 term_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 term_tag.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 tag.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
+main.o: main.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h mandoc_xr.h roff.h mdoc.h man.h mandoc_parse.h tag.h term_tag.h main.h manconf.h mansearch.h
+man.o: man.c config.h mandoc_aux.h mandoc_dbg.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_dbg.h mandoc.h roff.h man.h out.h html.h main.h
+man_macro.o: man_macro.c config.h mandoc_dbg.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_dbg.h mandoc.h roff.h man.h out.h term.h term_tag.h main.h
+man_validate.o: man_validate.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h tag.h
+mandoc.o: mandoc.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h roff.h libmandoc.h roff_int.h
+mandoc_aux.o: mandoc_aux.c config.h mandoc.h mandoc_aux.h mandoc_dbg.h
+mandoc_dbg.o: mandoc_dbg.c config.h compat_ohash.h mandoc_aux.h mandoc_dbg.h mandoc.h
mandoc_msg.o: mandoc_msg.c config.h mandoc.h
-mandoc_ohash.o: mandoc_ohash.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h
-mandoc_xr.o: mandoc_xr.c config.h 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 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 mandoc.h manconf.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 config.h mandoc_aux.h mandoc.h roff.h mdoc.h main.h
-mdoc_state.o: mdoc_state.c config.h 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 term_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 tag.h
+mandoc_ohash.o: mandoc_ohash.c config.h mandoc_aux.h mandoc_dbg.h mandoc_ohash.h compat_ohash.h
+mandoc_xr.o: mandoc_xr.c config.h mandoc_aux.h mandoc_dbg.h mandoc_ohash.h compat_ohash.h mandoc_xr.h
+mandocd.o: mandocd.c config.h mandoc.h mandoc_dbg.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_dbg.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 mandoc_dbg.h mandoc.h manconf.h
+mansearch.o: mansearch.c config.h mandoc_aux.h mandoc_dbg.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h dbm.h
+mdoc.o: mdoc.c config.h mandoc_aux.h mandoc_dbg.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_dbg.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_dbg.h mandoc.h roff.h mdoc.h out.h html.h main.h
+mdoc_macro.o: mdoc_macro.c config.h mandoc_dbg.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_dbg.h mandoc.h roff.h mdoc.h man.h out.h main.h
+mdoc_markdown.o: mdoc_markdown.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h roff.h mdoc.h main.h
+mdoc_state.o: mdoc_state.c config.h mandoc_dbg.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
+mdoc_term.o: mdoc_term.c config.h mandoc_aux.h mandoc_dbg.h roff.h mdoc.h out.h term.h term_tag.h main.h
+mdoc_validate.o: mdoc_validate.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h mandoc_xr.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h tag.h
msec.o: msec.c config.h mandoc.h libmandoc.h msec.in
-out.o: out.c config.h mandoc_aux.h mandoc.h tbl.h out.h
+out.o: out.c config.h mandoc_aux.h mandoc_dbg.h mandoc.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 tag.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
+read.o: read.c config.h mandoc_aux.h mandoc_dbg.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h libmandoc.h roff_int.h tag.h
+roff.o: roff.c config.h mandoc_aux.h mandoc_dbg.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 config.h mandoc.h roff.h out.h html.h
roff_term.o: roff_term.c config.h mandoc.h roff.h out.h term.h
roff_validate.o: roff_validate.c config.h 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 libmdoc.h
-tag.o: tag.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h roff.h mdoc.h roff_int.h tag.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 roff.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
+tag.o: tag.c config.h mandoc_aux.h mandoc_dbg.h mandoc_ohash.h compat_ohash.h roff.h mdoc.h roff_int.h tag.h
+tbl.o: tbl.c config.h mandoc_aux.h mandoc_dbg.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_dbg.h mandoc.h tbl.h libmandoc.h tbl_int.h
+tbl_html.o: tbl_html.c config.h mandoc_dbg.h mandoc.h roff.h tbl.h out.h html.h
+tbl_layout.o: tbl_layout.c config.h mandoc_aux.h mandoc_dbg.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 config.h mandoc_aux.h out.h term.h
+tbl_term.o: tbl_term.c config.h mandoc_dbg.h mandoc.h tbl.h out.h term.h
+term.o: term.c config.h mandoc.h mandoc_aux.h mandoc_dbg.h out.h term.h main.h
+term_ascii.o: term_ascii.c config.h mandoc.h mandoc_aux.h mandoc_dbg.h out.h term.h manconf.h main.h
+term_ps.o: term_ps.c config.h mandoc_aux.h mandoc_dbg.h out.h term.h manconf.h main.h
+term_tab.o: term_tab.c config.h mandoc_aux.h mandoc_dbg.h out.h term.h
term_tag.o: term_tag.c config.h mandoc.h roff.h roff_int.h tag.h term_tag.h
tree.o: tree.c config.h mandoc.h roff.h mdoc.h man.h tbl.h eqn.h main.h
diff --git a/contrib/mandoc/NEWS b/contrib/mandoc/NEWS
index 634ffaf6ccfa..fdec026e9fec 100644
--- a/contrib/mandoc/NEWS
+++ b/contrib/mandoc/NEWS
@@ -1,4 +1,4 @@
-$Id: NEWS,v 1.40 2021/09/23 18:03:00 schwarze Exp $
+$Id: NEWS,v 1.41 2021/09/25 15:42:08 schwarze Exp $
This file lists the most important changes in the mandoc.bsd.lv distribution.
@@ -195,7 +195,7 @@ Changes in version 1.14.6, released on September 23, 2021
for an additional regression test
* Michal Nowak for reporting several code style issues
* TJ Townsend (OpenBSD) for help with CSS
- * Sevan Janiyan (NetBSD) and Robert Mustacchi (Illumos)
+ * Sevan Janiyan (Viewpoint Linux) and Robert Mustacchi (Illumos)
for extensive release testing
* Job Snijders, Kinichiro INOGUCHI, and Martijn van Duren (OpenBSD)
for checking patches
diff --git a/contrib/mandoc/TODO b/contrib/mandoc/TODO
index 4135a3eca6c8..58d0d6937746 100644
--- a/contrib/mandoc/TODO
+++ b/contrib/mandoc/TODO
@@ -1,6 +1,6 @@
************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.319 2021/09/21 17:58:13 schwarze Exp $
+* $Id: TODO,v 1.335 2024/09/21 12:08:54 schwarze Exp $
************************************************************************
Many issues are annotated for difficulty as follows:
@@ -68,6 +68,14 @@ are mere guesses, and some may be wrong.
but watch out for regressions in the high-level parsers
maybe it should not even remove comments? - consider T{\"
+- In the body of conditional requests, escape sequence expansion
+ must not be performed if the condition is false. This implies
+ the first part of a request line must be expanded before
+ request parsing (like it is now), but expansion in the second
+ part must be delayed.
+ to Nab 8 Aug 2023 20:05:32 +0200 Subject: if/ie d condition always true
+ loc ** exist *** algo *** size ** imp *
+
************************************************************************
* missing features
@@ -149,6 +157,11 @@ are mere guesses, and some may be wrong.
--- missing mdoc features ----------------------------------------------
+- support mixed case for section names
+ also, first section is not "NAME" should not appear more than once per page
+ Alejandro Colomar 28 Apr 2023 16:57:49 +0200
+ loc * exist * algo * size * imp ***
+
- .Sh and .Ss should be parsed and partially callable, see groff_mdoc(7)
reed at reedmedia dot net Sat, 21 Dec 2019 17:13:07 -0600
loc ** exist ** algo ** size ** imp *
@@ -292,7 +305,11 @@ are mere guesses, and some may be wrong.
--- missing misc features ----------------------------------------------
-- conisder whether man(1) fallback code in main.c/fs_*() can find files
+- use the default volume headers for sections with suffixes
+ certainly affects man(7); possibly mdoc(7)?; and also groff(1)
+ Alejandro Colomar 21 Aug 2022
+
+- consider whether man(1) fallback code in main.c/fs_*() can find files
like man3c/fopen.3c (illumos, Solaris) and man3p/fopen.3p (POSIX)
discussed with Robert Mustacchi 21 Sep 2021 10:39:40 -0700
loc * exist * algo ** size * imp **
@@ -302,6 +319,11 @@ are mere guesses, and some may be wrong.
mail to sternenseemann 19 Aug 2021 19:11:50 +0200
loc * exist ** algo ** size * imp **
+- handle Unicode letters in tags in both HTML and terminal output
+ thread "section headers with diacritics" starting with
+ Mario Blaettermann 24 Mar 2022 18:13:23 +0100
+ loc ** exist * algo * size * imp **
+
- -T man does not handle eqn(7) and tbl(7)
Stephen Gregoratto 16 Feb 2020 01:28:07 +1100
also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901636
@@ -325,6 +347,10 @@ are mere guesses, and some may be wrong.
(3) undefined, just output the character -> perhaps WARNING
loc *** exist ** algo ** size ** imp *** (parser reorg helps)
+- man.conf(5) alias aliasname dirname or just -Mb -Mx -Mp
+ mail to jmc@ Mar 23, 2015 03:53:14PM +0100
+ loc * exist * algo * size * imp **
+
- kettenis wants base roff, ms, and me Fri, 1 Jan 2010 22:13:15 +0100 (CET)
loc ** exist ** algo ** size *** imp *
@@ -443,6 +469,10 @@ are mere guesses, and some may be wrong.
reminded by jmc@ Thu, 23 Sep 2010 18:13:39 +0059
loc * exist ** algo *** size * imp ***
+- the man(7) single-font macros (e.g. .B) use .itc,
+ so ".B foo\c" followed by "bar" prints "bar" in bold
+ gbranden@ Sun, 5 Jun 2022 18:08:46 -0500
+
- 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
@@ -468,20 +498,46 @@ are mere guesses, and some may be wrong.
--- HTML issues --------------------------------------------------------
-- make the HTML scaffolding customozable with -O skip=...
+- support the idiom .TP .IP .TP for multi-paragraph list item bodies
+ to: Alejandro Colomar Thu, 19 Oct 2023 16:45:21 +0200
+ loc ** exist ** algo ** size ** imp **
+
+- .Nm without an argument and .Bx cause premature
+ Nab Sun, 5 Jun 2022 18:30:09 +0200
+
+- .Aq Mt could set and reset "white-space: nowrap";
+ Check whether other enclosure macros could profit from similar handling,
+ or whether that is covered by Unicode line-breaking classes WJ, ZW, GL, ZWJ.
+ John Gardner 25 Mar 2022 04:44:27 +1100
+
+- make the HTML scaffolding customizable with -O skip=...
mail to Oliver Corff 3 Jun 2021 17:28:02 +0200
more feedback from Oliver 3 Jun 2021 18:27:56 +0200
more feedback from Oliver 3 Jun 2021 23:37:18 +0200
+ would also be useful for
+ https://github.com/gbdev/rgbds-www/blob/master/
+ maintainer/support/man_postproc.awk
- .Bd -unfilled should not use monospaced font
anton@ 4 Mar 2021 08:19:35 +0100
loc ** exist * algo * size * imp **
-- HTML formatting of .nf should avoid
+- HTML formatting of .nf should avoid ,
+ even when input lines start with whitespace,
and not close and re-open
on .P
my mail to ports@ 27 Jun 2021 16:09:20 +0200
+ reported again by Mohamed Akram 25 Jun 2022 16:28:18 +0000
loc ** exist ** algo * size * imp **
+- tbl(7) HTML output does not implement column width specifications
+ reported by Ted Bullock 11 Jan 2022 16:00:44 -0700
+ loc * exist * algo ? size ? imp *
+
+- link from flags in the SYNOPSIS to their descriptions
+ https://github.com/gbdev/rgbds-www/blob/master/
+ maintainer/support/man_postproc.awk
+ loc * exist * algo ** size * imp *
+
- get rid of the last handful of style= attributes such that
Content-Security-Policy: can be enabled without unsafe-inline
suggested by bentley@ Nov 10, 2019 at 06:02:49AM -0700
@@ -504,19 +560,18 @@ are mere guesses, and some may be wrong.
does this affect other characters, other source macros...?
Jackson Pauls 29 Aug 2017 16:56:27 +0100
-- The tables used to render the three-part page headers actually force
- the width of the to the max-width given for .
- Not yet sure how to fix that...
- Observed by an Anonymous Coward on undeadly.org:
- http://undeadly.org/cgi?action=article&sid=20140925064244&pid=1
- loc * exist * algo ** size * imp ***
-
- generate tags in HTML
idea from florian@ Tue, 7 Apr 2015 00:26:28 +0000
may be possible to implement with .Lk img://something.png alt_text
- check https://github.com/trentm/mdocml
+--- CSS issues ---------------------------------------------------------
+
+- use flexbox for .Bl-tag instead of the fragile float/clear mechanism
+ John Gardner 25 Mar 2022 04:44:27 +1100
+
+
************************************************************************
* formatting issues: gratuitous differences
************************************************************************
@@ -527,7 +582,17 @@ are mere guesses, and some may be wrong.
Steffen Nurpmeso Sat, 08 Nov 2014 13:34:59 +0100
loc * exist ** algo ** size * imp **
-- In .Bl -enum -width 0n, groff continues one the same line after
+- Multiple issues with .In below SYNOPSIS; groff behaviour is:
+ text line + .In -> no line break before #include
+ called .In -> no line break before angle bracket
+ .In + .In -> second one gets #include, too
+ two arguments -> line break before second
+ child macro -> line break before child
+ .In + text line -> line break before the text line
+ Evan Silberman Fri, 20 Sep 2024 16:48:19 -0700
+ loc ** exist ** algo * size * imp *
+
+- In .Bl -enum -width 0n, groff continues on the same line after
the number, mandoc breaks the line.
mail to kristaps@ Mon, 20 Jul 2009 02:21:39 +0200
loc * exist ** algo ** size * imp **
@@ -562,6 +627,10 @@ are mere guesses, and some may be wrong.
reported again by Nicolas Joly Thu, 1 Mar 2012 13:41:26 +0100 via wiz@ 5 Mar
reported again by Franco Fichtner Fri, 27 Sep 2013 21:02:28 +0200
reported again by Bruce Evans Fri, 17 Feb 2017 21:22:44 +0100 via bapt@
+ https://reviews.freebsd.org/D35245
+ even groff_mdoc(7) uses this: Nab Sun, 5 Jun 2022 22:16:37 +0200
+ When implementing this, try to avoid breaking existing manuals,
+ or at least fix them: Jan Stary Sun, 5 Jun 2022 22:48:05 +0200
loc *** exist *** algo *** size ** imp ***
An easy partial fix has been implemented as skip_leading_dot_word().
@@ -574,6 +643,10 @@ are mere guesses, and some may be wrong.
with .ps and .nf/.fi produce execessive blank lines, see libJudy
and graphics/dcmtk. The parser reorg may help with this.
+- The man(7) .UR macro produces UTF-8 angle brackets in -Tutf8 output mode
+ with groff, but ASCII <> with mandoc
+ Alejandro Colomar Mon, 7 Aug 2023 17:13:29 +0200 Subject: hostname
+
- trailing whitespace must be ignored even when followed by a font escape,
see for example
makes
@@ -590,6 +663,14 @@ are mere guesses, and some may be wrong.
To: deraadt@ 25 Oct 2020 23:37:01 +0100
loc ** exist * algo * size ** imp ***
+- warn about \\ and \. in interpretation mode
+ gbranden@, groff issue #62776, 10 Nov 2023 01:57:32 -0500
+
+- warn about output lines exceeding 80 characters
+ Alejandro Colomar Aug 22, 2022
+ not trivial because -T lint does not call any formatter
+ loc *** exist * algo ** size ** imp **
+
- warn about duplicate .Sh/.Ss heads
gre(4): Rename duplicate sections 20 Apr 2018 15:27:33 +0200
loc * exist * algo * size * imp **
diff --git a/contrib/mandoc/catman.c b/contrib/mandoc/catman.c
index b1bab0f68c4b..e46613eb0e8c 100644
--- a/contrib/mandoc/catman.c
+++ b/contrib/mandoc/catman.c
@@ -1,4 +1,4 @@
-/* $Id: catman.c,v 1.22 2020/06/14 23:40:31 schwarze Exp $ */
+/* $Id: catman.c,v 1.23 2021/10/15 15:04:02 schwarze Exp $ */
/*
* Copyright (c) 2017 Michael Stapelberg
* Copyright (c) 2017 Ingo Schwarze
@@ -62,7 +62,7 @@ run_mandocd(int sockfd, const char *outtype, const char* defos)
else
execlp("mandocd", "mandocd", "-T", outtype,
"-I", defos, sockfdstr, (char *)NULL);
- err(1, "exec");
+ err(1, "exec(mandocd)");
}
ssize_t
diff --git a/contrib/mandoc/cgi.c b/contrib/mandoc/cgi.c
index 91310ce404b4..57f3bb7a6e16 100644
--- a/contrib/mandoc/cgi.c
+++ b/contrib/mandoc/cgi.c
@@ -1,7 +1,8 @@
-/* $Id: cgi.c,v 1.175 2021/08/19 15:23:36 schwarze Exp $ */
+/* $Id: cgi.c,v 1.181 2023/04/28 19:11:03 schwarze Exp $ */
/*
- * Copyright (c) 2014-2019, 2021 Ingo Schwarze
+ * Copyright (c) 2014-2019, 2021, 2022 Ingo Schwarze
* Copyright (c) 2011, 2012 Kristaps Dzonsons
+ * Copyright (c) 2022 Anna Vyalkova
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -86,10 +87,10 @@ static void pg_search(const struct req *);
static void pg_searchres(const struct req *,
struct manpage *, size_t);
static void pg_show(struct req *, const char *);
-static void resp_begin_html(int, const char *, const char *);
+static int resp_begin_html(int, const char *, const char *);
static void resp_begin_http(int, const char *);
static void resp_catman(const struct req *, const char *);
-static void resp_copy(const char *);
+static int resp_copy(const char *, const char *);
static void resp_end_html(void);
static void resp_format(const struct req *, const char *);
static void resp_searchform(const struct req *, enum focus);
@@ -352,22 +353,26 @@ resp_begin_http(int code, const char *msg)
fflush(stdout);
}
-static void
-resp_copy(const char *filename)
+static int
+resp_copy(const char *element, const char *filename)
{
char buf[4096];
ssize_t sz;
int fd;
- if ((fd = open(filename, O_RDONLY)) != -1) {
- fflush(stdout);
- while ((sz = read(fd, buf, sizeof(buf))) > 0)
- write(STDOUT_FILENO, buf, sz);
- close(fd);
- }
+ if ((fd = open(filename, O_RDONLY)) == -1)
+ return 0;
+
+ if (element != NULL)
+ printf("<%s>\n", element);
+ fflush(stdout);
+ while ((sz = read(fd, buf, sizeof(buf))) > 0)
+ write(STDOUT_FILENO, buf, sz);
+ close(fd);
+ return 1;
}
-static void
+static int
resp_begin_html(int code, const char *msg, const char *file)
{
const char *name, *sec, *cp;
@@ -413,14 +418,14 @@ resp_begin_html(int code, const char *msg, const char *file)
"\n",
CUSTOMIZE_TITLE);
- resp_copy(MAN_DIR "/header.html");
+ return resp_copy("header", MAN_DIR "/header.html");
}
static void
resp_end_html(void)
{
-
- resp_copy(MAN_DIR "/footer.html");
+ if (resp_copy("footer", MAN_DIR "/footer.html"))
+ puts("");
puts("\n"
"");
@@ -431,7 +436,7 @@ resp_searchform(const struct req *req, enum focus focus)
{
int i;
- printf("