The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=dd276946d56197947c47fa7a37255859aea6e942
commit dd276946d56197947c47fa7a37255859aea6e942 Author: Brooks Davis <bro...@freebsd.org> AuthorDate: 2024-12-06 20:47:31 +0000 Commit: Alexander Ziaee <zi...@freebsd.org> 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 <schwa...@openbsd.org> Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <krist...@bsd.lv> -Copyright (c) 2010-2021 Ingo Schwarze <schwa...@openbsd.org> Copyright (c) 1999, 2004, 2017 Marc Espie <es...@openbsd.org> Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger <jo...@netbsd.org> Copyright (c) 2013 Franco Fichtner <fra...@lastsummer.de> @@ -13,6 +13,7 @@ Copyright (c) 2014 Baptiste Daroussin <b...@freebsd.org> Copyright (c) 2016 Ed Maste <ema...@freebsd.org> Copyright (c) 2017 Michael Stapelberg <stapelb...@debian.org> Copyright (c) 2017 Anthony Bentley <bent...@openbsd.org> +Copyright (c) 2022 Anna Vyalkova <cy...@sysrq.in> Copyright (c) 1998, 2004, 2010, 2015 Todd C. Miller <todd.mil...@courtesan.com> Copyright (c) 2008, 2017 Otto Moerbeek <o...@drijf.net> Copyright (c) 2004 Ted Unangst <t...@openbsd.org> 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 <schwa...@openbsd.org> +# Copyright (c) 2011, 2013-2022 Ingo Schwarze <schwa...@openbsd.org> # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <krist...@bsd.lv> # # 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 </pre> + 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 <br/> +- HTML formatting of .nf should avoid <br/>, + even when input lines start with whitespace, and not close and re-open <pre> 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 <body> to the max-width given for <html>. - 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 <img> 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 <stapelb...@debian.org> * Copyright (c) 2017 Ingo Schwarze <schwa...@openbsd.org> @@ -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 <schwa...@usta.de> + * Copyright (c) 2014-2019, 2021, 2022 Ingo Schwarze <schwa...@usta.de> * Copyright (c) 2011, 2012 Kristaps Dzonsons <krist...@bsd.lv> + * Copyright (c) 2022 Anna Vyalkova <cy...@sysrq.in> * * 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) "<body>\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("</footer>"); puts("</body>\n" "</html>"); @@ -431,7 +436,7 @@ resp_searchform(const struct req *req, enum focus focus) { int i; - printf("<form action=\"/%s\" method=\"get\" " + printf("<form role=\"search\" action=\"/%s\" method=\"get\" " "autocomplete=\"off\" autocapitalize=\"none\">\n" " <fieldset>\n" " <legend>Manual Page Search Parameters</legend>\n", @@ -439,13 +444,14 @@ resp_searchform(const struct req *req, enum focus focus) /* Write query input box. */ - printf(" <input type=\"search\" name=\"query\" value=\""); + printf(" <label>Search query:\n" + " <input type=\"search\" name=\"query\" value=\""); if (req->q.query != NULL) html_print(req->q.query); - printf( "\" size=\"40\""); + printf("\" size=\"40\""); if (focus == FOCUS_QUERY) printf(" autofocus"); - puts(">"); + puts(">\n </label>"); /* Write submission buttons. */ @@ -457,7 +463,7 @@ resp_searchform(const struct req *req, enum focus focus) /* Write section selector. */ - puts(" <select name=\"sec\">"); + puts(" <select name=\"sec\" aria-label=\"Manual section\">"); for (i = 0; i < sec_MAX; i++) { printf(" <option value=\"%s\"", sec_numbers[i]); if (NULL != req->q.sec && @@ -469,7 +475,7 @@ resp_searchform(const struct req *req, enum focus focus) /* Write architecture selector. */ - printf( " <select name=\"arch\">\n" + printf( " <select name=\"arch\" aria-label=\"CPU architecture\">\n" " <option value=\"default\""); if (NULL == req->q.arch) printf(" selected=\"selected\""); @@ -486,7 +492,8 @@ resp_searchform(const struct req *req, enum focus focus) /* Write manpath selector. */ if (req->psz > 1) { - puts(" <select name=\"manpath\">"); + puts(" <select name=\"manpath\"" + " aria-label=\"Manual path\">"); for (i = 0; i < (int)req->psz; i++) { printf(" <option"); if (strcmp(req->q.manpath, req->p[i]) == 0) @@ -554,16 +561,21 @@ validate_filename(const char *file) static void pg_index(const struct req *req) { - - resp_begin_html(200, NULL, NULL); + if (resp_begin_html(200, NULL, NULL) == 0) + puts("<header>"); resp_searchform(req, FOCUS_QUERY); - printf("<p>\n" + printf("</header>\n" + "<main>\n" + "<p role=\"doc-notice\" aria-label=\"Usage\">\n" "This web interface is documented in the\n" - "<a class=\"Xr\" href=\"/%s%sman.cgi.8\">man.cgi(8)</a>\n" + "<a class=\"Xr\" href=\"/%s%sman.cgi.8\"" + " aria-label=\"man dot CGI, section 8\">man.cgi(8)</a>\n" "manual, and the\n" - "<a class=\"Xr\" href=\"/%s%sapropos.1\">apropos(1)</a>\n" + "<a class=\"Xr\" href=\"/%s%sapropos.1\"" + " aria-label=\"apropos, section 1\">apropos(1)</a>\n" "manual explains the query syntax.\n" - "</p>\n", + "</p>\n" + "</main>\n", scriptname, *scriptname == '\0' ? "" : "/", scriptname, *scriptname == '\0' ? "" : "/"); resp_end_html(); @@ -573,33 +585,40 @@ static void pg_noresult(const struct req *req, int code, const char *http_msg, const char *user_msg) { - resp_begin_html(code, http_msg, NULL); + if (resp_begin_html(code, http_msg, NULL) == 0) + puts("<header>"); resp_searchform(req, FOCUS_QUERY); - puts("<p>"); + puts("</header>"); + puts("<main>"); + puts("<p role=\"doc-notice\" aria-label=\"No result\">"); puts(user_msg); puts("</p>"); + puts("</main>"); resp_end_html(); } static void pg_error_badrequest(const char *msg) { - - resp_begin_html(400, "Bad Request", NULL); - puts("<h1>Bad Request</h1>\n" - "<p>\n"); + if (resp_begin_html(400, "Bad Request", NULL)) + puts("</header>"); + puts("<main>\n" + "<h1>Bad Request</h1>\n" + "<p role=\"doc-notice\" aria-label=\"Bad Request\">"); puts(msg); printf("Try again from the\n" "<a href=\"/%s\">main page</a>.\n" - "</p>", scriptname); + "</p>\n" + "</main>\n", scriptname); resp_end_html(); } static void pg_error_internal(void) { - resp_begin_html(500, "Internal Server Error", NULL); - puts("<p>Internal Server Error</p>"); + if (resp_begin_html(500, "Internal Server Error", NULL)) + puts("</header>"); + puts("<main><p role=\"doc-notice\">Internal Server Error</p></main>"); resp_end_html(); } @@ -630,6 +649,7 @@ pg_searchres(const struct req *req, struct manpage *r, size_t sz) size_t i, iuse; int archprio, archpriouse; int prio, priouse; + int have_header; for (i = 0; i < sz; i++) { if (validate_filename(r[i].file)) @@ -696,14 +716,18 @@ pg_searchres(const struct req *req, struct manpage *r, size_t sz) priouse = prio; iuse = i; } - resp_begin_html(200, NULL, r[iuse].file); + have_header = resp_begin_html(200, NULL, r[iuse].file); } else - resp_begin_html(200, NULL, NULL); + have_header = resp_begin_html(200, NULL, NULL); + if (have_header == 0) + puts("<header>"); resp_searchform(req, req->q.equal || sz == 1 ? FOCUS_NONE : FOCUS_QUERY); + puts("</header>"); if (sz > 1) { + puts("<nav>"); puts("<table class=\"results\">"); for (i = 0; i < sz; i++) { printf(" <tr>\n" @@ -722,6 +746,7 @@ pg_searchres(const struct req *req, struct manpage *r, size_t sz) " </tr>"); } puts("</table>"); + puts("</nav>"); } if (req->q.equal || sz == 1) { @@ -743,7 +768,9 @@ resp_catman(const struct req *req, const char *file) int italic, bold; if ((f = fopen(file, "r")) == NULL) { - puts("<p>You specified an invalid manual file.</p>"); + puts("<p role=\"doc-notice\">\n" + " You specified an invalid manual file.\n" + "</p>"); return; } @@ -879,8 +906,10 @@ resp_format(const struct req *req, const char *file) int fd; int usepath; - if (-1 == (fd = open(file, O_RDONLY, 0))) { - puts("<p>You specified an invalid manual file.</p>"); + if (-1 == (fd = open(file, O_RDONLY))) { + puts("<p role=\"doc-notice\">\n" + " You specified an invalid manual file.\n" + "</p>"); return; } @@ -966,8 +995,10 @@ pg_show(struct req *req, const char *fullpath) return; } - resp_begin_html(200, NULL, file); + if (resp_begin_html(200, NULL, file) == 0) + puts("<header>"); resp_searchform(req, FOCUS_NONE); + puts("</header>"); resp_show(req, file); resp_end_html(); } @@ -1066,7 +1097,7 @@ main(void) #if HAVE_PLEDGE /* * The "rpath" pledge could be revoked after mparse_readfd() - * if the file desciptor to "/footer.html" would be opened + * if the file descriptor to "/footer.html" would be opened * up front, but it's probably not worth the complication * of the code it would cause: it would require scattering * pledge() calls in multiple low-level resp_*() functions. diff --git a/contrib/mandoc/chars.c b/contrib/mandoc/chars.c index d54fc458aea2..72fe8df67e83 100644 --- a/contrib/mandoc/chars.c +++ b/contrib/mandoc/chars.c @@ -1,4 +1,4 @@ -/* $Id: chars.c,v 1.79 2020/02/13 16:18:29 schwarze Exp $ */ +/* $Id: chars.c,v 1.81 2022/06/26 20:33:43 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <krist...@bsd.lv> * Copyright (c) 2011, 2014, 2015, 2017, 2018, 2020 @@ -92,7 +92,6 @@ static struct ln lines[] = { { "en", "-", 0x2013 }, { "hy", "-", 0x2010 }, { "e", "\\", 0x005c }, - { ".", ".", 0x002e }, { "r!", "!", 0x00a1 }, { "r?", "?", 0x00bf }, @@ -365,7 +364,7 @@ static struct ln lines[] = { { "de", "<degree>", 0x00b0 }, { "%0", "<permille>", 0x2030 }, { "fm", "\'", 0x2032 }, - { "sd", "''", 0x2033 }, + { "sd", "\"", 0x2033 }, { "mc", "<micro>", 0x00b5 }, { "Of", "_\ba", 0x00aa }, { "Om", "_\bo", 0x00ba }, diff --git a/contrib/mandoc/compat_strsep.c b/contrib/mandoc/compat_strsep.c index 9765ac823eeb..29865ba4a468 100644 --- a/contrib/mandoc/compat_strsep.c +++ b/contrib/mandoc/compat_strsep.c @@ -1,4 +1,4 @@ -/* $Id: compat_strsep.c,v 1.5 2020/06/15 01:37:15 schwarze Exp $ */ +/* $Id: compat_strsep.c,v 1.6 2022/06/21 10:34:14 schwarze Exp $ */ /* $OpenBSD: strsep.c,v 1.8 2015/08/31 02:53:57 guenther Exp $ */ /*- @@ -31,6 +31,8 @@ */ #include "config.h" +#include <stddef.h> + /* * Get next token from string *stringp, where tokens are possibly-empty * strings separated by characters from delim. diff --git a/contrib/mandoc/configure b/contrib/mandoc/configure index 5cf4e081c2cb..7f5fa1976806 100755 --- a/contrib/mandoc/configure +++ b/contrib/mandoc/configure @@ -1,6 +1,6 @@ #!/bin/sh # -# $Id: configure,v 1.81 2021/09/20 10:19:51 schwarze Exp $ +# $Id: configure,v 1.83 2023/10/19 11:45:42 schwarze Exp $ # # Copyright (c) 2014-2021 Ingo Schwarze <schwa...@openbsd.org> # @@ -37,6 +37,7 @@ SOURCEDIR=`dirname "${0}"` MANPATH_BASE="/usr/share/man:/usr/X11R6/man" MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" +DEBUG_MEMORY=0 OSENUM= OSNAME= UTF8_LOCALE= @@ -99,6 +100,7 @@ NEED_GNU_SOURCE=0 NEED_OPENBSD_SOURCE=0 NEED_XPG4_2=0 +DEBUG_OBJS= MANDOC_COBJS= SOELIM_COBJS= @@ -109,6 +111,7 @@ BIN_FROM_SBIN= INCLUDEDIR= LIBDIR= MANDIR= +MISCDIR= READ_ALLOWED_PATH= WWWPREFIX="/var/www" @@ -334,6 +337,7 @@ runtest vasprintf VASPRINTF "" -D_GNU_SOURCE || true # --- fts --- if [ "${1}" = "-depend" ]; then + DEBUG_MEMORY=1 HAVE_FTS=0 HAVE_FTS_COMPARE_CONST=0 echo "tested fts: HAVE_FTS=0 (for make depend)" 1>&2 @@ -461,6 +465,10 @@ echo echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" echo "#define MANPATH_BASE \"${MANPATH_BASE}\"" echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" +if [ ${DEBUG_MEMORY} -ne 0 ]; then + echo "#define DEBUG_MEMORY ${DEBUG_MEMORY}" + DEBUG_OBJS=mandoc_dbg.o +fi echo "#define OSENUM ${OSENUM}" [ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" [ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\"" @@ -613,6 +621,7 @@ exec > Makefile.local [ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${PREFIX}/include/mandoc" [ -z "${LIBDIR}" ] && LIBDIR="${PREFIX}/lib/mandoc" [ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man" +[ -z "${MISCDIR}" ] && MISCDIR="${PREFIX}/share/misc" [ -z "${HTDOCDIR}" ] && HTDOCDIR="${WWWPREFIX}/htdocs" [ -z "${CGIBINDIR}" ] && CGIBINDIR="${WWWPREFIX}/cgi-bin" @@ -640,6 +649,7 @@ CC = ${CC} CFLAGS = ${CFLAGS} LDADD = ${LDADD} LDFLAGS = ${LDFLAGS} +DEBUG_OBJS = ${DEBUG_OBJS} MANDOC_COBJS = ${MANDOC_COBJS} SOELIM_COBJS = ${SOELIM_COBJS} STATIC = ${STATIC} @@ -650,6 +660,7 @@ BIN_FROM_SBIN = ${BIN_FROM_SBIN} *** 7903 LINES SKIPPED ***