freebsd-skq/contrib/mdocml
Ed Maste b422efa4c1 makewhatis: make output reproducible
The mandoc search database generation uses each page's inode number as
a hash key to index hard linked pages only once.  However, it also
processed the pages ordered by hash key resulting in effectively non-
deterministic output.

Instead:

1) provide fts_open() with a comparison function to process directories
   and files in a deterministic order
2) in addition to the existing hash, insert pages into a linked list
   which will be sorted (by virtue of 1)
3) iterate over pages by the list in 2, instead of hash order

I will work on upstreaming this change.

Reviewed by:	bapt
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D8213
2016-10-10 19:09:35 +00:00
..
apropos.1 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
att.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
cgi.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
cgi.h.example Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
chars.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_err.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_fts.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_fts.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_getline.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_getsubopt.c Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
compat_isblank.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_mkdtemp.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_ohash.c Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
compat_ohash.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_progname.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_reallocarray.c Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
compat_sqlite3_errstr.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_strcasestr.c Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
compat_stringlist.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_stringlist.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
compat_strlcat.c Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
compat_strlcpy.c Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
compat_strsep.c Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
compat_strtonum.c Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
compat_vasprintf.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
config.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
config.log Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
configure Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
configure.local.example Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
demandoc.1 Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
demandoc.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
eqn_html.c Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
eqn_term.c Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
eqn.7 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
eqn.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
gmdiff Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
html.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
html.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
INSTALL Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
lib.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
lib.in Convert casperd(8) daemon to the libcasper. 2016-02-25 18:23:40 +00:00
libman.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
libmandoc.h Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
libmdoc.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
libroff.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
LICENSE Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
main.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
main.h Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
Makefile Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
Makefile.depend Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
makewhatis.8 Update to mandoc cvs version as of 20141201 2014-12-02 23:24:57 +00:00
man_hash.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man_html.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man_macro.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man_term.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man_validate.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man-cgi.css Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
man.1 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
man.7 Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
man.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man.cgi.3 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
man.cgi.8 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
man.conf.5 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
man.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
manconf.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc_aux.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc_aux.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc_char.7 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc_escape.3 Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
mandoc_headers.3 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mandoc_html.3 Update mandoc to 1.13.1 2014-11-22 18:57:23 +00:00
mandoc_malloc.3 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mandoc_ohash.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc_ohash.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc.1 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc.3 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mandoc.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandoc.css Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mandoc.db.5 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mandoc.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mandocdb.c makewhatis: make output reproducible 2016-10-10 19:09:35 +00:00
manpage.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
manpath.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
manpath.h Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
mansearch_const.c Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
mansearch.3 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mansearch.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mansearch.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mchars_alloc.3 Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
mdoc_argv.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_hash.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_html.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_macro.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_man.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_state.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_term.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc_validate.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc.7 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
mdoc.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
msec.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
msec.in
NEWS Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
out.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
out.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
preconv.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
predefs.in Merge mdocml v1.12.3 into head 2014-02-01 09:27:57 +00:00
read.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
roff_int.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
roff.7 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
roff.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
roff.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
soelim.1 Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
soelim.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
st.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
st.in Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
tag.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
tag.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl_data.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl_html.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl_layout.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl_opts.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl_term.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
tbl.3 Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
tbl.7 Update mandoc to cvs snaphot from 20150302 2015-03-02 16:58:57 +00:00
tbl.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
term_ascii.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
term_ps.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
term.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
term.h Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-dirent-namlen.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-err.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-fgetln.c Update mandoc to 1.13.1 2014-11-22 18:57:23 +00:00
test-fts.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-getline.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-getsubopt.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-isblank.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-mkdtemp.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-mmap.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-ohash.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-pledge.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-progname.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-reallocarray.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-rewb-bsd.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
test-rewb-sysv.c Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
test-sqlite3_errstr.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-sqlite3.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strcasestr.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-stringlist.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strlcat.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strlcpy.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strptime.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strsep.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-strtonum.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-vasprintf.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
test-wchar.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00
TODO Update mandoc to 1.13.4 release 2016-07-23 11:55:15 +00:00
tree.c Update mandoc to 20160116 2016-01-15 23:28:12 +00:00