summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ChangeLog8824
-rw-r--r--ChangeLog-201313184
2 files changed, 22008 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..550c635
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,8824 @@
+2023-09-23 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.12.0
+
+2023-09-19 Colin Watson <cjwatson@debian.org>
+
+ systemd: Avoid duplicate cleanup of old cat pages
+
+ Thanks to Ferenc Wágner. Fixes https://bugs.debian.org/1052221.
+
+ * init/systemd/man-db.service.in: Remove call to `find`; this is already
+ handled equivalently by `init/systemd/man-db.conf.in`, and having both
+ can result in error messages due to the two cleanups running
+ concurrently.
+ * NEWS.md: Document this.
+
+2023-08-20 Colin Watson <cjwatson@debian.org>
+
+ bootstrap: Make --skip-po disable Gnulib downloads too
+
+ Fixes https://bugs.debian.org/1050089.
+
+ * bootstrap.conf: If the `--skip-po` option is explicitly passed, then
+ don't pass `--po-base` or `--po-domain` options to `gnulib-tool`, and
+ don't merge `gl/ref-po/` into `gl/po/`.
+
+2023-08-07 Colin Watson <cjwatson@debian.org>
+
+ README.md: Update my copyright notice
+
+2023-08-07 Colin Watson <cjwatson@debian.org>
+
+ Update URLs for libpipeline and flex
+
+ * NEWS.md, docs/INSTALL.quick: Update libpipeline URLs to
+ <https://libpipeline.gitlab.io/libpipeline/>.
+ * docs/INSTALL.quick: Update flex URL to
+ <https://github.com/westes/flex>.
+
+2023-08-07 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib stable-202307 as of 20230728
+
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ d1b40e09c9c04d5c1ff120373397c6180bc16beb.
+
+2023-08-07 Colin Watson <cjwatson@debian.org>
+
+ Update syscall lists from systemd ab9617a766
+
+ * lib/sandbox.c (make_seccomp_filter): Add `futex_waitv`,
+ `riscv_hwprobe`, and `arm_fadvise64_64`.
+
+2023-08-07 Petr Pisar <petr.pisar@atlas.cz>
+
+ Update Czech translation
+
+ * po/cs.po: Update from Translation Project.
+
+2023-08-07 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2023-08-07 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+2023-08-07 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese translation
+
+ * po/zh_CN.po: Update from Translation Project.
+
+2023-08-07 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian manual page translation
+
+ * man/po4a/po/ro.po: Update from Translation Project.
+
+2023-08-07 Seong-ho Cho <darkcircle.0426@gmail.com>
+
+ Update Korean manual page translation
+
+ * man/po4a/po/ko.po: Update from Translation Project.
+
+2023-08-07 Seong-ho Cho <darkcircle.0426@gmail.com>
+
+ Update Korean translation
+
+ * po/ko.po: Update from Translation Project.
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.12.0-pre2
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * man/po4a/po/*.pot, man/po4a/po/*.po, po/*.pot, po/*.po: Update.
+
+2023-08-06 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian manual page translation
+
+ * man/po4a/po/ro.po: Update from Translation Project.
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ man(1): Document handling of file names without -l more accurately
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/18.
+
+ * man/man1/man.man1: Without `-l`, we only fall back to interpreting
+ arguments as local file names if they contain a slash. Explain this
+ more accurately.
+ * NEWS.md: Document this.
+
+2023-08-06 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'cjwatson/man-negative-warnings' into 'main'
+
+ man: Allow disabling warnings enabled by default in groff
+
+ See merge request man-db/man-db!8
+
+2023-08-06 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ man: Allow disabling warnings enabled by default in groff
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ man(1): Fix typography in STANDARDS
+
+ Reported by Mario Blättermann.
+
+ * man/man/man.man1 (STANDARDS): Use `\-`, not a mix of Unicode hyphens
+ and unescaped ASCII hyphens.
+ * man/po4a/po/*.pot, man/po4a/po/*.po: Update.
+
+2023-08-06 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian translation
+
+ * po/ro.po: Update from Translation Project.
+
+2023-08-06 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2023-08-06 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German translation
+
+ * po/de.po: Update from Translation Project.
+
+2023-08-06 Yi-Jyun Pan <pan93412@gmail.com>
+
+ Update Traditional Chinese translation
+
+ * po/zh_TW.po: Update from Translation Project.
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ Declare variable as const
+
+ * lib/util.c (init_locale): Declare `locale` as const.
+
+2023-08-06 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'guess_manpath_fix' into 'main'
+
+ Fixed add_man_subdirs to correctly add PATH elements with trailing paths
+
+ See merge request man-db/man-db!10
+
+2023-08-06 Jan Seeger <jan.seeger@thenybble.de>
+
+ Fixed add_man_subdirs to correctly add PATH elements with trailing paths
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.12.0-pre1
+
+ * man/po4a/po/*.pot, man/po4a/po/*.po, po/man-db.pot, po/*.po: Update.
+ * NEWS.md: Bump next version to 2.12.0.
+ * configure.ac: Update version and date.
+
+2023-08-06 Colin Watson <cjwatson@debian.org>
+
+ Always pass a line length to nroff
+
+ Fixes https://bugs.debian.org/1041704.
+
+ * src/man.c (get_roff_line_length): Remove `line_length != 80`
+ condition.
+ * NEWS.md: Document this.
+
+2023-08-01 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'branden-lexgrog-thinko' into 'main'
+
+ lexgrog.1: Fix thinko in my recent contribution
+
+ See merge request man-db/man-db!9
+
+2023-07-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ lexgrog.1: Fix thinko in my recent contribution
+
+ In commit bbf7701c4f, 19 July, I got the sense of the tests that
+ governed the macro definitions backwards. I fooled myself because I use
+ a more complex test in groff's an-ext.tmac file (written in a
+ non-intuitive way due to AT&T troff limitations) so that it's easy to
+ run groff's automated tests on them.
+
+2023-07-22 Colin Watson <cjwatson@debian.org>
+
+ Ensure that time_t can go past 2038
+
+ * bootstrap.conf (gnulib_modules): Add `year2038-recommended`.
+ * NEWS.md: Document this.
+
+2023-07-22 Colin Watson <cjwatson@debian.org>
+
+ man: Pass --regex/--wildcard on to whatis/apropos
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/13.
+
+ * src/man.c (do_extern): Pass `-r` or `-w` options to the external
+ program if necessary.
+ * man/man1/man.man1 (Main modes of operation): Document that `-f` and
+ `-k` are still only approximately equivalent to `whatis` and `apropos`
+ respectively (since `man` accepts slightly different options).
+ * NEWS.md: Document this.
+
+2023-07-22 Colin Watson <cjwatson@debian.org>
+
+ Update pre-commit hooks
+
+ * .pre-commit-config.yaml (shellcheck-py): Update to v0.9.0.5.
+
+2023-07-22 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib stable-202307
+
+ * bootstrap: Sync to Gnulib b7f7ed06961454cdf77b93c6c00c3e3f26202663.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ b7f7ed06961454cdf77b93c6c00c3e3f26202663.
+ * src/tests/Makefile.am (fspause_LDADD): Link with `$(NANOSLEEP_LIB)`
+ instead of `$(LIB_NANOSLEEP)`.
+ * NEWS.md: Document this.
+
+2023-07-21 Colin Watson <cjwatson@debian.org>
+
+ Include .lf corrections in debugging output
+
+ The pipeline command names in `PIPELINE_DEBUG` output are deliberately
+ abbreviated in the cases where the command is inserting data into the
+ `*roff` input stream, in an attempt to convey the essential parts
+ without overwhelming the reader. However, it probably does make sense
+ to include `.lf` corrections there, since if you're relying on the
+ debugging output to construct a manual shell pipeline when debugging an
+ issue with a page, you'll want the `.lf` corrections so that line
+ numbers still come out correctly.
+
+ * src/man.c (add_roff_line_length, display): Include `echo .lf 1` in
+ command names where appropriate.
+
+2023-07-20 Colin Watson <cjwatson@debian.org>
+
+ Take advantage of groff's AD string and HY register
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/23. Thanks to G.
+ Branden Robinson for assistance.
+
+ * src/man.c (make_roff_command) [TROFF_IS_GROFF]: Implement
+ `--no-hyphenation` using `-rHY=0`. This requires groff >= 1.19,
+ released in 2003.
+ (disable_hyphenation): Only define if `TROFF_IS_GROFF` is not defined.
+ (display): Only use the more complex hyphenation-control mechanism if
+ `TROFF_IS_GROFF` is not defined.
+
+ * src/man.c (disable_justification): Implement using `.ds AD l` if groff
+ is at least version 1.23.0.
+ (display): Adjust debugging output to reflect this (more or less).
+
+ * NEWS.md: Document this.
+
+2023-07-20 Colin Watson <cjwatson@debian.org>
+
+ Document false negatives from "man -K"
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/14.
+
+ * man/man1/man.man1 (Main modes of operation): Document false negatives
+ due to things like `\-`.
+ * NEWS.md: Document this.
+
+2023-07-20 Colin Watson <cjwatson@debian.org>
+
+ man(1): Add a STANDARDS section
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/20.
+
+ * man/man1/man.man1 (STANDARDS): New section.
+ * NEWS.md: Document this.
+
+2023-07-19 Colin Watson <cjwatson@debian.org>
+
+ Change "CONFORMING TO" to "STANDARDS"
+
+ This is in line with `man-pages(7)`.
+
+ See https://gitlab.com/man-db/man-db/-/issues/20.
+
+ * man/man1/man.man1 (DESCRIPTION): Recommend `STANDARDS` rather than
+ `CONFORMING TO`.
+ * NEWS.md: Document this.
+
+2023-07-19 Colin Watson <cjwatson@debian.org>
+
+ Fix test failures when a working iconv is not available
+
+ Part of https://gitlab.com/man-db/man-db/-/issues/25.
+
+ * configure.ac: Substitute `HAVE_ICONV`.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export `HAVE_ICONV`.
+ * src/tests/testlib.sh (report_skip): New function to skip an individual
+ test out of several in a file.
+ (skip): Refactor slightly to call `report_skip`.
+ * src/tests/man-recode-in-place, src/tests/man-recode-suffix,
+ src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding,
+ src/tests/manconv-incomplete-char-at-eof,
+ src/tests/manconv-odd-combinations: Skip several tests if `HAVE_ICONV`
+ is not `yes`.
+ * NEWS.md: Document this.
+
+2023-07-19 Colin Watson <cjwatson@debian.org>
+
+ NEWS.md: Document some recent commits
+
+2023-07-19 Colin Watson <cjwatson@debian.org>
+
+ Update warning regex for groff 1.23.0
+
+ Part of https://gitlab.com/man-db/man-db/-/issues/25.
+
+ * man/check-man: groff 1.23.0 says "cannot break line" rather than
+ "can't break line"; update regular expression.
+
+2023-07-19 Colin Watson <cjwatson@debian.org>
+
+ Avoid translation fallout from lexgrog(1) fix
+
+ * man/man1/lexgrog.man1: Protect `.ds mC CW` with `.if !'po4a'hide'`, to
+ avoid "CW" showing up as a string for translation.
+
+2023-07-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Improve lexgrog(1) portability
+
+ This fixes a test failure in man1/lexgrog.1 when building against groff
+ 1.23.0.
+
+ Borrow code from groff 1.23.0's "an-ext.tmac" file (licensed as
+ permissively as a decadent society) to implement `EX` and `EE` extension
+ macros from Ninth Edition Research Unix (1986) (and groff) to get
+ monospaced code displays in a more portable way. There is no way to
+ portably change font families in pure man(7) itself, and the names of
+ troff typefaces aren't very portable either. There is also no portable
+ way to test for the _existence_ of a font. FTW.
+
+ ("Portable" here largely means "to AT&T device-independent troff
+ implementations", for which there has been no official source since the
+ mid-1990s.[1] Several AT&T Unix System V licensees/descendants have
+ continued to ship their own vendored versions, but these have enjoyed
+ little or no development for the past 3 decades.)
+
+ * Define a string `mC` to store the name of a presumed monospaced roman
+ typeface. Use "CW", which is portable to AT&T device-independent
+ troff of the early 1980s before it occurred to anyone that Courier
+ might someday be available in italic and bold styles (and budget
+ available to purchase them).
+ * Define `mC` as "CR" if using a typesetting device and the formatter is
+ groff, or claims groff compatibility by the setting the `.g` register.
+ This is reasonably portable to modern implementations given
+ traditional troff font naming practices and the pervasive influence of
+ Adobe Software and the "base fonts" of its PostScript and PDF
+ specifications.
+ * If not typesetting (i.e., if using nroff), define `mC` as "R", which
+ is certain to be available.
+ * Define `EX` and `EE` macros as groff does, if the formatter does not
+ set the `.g` register.
+ * Migrate from `ft CW` and `nf` requests to `EX` macro calls.
+ * Migrate from `ft P` and `fi` requests to `EE` macro calls.
+ * Replace an inline use of `\f(CW` with a change to inline bold. There
+ is to date no portable way to inline a font family change.
+
+ Test passes now. Tested as-is and with the `EX` and `EE` macro
+ definitions forcibly enabled.
+
+ [1] https://groups.google.com/g/comp.text/c/COkqrii4W0E/m/7HarA8Ha2dAJ
+
+2023-07-08 Colin Watson <cjwatson@debian.org>
+
+ Correct typography of "~/.manpath"
+
+ `~` should be written as `\(ti` in manual pages to avoid being rendered
+ as something along the lines of U+02DC SMALL TILDE in PDF output, or as
+ of groff 1.23.0 in UTF-8 output.
+
+ * man/man1/apropos.man1, man/man1/man.man1, man/man1/manpath.man1,
+ man/man1/whatis.man1, man/man8/catman.man8, man/man8/mandb.man8,
+ man/it/man1/apropos.man1, man/it/man1/man.man1: Write `\(ti` when shell
+ tilde expansion is intended.
+
+2023-07-03 Colin Watson <cjwatson@debian.org>
+
+ systemd: Sort hardening options
+
+ * init/systemd/man-db.service.in: Sort hardening options.
+
+2023-05-21 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Update Serbian manual page translation
+
+ * man/po4a/po/sr.po: Update from Translation Project.
+
+2023-04-14 Temuri Doghonadze <temuri.doghonadze@gmail.com>
+
+ Add Georgian translation
+
+ * po/ka.po: New from Translation Project.
+ * po/LINGUAS: Add ka.
+ * man/THANKS: Add translator credit.
+
+2023-04-09 Colin Watson <cjwatson@debian.org>
+
+ mandb: Warn if not running as cache owner
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/17.
+
+ * src/mandb.c (main): If effective user ID doesn't match the configured
+ cache owner (if any), and the `--quiet` option wasn't used, then issue a
+ warning.
+ * NEWS.md: Document this.
+
+2023-04-09 Colin Watson <cjwatson@debian.org>
+
+ Deduplicate search results from "man -K"
+
+ Reported by Alejandro Colomar.
+
+ * src/man.c (do_global_apropos_section): Skip entries whose ultimate
+ source path have already been seen.
+ (do_global_apropos): Create/free set used to track seen entries.
+ * NEWS.md: Document this.
+
+2023-03-29 Colin Watson <cjwatson@debian.org>
+
+ README.md: Explain where INSTALL.autoconf comes from
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/16.
+
+ * README.md: Explain that you may need to run `./bootstrap` to create
+ `docs/INSTALL.autoconf`.
+
+2023-03-10 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Work around Firebuild
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/15.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow some socket-related system
+ calls if libfirebuild.so is preloaded.
+ * NEWS.md: Document this.
+
+2023-03-02 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib stable-202301 as of 20230209
+
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ c5dc86ca5c2e5c16177508bc32afe755b7995685.
+
+2023-02-23 Colin Watson <cjwatson@debian.org>
+
+ Fix several spelling errors
+
+ Found by codespell, although I haven't added it to our pre-commit hooks
+ since it gets confused by rather too many bits of syntax here.
+
+ * docs/manpages.example, lib/cleanup.c, lib/decompression.c,
+ lib/filenames.c (filename_info), src/ult_src.c (test_for_include): Fix
+ spelling errors.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Copy files during bootstrapping
+
+ * .gitlab-ci.yml (bootstrap): Run `./bootstrap` with `--copy`.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Fix bootstrap_epilogue to handle running without --copy
+
+ * bootstrap.conf (bootstrap_epilogue): Avoid leaving
+ `docs/INSTALL.autoconf` as a dangling symbolic link if the `--copy`
+ option is not used.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Ensure that .gitignore and po/LINGUAS remain sorted
+
+ * .pre-commit-config.yaml (pre-commit-hooks): Add `file-contents-sorter`
+ for `.gitignore` and `po/LINGUAS`.
+ * .gitignore: Sort.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Update pre-commit hooks
+
+ * .pre-commit-config.yaml (pre-commit-hooks): Update to v4.4.0.
+ (shellcheck-py): Update to v0.9.0.2.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib stable-202301
+
+ * bootstrap: Sync to Gnulib 32a72f45374c9a36afa574d1a08bb98090270012.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 32a72f45374c9a36afa574d1a08bb98090270012.
+ * NEWS.md: Document this.
+
+2023-01-14 Colin Watson <cjwatson@debian.org>
+
+ Update syscall lists from systemd fc2a0bc05e
+
+ * lib/sandbox.c (make_seccomp_filter): Add `cacheflush`,
+ `clock_getres_time64`, `clock_nanosleep_time64`, `close_range`,
+ `clone3`, `epoll_pwait2`, `faccessat2`, `futex_time64`, `pidfd_open`,
+ `pidfd_send_signal`, `ppoll_time64`, `pselect6_time64`,
+ `riscv_flush_icache`, `rt_sigtimedwait_time64`, and `utimensat_time64`.
+ Reorganize positions of some other syscalls according to their positions
+ in systemd's sets.
+ * NEWS.md: Document this.
+
+2023-01-08 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.11.2
+
+2023-01-01 Colin Watson <cjwatson@debian.org>
+
+ mandb: Check for stray cats even if the manpath is unchanged
+
+ * src/mandb.c (mandb): Require the database file to be open before
+ calling `straycats`, but don't require `create_db` or
+ `update_db_wrapper` to have made any changes to it.
+ * src/tests/mandb-whatis-broken-link-changes: Update expected output.
+ * NEWS.md: Document this.
+
+2023-01-01 Colin Watson <cjwatson@debian.org>
+
+ mandb: Fix crash when processing stray cats
+
+ Regression introduced in man-db 2.11.0. Fixes Debian bug #1027487.
+
+ * src/straycats.c (check_for_stray): Pass a basic trace list to
+ `store_descriptions`, since that's required as of commit
+ d3e4b5522ae8152f10db0bb98e6873c9cc17ed59.
+ * NEWS.md: Document this.
+
+2022-12-31 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -Wanalyzer-use-of-uninitialized-value
+
+ It incorrectly thought that `outleft` could be uninitialized in some
+ cases. Restructure code slightly to simplify its analysis.
+
+ * src/manconv.c (try_iconv): Initialize `outptr` in all branches of the
+ conditional beginning with `if (handle_iconv_errors)`.
+
+2022-12-31 Colin Watson <cjwatson@debian.org>
+
+ Fix segfault when nroff is not installed
+
+ * src/man.c (try_section): Only free the `names` list if it is non-NULL
+ due to `NROFF_MISSING` being defined, and return early if options are
+ set such that cat files cannot be used either.
+ * NEWS.md: Document this.
+
+2022-12-31 Colin Watson <cjwatson@debian.org>
+
+ Fix compile and test failures when troff is not groff
+
+ Fixes https://gitlab.com/man-db/man-db/-/issues/12.
+
+ * src/man.c (ONLY_TROFF_IS_GROFF): Only define if `HAS_TROFF` is
+ defined.
+ (init_html_pager): Only define if `TROFF_IS_GROFF` is defined.
+ (format_display): Mark `man_file` as unused if `TROFF_IS_GROFF` is not
+ defined.
+
+ * configure.ac: Substitute `troff_is_groff`.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export `troff_is_groff`.
+ * src/tests/man-language-specific-requests: Adjust expected
+ language-specific requests if `troff_is_groff` is not `yes`.
+
+ * NEWS.md: Document this.
+
+2022-11-29 Seong-ho Cho <darkcircle.0426@gmail.com>
+
+ Update Korean manual page translation
+
+ * man/po4a/po/ko.po: Update from Translation Project.
+
+2022-11-28 Yuri Kozlov <yuray@komyakino.ru>
+
+ Update Russian manual page translation
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+2022-11-15 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.11.1
+
+2022-11-15 Colin Watson <cjwatson@debian.org>
+
+ Tweak README for better readability
+
+ * README.md: Add blank line for improved Markdown rendering.
+
+2022-11-14 Colin Watson <cjwatson@debian.org>
+
+ web: Fix man.png width/height
+
+ * web/index.html: Update width and height for man.png.
+
+2022-11-14 Colin Watson <cjwatson@debian.org>
+
+ web: Update man(1) image
+
+ * web/man.png: Replace with a fresh screenshot.
+
+2022-11-14 Colin Watson <cjwatson@debian.org>
+
+ Link to project home page
+
+ * README.md: Add home page link (https://man-db.gitlab.io/man-db/).
+
+2022-11-14 Colin Watson <cjwatson@debian.org>
+
+ Add GitLab Pages site
+
+ * .gitlab-ci.yml (stages): Add deploy.
+ (pages): New job.
+ * web/development.html, web/index.html, web/man.png, web/standard.css,
+ web/white.css: New files.
+
+2022-11-14 Colin Watson <cjwatson@debian.org>
+
+ Transfer Git repository to new group
+
+ * README.md, docs/HACKING.md, man/man1/apropos.man1,
+ man/man1/lexgrog.man1, man/man1/man-recode.man1, man/man1/man.man1,
+ man/man1/manconv.man1, man/man1/manpath.man1, man/man1/whatis.man1,
+ man/man1/zsoelim.man1, man/man5/manpath.man5, man/man8/accessdb.man8,
+ man/man8/catman.man8, man/man8/mandb.man8: Change GitLab URL to
+ https://gitlab.com/man-db/man-db.
+ * NEWS.md: Document this.
+
+2022-11-12 Colin Watson <cjwatson@debian.org>
+
+ Remove unused include
+
+ * src/manconv_client.c: Remove unused `#include "idpriv.h"`.
+
+2022-11-05 Colin Watson <cjwatson@debian.org>
+
+ Fix distribution of Korean manual page translation
+
+ Accidentally omitted from 8f12d39bbb6748a1257358269028ef919f9c92e6.
+
+ * man/Makefile.am (DIST_SUBDIRS): Add ko.
+
+2022-11-05 Colin Watson <cjwatson@debian.org>
+
+ Replace $ in page names rather than trying to escape it
+
+ Jakub Wilk points out in Debian bug #1021951 that attempting to use the
+ `--use-backslash` option has a number of complications. Just replace
+ dollar signs with question marks instead.
+
+ * include/manconfig.h (LESS_OPTS): Revert addition of `--use-backslash`.
+ * src/man.c: Replace `$` characters with `?` rather than trying to
+ escape them.
+ * NEWS.md: Document this.
+
+2022-11-05 Colin Watson <cjwatson@debian.org>
+
+ Add Korean manual page translation
+
+ * man/po4a/po/ko.po: New from Translation Project (thanks, Seong-ho
+ Cho).
+ * configure.ac (AC_CONFIG_FILES): Add man/ko/Makefile.
+ * man/LINGUAS.po4a: Add ko.
+ * man/Makefile.am (DIST_SUBDIRS): Add ko.
+ * man/ko/Makefile.am, man/ko/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/ko.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add ko.
+ * man/THANKS: Update translator credit.
+ * .gitignore: Add man/ko/man1, man/ko/man5, and man/ko/man8.
+
+2022-10-28 Seong-ho Cho <darkcircle.0426@gmail.com>
+
+ Add Korean translation
+
+ * po/ko.po: New from Translation Project.
+ * po/LINGUAS: Add ko.
+ * man/THANKS: Add translator credit.
+
+2022-10-28 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish manual page translation
+
+ * man/po4a/po/sv.po: Update from Translation Project.
+
+2022-10-18 Colin Watson <cjwatson@debian.org>
+
+ zsoelim_open_file: Fix use of uninitialized value
+
+ In the case where `filename` has no directory part and does not contain
+ a dot, we could reach the decision of whether to emit a "can't open %s"
+ error message without initializing `decomp`. Noticed by `gcc -Og`.
+
+ * src/zsoelim.l (zsoelim_open_file): Initialize `decomp` to NULL.
+
+2022-10-18 Colin Watson <cjwatson@debian.org>
+
+ Recognize more Hungarian translations of the NAME section
+
+ * src/lexgrog.l (hu_name): Handle the case where "É" or "é" is written
+ as "\('E" or "\('e".
+ * NEWS.md: Document this.
+
+2022-10-18 Colin Watson <cjwatson@debian.org>
+
+ Sort whatis references below real pages more aggressively
+
+ I think this makes more sense in most cases, and it definitely fixes
+ some observed odd behaviour.
+
+ Fixes Debian bug #780235.
+
+ * src/man.c (compare_candidates): Compare IDs before comparing sections.
+ * NEWS.md: Document this.
+
+2022-10-17 Colin Watson <cjwatson@debian.org>
+
+ Silence error for empty mandir with missing catdir
+
+ Fixes https://gitlab.com/cjwatson/man-db/-/issues/8.
+
+ * src/check_mandirs.c (ensure_db_open): Don't call `gripe_rwopen_failed`
+ before returning false (since it only makes sense for one of the two
+ callers).
+ (testmandirs): Call `gripe_rwopen_failed` if `ensure_db_open` returns
+ false.
+
+2022-10-17 Colin Watson <cjwatson@debian.org>
+
+ Add 3type to default section list
+
+ This is used by the Linux man-pages package, and should be lower
+ priority than section 2. Suggested by Alejandro Colomar.
+
+ Fixes https://gitlab.com/cjwatson/man-db/-/issues/5.
+
+ * include/manconfig.h (STD_SECTIONS): Add `3type` between sections `2`
+ and `5`.
+ * m4/man-arg-sections.m4 (MAN_ARG_SECTIONS): Likewise.
+ * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION.
+ * src/tests/man-exact-section-matches: Update default section order.
+ * src/man_db.conf.in (SECTION): Update documentation.
+ * NEWS.md: Document this.
+
+2022-10-17 Colin Watson <cjwatson@debian.org>
+
+ Escape $ in page names when constructing less prompts
+
+ Fixes Debian bug #1021951.
+
+ * include/manconfig.h (LESS_OPTS): Add `--use-backslash`.
+ * src/man.c (escape_less): Also escape `$` characters.
+ * NEWS.md: Document this.
+
+2022-10-15 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.11.0
+
+2022-10-13 Colin Watson <cjwatson@debian.org>
+
+ ult_src: Fix possible NULL dereference
+
+ `gcc -fanalyzer` noticed that `canonicalize_file_name` can return NULL,
+ therefore `find_include` could return NULL, and therefore it was
+ possible for `ult_src` to attempt to dereference NULL in the `stat
+ (base, &st)` call. Push more work down to `find_include` so that we can
+ consistently treat it as an error if it returns NULL.
+
+ * src/ult_src.c (ult_softlink): Move error messages to ...
+ (gripe_canonicalize_failed): ... here (new function).
+ (find_include): Replace simple suffix globbing with `comp_file`, and use
+ this approach in both the relative-to-mantree and
+ relative-to-dirname-of-page cases; we previously only tried it in the
+ latter case. Call `gripe_canonicalize_failed` if the final
+ canonicalization step fails; print a "can't resolve %s" error if we
+ can't even find anything to canonicalize.
+ (ult_src): Remove `comp_file` processing, now done by `find_include`.
+ * src/ult_src.h (gripe_canonicalize_failed): Add prototype.
+ * src/straycats.c (check_for_stray): Use `gripe_canonicalize_failed`.
+
+2022-10-11 Colin Watson <cjwatson@debian.org>
+
+ Fix regression in preprocessor string handling
+
+ We need to stop looking for characters that identify preprocessors after
+ the first space or dash, as otherwise encoding declarations of the kind
+ specified in man-recode(1) may break.
+
+ * src/man.c (make_roff_command): Only consider the part of the
+ preprocessor string up to the first space or dash, if any.
+
+2022-10-11 Colin Watson <cjwatson@debian.org>
+
+ match_in_directory: Split into multiple functions
+
+ `match_in_directory` had two almost entirely disjoint code paths, one
+ for regex patterns and one for wildcard patterns; but its structure made
+ it difficult for `gcc -fanalyzer` to understand that, and it was a bit
+ unclear for humans too. Split it up for clarity.
+
+ * src/globbing.c (match_in_directory): Split out the
+ regex/wildcard-handling parts to ...
+ (match_regex_in_directory, match_wildcard_in_directory): ... here,
+ respectively.
+
+2022-10-11 Colin Watson <cjwatson@debian.org>
+
+ Assert that another xasprintf call returns non-NULL
+
+ As with commit a22f140354c80a7c5c52c4a413f1c929e105a24c, `gcc
+ -fanalyzer` notices that `xasprintf` can return NULL in some situations.
+ I believe those situations would all amount to programming errors here,
+ so add an assert.
+
+ * src/mandb.c (main): Assert that `xasprintf` returns non-NULL.
+
+2022-10-09 Colin Watson <cjwatson@debian.org>
+
+ Fix error message
+
+ * src/straycats.c (check_for_stray): If canonicalizing `catdir` returns
+ NULL, then substitute `catdir` into the "warning: %s is a dangling
+ symlink" message, not `fullpath` (which at this point must be NULL).
+
+2022-10-08 Colin Watson <cjwatson@debian.org>
+
+ Convert many more ints to bools
+
+ I don't expect this to make a significant runtime difference, but it
+ makes some things easier to analyse visually.
+
+ * lib/cleanup.c (do_cleanups_sigsafe): Change `in_sighandler` parameter
+ type to bool. Update all callers.
+ (push_cleanup): Change `handler_installed` local variable type to bool.
+ * lib/cleanup.h (do_cleanups_sigsafe): Update prototype.
+ * lib/compression.c (comp_info): Change `want_stem` parameter type to
+ bool. Update all callers.
+ * lib/compression.h (comp_info): Update prototype.
+ * lib/sandbox.c (seccomp_filter_unavailable): Change type to bool.
+ Update all references.
+ (make_seccomp_filter): Change `permissive` parameter type to bool.
+ Update all callers.
+ (_sandbox_load): Likewise.
+ * lib/util.c (remove_directory): Change `recurse` parameter type to
+ bool. Update all callers.
+ * lib/util.h (remove_directory): Update prototype.
+ * libdb/db_gdbm.c (opening): Change type to bool. Update all
+ references.
+ * libdb/db_store.c (compare_ids): Change `promote_links` parameter type
+ to bool. Update all callers.
+ * libdb/db_storage.h (compare_ids): Update prototype.
+ * src/catman.c (parse_for_sec): Change `message` local variable type to
+ bool.
+ (check_access): Change return type to bool.
+ (purge_whatis): Change `cat` parameter type to bool. Update all
+ callers.
+ (check_multi_key): Change return type to bool.
+ * src/descriptions.c (parse_descriptions): Change `seen_base` local
+ variable type to bool.
+ * src/globbing.c (look_for_file): Change `cat` parameter type to bool.
+ Update all callers.
+ * src/globbing.h (look_for_file): Update prototype.
+ * src/lexgrog.l (fill_mode, waiting_for_quote): Change types to bool.
+ Update all references.
+ * src/man.c (skip, created_tmp_cat): Change types to bool. Update all
+ references.
+ (run_mandb): Change `create` parameter type to bool. Update all
+ callers.
+ (squeeze_blank_lines): Change `in_blank_line` and `got_blank_line` local
+ variable types to bool.
+ (display): Change `format` and `printed` local variable types to bool.
+ (convert_name): Change `fsstnd` parameter type to bool. Update all
+ callers.
+ (add_candidate): Change `dupcand` local variable type to bool.
+ (main): Change `maybe_section` local variable type to bool.
+ * src/manp.c (add_sections): Change `user` parameter type to bool.
+ Update all callers.
+ (add_def): Likewise.
+ (add_mandb_map): Likewise.
+ (add_to_dirlist): Likewise.
+ (read_config_file): Change `done` local variable type to bool.
+ (get_manpath_from_path): Change `mandatory` parameter type to bool.
+ Update all callers.
+ * src/manp.h (get_manpath_from_path): Update prototype.
+ * src/whatis.c (do_apropos): Change `matched` local variable type to
+ bool.
+ * src/zsoelim.l (no_newline): Change type to bool. Update all
+ references.
+ (zsoelim_open_file): Change return type to true.
+ * src/zsoelim.h (zsoelim_open_file): Update prototype.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Remove unused variable
+
+ * src/man.c (found_a_stray): Remove; it was set but no longer used.
+ (display_database): Remove setting of `found_a_stray`.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Add some more pure function attributes
+
+ * lib/encodings.c (compatible_encodings): Mark as pure.
+ * src/man.c (is_section): Likewise.
+ * src/manp.c (get_config, get_def, get_def_user, is_global_mandir):
+ Likewise.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Default to --disable-cache-owner on systems without getuid
+
+ * m4/man-arg-cache-owner.m4 (MAN_ARG_CACHE_OWNER): If the system doesn't
+ have `getuid`, force cache files to have unconstrained cache ownership,
+ and issue a warning if `--enable-cache-owner` was given.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix installation on systems with non-empty EXEEXT
+
+ * src/Makefile.am (install-exec-hook): Add `$(EXEEXT)` to
+ `chown`/`chmod` calls.
+ * NEWS.md: Document MinGW portability work.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix build on systems without SIGPIPE
+
+ * bootstrap.conf (gnulib_modules): Add sigpipe.
+ * src/mandb.c (main): Drop `#ifdef SIGPIPE` guards, as Gnulib now
+ ensures that it's defined.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix build on systems without getuid
+
+ * lib/tempfile.c (running_setid): New function; always returns false if
+ the system doesn't have `getuid`, since in that case we won't have been
+ able to drop privileges either.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix build on systems without <pwd.h>
+
+ * lib/security.h: Only include `<pwd.h>` if `MAN_OWNER` is defined.
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix build on systems without <termios.h>
+
+ * bootstrap.conf (gnulib_modules): Add termios.
+ * src/man.c (get_term): Replace with a no-op stub if the system has no
+ `<termios.h>` (Gnulib tests for it and can replace some functions, but
+ its replacement isn't sufficient here).
+
+2022-10-07 Colin Watson <cjwatson@debian.org>
+
+ Fix build on systems without SIGHUP
+
+ * lib/cleanup.c (trap_abnormal_exits, untrap_abnormal_exits): Guard uses
+ of `SIGHUP` with an `#ifdef`.
+
+2022-10-06 Colin Watson <cjwatson@debian.org>
+
+ Run preprocessors in the correct order
+
+ We have no particular reason to trust the order of filters in a
+ preprocessor string specified in a page; it's easy for authors to get
+ this wrong by accident. Do as groff(1) does and run them in a
+ canonicalized order.
+
+ Fixes Debian bug #1012078.
+
+ * src/man.c (add_filter): New function, split out from
+ `make_roff_command`.
+ (make_roff_command): Iterate through possible preprocessors and add each
+ one depending on whether it's present in the preprocessor string, rather
+ than iterating through the preprocessor string and acting on each of its
+ characters. Turn several `int` variables into `bool` variables in
+ passing.
+ * NEWS.md: Document this.
+
+2022-10-06 Emir SARI <emir_sari@icloud.com>
+
+ Update Turkish translation
+
+ * po/tr.po: Update from Translation Project.
+
+2022-10-06 Emir SARI <emir_sari@icloud.com>
+
+ Update Turkish manual page translation
+
+ * man/po4a/po/tr.po: Update from Translation Project.
+
+2022-10-06 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+2022-10-06 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian manual page translation
+
+ * man/po4a/po/ro.po: Update from Translation Project.
+
+2022-10-06 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian translation
+
+ * po/ro.po: Update from Translation Project.
+
+2022-10-03 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.11.0-pre1
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Bump next version to 2.11.0
+
+ There are quite a few substantial changes here that I think justify an
+ updated minor number.
+
+ * NEWS.md: Bump to 2.11.0.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * po/man-db.pot, po/*.po: Update.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Fix harmless but incorrect cast
+
+ * libdb/db_xdbm.c (man_xdbm_firstkey): Cast `gl_list_free` to
+ `gl_mapvalue_dispose_fn`, not `gl_listelement_dispose_fn`. (These were
+ in practice identical but are semantically distinct.)
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Reformat option declarations using macros
+
+ The previous tabular presentation had some advantages, but it only
+ looked reasonable in wide terminals, was often quite cumbersome to
+ maintain, and played poorly with `clang-format`.
+
+ * include/manconfig.h (OPT, OPT_FULL, OPT_ALIAS, OPT_HIDDEN,
+ OPT_GROUP_HEADER, OPT_HELP_COMPAT): New macros.
+ * src/accessdb.c (options): Rewrite using `OPT*` macros.
+ * src/catman.c (options): Likewise.
+ * src/globbing_test.c (options): Likewise.
+ * src/lexgrog_test.c (options): Likewise.
+ * src/man-recode.c (options): Likewise.
+ * src/man.c (options): Likewise.
+ * src/manconv_main.c (options): Likewise.
+ * src/mandb.c (options): Likewise.
+ * src/manpath.c (options): Likewise.
+ * src/whatis.c (options): Likewise.
+ * src/zsoelim_main.c (options): Likewise.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ Add CI checks for Berkeley DB and NDBM
+
+ * .gitlab-ci.yml (build-berkeley-db, build-ndbm): New jobs.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ mandb: Fully reorganize databases
+
+ This allows us to produce bitwise-identical databases regardless of the
+ order in which pages were scanned (at least with GDBM).
+ `gdbm_reorganize` isn't enough for this, probably because entries end up
+ in different positions in hash buckets depending on insertion order; but
+ reading in the entire database and writing it back out in sorted order
+ seems to do the job with negligible cost.
+
+ Fixes Debian bug #1010957.
+
+ * src/mandb.c (reorganize): New function: read all the items from a
+ database in sorted order and write them back out.
+ (mandb): Stop calling `MYDBM_REORG`, which saved space after deletions
+ but didn't help with reproducibility.
+ (process_manpath): Call `reorganize` if any changes were made to a
+ database.
+ * libdb/mydbm.h (MYDBM_REORG): Remove macro.
+ * NEWS.md: Document this.
+
+2022-10-02 Colin Watson <cjwatson@debian.org>
+
+ mandb: Rearrange database path operations
+
+ Moving these into "methods" of `struct dbpaths` makes the control flow
+ clearer by avoiding lots of inlined `#ifdef`s.
+
+ I fixed a possible crash in `mandb -f` in the process, exposed by the
+ clearer control flow.
+
+ * src/mandb.c (dbpaths_init, dbpaths_copy_to_tmp, dbpaths_remove_tmp):
+ New functions.
+ (finish_up): Rename to ...
+ (dbpaths_rename_from_tmp): ... this.
+ (do_chown): Rename to ...
+ (dbpaths_chown_if_possible): ... this.
+ (cleanup_sigsafe): Rename to ...
+ (dbpaths_unlink_tmp): ... this, and take a `struct dbpaths *` argument
+ rather than `void *`.
+ (cleanup): Rename to ...
+ (dbpaths_free_elements): ... this, and take a `struct dbpaths *`
+ argument rather than `void *`.
+ (mandb, process_manpath): Use new `dbpaths_*` functions. Only call
+ `dbpaths_rename_from_tmp` if `run_mandb` is set (in practice this was
+ always true anyway but this makes it clearer). Only call
+ `dbpaths_chown_if_possible` if `run_mandb` is set and
+ `dbpaths_rename_from_tmp` was called (this may have caused a crash in
+ some edge cases involving `mandb -f`).
+
+2022-10-01 Colin Watson <cjwatson@debian.org>
+
+ test_manfile: Remove "already exists" check
+
+ This produced inconsistent results in some unusual cases. For example,
+ if `/usr/share/man/man5/inetd.conf.5.gz` was a symlink to
+ `/usr/share/man/man8/inetd.8.gz` and had `NAME` entries for both `inetd`
+ and `inetd.conf`, then if `inetd.8.gz` was scanned first we would
+ include a `WHATIS_MAN` entry in section 8 for `inetd.conf`, while if
+ `inetd.conf.5.gz` was scanned first we'd skip that due to hitting the
+ already-exists check when scanning `inetd.8.gz`.
+
+ This was originally a performance optimization. Now that we cache the
+ results of `ult_src` and `find_name`, this optimization no longer helps
+ us much, so it can go.
+
+ * src/check_mandirs.c (test_manfile): Don't return early if the page
+ already exists with matching details.
+ * NEWS.md: Document this.
+
+2022-10-01 Colin Watson <cjwatson@debian.org>
+
+ Further improve name selection for whatis targets
+
+ In commit 9aff3c30b0, I used the rule "first name in the trace out of
+ those that have the best ID". However, a better rule turns out to be to
+ pick the last entry in the trace that has the same section and extension
+ as the starting page. This is already guaranteed to have at least as
+ good an ID as the starting page, and since whatis pointers don't include
+ the target section and extension we need to ensure that they don't cross
+ sections/extensions; otherwise we just end up with database entries that
+ man(1) refuses to use, which isn't particularly useful.
+
+ * src/descriptions_store.c (store_descriptions): Parse and cache all the
+ filenames in the trace at the start. Use the last entry in the trace
+ with the same section/extension as the starting page as the pointer for
+ `WHATIS_*` entries.
+
+2022-10-01 Colin Watson <cjwatson@debian.org>
+
+ test_manfile: Stop caching ult_src traces
+
+ Now that `test_manfile` always calls `ult_src` before adding database
+ entries, there's no need for it to cache the resulting traces, and doing
+ so had some confusing consequences since `store_descriptions` could end
+ up seeing cached traces that didn't include the initial path.
+
+ * src/check_mandirs.c (struct whatis): Remove `trace` element.
+ (whatis_free): Stop freeing `whatis->trace`.
+ (test_manfile): Stop caching `ult->trace`; pass it directly to
+ `store_descriptions` instead.
+
+2022-10-01 Colin Watson <cjwatson@debian.org>
+
+ Restructure ult_src to add caching
+
+ * src/ult_src.c (struct ult_key): New structure.
+ (ult_key_new, ult_key_equals, ult_key_hash, ult_key_free, ult_value_new,
+ ult_value_free): New functions.
+ (ult_cache): New map.
+ (ult_src): Instead of returning a path as a string and taking `trace` as
+ an output parameter, return a `struct ult_value *` containing both path
+ and trace. Cache the return value in a hash map (indexed by a composite
+ key consisting of `name` and `flags`), and return cached values where
+ possible rather than repeating the same work. Update all callers to
+ reflect the new signature.
+ * src/ult_src.h (struct ult_value): New structure.
+ (ult_src): Update prototype.
+
+ * src/check_mandirs.c (test_manfile): Simplify `ult_src` calling
+ arrangements now that repeated calls with the same `name` and `flags`
+ arguments are cheap. At the moment this may end up doing a little more
+ work in some rare cases (links to already-scanned pages with `.so`
+ links), but that doesn't seem to be very significant at the moment, and
+ caching could be improved inside `ult_src` if it proves to be a problem.
+ * src/descriptions_store.c (store_descriptions): `trace` is now always
+ set. Add an assertion of this and drop a couple of conditionals.
+
+2022-09-25 Colin Watson <cjwatson@debian.org>
+
+ ult_src: Remove recursion
+
+ The use of recursion for `.so` handling in `ult_src` is somewhat
+ inconvenient, and it's relatively easy to convert it to an iterative
+ implementation.
+
+ There should be no functional change from this commit, except to some
+ details of debug messages.
+
+ * src/ult_src.c (find_include_directive): New function, extracted from
+ `ult_src`.
+ (ult_src): Handle `.so` links using a loop rather than recursion. Check
+ for compression extensions towards the end of the loop rather than at
+ the beginning, to avoid nonexistent files showing up in the trace.
+
+2022-09-25 Colin Watson <cjwatson@debian.org>
+
+ mandb: Improve debugging
+
+ * src/check_mandirs.c (test_manfile): Log the file under consideration
+ on entry. Log when we return early due to an existing database entry.
+ Remove some unnecessary parentheses from debug messages.
+ * src/ult_src.c (ult_src): Remove leading newline from debug message.
+
+2022-09-25 Colin Watson <cjwatson@debian.org>
+
+ Don't skip adding a database entry due to SO_MAN
+
+ An existing `SO_MAN` entry shouldn't stop us considering a page for
+ insertion into the database, because until we run `ult_src` we don't yet
+ know whether that page will be `ULT_MAN` (which should replace the
+ existing entry) or `SO_MAN` (which shouldn't).
+
+ * src/check_mandirs.c (test_manfile): Don't return early due to an
+ existing matching `SO_MAN` entry, but only due to an `ULT_MAN` entry.
+ * NEWS.md: Document this.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Fix section/extension for whatis entries in database
+
+ * src/descriptions_store.c (store_descriptions): Use the
+ section/extension of the best name for whatis entries, since we don't
+ have anything better.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ store_descriptions: Improve debugging
+
+ * src/descriptions_store.c (store_descriptions): Log the extension of
+ each entry being stored.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Extend database entry replacement rules
+
+ These rules were previously ambiguous such that the targets of whatis
+ entries depended on the order in which files were scanned.
+
+ * libdb/db_store.c (enum replace_action): Add.
+ (replace_if_necessary): Extend rules for greater stability. We now also
+ take mtimes and pointers into account, as well as including a case for
+ when the new ID is weaker than the old one (there was already a case for
+ when it was stronger).
+ (dbstore): Use `replace_if_necessary` when considering replacing multi
+ keys.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Fix section/extension for links in database
+
+ In some cases this resulted in spurious database entries. For example,
+ if `man5/inetd.conf.5` was a symlink to `man8/inetd.8` and that page had
+ a `NAME` entry for `inetd`, then as well as entries for `inetd` in
+ section 8 and `inetd.conf` in section 5, we would also store a spurious
+ entry for `inetd` in section 5. We no longer do that.
+
+ * src/descriptions_store.c (store_descriptions): For names corresponding
+ to entries in the ultimate source trace and not to the base name of the
+ file, use the section and extension of the trace entry rather than of
+ the ultimate source.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Pick a more consistent name for whatis targets
+
+ We don't want the targets of whatis entries in the database to depend on
+ the order in which files were scanned. Prefer the first name in the
+ trace out of those that have the best ID.
+
+ * src/descriptions_store.c (store_descriptions): Defer adding names that
+ don't appear in the ultimate source trace (i.e. whatis entries) until we
+ know the best name to use as the target, and use that best name as the
+ pointer for each of them.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Fix stored ID for links
+
+ Database entries for links were often incorrectly stored as `ULT_MAN`,
+ depending on the exact order in which pages were scanned. They are now
+ stored more consistently as `SO_MAN`.
+
+ * src/descriptions_store.c (store_descriptions): Override the ID from
+ `ULT_MAN` to `SO_MAN` if the name is not the last entry in the trace.
+ (Previously we overrode from `SO_MAN` to `ULT_MAN` if the name was the
+ last entry in the trace, but not the converse.)
+ * NEWS.md: Document this.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Simplify struct mandata memory allocation
+
+ The arrangement where most of the fields of `struct mandata` were
+ constant pointers into the `addr` field was a bit more memory-efficient,
+ but it made some kinds of analysis and reorganization very difficult,
+ and we don't actually need to be quite that frugal about memory.
+ Reorganize this to allocate each field independently instead.
+
+ * lib/filenames.c (filename_info): Allocate each field independently.
+ Use Gnulib's `base_name` and `dir_name` functions to parse paths. Stop
+ setting `info->addr`.
+ (free_mandata_struct): Free the `ext`, `sec`, `pointer`, `comp`,
+ `filter`, and `whatis` fields. Stop freeing `addr`.
+ * lib/filenames.h (struct mandata): Remove `addr`. Make `ext`, `sec`,
+ `pointer`, `comp`, `filter`, and `whatis` non-`const`.
+ * libdb/db_lookup.c (split_content): Copy the `ext`, `sec`, `pointer`,
+ `filter`, `comp`, and `whatis` fields. Stop setting `addr`.
+ * libdb/db_store.c (make_content): Copy the `pointer`, `comp`, `filter`,
+ and `whatis` fields.
+ * src/descriptions_store.c (store_descriptions): Copy `pointer` and
+ `whatis` fields.
+ * src/straycats.c (check_for_stray): Copy `comp`, `ext`, `sec`, and
+ `filter` fields.
+
+ * libdb/db_lookup.c (dblookup): Always free `cont`'s data pointer, since
+ it's no longer sometimes borrowed.
+ * libdb/db_store.c (dbstore): Free `cont`'s and `oldcont`'s data
+ pointers, since they're no longer borrowed.
+ * src/check_mandirs.c (purge_missing): Free `content`'s data pointer,
+ since it's no longer borrowed.
+
+ * libdb/db_lookup.c (dblookup_pattern): Stop freeing `info->addr`.
+ * src/catman.c (parse_for_sec): Stop freeing `entry->addr`.
+ * src/whatis.c (do_apropos): Stop freeing `info->addr`.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Stop using the addr field of struct mandata
+
+ The `addr` field of `struct mandata` is just intended as an internal
+ buffer, but some functions were extracting information from it in
+ complicated ways, which made it difficult to refactor the memory
+ allocation here. Use different approaches.
+
+ * src/check_mandirs (test_manfile): Calculate `len` using `comp_info`.
+ This duplicates some of what `filename_info` does, but it's just some
+ cheap string manipulation, and it expresses what we want in a less
+ confusing way (the length of the file name with any compression
+ extension removed).
+ * src/descriptions_store.c (store_descriptions): Check whether `path` is
+ a prefix of `trace_name` rather than of `trace_info->addr`.
+ `trace_info->addr` is always itself a prefix of `trace_name`, so if
+ `path` is not a prefix of `trace_name` then it can't be a prefix of
+ `trace_info->addr`.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ is_prefix: Improve parameter naming
+
+ The second parameter doesn't have to be a directory, so stop implying
+ that in the parameter name.
+
+ * src/descriptions_store.c (is_prefix): Rename `path` to `parent`; rename
+ `dir` to `child`.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Simplify split_content interface
+
+ Now that `struct mandata` is always allocated on the heap, we might as
+ well just have `split_content` return a freshly-allocated `struct
+ mandata` rather than taking a pointer to one as a parameter.
+
+ * libdb/db_lookup.c (split_content): Allocate and return a `struct
+ mandata`; remove `pinfo` parameter. Update all callers.
+ * libdb/db_storage.h (split_content): Update prototype.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ Always allocate struct mandata on the heap
+
+ This means we no longer need two slightly different functions for
+ freeing it.
+
+ * libdb/db_lookup.c (dblookup_pattern): Allocate `struct mandata` on the
+ heap. Simplify arrangements for adding to the `infos` list.
+ (dbstore): Allocate `struct mandata` on the heap.
+ * src/catman.c (parse_for_sec): Likewise.
+ * src/check_mandirs.c (purge_pointers, purge_missing): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/whatis.c (do_apropos): Likewise.
+
+ * lib/filenames.c (free_mandata_elements): Remove function and move its
+ contents to ...
+ (free_mandata_struct): ... here, if `pinfo` is set.
+ * lib/filenames.h (free_mandata_elements): Remove prototype.
+
+2022-09-24 Colin Watson <cjwatson@debian.org>
+
+ filename_info: Always allocate info->name
+
+ Only one call site has any interest in this being unset (in order to
+ pass the result to `dbstore`), and even there it's easier for the caller
+ to deal with unsetting it. Otherwise, it's strictly more convenient if
+ the structure returned by `filename_info` always includes the name of
+ the page.
+
+ * lib/filenames.c (filename_info): Remove `req_name` parameter; update
+ all callers. Always set `info->name` before returning successfully.
+ * lib/filenames.h (filename_info): Update prototype.
+ * src/check_mandirs.c (test_manfile): Use `info->name` for
+ `manpage_base` rather than poking around in `info->addr`.
+ (count_glob_matches): Remove `name` parameter; update all callers.
+ * src/descriptions_store.c (store_descriptions): Drop now-unnecessary
+ check for `trace_info->name`.
+ * src/man.c (do_global_apropos_section): Build `title` using
+ `info->name` rather than poking around in `info->addr`.
+ * src/mandb.c (update_one_file): Drop now-unnecessary check for
+ `info->name`.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Reduce indentation in store_descriptions a bit
+
+ * src/descriptions_store.c (store_descriptions): Use an early-continue
+ construction to save a level of indentation.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Simplify the filename_info interface
+
+ This interface is a bit less confusing.
+
+ * libdb/db_lookup.c (free_mandata_elements, free_mandata_struct): Move
+ to ...
+ * lib/filenames.c (free_mandata_elements, free_mandata_struct): ...
+ here.
+ * libdb/db_storage.h (free_mandata_elements, free_mandata_struct): Move
+ to ...
+ * lib/filenames.h (free_mandata_elements, free_mandata_struct): ...
+ here.
+
+ * lib/filenames.c (filename_info): Return a `struct mandata` with the
+ `addr` element set to the buffer containing the fields, rather than
+ returning the buffer and taking a pointer to a `struct mandata` as a
+ parameter. Update all callers.
+ * lib/filenames.h (filename_info): Update prototype.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Move manual page file name utilities to lib/
+
+ * src/filenames.c: Move to ...
+ * lib/filenames.c: ... here.
+ * src/filenames.h: Move to ...
+ * lib/filenames.h: ... here. Update positioning of all includes.
+ * lib/Makefile.am (libman_la_SOURCES): Add `filenames.c` and
+ `filenames.h`.
+ * src/Makefile.am (man_recode_LDADD): Link with `$(LIBMAN)` instead of
+ `$(LIBMANDB)`.
+ (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES): Remove `filenames.c` and
+ `filenames.h`.
+ * po/POTFILES.in: Rename `src/filenames.c` to `lib/filenames.c`.
+
+ * lib/filenames.c (gripe_bogus_manpage): Remove `quiet < 2` condition.
+ (filename_info): Add `warn_if_bogus` parameter; only call
+ `gripe_bogus_manpage` if it is set. Update all callers.
+ * lib/filename.h (filename_info): Update prototype.
+
+ * libdb/db_storage.h (struct mandata): Move to ...
+ * lib/filenames.h (struct mandata): ... here. Add includes where
+ necessary.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Fix distcheck
+
+ * po/POTFILES.in: Rename `src/compression.c` to `lib/compression.c`.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Move compression file name utilities to lib/
+
+ This makes more sense as a home for plain file name manipulation
+ utilities. I also merged `include/comp_src.h.in` into
+ `lib/compression.c`, because structure definitions (as opposed to
+ declarations) don't belong in header files.
+
+ * src/compression.c: Move to ...
+ * lib/compression.c: ... here. Remove unnecessary `pipeline.h` include.
+ * src/compression.h: Move to ...
+ * lib/compression.h: ... here. Update positioning of all includes.
+ * lib/Makefile.am (libman_la_SOURCES): Add `compression.c` and
+ `compression.h`.
+ * lib/README: Add `compression.*`.
+ * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES,
+ mandb_SOURCES): Remove `compression.c` and `compression.h`.
+
+ * include/comp_src.h (comp_list): Move to ...
+ * lib/compression.c (comp_list): ... here. Update all references.
+ * include/manconfig.h (struct compression, comp_list): Move to ...
+ * lib/compression.h (struct compression, comp_list): ... here. Add
+ includes where necessary.
+ * Makefile.am (noinst_HEADERS): Remove `include/comp_src.h`.
+
+2022-09-23 Colin Watson <cjwatson@debian.org>
+
+ Remove infoalloc macro
+
+ It doesn't really pull its weight.
+
+ * libdb/db_lookup.c (dblookup, dblookup_pattern): Call `XZALLOC (struct
+ mandata)` rather than `infoalloc ()`.
+ * src/man.c (try_section, do_global_apropos_section): Likewise.
+ * libdb/db_storage.h (infoalloc): Remove.
+
+2022-09-19 Colin Watson <cjwatson@debian.org>
+
+ Maintain multi key references in sorted order
+
+ This is a step towards being able to reproduce the same database given
+ the same manual page tree.
+
+ * bootstrap.conf (gnulib_modules): Add stpcpy.
+ * libdb/db_lookup.c (name_ext_equals): Remove static; add pure
+ attribute.
+ (name_ext_compare): New function.
+ (list_extensions): Add entries in sorted order.
+ * libdb/db_storage.h (name_ext_equals, name_ext_compare): Add
+ prototypes.
+ * libdb/db_store.c (make_extensions_reference): New function.
+ (dbstore): When building or updating multi key references, maintain them
+ in sorted order.
+ * NEWS.md: Document this.
+
+2022-09-19 Colin Watson <cjwatson@debian.org>
+
+ Remove some excessive debugging output
+
+ This hasn't been of any practical use for many years.
+
+ * lib/security.c (drop_effective_privs, regain_effective_privs): Remove
+ debug messages emitted when increasing or decreasing the privilege drop
+ count.
+
+2022-08-11 Colin Watson <cjwatson@debian.org>
+
+ Fix use of pointer (address only) after free
+
+ I don't believe this was technically undefined behaviour, since we
+ didn't actually dereference the dangling pointer, merely compared its
+ value (the pointer address itself) against entries in the cleanup stack.
+ However, the compiler probably had a hard time proving that, so the
+ use-after-free warning issued by recent versions of GCC seems fair
+ enough.
+
+ * src/mandb.c (cleanup): Don't free dbpaths.
+ (process_manpath): Free it here instead, after calling pop_cleanup.
+
+2022-08-11 Colin Watson <cjwatson@debian.org>
+
+ Make CATWIDTH override MINCATWIDTH/MAXCATWIDTH
+
+ Otherwise setting `CATWIDTH` to something larger than 80 confusingly
+ doesn't work unless you also set `MAXCATWIDTH`.
+
+ Fixes https://gitlab.com/cjwatson/man-db/-/issues/9.
+
+ * src/man.c (add_roff_line_length): Skip terminal width range check if
+ `cat_width` is set.
+ * man/man5/manpath.man5 (FORMAT): Remove note that `CATWIDTH` should be
+ within the range set by `MINCATWIDTH` and `MAXCATWIDTH`, and instead say
+ that it overrides them.
+ * NEWS.md: Document this.
+
+2022-07-22 Colin Watson <cjwatson@debian.org>
+
+ Add more case variants of localized versions of NAME
+
+ * src/lexgrog.l (bg_name, lt_name, ru_name, sr_name, srlatin_name,
+ tr_name, uk_name, vi_name): Add more case variants.
+ * NEWS.md: Document this.
+
+2022-07-18 Colin Watson <cjwatson@debian.org>
+
+ Update pre-commit hooks
+
+ * .pre-commit-config.yaml (pre-commit-hooks): Update to v4.3.0.
+
+2022-07-18 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20220717
+
+ Fixes https://gitlab.com/cjwatson/man-db/-/issues/6.
+
+ * bootstrap: Sync to Gnulib df336dc1ae60d8ad9f452f2234951133fe617bb0.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ df336dc1ae60d8ad9f452f2234951133fe617bb0.
+ * NEWS.md: Document build fix.
+
+2022-07-15 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'drop-lsm' into 'main'
+
+ Drop LSM file
+
+ See merge request cjwatson/man-db!4
+
+2022-07-13 Pino Toscano <toscano.pino@tiscali.it>
+
+ Drop LSM file
+
+ The LSM format is a very old format for software, and it is dead for
+ many years already. Since keeping the .lsm up-to-date is basically not
+ much of use, simply drop it altogether.
+
+ * docs/Makefile.am (dist_noinst_DATA): Remove man-db.lsm.
+ * docs/HACKING.md: Stop mentioning man-db.lsm.
+ * docs/man-db.lsm: Remove file.
+
+2022-07-05 Stéphane Aulery <lkppo@free.fr>
+
+ Update French manual page translation
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+2022-06-02 Joe Hansen <joedalton2@yahoo.dk>
+
+ Update Danish translation
+
+ * po/da.po: Update from Translation Project.
+
+2022-05-18 Colin Watson <cjwatson@debian.org>
+
+ Cache filters alongside whatis information
+
+ `mandb` needs to cache filters together with whatis information, as
+ otherwise pages were incorrectly recorded with no filters if `mandb`
+ happened to use cached whatis information for them rather than reading
+ it from scratch.
+
+ * src/check_mandirs.c (struct whatis): Add filters.
+ (whatis_free): Free whatis->filters.
+ (test_manfile): Store and use whatis->filters.
+ * NEWS.md: Document this.
+
+2022-04-27 Andika Triwidada <andika@gmail.com>
+
+ Update Indonesian translation
+
+ * po/id.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2022-04-23 Colin Watson <cjwatson@debian.org>
+
+ Stop GitLab from getting confused about licences
+
+ GitLab uses https://github.com/licensee/licensee to detect the project's
+ licence, and if that finds multiple matching files then it throws up its
+ hands and refuses to make a licence assertion, with no apparent way to
+ override it.
+
+ To avoid this problem, move the secondary licence files (those that
+ apply only to some files, rather than to the project as a whole) back
+ into a subdirectory, so that `licensee` doesn't notice them.
+
+ * COPYING.GPLv2: Move to ...
+ * docs/COPYING.GPLv2: ... here. Update all references.
+ * COPYING.LIB: Move to ...
+ * docs/COPYING.LIB: ... here. Update all references.
+ * Makefile.am (dist_noinst_DATA): Remove COPYING.GPLv2.
+ * docs/Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2 and
+ COPYING.LIB.
+
+2022-04-23 Colin Watson <cjwatson@debian.org>
+
+ Clarify effective GPLv3 licensing
+
+ While man-db's own files are individually licensed under GPLv2 (or in a
+ few cases LGPLv2.1), the project as a whole is effectively GPLv3 due to
+ Gnulib. This was already explained in README.md, but make it a bit
+ clearer by having the top-level COPYING file be a copy of GPLv3.
+
+ * COPYING: Move to ...
+ * COPYING.GPLv2: ... here.
+ * COPYING: New file.
+ * Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2.
+ * lib/README, man/it/man1/apropos.man1, man/it/man1/man.man1,
+ man/it/man1/manpath.man1, man/it/man1/whatis.man1,
+ man/it/man1/zsoelim.man1, man/it/man5/manpath.man5,
+ man/it/man8/accessdb.man8, man/it/man8/catman.man8,
+ man/it/man8/mandb.man8, man/man1/apropos.man1, man/man1/lexgrog.man1,
+ man/man1/man-recode.man1, man/man1/man.man1, man/man1/manconv.man1,
+ man/man1/manpath.man1, man/man1/whatis.man1, man/man1/zsoelim.man1,
+ man/man5/manpath.man5, man/man8/accessdb.man8, man/man8/catman.man8,
+ man/man8/mandb.man8, manual/comp.me, manual/db.me, manual/files.me,
+ manual/format.me, manual/glossary.me, manual/intro.me, manual/leader.me,
+ manual/man_db.me, manual/misc.me, manual/sec.me: Refer to COPYING.GPLv2
+ rather than COPYING.
+
+2022-04-23 Colin Watson <cjwatson@debian.org>
+
+ Update pre-commit hooks
+
+ * .pre-commit-config.yaml (pre-commit-hooks): Update to v4.2.0.
+
+2022-04-17 Emir SARI <emir_sari@icloud.com>
+
+ Update Turkish manual page translation
+
+ * man/po4a/po/tr.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2022-04-16 Colin Watson <cjwatson@debian.org>
+
+ Recognize another Turkish translation of NAME
+
+ Emir SARI reports that "AD" is the de facto standard technical
+ terminology for "NAME" in Turkish, rather than "İSİM" which sounds
+ slightly colloquial. Recognize it as well.
+
+ * src/lexgrog.l (tr_name): Add "AD".
+
+2022-04-12 Emir SARI <emir_sari@icloud.com>
+
+ Update Turkish translation
+
+ * po/tr.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2022-03-17 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.10.2
+
+ NEWS.md: Fix typo for 2.7.6
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ pre-commit: Avoid need for multiple shellcheck runs
+
+ * .shellcheckrc: Set `external-sources=true`.
+ * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic,
+ src/tests/lexgrog-multiple-whatis, src/tests/man-deleted-directory,
+ src/tests/man-exact-section-matches,
+ src/tests/man-executable-page-on-path, src/tests/man-invalid-db-entry,
+ src/tests/man-language-specific-requests,
+ src/tests/man-mandatory-manpath, src/tests/man-missing-locales,
+ src/tests/man-override-dir, src/tests/man-recode-in-place,
+ src/tests/man-recode-suffix, src/tests/man-so-links-same-section,
+ src/tests/man-suffixed-extension,
+ src/tests/man-symlinks-with-matching-names,
+ src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding,
+ src/tests/manconv-incomplete-char-at-eof,
+ src/tests/manconv-odd-combinations, src/tests/mandb-basic,
+ src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag,
+ src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp,
+ src/tests/mandb-regular-file-symlink-changes,
+ src/tests/mandb-symlink-beats-whatis-ref,
+ src/tests/mandb-symlink-target-timestamp,
+ src/tests/mandb-whatis-broken-link-changes,
+ src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Add
+ `shellcheck source-path=SCRIPTDIR` directive before sourcing testlib.sh.
+ * .pre-commit-config.yaml: Consolidate the two shellcheck hooks into
+ one.
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ pre-commit: Add shellcheck
+
+ * .pre-commit-config.yaml: Add shellcheck. We need separate hooks for
+ `src/tests/` and for everything else, since shellcheck needs a `-P`
+ option to correctly handle sourced files in `src/tests/`.
+ * .shellcheckrc: New file.
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ Refactor use of cd in shell scripts
+
+ shellcheck warns about unchecked uses of `cd` (SC2164). Either check it
+ or refactor to avoid changing directory.
+
+ * src/tests/man-deleted-directory: Check `cd` call.
+ * src/tests/man-suffixed-extension: Avoid changing directory.
+ * tools/mkcatdirs: Likewise.
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ mkcatdirs: Skip nonexistent man directories
+
+ * tools/mkcatdirs: `manpath -qg` may return man directories that are
+ mentioned in the configuration file but that don't exist on the
+ filesystem. Skip these.
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ mkcatdirs: Refactor using install(1)
+
+ I'm not sure this script is widely-used, but it might as well work. It
+ previously relied on `mkinstalldirs`, which is a build tool not
+ typically installed on end-user systems.
+
+ * tools/mkcatdirs: Refactor cat directory creation using install(1).
+
+2022-03-08 Colin Watson <cjwatson@debian.org>
+
+ Apply various minor shell syntax improvements
+
+ * manual/print-options: Explicitly set `LANGUAGE=''` rather than
+ `LANGUAGE=`, pacifying shellcheck SC1007 which notes that this
+ construction might otherwise be misread.
+ * src/tests/manconv-odd-combinations: Use `printf %b` to pacify
+ shellcheck SC2059.
+ * src/tests/testlib.sh: Tell shellcheck which shell syntax to assume,
+ since this file has no `#!` line.
+ (run): Disable shellcheck SC2154; `abs_top_builddir` is always set by
+ the test runner.
+ (report): Remove unnecessary `$` before variable in arithmetic context.
+ (tools/checkman): Use `$(...)` for command substitution. Quote
+ variables properly where possible, and ignore shellcheck SC2068 in a
+ couple of other places.
+
+2022-03-07 Colin Watson <cjwatson@debian.org>
+
+ tests: Pacify shellcheck SC2188
+
+ The previous construction resulted in:
+
+ SC2188 (warning): This redirection doesn't have a command. Move to its
+ command (or use 'true' as no-op).
+
+ * src/tests/man-mandatory-manpath, src/tests/testlib.sh: Avoid
+ redirections without a command.
+
+2022-03-07 Colin Watson <cjwatson@debian.org>
+
+ tests: Make pass/fail reporting more shellcheck-friendly
+
+ * src/tests/testlib.sh (report): New function, similar to expect_pass
+ but taking an exit code rather than a command string to evaluate.
+ (expect_pass): Remove.
+ (expect_files_equal): Refactor using report function.
+ * src/tests/man-deleted-directory,
+ src/tests/man-executable-page-on-path, src/tests/man-missing-locales,
+ src/tests/man-recode-in-place, src/tests/manconv-incomplete-char-at-eof,
+ src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag,
+ src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp:
+ Refactor to use report function rather than expect_pass.
+
+2022-03-07 Colin Watson <cjwatson@debian.org>
+
+ tests: Add an expect_files_equal helper function
+
+ * src/tests/testlib.sh (expect_files_equal): New function.
+ * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic,
+ src/tests/lexgrog-multiple-whatis, src/tests/man-exact-section-matches,
+ src/tests/man-invalid-db-entry,
+ src/tests/man-language-specific-requests,
+ src/tests/man-mandatory-manpath, src/tests/man-override-dir,
+ src/tests/man-recode-in-place, src/tests/man-recode-suffix,
+ src/tests/man-so-links-same-section, src/tests/man-suffixed-extension,
+ src/tests/man-symlinks-with-matching-names,
+ src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding,
+ src/tests/manconv-odd-combinations, src/tests/mandb-basic,
+ src/tests/mandb-purge-updates-timestamp,
+ src/tests/mandb-regular-file-symlink-changes,
+ src/tests/mandb-symlink-beats-whatis-ref,
+ src/tests/mandb-symlink-target-timestamp,
+ src/tests/mandb-whatis-broken-link-changes,
+ src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Use
+ expect_files_equal instead of the equivalent expect_pass construction.
+
+2022-03-07 Colin Watson <cjwatson@debian.org>
+
+ tests: Improve quoting
+
+ * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic,
+ src/tests/lexgrog-multiple-whatis, src/tests/man-deleted-directory,
+ src/tests/man-exact-section-matches,
+ src/tests/man-executable-page-on-path, src/tests/man-invalid-db-entry,
+ src/tests/man-language-specific-requests,
+ src/tests/man-mandatory-manpath, src/tests/man-missing-locales,
+ src/tests/man-override-dir, src/tests/man-recode-in-place,
+ src/tests/man-recode-suffix, src/tests/man-so-links-same-section,
+ src/tests/man-suffixed-extension,
+ src/tests/man-symlinks-with-matching-names,
+ src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding,
+ src/tests/manconv-incomplete-char-at-eof,
+ src/tests/manconv-odd-combinations, src/tests/mandb-basic,
+ src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag,
+ src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp,
+ src/tests/mandb-regular-file-symlink-changes,
+ src/tests/mandb-symlink-beats-whatis-ref,
+ src/tests/mandb-symlink-target-timestamp,
+ src/tests/mandb-whatis-broken-link-changes,
+ src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Use
+ ': "${var=default}"' idiom to assign default values rather than
+ ': ${var=default}', pacifying shellcheck.
+
+2022-03-06 Nikola Forró <nforro@redhat.com>
+
+ Add --with-snapdir configure option
+
+ * m4/man-arg-snapdir.m4: New file.
+ * configure.ac: Call MAN_ARG_SNAPDIR.
+ * src/man_db.conf.in: Use @snapdir@ rather than hardcoding /snap.
+ * NEWS.md: Document this.
+
+2022-03-06 Colin Watson <cjwatson@debian.org>
+
+ Tidy up NEWS.md slightly
+
+ * NEWS.md: Reorder fixes and improvements; add credit for last commit.
+
+2022-03-06 Mihail Konev <k.mvc@ya.ru>
+
+ man(1): Fix override dir handling
+
+ Previously, override dir was affecting only some cases of manpath
+ determination. Apply it only when all paths have been gathered instead.
+
+ Also look for override dir when sorting candidates.
+
+ Fixes src/tests/man-override-dir failing when --with-override-dir=od is
+ passed to ./configure.
+
+ [cjwatson: Refactored candidate comparison to use a strcmp-style
+ function, and simplified the addition of override directories a little
+ more.]
+
+ * src/man.c (compare_override_dir): New function.
+ (compare_candidates): Compare override directory status between
+ comparing section extensions and comparing locale elements.
+ * src/manp.c (insert_override_dir): Remove.
+ (get_manpath_from_path, add_man_subdirs): Remove calls to
+ insert_override_dir.
+ (create_pathlist): Add OVERRIDE_DIR at the canonicalization stage
+ instead.
+ * NEWS.md: Document this.
+
+ Reported-by: Nikola Forró <nforro@redhat.com>
+ Tested-by: Nikola Forró <nforro@redhat.com>
+
+2022-03-06 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20220301
+
+ In line with Gnulib, we now require Automake 1.14.
+
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 8c4f4d7a3c28f88b64fce2fb1d0dc0e570d1a482.
+ (buildreq): Bump required automake version to 1.14.
+ * configure.ac (AM_INIT_AUTOMAKE): Bump minimum version to 1.14.
+ * NEWS.md: Document this.
+
+2022-03-06 Colin Watson <cjwatson@debian.org>
+
+ Add some hardening options to the systemd service
+
+ Based on a patch by Johannes Segitz in the openSUSE packaging, although
+ I added `PrivateTmp=true` and `LockPersonality=true` as well.
+
+ * init/systemd/man-db.service.in: Add some hardening options. (This may
+ produce warnings with `systemd < 244`.)
+ * NEWS.md: Document this.
+
+2022-03-05 Colin Watson <cjwatson@debian.org>
+
+ Make the man-db manual build reproducible
+
+ Inspired by a patch from B. Wiedemann, but implemented differently.
+
+ * manual/Makefile.am (version): Set "td" string to the package's release
+ date, since otherwise groff's me package will use the current date.
+ * NEWS.md: Document this.
+
+2022-03-05 Dr. Werner Fink <werner@suse.de>
+
+ Fix showing HTML, as firefox runs into background too fast
+
+ [cjwatson: I'm not 100% keen on this approach, since it randomly depends
+ on how long the browser happens to take to launch and might be a bit
+ annoying for users of light browsers such as w3m, but there doesn't seem
+ to be any other good alternative for the more common case of people
+ using typical graphical browsers.]
+
+ Fixes Debian bug #335411 and Savannah bug #59542.
+
+ * src/man.c (format_display): Sleep for a few seconds after starting the
+ browser, since it may background itself before loading files.
+ * NEWS.md: Document this.
+
+2022-02-18 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Update Serbian manual page translation
+
+ * man/po4a/po/sr.po: Update from Translation Project.
+
+2022-02-17 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian translation
+
+ * po/ro.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2022-02-15 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian manual page translation
+
+ * man/po4a/po/ro.po: Update from Translation Project.
+
+2022-02-15 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
+
+ Update Romanian manual page translation
+
+ * man/po4a/po/ro.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2022-02-10 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.10.1
+
+2022-02-10 Colin Watson <cjwatson@debian.org>
+
+ Add a top-level update-po target
+
+ This simplifies the common task of ensuring that both program and manual
+ page translation files are up to date.
+
+ * Makefile.am (update-po): New target.
+
+2022-02-09 Colin Watson <cjwatson@debian.org>
+
+ Fix warnings when building without zlib
+
+ * src/decompress.c (decompress_new_inprocess): Only define this function
+ if HAVE_LIBZ is defined.
+ (OPEN_FLAGS_UNUSED): New macro, defined to MAYBE_UNUSED if HAVE_LIBZ is
+ undefined.
+ (decompress_open): Declare flags as unused if HAVE_LIBZ is defined.
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Use Gnulib raise module
+
+ This can be made slightly more portable (e.g. to MinGW).
+
+ * bootstrap.conf (gnulib_modules): Add raise.
+ * lib/cleanup.c (sighandler): Call raise rather than kill.
+
+2022-02-08 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'libintl' into 'main'
+
+ libdb: link against libintl explicitly
+
+ See merge request cjwatson/man-db!3
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Use @LTLIBINTL@ rather than $(LIBINTL)
+
+ This matches our other Makefiles.
+
+2022-02-08 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese manual page translation
+
+ Fixes Debian bug #1005139.
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Fix building on Cygwin
+
+ Achim reported that 2.10.0 no longer builds on Cygwin, while 2.9.4 did.
+ This was magnificently obscure, at least to this Unix-head. Initially
+ it appeared to be an issue with inter-library linking between libman and
+ libmandb, but 2.9.4 relied on that too, just slightly less so.
+
+ The actual problem was that libman only exported
+ `gl_get_setlocale_null_lock` and not all the other symbols it's supposed
+ to export, which is because that was explicitly marked for export and no
+ other symbols were. Building libman with `-Wl,--export-all-symbols`
+ fixes this; libman is intended as an aggregation of various helper
+ functions, including those from Gnulib, and it doesn't make sense to be
+ especially selective since it's only installed as a private library
+ anyway.
+
+ (I'm still not exactly sure why 2.9.4 didn't do the same thing, but this
+ seems to be a good enough fix.)
+
+ * configure.ac: Set LIBMAN_EXPORT_LDFLAGS to '-Wl,--export-all-symbols'
+ when linking with GNU ld on Windows platforms.
+ * lib/Makefile.am (libman_la_LDFLAGS): Add $(LIBMAN_EXPORT_LDFLAGS).
+ * src/Makefile.am (LIBMAN): Remove $(top_builddir)/gl/lib/libgnu.la; as
+ a convenience library, this is already incorporated into libman.la, and
+ specifying it again causes multiple-definition errors on Cygwin.
+ * src/tests/Makefile.am (get_mtime_LDADD): Likewise.
+ * NEWS.md: Document this.
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Document fix for building without iconv
+
+ * NEWS.md: Document previous change.
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Fix building without iconv
+
+ * src/convert.c (convert_to_locale) [!HAVE_ICONV]: Declare a function
+ rather than a macro.
+ (convert_to_locale): Add ATTRIBUTE_MALLOC.
+
+2022-02-08 Colin Watson <cjwatson@debian.org>
+
+ Remove some unused includes
+
+ * lib/encodings.c: Remove unused #include "pipeline.h". Explicitly
+ include <stdio.h>, previously included implicitly via "pipeline.h".
+ * lib/security.c, lib/util.c: Remove unused #include "pipeline.h".
+
+2022-02-07 Fabian Groffen <grobian@gentoo.org>
+
+ libdb: link against libintl explicitly
+
+ Necessary since gettext is used for translations.
+
+ [sam: originally found downstream in Gentoo on Gentoo Prefix on macOS.]
+
+2022-02-06 Colin Watson <cjwatson@debian.org>
+
+ Suppress Clang warnings with -Wconstant-logical-operand
+
+ * src/lexgrog.l (find_name): Explicitly test `*PROG_COL != '\0'` rather
+ than just `*PROG_COL`, to pacify `clang -Wconstant-logical-operand`.
+ * src/man.c (make_roff_command, make_display_command): Likewise.
+
+2022-02-06 Colin Watson <cjwatson@debian.org>
+
+ Revert "Reduce indentation depth using C99"
+
+ This reverts commit c4d20840f3487588c4a0da4397b1acb6dc83a1e5. Even in
+ C99, a declaration isn't valid immediately after a label; this didn't
+ become valid until C2x, although gcc allows it as an extension.
+
+ Fixes https://gitlab.com/cjwatson/man-db/-/issues/2.
+
+ * src/man.c (parse_opt): Restore enclosing block for OPT_WARNINGS.
+ * NEWS: Document this.
+
+2022-02-04 Colin Watson <cjwatson@debian.org>
+
+ Fix another edge case in mandb-symlink-target-timestamp
+
+ * src/tests/mandb-symlink-target-timestamp: Fix handling of the case
+ where the nanosecond part of a timestamp is exactly 0 (probably because
+ the filesystem doesn't support nanosecond resolution).
+
+2022-02-04 Colin Watson <cjwatson@debian.org>
+
+ Fix occasional mandb-symlink-target-timestamp test failure
+
+ * src/tests/mandb-symlink-target-timestamp: Fix handling of the case
+ where the nanosecond part of a timestamp starts with a zero.
+ * NEWS.md: Document this.
+
+2022-02-04 Colin Watson <cjwatson@debian.org>
+
+ Update man-db.lsm properly
+
+ Release man-db 2.10.0
+
+2022-01-31 Colin Watson <cjwatson@debian.org>
+
+ gitlab-ci: Run tests with VERBOSE=1
+
+ This makes it easier to diagnose test failures.
+
+ * .gitlab-ci.yml (build-distcheck:script, build-out-of-tree:script): Set
+ VERBOSE=1.
+
+2022-01-31 Colin Watson <cjwatson@debian.org>
+
+ man: Avoid spurious error messages due to subpages
+
+ Since man-db 2.4.2, `man` has behaved as if the `-l` option was given if
+ a manual page argument contains a slash. Since man-db 2.5.6, this has
+ interacted slightly poorly with the subpage feature, emitting spurious
+ error messages if given multiple manual page arguments some of which
+ include a slash. `man` no longer emits spurious error messages in this
+ case.
+
+ Fixes Savannah bug #53708.
+
+ * src/man.c (man): Move name-contains-slash case to ...
+ (man_maybe_local): ... here (new function).
+ (main): Call man_maybe_local instead of man where checking for names
+ containing slashes is acceptable.
+ * NEWS.md: Document this.
+
+2022-01-31 Colin Watson <cjwatson@debian.org>
+
+ mandb: Fix handling of link target mtimes
+
+ Depending on directory iteration order, mandb sometimes incorrectly
+ stored the mtime of a symlink as the mtime of its target as well.
+
+ Fixes Debian bug #691643.
+
+ * src/descriptions_store.c (store_descriptions): When adding entries
+ based on an ult_src trace, use the mtime of the target file if possible
+ rather than the mtime of the base entry.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-symlink-target-timestamp.
+ * src/tests/get-mtime.c (main): Use lstat rather than stat.
+ * src/tests/mandb-symlink-target-timestamp: New file.
+ * NEWS.md: Document this.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * po/man-db.pot, po/*.po: Update.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20220130
+
+ * bootstrap: Sync to Gnulib 735f319cde4ab7e98294557181d682564241d846.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 735f319cde4ab7e98294557181d682564241d846.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ Simplify static analysis of fatal errors
+
+ The usual idiom for fatal error reporting in man-db is `error (FATAL,
+ ...)` (there are a few cases using different exit codes, but they're
+ less common). Unfortunately, there's no easy way to tell the compiler
+ that this call doesn't return, because `error (0, ...)` *does* return.
+ As a result, some call sites required extra work to give the compiler
+ this information, which can sometimes make a difference to static
+ analysis.
+
+ To simplify this, add a new `fatal` helper function which always exits
+ `FATAL` (i.e. 2) and never returns. This is declared with `_Noreturn`
+ so that the compiler can straightforwardly know what's going on.
+
+ * bootstrap.conf (gnulib_modules): Add verror.
+ (XGETTEXT_OPTIONS): Add --flag=fatal:2:c-format.
+ * lib/fatal.c, lib/fatal.h: New files.
+ * lib/Makefile.am (libman_la_SOURCES): Add fatal.c and fatal.h.
+ * src/tests/Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/lib.
+ (get_mtime_LDADD): Add $(top_builddir)/lib/libman.la.
+
+ * lib/pathsearch.c (pathsearch, directory_on_path): Use fatal.
+ * lib/sandbox.c (can_load_seccomp, make_seccomp_filter, _sandbox_load):
+ Likewise.
+ * lib/security.c (gripe_set_euid): Likewise.
+ * lib/xregcomp.c (xregcomp): Likewise.
+ * libdb/db_lookup.c (gripe_corrupt_data, dblookup_pattern): Likewise.
+ * libdb/db_ver.c (dbver_wr): Likewise.
+ * src/accessdb.c (main): Likewise.
+ * src/catman.c (parse_for_sec): Likewise.
+ * src/check_mandirs.c (chown_if_possible): Likewise.
+ * src/man-recode.c (recode): Likewise.
+ * src/man.c (open_cat_stream, format_display, gripe_converting_name):
+ Likewise.
+ * src/manconv.c (add_output): Likewise.
+ * src/manp.c (add_dir_to_path_list): Likewise.
+ * src/tests/get-mtime.c (main): Likewise.
+ * src/whatis.c (do_apropos): Likewise.
+ * src/zsoelim.l (<so>\"?[^ \t\n\"]+\"?): Likewise.
+
+ * libdb/db_lookup.c (gripe_corrupt_data, gripe_replace_key): Declare as
+ _Noreturn.
+
+ * src/accessdb.c (main): Remove now-unnecessary assertion.
+ * src/man.c (gripe_converting_name): Remove now-unnecessary abort.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ docs: Move COPYING and COPYING.LIB to top level
+
+ I think people are more likely to expect to find them here - I recently
+ even found myself confused by their previous placement.
+
+ * docs/COPYING, docs/COPYING.LIB: Move to ...
+ * COPYING, COPYING.LIB: ... here, respectively.
+ * lib/README: Update references.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ man: Don't modify MANSECT environment variable
+
+ Reported and diagnosed by Rob Hoelz. Fixes Savannah bug #58896.
+
+ * src/man.c (get_section_list): Copy colon_sep_section_list before
+ passing it to strtok.
+ * NEWS.md: Document this.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ libdb: Pacify gcc -Wempty-body
+
+ * libdb/mydbm.h (MYDBM_REORG) [NDBM, BTREE]: Change no-op macro
+ definition to avoid "suggest braces around empty body" warning in mandb.
+
+2022-01-30 Alejandro Cendejas Tena <alex.cendejas@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2022-01-30 Colin Watson <cjwatson@debian.org>
+
+ mandb: Don't modify DB without changing its mtime
+
+ In d9ebedad15 (man-db 2.7.0), mandb started relying on the modification
+ times of database files themselves rather than using a special row, in
+ order to make databases reproducible between otherwise-identical
+ installations (subject to predictable behaviour from the underlying
+ database).
+
+ There was a difficulty with this change. Because purging deleted pages
+ from the database opened and closed the database in a separate phase
+ before the main phase of looking for updated manual pages, and because
+ the main phase relies on comparing against the mtime of the database to
+ find changed files, I had to arrange to restore the original mtime at
+ the end of the purge phase in order to avoid confusing the main phase
+ into being a no-op. However, in some cases (perhaps due to other bugs,
+ but nevertheless), it's possible for the purge phase to find work to do
+ without the main phase ever finding any modified directories, which
+ meant that the net effect of mandb would be to modify its database
+ without changing its mtime. This is bad form, and confused some backup
+ systems into believing that the filesystem had been corrupted, since
+ files having their contents changed without updating their mtime is
+ indeed a likely symptom of filesystem corruption.
+
+ To avoid this, restructure our database-handling code so that a given
+ mandb run opens any given database at most once. This means that we no
+ longer need to modify mtimes manually, so the usual filesystem rules
+ apply.
+
+ Fixes Debian bug #1004355 and Ubuntu bug #1411633.
+
+ * bootstrap.conf (gnulib_modules): Remove futimens.
+ * libdb/db_btree.c (man_btree_close): Rename to ...
+ (man_btree_free): ... this. Check whether wrap->file is set. Free
+ wrap->mtime.
+ (man_btree_new): New function.
+ (man_btree_open): Convert to running on the result of man_btree_new.
+ (man_btree_get_time): Cache return value in wrap->mtime.
+ (man_btree_set_time): Remove.
+ * libdb/db_gdbm.c (man_gdbm_new): New function.
+ (man_gdbm_open_wrapper): Convert to running on the result of
+ man_gdbm_new.
+ (man_gdbm_get_time): Cache return value in wrap->mtime.
+ (man_gdbm_set_time): Remove.
+ (raw_close): Check whether wrap->file is set.
+ (man_gdbm_close): Rename to ...
+ (man_gdbm_free): ... this.
+ * libdb/db_ndbm.c (raw_close): Check whether wrap->file is set.
+ (man_ndbm_close): Rename to ...
+ (man_ndbm_free): ... this.
+ (man_ndbm_new): New function.
+ (man_ndbm_open): Convert to running on the result of man_ndbm_new.
+ (man_ndbm_get_time): Cache return value in wrap->mtime.
+ (man_ndbm_set_time): Remove.
+ * libdb/db_xdbm.c (man_xdbm_close): Rename to ...
+ (man_xdbm_free): ... this. Update all callers. Free dbf->mtime.
+ * libdb/db_xdbm.h (man_xdbm_close): Rename to ...
+ (man_xdbm_free): ... this.
+ * libdb/mydbm.h (man_gdbm_wrapper, man_ndbm_wrapper, man_btree_wrapper):
+ Add mtime.
+ (man_gdbm_new, man_ndbm_new, man_btree_new): Add prototypes.
+ (man_gdbm_open_wrapper, man_ndbm_open, man_btree_open): Update
+ prototypes.
+ (man_gdbm_set_time, man_ndbm_set_time, man_btree_set_time): Remove
+ prototypes.
+ (man_gdbm_close, man_ndbm_close, man_btree_close): Rename to ...
+ (man_gdbm_free, man_ndbm_free, man_btree_free): ... these, respectively.
+ (MYDBM_NEW): New macro.
+ (MYDBM_CTRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN): Rename file argument to
+ wrap.
+ (MYDBM_CLOSE): Rename to ...
+ (MYDBM_FREE): ... this.
+ (MYDBM_SET_TIME): Remove macro.
+
+ * src/catman.c (parse_for_sec): Take a MYDBM_FILE argument rather than a
+ database path.
+ * src/check_mandirs.c (gripe_rwopen_failed, testmandirs, create_db,
+ update_db, purge_missing): Likewise.
+ * src/mandb.c (update_one_file, update_db_wrapper): Likewise.
+ * src/straycats.c (straycats): Likewise.
+ * src/check_mandirs.h (create_db, update_db, purge_missing): Update
+ prototypes.
+ * src/straycats.h (straycats): Likewise.
+
+ * src/check_mandirs.c (ensure_db_open): New function.
+ (testmandirs): Only open the database if it wasn't already open, and
+ don't close it.
+ (update_db, purge_missing): Likewise.
+ * src/mandb.c (update_one_file): Likewise.
+ * src/straycats.c (straycats): Assert that the database is already open,
+ and don't close it.
+
+ * src/accessdb.c (main): Update database opening code.
+ * src/catman.c (post_fork): Update database closing code.
+ (parse_for_sec): Move database opening and closing code to ...
+ (main): ... here, and update it.
+ * src/man.c (dbdelete_wrapper): Update database opening and closing
+ code.
+ * src/whatis.c (search): Update database opening and closing code.
+
+ * src/check_mandirs.c (purge_missing): Don't reorganize the database.
+ * src/mandb.c (mandb): Create a MYDBM_FILE from the database path, and
+ close and free it before returning. Rearrange purging so that it runs
+ on the temporary database copy, which we close and remove if
+ purge_missing finds a consistency problem requiring us to rescan from
+ scratch. Unless purging requires a rescan, all of the purge, main, and
+ stray cats phases now run on the same open database file. Reorganize
+ the database before closing it if the purge phase did any work.
+ (process_manpath): Rename the temporary database into place if either of
+ the purge or stray cats phases did any work, even if the main phase
+ didn't.
+
+ * src/check_mandirs.c (update_db_time): Remove.
+ (create_db): Don't manually update the database mtime.
+ (update_db, purge_missing): Likewise.
+
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-purge-updates-timestamp.
+ (check_PROGRAMS): Add get-mtime.
+ (get_mtime_SOURCES, get_mtime_LDADD): Add.
+ * src/tests/get-mtime.c: New file: test helper to get a file's mtime
+ portably.
+ * src/tests/mandb-purge-updates-timestamp: New file.
+ * .gitignore: Add src/tests/get-mtime.
+
+ * NEWS: Document this.
+
+2022-01-29 Colin Watson <cjwatson@debian.org>
+
+ man: Make dbdelete_wrapper use the correct database
+
+ Even if it has permissions to delete stale entries from the database,
+ dbdelete_wrapper can't assume that the most recently opened database is
+ the one from which it should delete the entry; it needs to use the
+ database to which the candidate in question belongs.
+
+ * src/man.c (database): Remove global variable.
+ (dbdelete_wrapper): Add a manpath argument, and attempt to open the
+ associated database locally.
+ (display_database_check): Pass the candidate's path (i.e. manpath) to
+ dbdelete_wrapper.
+ (try_db): Make the database path a local variable. Reorganize cleanup
+ paths.
+ (main): Stop freeing database, since it's no longer a global variable.
+
+2022-01-29 Colin Watson <cjwatson@debian.org>
+
+ mandb: Fix some details of error handling
+
+ * src/check_mandirs.c (testmandirs): Return -1 rather than -errno on
+ failure to create the database.
+ (create_db, update_db): Only call update_db_time if amount > 0, rather
+ than if it is non-zero (since it may be negative to indicate an error,
+ and updating the database time doesn't make sense in that case).
+ (update_db): Return -1 rather than EOF.
+ * src/mandb.c (update_db_wrapper): Check whether amount is non-zero
+ rather than whether it is unequal to EOF.
+
+2022-01-29 Colin Watson <cjwatson@debian.org>
+
+ libdb: Remove unused MYDBM_CRWOPEN macro
+
+ * libdb/mydbm.h (MYDBM_CRWOPEN): Remove.
+
+2022-01-29 Colin Watson <cjwatson@debian.org>
+
+ mandb: Call purge_missing and straycats from mandb
+
+ We can simplify some logic by pushing these down a layer.
+
+ * src/check_mandirs.c (purge_missing): Remove will_run_mandb argument,
+ which was always true due to --filename implying --no-purge.
+ * src/check_mandirs.h (purge_missing): Update prototype.
+ * src/mandb.c (process_manpath): Move purge_missing and straycats calls
+ to ...
+ (mandb): ... here.
+
+2022-01-29 Colin Watson <cjwatson@debian.org>
+
+ mandb: Factor out some duplicate code
+
+ * src/mandb.c (mandb): Move common create/update logic outside the
+ database-type-specific #ifdefs.
+
+2022-01-26 Colin Watson <cjwatson@debian.org>
+
+ Use bool in more places in mandb
+
+ * src/check_mandirs.c (testmandirs): Change "create" parameter and
+ "created" local variable types to bool. Update all callers.
+ (check_multi_key): Change "valid" local variable to bool.
+ (purge_missing): Change "will_run_mandb" parameter and "db_exists" local
+ variable types to bool. Update all callers.
+ * src/check_mandirs.h (purge_missing): Update prototype.
+ * src/mandb.c (struct tried_catdirs_entry): Change "seen" element type
+ to bool. Update all users.
+ (mandb): Change "should_create" and "cachedir_tag_exists" local variable
+ types to bool.
+ (process_manpath): Change "run_mandb" local variable type to bool.
+ (is_lang_dir): Return bool.
+
+2022-01-26 Yi-Jyun Pan <pan93412@gmail.com>
+
+ Update Traditional Chinese translation
+
+ * po/zh_TW.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2022-01-25 Colin Watson <cjwatson@debian.org>
+
+ Add Spanish translator credit
+
+ * man/THANKS: Add translator credit.
+
+2022-01-25 Petr Pisar <petr.pisar@atlas.cz>
+
+ Update Czech translation
+
+ * po/cs.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2022-01-24 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2022-01-24 Alejandro Cendejas Tena <alex.cendejas@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2022-01-24 Alejandro Cendejas Tena <alex.cendejas@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Fix upload/release machinery to handle .tar.xz
+
+ Release man-db 2.10.0-pre1
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Improve documentation of search path handling
+
+ Fixes Savannah bug #61862.
+
+ * man/man5/manpath.man5 (SEARCH PATH): New section.
+ * man/man1/apropos.man1 (ENVIRONMENT): Refer to manpath(5) for details
+ of MANPATH.
+ * man/man1/man.man1 (ENVIRONMENT): Likewise.
+ * man/man1/manpath.man1 (ENVIRONMENT): Likewise.
+ * man/man1/whatis.man1 (ENVIRONMENT): Likewise.
+ * man/man8/catman.man8 (ENVIRONMENT): Likewise.
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Fix typos in descriptions of --systems
+
+ Fixes Savannah bug #61861.
+
+ * man/man1/apropos.man1 (OPTIONS): "system's" → "systems'".
+ * man/man1/man.man1 (Finding manual pages): Likewise.
+ * man/man1/manpath.man1 (OPTIONS): Likewise.
+ * man/man1/whatis.man1 (OPTIONS): Likewise.
+
+2022-01-24 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'optimize-decompression' into 'main'
+
+ Significantly improve mandb performance
+
+ See merge request cjwatson/man-db!2
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Optimize manconv_inprocess for UTF-8 target encoding
+
+ If the target encoding is UTF-8, then manconv's first stage (trial
+ conversion from UTF-8) can more efficiently be replaced with UTF-8
+ validation, leaving the original decompressed buffer unchanged on
+ success. Suggested by Steinar H. Gunderson.
+
+ * src/manconfig.h (UNLIKELY): New macro.
+ * src/decompress.c (decompress_inprocess_buf): New function.
+ * src/decompress.h (decompress_inprocess_buf): Add prototype.
+ * src/utf8.c, src/utf8.h: New files, based on glib's UTF-8 validation
+ code.
+ * src/manconv_client.c (manconv_inprocess): Optimize case where
+ source_encoding is not UTF-8 and target_encoding is UTF-8 by returning
+ early if UTF-8 validation passes.
+ * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES,
+ mandb_SOURCES): Add utf8.c and utf8.h.
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Significantly improve mandb performance
+
+ Forking large numbers of subprocesses is slow. An ideal fix would
+ involve work in libpipeline (e.g. generator functions or
+ multithreading), but in the meantime we can do much better in the common
+ case of moderately-sized pages compressed using zlib by doing in-process
+ decompression. On my test system, this takes `mandb -c` from 344
+ seconds (or 152 seconds with `MAN_DISABLE_SECCOMP=1` before 50200d151d,
+ or 78 seconds with `MAN_DISABLE_SECCOMP=1` after 50200d151d) to 10
+ seconds.
+
+ Thanks to Steinar H. Gunderson for a proof of concept, which I reworked
+ extensively.
+
+ Fixes Debian bugs #630799 and #1003089, and Ubuntu bug #1858777.
+
+ * NEWS.md: Document this. Bump version to 2.10.0.
+ * src/decompress.c (enum decompress_tag): Add DECOMPRESS_INPROCESS.
+ (struct decompress_inprocess): New structure.
+ (struct decompress): Add an inprocess element.
+ (decompress_new_inprocess, decompress_try_zlib, decompress_is_pipeline,
+ decompress_inprocess_len, decompress_inprocess_replace): New functions.
+ (decompress_open): Add flags argument. Try in-process zlib
+ decompression if requested via DECOMPRESS_ALLOW_INPROCESS. Update all
+ callers to pass a flags argument (0 unless otherwise stated).
+ (decompress_start, decompress_read, decompress_peek,
+ decompress_peek_skip, decompress_readline, decompress_peekline,
+ decompress_wait, decompress_free): Implement in-process mode.
+ * src/decompress.h (DECOMPRESS_ALLOW_INPROCESS): Define.
+ (decompress_open): Update prototype.
+ (decompress_fdopen): Update comment to indicate that this always uses
+ pipeline-based decompression.
+ (decompress_is_pipeline, decompress_inprocess_len,
+ decompress_inprocess_replace): Add prototypes.
+ (decompress_start, decompress_wait): Update comments to document
+ behaviour for in-process decompressors.
+
+ * src/manconv.c (add_output): Add output buffer argument; append to
+ output buffer if given, otherwise write to stdout as before.
+ (try_iconv): Add and pass output buffer argument.
+ (manconv): Likewise. Update all callers to pass output buffer argument
+ (NULL unless otherwise stated).
+ * src/manconv.h (struct manconv_outbuf): New structure.
+ (manconv): Update prototype.
+ * src/manconv_client.c (manconv_inprocess): New function.
+ * src/manconv_client.h (manconv_inprocess): Add prototype.
+
+ * src/lexgrog.l (find_name): Request in-process decompression unless
+ operating on a cat page. Use manconv_inprocess rather than add_manconv
+ in the in-process case.
+ * src/man.c (grep): Request in-process decompression.
+ * src/ult_src.c (ult_src): Likewise.
+ * src/zsoelim.l (try_compressed, zsoelim_open_file): Likewise.
+
+2022-01-24 Colin Watson <cjwatson@debian.org>
+
+ Avoid a manconv subprocess in more cases
+
+ Suggested by Steinar H. Gunderson.
+
+ * src/manconv_client.c (add_manconv): Return early if the source and
+ target encodings are equal, not just if they're both UTF-8.
+
+2022-01-22 Colin Watson <cjwatson@debian.org>
+
+ Make manconv error handling less abrupt
+
+ Exiting immediately on errors works OK if manconv is only ever used in a
+ subprocess, but that approach makes it hard to use in an in-process
+ context.
+
+ * src/manconv.c (add_output): New function, factored out of try_iconv
+ and manconv.
+ (tried_iconv): New enumeration.
+ (try_iconv): Use add_output. Return TRIED_ICONV_FATAL where we would
+ previously have exited the process.
+ (manconv): Use add_output. Return non-zero if add_output returns
+ non-zero or try_iconv returns TRIED_ICONV_FATAL.
+ * src/manconv.h (manconv): Update prototype.
+ * src/manconv_client.c (manconv_stdin): Exit with FATAL if manconv
+ returns non-zero.
+ * src/manconv_main.c (main): Likewise.
+
+2022-01-22 Colin Watson <cjwatson@debian.org>
+
+ Clarify argument naming in add_manconv
+
+ Suggested by Steinar H. Gunderson.
+
+ * src/manconv_client.c (add_manconv): Rename source to source_encoding,
+ and target to target_encoding.
+ * src/manconv_client.h (add_manconv): Update prototype.
+
+2022-01-19 Colin Watson <cjwatson@debian.org>
+
+ Add a layer of abstraction to decompression
+
+ It would be useful to have an optimized version of the common case of
+ zlib decompression that doesn't involve forking subprocesses. As
+ preparation for this, insert an abstraction layer around code that reads
+ from decompressors. This abstraction layer looks almost identical to
+ the `libpipeline` API except for name changes, but having it allows us
+ to implement decompression in some other way.
+
+ Code that requires `libpipeline`-based decompression can use
+ `decompress_get_pipeline` to assert that the decompressor uses
+ `libpipeline` and return the underlying `pipeline *`.
+
+ * src/decompress.c (enum decompress_tag, struct decompress,
+ decompress_new_pipeline, decompress_get_pipeline, decompress_start,
+ decompress_read, decompress_peek, decompress_peek_skip,
+ decompress_readline, decompress_peekline, decompress_wait,
+ decompress_free): Add.
+ (decompress_open, decompress_fdopen): Return `decompress *` rather than
+ `pipeline *`.
+ * src/decompress.h (decompress): New typedef.
+ (decompress_open, decompress_fdopen): Update prototypes.
+ (decompress_get_pipeline, decompress_start, decompress_read,
+ decompress_peek, decompress_peek_skip, decompress_readline,
+ decompress_peekline, decompress_wait, decompress_free): Add prototypes.
+
+ * src/lexgrog.l (YY_INPUT, find_name, find_name_decompressed): Use
+ decompression API.
+ * src/man-recode.c (recode): Likewise.
+ * src/man.c (get_preprocessors_from_file, get_preprocessors,
+ make_roff_command, format_display_and_save, format_display,
+ display_catman, display, display_pages, grep): Likewise.
+ * src/manconv.c (check_preprocessor_encoding, try_iconv, manconv):
+ Likewise.
+ * src/manconv_client.c (manconv_stdin): Likewise.
+ * src/manconv_main.c (main): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+ * src/zsoelim.l (YY_INPUT, <<EOF>>, zsoelim_parse_file, try_compressed,
+ zsoelim_open_file): Likewise.
+
+ * src/lexgrog.h (find_name_decompressed): Update prototype.
+ * src/manconv.h (check_preprocessor_encoding, manconv): Likewise.
+
+2022-01-19 Alejandro Cendejas Tena <alex.cendejas@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2022-01-18 Colin Watson <cjwatson@debian.org>
+
+ Fix missing options when invoking troff
+
+ Broken by 000cda3ec5.
+
+ * configure.ac: Move PROG_TROFF definition after all assignments to
+ $troff.
+
+2022-01-18 Colin Watson <cjwatson@debian.org>
+
+ Fix override-dir handling
+
+ Broken by 000cda3ec5.
+
+ * m4/man-arg-override-dir.m4 (MAN_ARG_OVERRIDE_DIR): Remove superfluous
+ "$" from AC_DEFINE_UNQUOTED call.
+
+2022-01-17 Colin Watson <cjwatson@debian.org>
+
+ Remove AM_MAINTAINER_MODE
+
+ I enabled this in fb4afb0b75, saying that timestamps were too fragile
+ for the rebuild rules to work well. However, I've changed my mind: git
+ is good at making sure that file modification times are updated when
+ checking out a different commit, and tarballs include timestamp
+ information. Moreover, with `AM_MAINTAINER_MODE` and without passing
+ `--enable-maintainer-mode`, flex output isn't automatically regenerated,
+ which is impossibly annoying and has tripped me up countless times since
+ 2010.
+
+ * configure.ac (AM_MAINTAINER_MODE): Remove.
+
+2022-01-17 Colin Watson <cjwatson@debian.org>
+
+ NEWS.md: Document previous commit
+
+2022-01-17 Colin Watson <cjwatson@chiark.greenend.org.uk>
+
+ Merge branch 'C0rn3j-main-patch-74046' into 'main'
+
+ man-db.timer: Use RandomizedDelaySec over AccuracySec
+
+ See merge request cjwatson/man-db!1
+
+2022-01-17 Colin Watson <cjwatson@debian.org>
+
+ Avoid libpipeline linkage in libman
+
+ Since it's only used by one function, and not all of man-db's tools need
+ libpipeline in their own right (e.g. accessdb), it seems worth pushing
+ this up a layer.
+
+ * lib/encodings.c (struct conversion_entry, conversion_table,
+ convert_encoding, check_preprocessor_encoding): Move to ...
+ * src/manconv.c: ... here.
+ * lib/encodings.h (check_preprocessor_encoding): Move to ...
+ * src/manconv.h: ... here.
+ * lib/Makefile.am (libman_la_CPPFLAGS): Remove $(libpipeline_CFLAGS).
+ (libman_la_LDFLAGS): Remove $(libpipeline_LIBS).
+ * src/man-recode.c, src/man.c, src/manconv.c: Include manconv.h.
+
+2022-01-17 Colin Watson <cjwatson@debian.org>
+
+ Pacify cppcheck in check_preprocessor_encoding
+
+ * lib/encoding.c (check_preprocessor_encoding): Explicitly initialize
+ directive_end and ppsearch. If directive is non-NULL by the time these
+ are used then they're always initialized, but cppcheck didn't manage to
+ spot that.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20220116
+
+ * bootstrap: Sync to Gnulib 1eae0f7ea3c220d054025f2c9211700665f9f4a0.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 1eae0f7ea3c220d054025f2c9211700665f9f4a0.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move some more declarations out of manconfig.h
+
+ Header includes should be in the same translation unit as the code that
+ uses them rather than being ambient across the whole project.
+
+ * include/manconfig.h: Remove obsolete header comment about program
+ paths.
+
+ * include/manconfig.h: Remove includes of "xvasprintf.h", <stddef.h>,
+ "xalloc.h", and "xstrndup.h", as well as "struct pipeline" declaration.
+ Update all files that relied on these to include/declare them directly
+ instead as needed.
+
+ * include/manconfig.h (MAN_DB, mkdbname): Move to ...
+ * libdb/mydbm.h: ... here.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move appendstr out of manconfig.h
+
+ * include/manconfig.h (appendstr): Move to ...
+ * lib/appendstr.h: ... here (new file).
+ * lib/Makefile.am (libman_la_SOURCES): Add appendstr.h.
+ * lib/README: Update file names.
+ * lib/appendstr.c, libdb/db_delete.c, src/catman.c, src/check_mandirs.c,
+ src/compression.c, src/filenames.c, src/globbing.c, src/man.c,
+ src/manconv_client.c, src/manconv_main.c, src/manp.c, src/straycats.c,
+ src/whatis.c, src/zsoelim.l: Include appendstr.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move debug-related declarations out of manconfig.h
+
+ * include/manconfig.h (debug_level, init_debug, debug, debug_error):
+ Move to ...
+ * lib/debug.h: ... here (new file).
+ * lib/Makefile.am (libman_la_SOURCES): Add debug.h.
+ * lib/README: Update file names.
+ * lib/debug.c, lib/encodings.c, lib/sandbox.c, lib/security.c,
+ lib/util.c, libdb/db_btree.c, libdb/db_delete.c, libdb/db_gdbm.c,
+ libdb/db_lookup.c, libdb/db_store.c, libdb/db_ver.c, src/accessdb.c,
+ src/catman.c, src/check_mandirs.c, src/descriptions.c,
+ src/descriptions_store.c, src/filenames.c, src/globbing.c,
+ src/globbing_test.c, src/lexgrog_test.c, src/man-recode.c, src/man.c,
+ src/manconv.c, src/manconv_main.c, src/mandb.c, src/manp.c,
+ src/manpath.c, src/straycats.c, src/ult_src.c, src/whatis.c,
+ src/zsoelim.l, src/zsoelim_main.c: Include debug.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move create_tempdir out of manconfig.h
+
+ * include/manconfig.h (create_tempdir): Move to ...
+ * lib/tempfile.h: ... here (new file).
+ * lib/Makefile.am (libman_la_SOURCES): Add tempfile.h.
+ * lib/tempfile.c, src/man.c: Include tempfile.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move util.c-related declarations out of manconfig.h
+
+ * include/manconfig.h (is_changed, is_directory, escape_shell,
+ remove_directory, trim_spaces, lang_dir, init_locale): Move to ...
+ * lib/util.h: ... here (new file).
+ * lib/Makefile.am (libman_la_SOURCES): Add util.h.
+ * lib/util.c, src/accessdb.c, src/catman.c, src/check_mandirs.c,
+ src/descriptions.c, src/globbing.c, src/globbing_test.c, src/lexgrog.l,
+ src/lexgrog_test.c, src/man-recode.c, src/man.c, src/manconv_main.c,
+ src/mandb.c, src/manp.c, src/manpath.c, src/straycats.c, src/whatis.c,
+ src/zsoelim_main.c: Include util.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move comp_info and comp_file out of manconfig.h
+
+ * include/manconfig.h (comp_info, comp_file): Move to ...
+ * src/compression.h: ... here (new file).
+ * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES,
+ mandb_SOURCES): Add compression.h.
+ * src/compression.c, src/filenames.c, src/man-recode.c, src/man.c,
+ src/straycats.c, src/ult_src.c: Include compression.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move straycats out of manconfig.h
+
+ * include/manconfig.h (straycats): Move to ...
+ * src/straycats.h: ... here (new file).
+ * src/Makefile.am (mandb_SOURCES): Add straycats.h.
+ * src/mandb.c, src/straycats.c: Include straycats.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Use lexgrog type definitions consistently
+
+ * include/manconfig.h (MANPAGE, CATPAGE): Move to ...
+ * src/lexgrog.h (MANPAGE, CATPAGE): ... here.
+ * src/lexgrog.l (find_name, find_name_decompressed): Compare p_lg->type
+ against CATPAGE rather than testing its truth value.
+ * src/lexgrog_test.c (main): Set type to MANPAGE/CATPAGE rather than
+ 0/1.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * po/man-db.pot, po/*.po: Update.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Fix build system following changes to include/*.h
+
+ * Makefile.am (noinst_HEADERS): Add include/comp_src.h and
+ include/manconfig.h.
+ * lib/Makefile.am (libman_la_CPPFLAGS): Replace
+ -I$(top_builddir)/include with -I$(top_srcdir)/include.
+ * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise.
+ * src/Makefile.am (AM_CPPFLAGS): Likewise.
+ * src/tests/Makefile.am (AM_CPPFLAGS): Likewise.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Remove Checker support
+
+ The GNU Checker package was last released in 2005, and its web page
+ (https://www.gnu.org/software/checker/) says that it has been
+ decommissioned in favour of Valgrind.
+
+ * include/manconfig.h (chkr_garbage_detector): Remove.
+ * src/man.c (main): Remove call to chkr_garbage_detector.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (search): Likewise.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Remove obsolete include/README
+
+ * include/README: Remove; it claimed that this directory contains files
+ created by configure, which is no longer true, and it said nothing else
+ useful.
+ * Makefile.am (dist_noinst_DATA): Remove include/README.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Stop generating include/*.h from configure
+
+ This was inconvenient when making changes to those central header files.
+ All `configure`-generated preprocessor symbols are now in `config.h`.
+
+ * configure.ac: Define various PROG_* symbols. Remove AC_SUBST calls
+ for compressors and decompressors.
+ (AC_CONFIG_FILES): Remove include/comp_src.h and include/manconfig.h.
+ * m4/man-arg-override-dir.m4: Define OVERRIDE_DIR symbol.
+ * include/manconfig.h.in: Rename to ...
+ * include/manconfig.h: ... this. Remove PROG_*, OVERRIDE_DIR, and
+ COMPRESS_EXT definitions.
+ * include/comp_src.h.in: Rename to ...
+ * include/comp_src.h: ... this.
+ * README.md: Update references to include/manconfig.h.
+ * .gitignore: Remove include/*.h.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Rename program preprocessor symbols to PROG_*
+
+ This is mainly in order to avoid potential confusion with `PIC` (defined
+ when building position-independent code), but I renamed all these
+ variables for consistency.
+
+ * include/manconfig.h.in (PAGER, CAT, WEB_BROWSER, TR, GREP, TROFF,
+ NROFF, EQN, NEQN, TBL, COL, VGRIND, REFER, GRAP, PIC, COMPRESSOR,
+ GUNZIP, UNCOMPRESS, BUNZIP2, UNLZMA, UNXZ, LZIP, UNZSTD): Rename to ...
+ (PROG_PAGER, PROG_CAT, PROG_BROWSER, PROG_TR, PROG_GREP, PROG_TROFF,
+ PROG_NROFF, PROG_EQN, PROG_NEQN, PROG_TBL, PROG_COL, PROG_VGRIND,
+ PROG_REFER, PROG_GRAP, PROG_PIC, PROG_COMPRESSOR, PROG_GUNZIP,
+ PROG_UNCOMPRESS, PROG_BUNZIP2, PROG_UNLZMA, PROG_UNXZ, PROG_LZIP,
+ PROG_UNZSTD): ... these (respectively). Update all references.
+
+2022-01-16 Colin Watson <cjwatson@debian.org>
+
+ Move lexgrog-related bits out of manconfig.h
+
+ It's generally cleaner for things like this to be in a dedicated header
+ file.
+
+ * include/manconfig.h.in (struct lexgrog, find_name,
+ find_name_decompressed): Move to ...
+ * src/lexgrog.h: ... here (new file). Simplify declarations slightly.
+ * include/manconfig.h.in (lexgrog filter enum): Move to ...
+ * src/lexgrog.l: ... here.
+ * src/Makefile.am (lexgrog_SOURCES, mandb_SOURCES): Add lexgrog.h.
+ * src/check_mandirs.c, src/lexgrog.l, src/lexgrog_test.c,
+ src/straycats.c: Include lexgrog.h.
+
+2022-01-16 Martin <spleefer90@gmail.com>
+
+ man-db.timer: Use RandomizedDelaySec Avoids congesting resources, otherwise this runs daily at 12:00 and 00:00 https://www.freedesktop.org/software/systemd/man/systemd.timer.html
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ Recognize Arabic and Persian translations of NAME
+
+ * src/lexgrog.l (ar_name, fa_name): Add.
+ (name): Add ar_name and fa_name.
+ * NEWS.md: Document this.
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ Note Macedonian support
+
+ * src/lexgrog.l: Note that bg_name also works for mk (Macedonian).
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ Downgrade "malformed .lf request" warning to debug
+
+ Fixes Debian bug #998426.
+
+ * src/zsoelim.l (<lfnumber,lfname>.): Downgrade and rephrase message,
+ since *roff arithmetic expressions are valid here and we can't
+ reasonably parse them.
+ * NEWS.md: Document this.
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ NEWS.md: Fix rendering with some parsers
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ Use MAYBE_UNUSED rather than _GL_UNUSED
+
+ We should be using the public name from Gnulib's `attribute.h`.
+
+ * lib/orderfiles.c (order_files) [!HAVE_LINUX_FIEMAP_H &&
+ !HAVE_POSIX_FADVISE]: Use MAYBE_UNUSED rather than _GL_UNUSED.
+ * lib/sandbox.c (_sandbox_load) [!HAVE_LIBSECCOMP]: Likewise.
+ * lib/security.c (drop_privs): Likewise.
+ * libdb/db_ndbm.c (unsorted_nextkey): Likewise.
+ * src/accessdb.c (help_filter): Likewise.
+ * src/check_mandirs.c (chown_if_possible) [!MAN_OWNER]: Likewise.
+ * src/convert.c (close_conv_to_locale): Likewise.
+ * src/decompress.c (decompress_zlib): Likewise.
+ * src/lexgrog_test.c (help_filter): Likewise.
+ * src/man.c (help_filter, squeeze_blank_lines, disable_hyphenation,
+ disable_justification): Likewise.
+ * src/manconv.c (manconv): Likewise.
+ * src/manp.c (free_config_file): Likewise.
+ * src/tests/fspause.c (main): Likewise.
+ * src/whatis.c (help_filter): Likewise.
+ * src/zsoelim_main.c (parse_opt): Likewise.
+
+2022-01-09 Colin Watson <cjwatson@debian.org>
+
+ lexgrog: Produce output in the user's locale
+
+ Fixes Debian bug #970482.
+
+ * src/whatis.c (simple_convert): Move to ...
+ * src/convert.c: ... here (new file). Rename to convert_to_locale, and
+ automatically handle setup/teardown of the iconv descriptor.
+ * src/convert.h: New file.
+
+ * src/whatis.c (display): Use convert_to_locale instead of
+ simple_convert.
+ (main): Remove setup/teardown of iconv descriptor, now handled
+ automatically by convert_to_locale.
+ * src/lexgrog_test.c (main): Convert name and whatis to the user's
+ locale.
+ * src/Makefile.am (lexgrog_SOURCES, whatis_SOURCES): Add convert.c and
+ convert.h.
+ * NEWS.md: Document this.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Add man-pages(7) reference to man(1)
+
+ Fixes Debian bug #974174.
+
+ * man/man1/man.man1 (DESCRIPTION): Add man-pages(7) reference to
+ description of section 7.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * NEWS.md: Document this.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Document MAN_DISABLE_SECCOMP and PIPELINE_DEBUG
+
+ Fixes Debian bug #941622.
+
+ * man/man1/man.man1 (ENVIRONMENT): Document MAN_DISABLE_SECCOMP and
+ PIPELINE_DEBUG.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * NEWS: Document this.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ NEWS: Document previous commit
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Reduce overhead of MAN_DISABLE_SECCOMP=1
+
+ If MAN_DISABLE_SECCOMP=1 is set (or if seccomp is otherwise
+ unavailable), then there's no need to call seccomp_init and friends,
+ which can have significant overhead even if we never actually load the
+ resulting filter.
+
+ Pointed out by Steinar H. Gunderson in https://bugs.debian.org/1003089.
+
+ * lib/sandbox.c (make_seccomp_filter): Return NULL early if
+ can_load_seccomp returns false.
+ (_sandbox_load): Return early if the relevant context is NULL.
+ (sandbox_free): Only call seccomp_release if the relevant context is
+ non-NULL.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Indicate that merge requests are preferred
+
+ * docs/HACKING.md (Sending patches): Describe merge request workflow and
+ indicate that it is preferred.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Reformat hacking documentation as Markdown
+
+ * docs/HACKING: Move to ...
+ * docs/HACKING.md: ... here. Reformat as Markdown.
+ * docs/Makefile.am (dist_noinst_DATA): Replace HACKING with HACKING.md.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Add release automation
+
+ When a tag is pushed to GitLab, upload the bootstrapped source tarball
+ to the package registry, and create a release in GitLab associated with
+ the tag.
+
+ * .gitlab-ci.yml (stages): Remove test, since it had no jobs. Add
+ upload and release.
+ (build-distcheck:script): Configure with --enable-maintainer-mode, to
+ ensure that flex-generated scanners are fresh.
+ (upload, release): New jobs.
+ * release.sh: Remove. GitLab CI handles building releases now.
+ * Makefile.am (EXTRA_DIST): Remove release.sh.
+ * docs/HACKING: Update for GitLab-based release process.
+
+2022-01-03 Colin Watson <cjwatson@debian.org>
+
+ Reformat release notes as Markdown
+
+ * NEWS: Move to ...
+ * NEWS.md: ... here. Reformat as Markdown.
+ * Makefile.am (dist_noinst_DATA): Remove NEWS; Automake automatically
+ includes this file (or NEWS.md) in the distribution without help.
+ * README.md, docs/HACKING: Refer to NEWS.md instead of NEWS.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Remove superfluous quotes
+
+ * Makefile.am (gen_start_date): Remove superfluous quotes.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Add build-distcheck CI artifact
+
+ This should eventually allow publishing release tarballs built by a CI
+ process rather than on my laptop.
+
+ * .gitlab-ci.yml (variables): Set GIT_DEPTH to 0; we need full history
+ in order to build the ChangeLog file.
+ (bootstrap:before_script): Add wget, needed to fetch Gnulib PO files.
+ (build-distcheck:before_script): Add git, needed by gitlog-to-changelog.
+ (build-distcheck:artifacts): Add bootstrapped/*.tar.xz.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Switch CI image to debian:unstable
+
+ This gives us newer versions of various dependencies such as the
+ autotools.
+
+ * .gitlab-ci.yml (default:image): Switch from gcc to debian:unstable.
+ (pre-commit:before_script, bootstrap:before_script): Explicitly install
+ git.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -fanalyzer in manconv
+
+ * src/manconv_main.c (main): Assert that from_code is non-NULL; this is
+ guaranteed by the argp state machine, but the compiler can't prove that.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Fix crash in globbing if run with no arguments
+
+ * src/globbing_test.c (parse_opt): Emit a usage message if there are no
+ non-option arguments.
+ (main): Assert that remaining_args is non-NULL; this is now guaranteed
+ by the argp state machine, but the compiler can't prove that.
+ * NEWS: Document this.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -fanalyzer in catman
+
+ It isn't actually possible for sections to be NULL after argp parsing
+ has finished, but "gcc -fanalyzer" can't easily determine that, and it's
+ easy enough to arrange for it not to matter.
+
+ * src/catman.c (main): Handle case where sections is NULL.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -fanalyzer in some database functions
+
+ In GCC 11.2.0, -fanalyzer seems to get confused by copies by assignment
+ of "struct datum", and thinks that there are use-after-free or
+ double-free possibilities with multiple loop iterations. These seem to
+ be false positives, so ignore them for now.
+
+ * libdb/db_lookup.c (dblookup_pattern): Ignore false use-after-free
+ diagnostic.
+ * src/accessdb.c (main): Ignore false double-free diagnostics.
+ * src/catman.c (parse_for_sec): Ignore false use-after-free diagnostics.
+ * src/check_mandirs.c (sanity_check_db): Ignore false double-free
+ diagnostics.
+ (purge_pointers, purge_missing): Ignore false use-after-free
+ diagnostics.
+ * src/whatis.c (do_apropos): Ignore false use-after-free and double-free
+ diagnostics.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -fanalyzer in dbdelete
+
+ The refs list can't in fact be empty by this point (because we checked
+ earlier that we could look up this_ref in it), but it's hard for "gcc
+ -fanalyzer" to prove that, so help it understand that multi_content can
+ never end up being NULL.
+
+ * libdb/db_delete.c (dbdelete): Initialize multi_content before looping
+ over refs.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Assert that some xasprintf calls return non-NULL
+
+ "gcc -fanalyzer" notices that xasprintf can return NULL in some
+ situations (string length > INT_MAX, invalid format string, or multibyte
+ conversion error), and that we weren't handling this in various cases
+ where we use the return value in contexts that require non-NULL values.
+ The situations seem obscure enough for simple asserts to be appropriate.
+
+ * lib/pathsearch.c (pathsearch): Assert that xasprintf returns non-NULL.
+ * lib/tempfile.c (create_tempdir): Likewise.
+ * lib/util.c (remove_directory): Likewise.
+ * libdb/db_lookup.c (make_multi_key): Likewise.
+ * libdb/db_store.c (make_content, dbstore): Likewise.
+ * src/check_mandirs.c (add_dir_entries, fix_permissions_tree): Likewise.
+ * src/compression.c (comp_file): Likewise.
+ * src/globbing.c (look_for_file): Likewise.
+ * src/man.c (main): Likewise.
+ * src/mandb.c (mandb, purge_catsubdirs): Likewise.
+ * src/manp.c (pathappend): Likewise.
+ * src/ult_src.c (find_include): Likewise.
+ * src/whatis.c (use_grep): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Fix path searching crash if getcwd fails
+
+ xgetcwd can return NULL if getcwd returns NULL for reasons other than
+ ENOMEM, so we should handle this. Found by "gcc -fanalyzer".
+
+ * lib/pathsearch.c (pathsearch, directory_on_path): Emit a fatal error
+ if xgetcwd returns NULL.
+ * po/POTFILES.in: Add lib/pathsearch.c.
+ * NEWS: Document this.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20211231
+
+ In line with Gnulib, we now require Autoconf 2.64.
+
+ * bootstrap: Sync to Gnulib 14db2b71b5bd05b94ec6126617fd32cd5f1016cd.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 14db2b71b5bd05b94ec6126617fd32cd5f1016cd.
+ (buildreq): Bump required autoconf version to 2.64.
+ * configure.ac (AC_PREREQ): Bump to 2.64.
+ (--enable-gcc-warnings): New option, based on code in coreutils. Use
+ this to enable -fanalyzer only if --enable-gcc-warnings=expensive is
+ used; it's useful but slow.
+ * include/manconfig.h.in (create_tempdir, appendstr): Move NODISCARD to
+ the start of these function declarations, required by draft C2x.
+ * patches/argp-domain.patch: Rebase.
+ * NEWS: Document this.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Fix NULL dereference in get_locale_charset callers
+
+ * lib/encodings.c (get_canonical_charset_name): Declare argument and
+ return value as non-NULL.
+ (get_locale_charset): Declare return value as non-NULL. Fall back to
+ "ANSI_X3.4-1968" if locale_charset returned NULL or the empty string.
+
+2022-01-02 Colin Watson <cjwatson@debian.org>
+
+ Trim down direct Gnulib dependencies a little
+
+ * bootstrap.conf (gnulib_modules): Add c99 (already used indirectly, but
+ seems like a good idea to request directly now). Remove getopt-gnu,
+ lock, and unsetenv, none of which we use directly. Replace fcntl with
+ fcntl-h and signal with signal-h, since we use the corresponding header
+ files directly but not the corresponding functions.
+ * .gitignore: Remove lib/getopt.h.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Fix warnings with Autoconf >= 2.70
+
+ * configure.ac (AC_PROG_LEX): Add noyywrap argument (new in Autoconf
+ 2.70, but ignored in previous versions).
+ * m4/man-bdb.m4 (MAN_CHECK_BDB): Autoconf 2.70 warns about non-literal
+ arguments to AC_CHECK_HEADERS. Refactor loops so that the header and
+ library names are visible to m4.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Add an SC_ALLOW_PERMISSIVE macro
+
+ This plays slightly better with clang-format.
+
+ * lib/sandbox.c (SC_ALLOW_PERMISSIVE): New macro.
+ (make_seccomp_filter): Use SC_ALLOW_PERMISSIVE instead of forms such as
+ "if (permissive) SC_ALLOW (name);".
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Use Gnulib attribute.h properly
+
+ manconfig.h previously used _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM without
+ first including "stdio.h", which caused build failures. We should be
+ using the public names anyway.
+
+ * bootstrap.conf (gnulib_modules): Add attribute.
+
+ * include/manconfig.h.in (create_tempdir, appendstr): Use NODISCARD
+ rather than _GL_ATTRIBUTE_NODISCARD.
+
+ * include/manconfig.h.in (debug, debug_error): Use ATTRIBUTE_FORMAT
+ rather than _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM.
+ * lib/debug.c (vdebug): Likewise.
+
+ * include/manconfig.h.in (appendstr): Use ATTRIBUTE_SENTINEL rather than
+ _GL_ATTRIBUTE_SENTINEL.
+
+ * lib/encodings.c (get_page_encoding): Use ATTRIBUTE_MALLOC rather than
+ _GL_ATTRIBUTE_MALLOC.
+ * lib/util.c (trim_spaces): Likewise.
+
+ * lib/encodings.c (is_roff_device, get_output_encoding,
+ get_less_charset, get_jless_charset): Use ATTRIBUTE_PURE rather than
+ _GL_ATTRIBUTE_PURE.
+ * lib/glcontainers.c (string_equals, string_hash): Likewise.
+ * lib/security.c (running_setuid): Likewise.
+ * src/manp.c (canonicalized_path_equals, canonicalized_path_hash):
+ Likewise.
+ * src/whatis.c (match): Likewise.
+
+ * libdb/db_lookup.c (dash_if_unset): Use ATTRIBUTE_CONST rather than
+ _GL_ATTRIBUTE_CONST.
+ * libdb/db_store.c (compare_ids): Likewise.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Reduce indentation depth using C99
+
+ * src/man.c (parse_opt): Remove an enclosing block and associated
+ indentation level, since C99 allows mixing declarations and code.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Pacify pre-commit
+
+ * lib/mp.h: Remove trailing whitespace.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Simplify interface to container iterator macros
+
+ The Gnulib container iterator macros (GL_LIST_FOREACH_* and
+ GL_MAP_FOREACH_*) have to run code both before and after a chunk of
+ user-supplied code. This previously required a START/END macro pair
+ used something like this:
+
+ GL_LIST_FOREACH_START (names, name) {
+ ...
+ } GL_LIST_FOREACH_END (names);
+
+ This doesn't look natural in C, and so it was easy to get it wrong.
+
+ It's possible to do better, at the cost of some tricky macros.
+ Fortunately, Simon Tatham has already done the hard work in
+ https://www.chiark.greenend.org.uk/~sgtatham/mp/, and the necessary
+ header file is MIT-licensed, so we can incorporate it. Now these
+ iterator macros are used more like this, which is a much more natural C
+ style:
+
+ GL_LIST_FOREACH (names, name) {
+ ...
+ }
+
+ * lib/mp.h: New file.
+ * lib/Makefile.am (libman_la_SOURCES): Add mp.h.
+ * lib/README: Add mp.h. Rephrase introductory text about licensing to
+ account for an MIT-licensed file.
+ * lib/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END):
+ Rewrite as ...
+ (GL_LIST_FOREACH): ... this. Update all callers.
+ (GL_MAP_FOREACH_START, GL_MAP_FOREACH_END): Rewrite as ...
+ (GL_MAP_FOREACH): ... this. Update all callers.
+ * NEWS, README.md, docs/HACKING: Document C99 compiler requirement.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Simplify some GCC attribute handling
+
+ * include/manconfig.h.in (ATTRIBUTE_FORMAT_PRINTF,
+ ATTRIBUTE_WARN_UNUSED_RESULT, ATTRIBUTE_SENTINEL): Remove in favour of
+ Gnulib-provided macros.
+ (create_tempdir, appendstr): Use _GL_ATTRIBUTE_NODISCARD rather than
+ ATTRIBUTE_WARN_UNUSED_RESULT.
+ (debug, debug_error): Use _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM rather than
+ ATTRIBUTE_FORMAT_PRINTF.
+ (appendstr): Use _GL_ATTRIBUTE_SENTINEL rather than ATTRIBUTE_SENTINEL.
+ * lib/debug.c (vdebug): Use _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM rather
+ than ATTRIBUTE_FORMAT_PRINTF.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Introduce pre-commit
+
+ * .pre-commit-config.yaml: New file.
+ * .gitlab-ci.yml (stages): Add bootstrap.
+ (pre-commit): New job.
+ (bootstrap): Move to bootstrap stage.
+
+ Remove trailing whitespace from all files.
+
+2022-01-01 Colin Watson <cjwatson@debian.org>
+
+ Update licence texts
+
+ There are no substantive licensing changes here, only formatting
+ adjustments and referring to the "GNU Lesser General Public License"
+ rather than the "GNU Library General Public License".
+
+ * docs/COPYING: Update from current contents of
+ https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ * docs/COPYING.LIB: Update from current contents of
+ https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt.
+
+2021-12-31 Colin Watson <cjwatson@debian.org>
+
+ Document migration to GitLab
+
+ * README.md: Add link to GitLab repository.
+ (Contacting the maintainer): Add GitLab issues link.
+ * docs/HACKING (Revision control): Update for GitLab.
+ * man/man1/apropos.man1 (BUGS): Add GitLab issues link.
+ * man/man1/lexgrog.man1 (BUGS): Likewise.
+ * man/man1/man-recode.man1 (BUGS): Likewise.
+ * man/man1/man.man1 (BUGS): Likewise.
+ * man/man1/manconv.man1 (BUGS): Likewise.
+ * man/man1/manpath.man1 (BUGS): Likewise.
+ * man/man1/whatis.man1 (BUGS): Likewise.
+ * man/man1/zsoelim.man1 (BUGS): Likewise.
+ * man/man5/manpath.man5 (BUGS): Likewise.
+ * man/man8/accessdb.man8 (BUGS): Likewise.
+ * man/man8/catman.man8 (BUGS): Likewise.
+ * man/man8/mandb.man8 (BUGS): Likewise.
+ * NEWS: Document this.
+
+2021-11-17 Colin Watson <cjwatson@debian.org>
+
+ Reformat README
+
+ * README: Move to ...
+ * README.md: ... here. Reformat as Markdown.
+ * Makefile.am (dist_noinst_DATA): Replace README with README.md.
+ * docs/INSTALL.quick: Likewise.
+
+2021-11-16 Colin Watson <cjwatson@debian.org>
+
+ Add .gitlab-ci.yml
+
+2021-09-19 Colin Watson <cjwatson@debian.org>
+
+ Update some obsolete Autoconf macros
+
+ * configure.ac: Replace AC_GNU_SOURCE and AC_ISC_POSIX with
+ AC_USE_SYSTEM_EXTENSIONS. Replace AC_CONFIG_HEADER with
+ AC_CONFIG_HEADERS. Remove an obsolete comment.
+
+2021-09-19 Colin Watson <cjwatson@debian.org>
+
+ Stop using obsolete AC_TRY_LINK
+
+ This has been obsolete since Autoconf 2.55. Use its AC_LINK_IFELSE
+ expansion instead.
+
+ * m4/man-bdb.m4 (MAN_CHECK_BDB): Expand AC_TRY_LINK call using
+ AC_LINK_IFELSE.
+
+2021-09-18 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2021-09-18 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2021-07-11 Colin Watson <cjwatson@debian.org>
+
+ Fix mishandling of suffix matches in manpath
+
+ Fixes Savannah bug #60906.
+
+ * src/manp.c (pathappend): strstr might return matches that are not at
+ the start of a manpath element, resulting in incorrect truncation. Skip
+ any such matches.
+
+2021-02-08 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.4
+
+2021-02-08 Colin Watson <cjwatson@debian.org>
+
+ Fix distribution of Romanian manual page translation
+
+ Accidentally omitted from 1c7b46aecbed76c9833e0a5c833fc2ffd1a7a85a.
+
+ * man/Makefile.am (DIST_SUBDIRS): Add ro.
+
+2021-02-08 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Update Serbian manual page translation
+
+ * man/po4a/po/sr.po: Update from Translation Project.
+
+2020-12-11 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2020-09-13 Colin Watson <cjwatson@debian.org>
+
+ Handle \[en] escapes in NAME section
+
+ Fixes Debian bug #970122.
+
+ * src/lexgrog.l (MAN_NAME): Treat "\[en]" (and similar) as another
+ synonym for "\-", and thus as a separator. (This spelling is
+ groff-specific; the older "\(en" spelling was already accepted.)
+ * NEWS: Document this.
+
+2020-08-22 Colin Watson <cjwatson@debian.org>
+
+ Fix gcc -Wzero-length-bounds warning
+
+ * lib/orderfiles.c (order_files): Avoid accessing an element of a
+ zero-length array.
+
+2020-08-22 S. Gilles <sgilles@umd.edu>
+
+ Allow clock_gettime64; return ENOSYS so libcs can engage fallbacks
+
+ libcs such as musl expect ENOSYS to be returned (not EPERM) in their
+ fallback code, so change the seccomp filter to be more agreeable to
+ them.
+
+ At the same time, clock_gettime is permitted in the filter, so permit
+ clock_gettime64 as well -- it will be needed by 2038 in any case.
+
+ * lib/sandbox.c (make_seccomp_filter): Set default action to
+ SCMP_ACT_ERRNO (ENOSYS). Allow clock_gettime64.
+ * NEWS: Document this.
+
+2020-07-04 Colin Watson <cjwatson@debian.org>
+
+ Add Romanian manual page translation
+
+ * man/po4a/po/ro.po: New from Translation Project (thanks, Florentina
+ Mușat).
+ * configure.ac (AC_CONFIG_FILES): Add man/ro/Makefile.
+ * man/LINGUAS.po4a: Add ro.
+ * man/Makefile.am (DIST_SUBDIRS): Add ro.
+ * man/ro/Makefile.am, man/ro/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/ro.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add ro.
+ * man/THANKS: Update translator credit.
+ * .gitignore: Add man/ro/man1, man/ro/man5, and man/ro/man8.
+
+2020-07-04 Colin Watson <cjwatson@debian.org>
+
+ Remove "Type" column from DB table in mandb(8)
+
+ The database types table in mandb(8) has always been a bit
+ dubiously-placed; it's really more about how man-db is configured, and
+ as such makes more sense in manual/db.me (which indeed has an extended
+ version of the same table). It causes particular problems in translated
+ versions of this page, where it's very easy for it to become too wide
+ and cause "make check" failures.
+
+ A proper fix for this would probably require updating existing
+ translations, but an easy improvement is to remove the "Type" column: it
+ has negligible relevance here, and removing it makes it much easier for
+ translated versions to stay within page width limits.
+
+ * man/man8/mandb.man8 (DATABASE CACHES): Remove "Type" column from
+ table.
+
+2020-07-02 Colin Watson <cjwatson@debian.org>
+
+ Recognise Romanian translations of NAME
+
+ * src/lexgrog.l (ro_name): Add.
+ (name): Add ro_name.
+ * NEWS: Document this.
+
+2020-06-24 Florentina Mușat <florentina.musat.28@gmail.com>
+
+ Update Romanian translation
+
+ * po/ro.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2020-06-22 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.3
+
+2020-06-22 Colin Watson <cjwatson@debian.org>
+
+ Avoid po4a confusion with \c
+
+ po4a >= 0.58 (I think) changes its handling of \c slightly, resulting in
+ incorrect output for the admittedly awkward uses of \c in man(1).
+ Rearrange markup to avoid this.
+
+ * man/man1/man.man1 (OVERVIEW): Recast description of the syntax of
+ locale environment variables using \f[BIR] rather than .B/.RI and \c.
+ (Controlling formatted output): Coalesce markup for the default prompt
+ into a single .BI macro, avoiding the need for \c. Unfuzzy most
+ translations.
+ * NEWS: Document this.
+
+2020-06-22 Colin Watson <cjwatson@debian.org>
+
+ Fix po4a version comparison
+
+ po4a's versions don't quite conform to Perl's standard versioning
+ arrangements, producing very confusing results when trying to compare
+ two-component and three-component versions (because "0.47" is equivalent
+ to "v0.470.0"). Perhaps we should use some other version comparison
+ system instead, but in the meantime patch things up so that what we
+ currently use behaves more sensibly.
+
+ * man/po4a/Locale/Po4a/Manext.pm (_parse_version): New subroutine.
+ (shiftline, pushline, translate): Use _parse_version, and always use a
+ leading "v" on the right-hand side.
+
+2020-06-01 Colin Watson <cjwatson@debian.org>
+
+ Clarify description of zstd in configure
+
+ Suggested by crabbed halo ablution in Savannah bug #57558.
+
+ * configure.ac: Describe zstd as "LZ77/entropy-coding compression
+ utility".
+
+2020-06-01 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.2
+
+2020-06-01 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20200531
+
+ * bootstrap: Sync to Gnulib d4429157c13b49d1749f5ea18fb30e24ffa646aa.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ d4429157c13b49d1749f5ea18fb30e24ffa646aa.
+
+2020-06-01 Bernhard Rosenkränzer <bero@lindev.ch>
+
+ Add support for zstd-compressed manual pages
+
+ * configure.ac: Check for zstd.
+ * include/comp_src.h.in (comp_list): Add zstd.
+ * include/manconfig.h.in: Define UNZSTD.
+ * NEWS: Document this.
+
+2020-05-31 Colin Watson <cjwatson@debian.org>
+
+ Fix configure logic for enabling COMP_CAT
+
+ Only enable COMP_CAT if a compressor is defined. (We don't have all
+ possible decompression utilities set up to be compressors too.)
+
+ * configure.ac: Only enable COMP_CAT if $compressor is non-empty.
+
+2020-05-31 Colin Watson <cjwatson@debian.org>
+
+ Make gxditview work with seccomp sandbox
+
+ "man -X" and friends used to work by running groff with -X, causing it
+ to run gxditview itself. This didn't work with the seccomp sandbox: the
+ sorts of system calls that a text processor needs to make are not very
+ much related to the sorts of system calls that an X client needs to
+ make.
+
+ Instead, run groff with -X -Z to pass the appropriate options to troff
+ but stop it from running gxditview, and then run gxditview ourselves
+ without sandboxing. This also lets us set a better window title.
+
+ * src/man.c (make_roff_command): In gxditview mode, run groff with -Z as
+ well as -X.
+ (make_display_command): In gxditview mode, add an appropriate gxditview
+ process.
+ (display): In gxditview mode, call the ordinary "display formatted page"
+ logic, without saving a cat page.
+
+2020-05-31 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Move misplaced entry to "Fixes".
+
+2020-05-31 Colin Watson <cjwatson@debian.org>
+
+ Fix document font size for -X75-12 and -X100-12
+
+ Reported by Konrad Schwarz.
+
+ * src/man.c (make_roff_command): Add the "-rS12" argument if the
+ argument to -X contains "-12".
+ * NEWS: Document this.
+
+2020-05-17 Stéphane Aulery <lkppo@free.fr>
+
+ Update French manual page translation
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2020-04-12 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ Fixes Debian bug #955320.
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2020-04-12 Colin Watson <cjwatson@debian.org>
+
+ NEWS: Remove superfluous ")"
+
+2020-04-03 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+2020-04-02 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Update Serbian translation
+
+ * po/sr.po: Update from Translation Project.
+
+2020-03-29 Colin Watson <cjwatson@debian.org>
+
+ Add bug tracker link to manual pages
+
+ Fixes Savannah bug #58039.
+
+ * man/man1/apropos.man1 (BUGS), man/man1/lexgrog.man1 (BUGS),
+ man/man1/man-recode.man1 (BUGS), man/man1/man.man1 (BUGS),
+ man/man1/manconv.man1 (BUGS), man/man1/manpath.man1 (BUGS),
+ man/man1/whatis.man1 (BUGS), man/man1/zsoelim.man1 (BUGS),
+ man/man8/accessdb.man8 (BUGS), man/man8/catman.man8 (BUGS),
+ man/man8/mandb.man8 (BUGS): New section, containing a link to the bug
+ tracker.
+ * man/man5/manpath.man5 (BUGS): Add a link to the bug tracker.
+ * NEWS: Document this.
+
+2020-03-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ man/man8/*: Fix misuse of two-fonts macros
+
+ Correct the misuse of a two-fonts macro, which function is to
+
+ 1) use the first font for each odd numbered argument and the second
+ font for all others.
+
+ 2) join (output) the arguments without an intervening space.
+
+ Fixes Debian bug #955187.
+
+ * man/man8/accessdb.man8 (OPTIONS): Use a one-font macro when there is
+ only a single argument.
+ * man/man8/catman.man8 (OPTIONS): Likewise.
+ * man/man8/mandb.man8 (OPTIONS): Likewise.
+
+2020-03-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ man/man1/*: Fix misuse of two-fonts macros
+
+ Correct the misuse of a two-fonts macro, which function is to
+
+ 1) use the first font for each odd numbered argument and the second
+ font for all others.
+
+ 2) join (output) the arguments without an intervening space.
+
+ Fixes Debian bug #955185.
+
+ * man/man1/lexgrog.man1 (OPTIONS): Use a one-font macro when there is
+ only a single argument.
+ * man/man1/man-recode.man1 (OPTIONS): Likewise.
+ * man/man1/man.man1 (DESCRIPTION): Likewise.
+ * man/man1/whatis.man1 (OPTIONS): Likewise.
+ * man/man1/zsoelim.man1 (DESCRIPTION): Likewise.
+
+2020-02-25 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.1
+
+2020-02-25 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20200224
+
+ * bootstrap: Sync to Gnulib d279bc6d9f9323e19ad8c32b6d12ff96dfb0f5ba.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ d279bc6d9f9323e19ad8c32b6d12ff96dfb0f5ba.
+ (gnulib_modules): Add havelib, needed for AM_GNU_GETTEXT in
+ configure.ac.
+
+2020-01-27 Colin Watson <cjwatson@debian.org>
+
+ Add cat path configuration for /snap/man
+
+ Add MANDB_MAP entry mapping the prospective /snap/man directory to
+ /var/cache/man/snap, as discussed with the snapd team.
+
+ * src/man_db.conf.in: Add "MANDB_MAP /snap/man /var/cache/man/snap".
+ * NEWS: Document this.
+
+2019-12-26 Felipe Castro <fefcas@gmail.com>
+
+ Update Esperanto translation
+
+ * po/eo.po: Update from Translation Project.
+
+2019-12-26 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish manual page translation
+
+ * man/po4a/po/sv.po: Update from Translation Project.
+
+2019-12-26 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish translation
+
+ * po/sv.po: Update from Translation Project.
+
+2019-11-23 Colin Watson <cjwatson@debian.org>
+
+ Drop fdutimens patch for GNU/Hurd
+
+ The bug (https://bugs.debian.org/762677) that this was working around
+ was fixed in glibc 2.28, or Debian glibc 2.27-2.
+
+ * patches/fdutimens-hurd.patch: Remove.
+ * bootstrap.conf (bootstrap_post_import_hook): Stop applying
+ patches/fdutimens-hurd.patch.
+ * Makefile.am (EXTRA_DIST): Remove patches/fdutimens-hurd.patch.
+ * NEWS: Document this.
+
+2019-10-23 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.0
+
+2019-10-23 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2019-10-18 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2019-10-10 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2019-10-10 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2019-10-07 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+
+2019-10-05 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2019-10-05 Yuri Kozlov <yuray@komyakino.ru>
+
+ Update Russian manual page translation
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+2019-10-05 Pedro Albuquerque <palbuquerque73@gmail.com>
+
+ Update Portuguese manual page translation
+
+ * man/po4a/po/pt.po: Update from Translation Project.
+
+2019-10-05 Pedro Albuquerque <palbuquerque73@gmail.com>
+
+ Update Portuguese translation
+
+ * po/pt.po: Update from Translation Project.
+
+2019-10-05 Rafael Fontenelle <rafaelff@gnome.org>
+
+ Update Brazilian Portuguese manual page translation
+
+ * man/po4a/po/pt_BR.po: Update from Translation Project.
+
+2019-10-03 Colin Watson <cjwatson@debian.org>
+
+ Fix language/territory candidate comparison logic
+
+ When I extracted the COMPARE_LOCALE_ELEMENTS macro, I apparently left in
+ an explicit reference to territory that should have been the "elt"
+ parameter. As a result, some cases of language and territory comparison
+ went wrong, in particular resulting in pt_BR users seeing pt pages ahead
+ of pt_BR pages.
+
+ Reported by Rafael Fontenelle.
+
+ * src/man.c (compare_candidates): Fix incorrect territory-specific
+ comparison in COMPARE_LOCALE_ELEMENTS.
+ * NEWS: Document this.
+
+2019-10-03 Stéphane Aulery <lkppo@free.fr>
+
+ Update French translation
+
+ * po/fr.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2019-10-03 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German translation
+
+ * po/de.po: Update from Translation Project.
+
+2019-10-03 Yuri Kozlov <yuray@komyakino.ru>
+
+ Update Russian translation
+
+ * po/ru.po: Update from Translation Project.
+
+2019-10-03 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese translation
+
+ * po/zh_CN.po: Update from Translation Project.
+
+2019-10-03 Antonio Ceballos Roa <aceballos@gmail.com>
+
+ Update Spanish translation
+
+ * po/es.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2019-10-03 pan93412 <pan93412@gmail.com>
+
+ Update Traditional Chinese translation
+
+ * po/zh_TW.po: Update from Translation Project.
+
+2019-10-03 Rafael Fontenelle <rafaelff@gnome.org>
+
+ Update Brazilian Portuguese translation
+
+ * po/pt_BR.po: Update from Translation Project.
+
+2019-10-01 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.9.0-pre1
+
+2019-09-30 Colin Watson <cjwatson@debian.org>
+
+ Add a new man-recode program
+
+ This has an interface designed for bulk conversion, and so can be much
+ faster than running "man --recode" on each page.
+
+ Fixes Debian bug #933576.
+
+ * bootstrap.conf (gnulib_modules): Add renameat, tempname, and unlinkat.
+ * src/man-recode.c: New file.
+ * src/Makefile.am (bin_PROGRAMS): Add man-recode.
+ (man_recode_LDADD, man_recode_SOURCES): Add.
+ * src/tests/man-recode-in-place, src/tests/man-recode-suffix: New files.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-recode-in-place and
+ man-recode-suffix.
+ * .gitignore: Add src/man-recode.
+ * po/POTFILES.in: Add src/man-recode.c.
+
+ * m4/man-trans-subst.m4 (MAN_TRANS_SUBST): Adjust to support program
+ names containing dashes.
+ * configure.ac: Add substitutions for man-recode.
+
+ * man/man1/man-recode.man1: New file.
+ * man/man1/man.man1 (Main modes of operation): Add a note to the
+ description of --recode suggesting man-recode instead.
+ * man/man1/manconv.man1 (SEE ALSO): Add reference to man-recode(1).
+ * man/Makefile.am (man1_MANS): Add man1/man-recode.1.
+ * man/da/Makefile.am (man1_MANS): Likewise.
+ * man/de/Makefile.am (man1_MANS): Likewise.
+ * man/es/Makefile.am (man1_MANS): Likewise.
+ * man/fr/Makefile.am (man1_MANS): Likewise.
+ * man/id/Makefile.am (man1_MANS): Likewise.
+ * man/ja/Makefile.am (man1_MANS): Likewise.
+ * man/nl/Makefile.am (man1_MANS): Likewise.
+ * man/pl/Makefile.am (man1_MANS): Likewise.
+ * man/pt/Makefile.am (man1_MANS): Likewise.
+ * man/pt_BR/Makefile.am (man1_MANS): Likewise.
+ * man/ru/Makefile.am (man1_MANS): Likewise.
+ * man/sr/Makefile.am (man1_MANS): Likewise.
+ * man/sv/Makefile.am (man1_MANS): Likewise.
+ * man/tr/Makefile.am (man1_MANS): Likewise.
+ * man/zh_CN/Makefile.am (man1_MANS): Likewise.
+ * man/po4a/po4a.cfg: Add support for man-recode.
+ * man/replace.sin.in: Substitute %man_recode% and %thman_recode%.
+
+ * NEWS: Document this.
+
+2019-09-30 Colin Watson <cjwatson@debian.org>
+
+ manconv: Guess input encoding if necessary
+
+ * src/manconv_main.c (args_doc): Mark -f option as optional.
+ (parse_opt): Don't fail if no input encoding was specified.
+ (main): If no input encoding was specified, guess it from the file name
+ in the same way that man does.
+ * man/man1/manconv.man1 (SYNOPSIS): Mark -f option as optional.
+ (OPTIONS): Describe new default behaviour for -f.
+ * configure.ac: Disable -Winline; we don't care about gl_list_add_last
+ not always being inlined.
+ * NEWS: Document this.
+
+2019-09-30 Colin Watson <cjwatson@debian.org>
+
+ lexgrog, zsoelim: Suppress more compiler warnings
+
+ -Wsuggest-attribute=malloc was added in GCC 8, so don't try to ignore it
+ with earlier versions.
+
+ * src/lexgrog.l: Guard '#pragma GCC diagnostic ignored
+ "-Wsuggest-attribute=malloc"' so that it is only invoked with GCC >= 8.
+ * src/zsoelim.l: Likewise.
+
+2019-09-11 Colin Watson <cjwatson@debian.org>
+
+ apropos(1), whatis(1): Fix typo
+
+ Already fixed in man(1) by commit
+ 68ef9f324832c790a7e3565f726fa1bc9a6d0178.
+
+ * man/man1/apropos.man1 (ENVIRONMENT): an -> and.
+ * man/man1/whatis.man1 (ENVIRONMENT): Likewise.
+
+2019-09-09 Colin Watson <cjwatson@debian.org>
+
+ man: Accept "page(section)" form on command line
+
+ Suggested by Tanguy Ortolo and Paul Wise. Fixes Debian bug #677350.
+
+ * src/man.c (split_page_name): Accept "page(section)" form as well as
+ "page.section".
+ * src/tests/man-suffixed-extension: Test the "page(section)" form.
+ * man/man1/man.man1 (SYNOPSIS): Don't mention the "page.section" form
+ here; it gets too unwieldy to try to express all the possibilities in a
+ synopsis.
+ (EXAMPLES): Document "page(section)" form.
+ (OPTIONS): Hyphenate "Non-argument options" thus.
+ * NEWS: Document this.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Make some debugging output less verbose
+
+ Also indent some sections of debugging output, which allows removing
+ some blank lines.
+
+ Fixes Debian bug #863920.
+
+ * src/catman.c (main): Remove unnecessary debugging output of manp
+ before calling create_pathlist.
+ * src/manp.c (main): Likewise.
+ * src/mandb.c (main): Likewise.
+
+ * src/man.c (main): Remove debugging output of ruid and euid, which was
+ redundant with init_security. Remove extra newline before "using %s as
+ pager".
+ * src/manp.c (describe_flag, print_list): Remove: everything that adds
+ items to this list already emits a more human-friendly debugging
+ message. Remove caller of print_list.
+ (add_sections): Squash debugging output onto one line, and indent it by
+ two spaces.
+ (add_def, add_manpath_map, add_mandb_map, add_mandatory): Indent
+ debugging output by two spaces.
+ (read_config_file): Remove extra newline after "From the config file
+ %s:".
+ (get_manpath_from_path): Remove extra newlines before "path directory
+ %s" and "adding mandatory man directories".
+ (add_expanded_dir_to_list): Remove noisy "%s is already in the manpath"
+ debugging output. Indent "adding %s to manpath" by two spaces.
+ (add_man_subdirs): Remove noisy "and doesn't have ../man, man,
+ ../share/man, or share/man subdirectories" debugging output.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Refactor deduplication in create_pathlist
+
+ This is more efficient, and also has the useful side-effect of reducing
+ noise in debug output.
+
+ * src/manp.c (struct canonicalized_path): New structure.
+ (canonicalized_path_new, canonicalized_path_equals,
+ canonicalized_path_hash, canonicalized_path_free): New functions.
+ (add_dir_to_path_list): Canonicalize the given path and (if it exists)
+ add both the original and canonicalized versions as a pair.
+ (create_pathlist): Simplify: rather than doing a second quadratic-time
+ pass to eliminate duplicates, we now avoid inserting them in linear time
+ as we go along.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ man(1): Explain interactions between -w/-W and -a
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #803712.
+
+ * man/man1/man.man1 (Main modes of operation): Explain that the -w and
+ -W options only print a single match by default, but that -a can be used
+ to print all matches.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Suggest "man man" if run with no arguments
+
+ Fixes Debian bug #869798.
+
+ * src/man.c (gripe_no_name): Suggest running "man man".
+ * NEWS: Document this.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document recent manual page improvements.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Mention where other manual pages come from
+
+ * man/man1/man.man1 (OVERVIEW): Explain that individual manual pages
+ normally come with whatever they document.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Revamp man(1) to be a more accessible introduction
+
+ Fixes Savannah bug #53050.
+
+ * man/man1/man.man1 (SYNOPSIS): Delete details of most options, as it
+ had got much too long and indigestible. The OPTIONS section below
+ remains, and is better-organised and easier to read. Delete the "man
+ -c" form entirely, as it's only for internal use by catman.
+ (DESCRIPTION): Move list of default sections to ...
+ (DEFAULTS): ... here.
+ (EXAMPLES): Use a real example rather than the peculiar "alias"
+ terminology for "man -t".
+ (OVERVIEW): Various minor editorial improvements. Remove discussion of
+ index database caches: it's mostly irrelevant to users, and is already
+ better-documented in mandb(8), apropos(1), and whatis(1). Simplify
+ discussion of where pages are stored. Briefly describe what cat pages
+ are. Rewrite description of localisation support to read more fluently
+ and to take into account that most users will already have a suitable
+ locale set up. Drop discussion of translations of this package's own
+ messages: this should be standard rather than something that we
+ explicitly need to call out here, and the term "message catalogues" was
+ opaque.
+ (DEFAULTS): Remove discussion of index database caches, as above.
+ Remove discussion of cat pages, since this is an implementation detail
+ and confused matters here too much.
+ (Finding manual pages): Tighten up language in description of
+ --sections. Simplify description of --update, and tell readers that it
+ is normally better to run mandb(8) instead.
+ (FILES): Remove mention of index database caches from here. While
+ man(1) does use them, they're an implementation detail and are
+ better-documented elsewhere.
+ (SEE ALSO): Remove overly-detailed cross-references to setlocale(3),
+ ascii(7), latin1(7), the man-db manual, and the FSSTND. Add a paragraph
+ mentioning documentation in other formats, such as info(1) or HTML.
+ * man/man5/manpath.man5 (FORMAT): Remove stray quote before the FSSTND
+ keyword.
+ * man/man8/mandb.man8 (DESCRIPTION): Remove claim that index database
+ caches are usually maintained by man(1).
+
+ * man/man1/man.man1, man/man1/manpath.man1: Use the "..." style of
+ quoting rather than the `...' style.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Improve documentation of MANROFFOPT
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #914938.
+
+ * man/man1/man.man1 (ENVIRONMENT): Rephrase description of MANROFFOPT to
+ make it clear that it is added to the formatter's command line, rather
+ than to man's command line.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Remove confusing use of "on-line"
+
+ Nowadays "on-line" tends to be understood as "on the internet" rather
+ than "on a screen", so avoid the term.
+
+ Reported by Dan Jacobson. Fixes Debian bug #774402.
+
+ * docs/man-db.lsm: Say "system help files" rather than "on-line help
+ files".
+ * man/man1/man.man1 (NAME): Say "system reference manuals" rather than
+ "on-line reference manuals".
+ * manual/intro.me (Introduction): Say "information" rather than "online
+ information".
+ * manual/man_db.me: Say "manual page system" rather than "online manual
+ page system".
+
+ * man/man1/lexgrog.man1 (EXAMPLES): Update examples quoting man(1)'s
+ description.
+ * manual/db.me (Example database): Likewise.
+ * manual/intro.me (Introduction): Likewise.
+ * src/tests/man-mandatory-manpath: Update test quoting man(1)'s
+ description.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Tidy up formatting of Wilf's name
+
+ Based on similar changes elsewhere by Bjarni Ingi Gislason.
+
+ * man/man1/lexgrog.man1 (AUTHOR): Protect "." with "\&" if it is
+ followed by a space and does not mean the end of a sentence.
+ * man/man1/manpath.man1 (AUTHOR): Likewise.
+ * man/man1/whatis.man1 (AUTHOR): Likewise.
+ * man/man1/zsoelim.man1 (AUTHOR): Likewise.
+ * man/man8/accessdb.man8 (AUTHOR): Likewise.
+ * man/man8/catman.man8 (AUTHOR): Likewise.
+ * man/man8/mandb.man8 (AUTHOR): Likewise.
+
+2019-09-08 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ manpath(1): Correct some typographic mistakes
+
+ Fixes Debian bug #927452.
+
+ * man/man1/manpath.man1 (DESCRIPTION): Use \(en for a dash where
+ appropriate.
+ (OPTIONS): Change .BR to .B if there is only one argument.
+
+2019-09-08 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ apropos(1): Minor typographic changes
+
+ Fixes Debian bug #892421.
+
+ * man/man1/apropos.man1 (DESCRIPTION): Use "\e" to print the escape
+ character instead of "\\" (which is interpreted in copy mode).
+ (OPTIONS): Change .BR to .B if there is only one argument.
+ (FILES): Add a space around "|" to increase readability.
+ (AUTHOR): Protect "." with "\&" if it is followed by a space and does
+ not mean the end of a sentence.
+
+2019-09-08 Colin Watson <cjwatson@debian.org>
+
+ Apply italic corrections
+
+ Partly based on suggestions from Bjarni Ingi Gislason in Debian
+ bug #892421, although I had to take a slightly different approach to
+ avoid confusing po4a.
+
+ * man/man1/apropos.man1 (OPTIONS): Apply italic corrections to
+ descriptions of --sections and --systems. Simplify three-font handling
+ for --systems.
+ * man/man1/man.man1 (Finding manual pages): Likewise.
+ * man/man1/whatis.man1 (OPTIONS): Likewise.
+ * man/man1/manpath.man1 (OPTIONS): Apply italic corrections to
+ description of --systems, and simplify three-font handling.
+
+2019-09-07 Colin Watson <cjwatson@debian.org>
+
+ man(1): Adjust description of section 5
+
+ * man/man1/man.man1 (DESCRIPTION): Add a comma before "e.g.".
+
+2019-09-07 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ man(1): Minor typographic changes
+
+ Fixes Debian bug #892230.
+
+ * man/man1/man.man1 (DESCRIPTION, HISTORY): Protect "." with "\&" if it
+ is followed by a space and does not mean the end of a sentence.
+ (EXAMPLES): Use a macro to change to the italic font instead of \fI if
+ possible. The macros have the italic corrections.
+ (EXAMPLES, Controlling formatted output, Getting help, SEE ALSO): Change
+ .BR/.IR to .B/.I if there is only one argument, or else separate the
+ second argument from the first if needed.
+ (DEFAULTS): Begin each sentence on a new line.
+ (FILES): Add a space around "|" to increase readability.
+
+2019-09-07 Colin Watson <cjwatson@debian.org>
+
+ Make long lines in man(1) less likely
+
+ Fixes part of Debian bug #892230.
+
+ * man/man1/man.man1 (DESCRIPTION, ENVIRONMENT): Put the expansion of
+ %sections% on its own line.
+
+2019-09-07 Colin Watson <cjwatson@debian.org>
+
+ Escape %troff% expansion correctly in manual pages
+
+ Fixes part of Debian bug #892230.
+
+ * configure.ac: Substitute troff_as_troff_input, which is the same as
+ troff but with suitable escaping so that "groff -mandoc" turns into
+ "groff \-mandoc".
+ * man/replace.sin.in (%troff%): Substitute @troff_as_troff_input@ rather
+ than @troff@.
+
+2019-09-07 Colin Watson <cjwatson@debian.org>
+
+ Remove trailing whitespace from manual pages
+
+ * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1,
+ man/man1/manpath.man1, man/man1/whatis.man1, man/man1/zsoelim.man1,
+ man/man5/manpath.man5, man/man8/accessdb.man8, man/man8/catman.man8,
+ man/man8/mandb.man8: Remove trailing whitespace.
+
+2019-09-07 Sebastian Rasmussen <sebras@gmail.com>
+
+ Fix trivial typo in man manpage
+
+ Fixes Savannah bug #48663.
+
+ * man/man1/man.man1: an -> and.
+
+2019-09-07 Colin Watson <cjwatson@debian.org>
+
+ Remove stray words from man(1)
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #939599.
+
+ * man/man1/man.man1 (DEFAULTS): Remove two stray words from the
+ description of how the pager is specified.
+
+2019-09-05 Colin Watson <cjwatson@debian.org>
+
+ Adjust encoding declarations when recoding
+
+ * lib/encodings.c (check_preprocessor_encoding): Return a modified
+ encoding declaration in *modified_line if the new to_encoding and
+ modified_line parameters are non-NULL.
+ * lib/encodings.h (check_preprocessor_encoding): Update prototype.
+ * src/man.c (make_roff_command): Pass NULL as to_encoding and
+ modified_line arguments to check_preprocessor_encoding.
+ * src/manconv.c (manconv): Output a modified encoding declaration if
+ necessary.
+ * src/tests/manconv-coding-tags: Adjust for new expected output. Add a
+ test for the case where the coding tag matches the target encoding.
+ * src/tests/manconv-odd-combinations: Adjust for new expected output.
+ * NEWS: Document this.
+
+2019-09-05 Colin Watson <cjwatson@debian.org>
+
+ Give test cases more meaningful names
+
+ * src/tests/lexgrog-1: Rename to ...
+ * src/tests/lexgrog-basic: ... this.
+ * src/tests/lexgrog-2: Rename to ...
+ * src/tests/lexgrog-multiple-whatis: ... this.
+ * src/tests/lexgrog-3: Rename to ...
+ * src/tests/lexgrog-backslash-dash-rhs: ... this.
+ * src/tests/man-1: Rename to ...
+ * src/tests/man-symlinks-with-matching-names: ... this.
+ * src/tests/man-10: Rename to ...
+ * src/tests/man-deleted-directory: ... this.
+ * src/tests/man-11: Rename to ...
+ * src/tests/man-suffixed-extension: ... this.
+ * src/tests/man-2: Rename to ...
+ * src/tests/man-executable-page-on-path: ... this.
+ * src/tests/man-3: Rename to ...
+ * src/tests/man-exact-section-matches: ... this.
+ * src/tests/man-4: Rename to ...
+ * src/tests/man-mandatory-manpath: ... this.
+ * src/tests/man-5: Rename to ...
+ * src/tests/man-so-links-same-section: ... this.
+ * src/tests/man-6: Rename to ...
+ * src/tests/man-missing-locales: ... this.
+ * src/tests/man-7: Rename to ...
+ * src/tests/man-invalid-db-entry: ... this.
+ * src/tests/man-8: Rename to ...
+ * src/tests/man-language-specific-requests: ... this.
+ * src/tests/man-9: Rename to ...
+ * src/tests/man-override-dir: ... this.
+ * src/tests/manconv-1: Rename to ...
+ * src/tests/manconv-coding-tags: ... this.
+ * src/tests/manconv-2: Rename to ...
+ * src/tests/manconv-odd-combinations: ... this.
+ * src/tests/manconv-3: Rename to ...
+ * src/tests/manconv-incomplete-char-at-eof: ... this.
+ * src/tests/mandb-1: Rename to ...
+ * src/tests/mandb-basic: ... this.
+ * src/tests/mandb-2: Rename to ...
+ * src/tests/mandb-regular-file-symlink-changes: ... this.
+ * src/tests/mandb-3: Rename to ...
+ * src/tests/mandb-whatis-broken-link-changes: ... this.
+ * src/tests/mandb-4: Rename to ...
+ * src/tests/mandb-symlink-beats-whatis-ref: ... this.
+ * src/tests/mandb-5: Rename to ...
+ * src/tests/mandb-empty-page: ... this.
+ * src/tests/mandb-6: Rename to ...
+ * src/tests/mandb-bogus-symlink: ... this.
+ * src/tests/mandb-7: Rename to ...
+ * src/tests/mandb-cachedir-tag: ... this.
+ * src/tests/whatis-1: Rename to ...
+ * src/tests/whatis-path-to-executable: ... this.
+ * src/tests/zsoelim-1: Rename to ...
+ * src/tests/zsoelim-so-includes: ... this.
+ * src/tests/Makefile.am (ALL_TESTS): Update.
+
+2019-09-01 Colin Watson <cjwatson@debian.org>
+
+ Remove unnecessary PP_COOKIE conditionals
+
+ PP_COOKIE is always defined, so there's no need for #ifdefs.
+
+ * lib/encodings.c (check_preprocessor_encoding): Remove PP_COOKIE
+ conditional.
+ * src/man.c (get_preprocessors_from_file): Likewise.
+ * src/zsoelim.l (zsoelim_parse_file): Likewise.
+
+2019-08-31 Colin Watson <cjwatson@debian.org>
+
+ Remove ability to undefine COMP_SRC
+
+ This was a minor optimisation that wasn't worth the extra code
+ complexity.
+
+ * configure.ac (COMP_SRC): Remove.
+ * include/comp_src.h.in: Remove COMP_SRC conditional. comp_list will
+ simply contain only the terminal entry if no compressors are configured.
+ * include/manconfig.h.in: Remove COMP_SRC conditional and comment.
+ * manual/comp.me (Compressed manual pages): Remove documentation of
+ COMP_SRC; explain that support depends on the decompressors available at
+ configure time.
+ * src/compression.c: Remove COMP_SRC conditional.
+ (comp_info): Only do the HP-UX check if gunzip is available.
+ * src/filenames.c (make_filename): Remove parenthetical comment about
+ COMP_SRC.
+ (filename_info): Remove COMP_SRC conditionals.
+ * src/man.c (convert_name): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+ * NEWS: Document this.
+
+2019-08-31 Colin Watson <cjwatson@debian.org>
+
+ Improve list iteration helper
+
+ * lib/glcontainers.h (GL_LIST_FOREACH_START): Capture the gl_list_node_t
+ in each loop iteration.
+ * src/descriptions_store.c (store_descriptions): Simplify detection of
+ the last loop iteration.
+ * src/manconv.c (manconv): Likewise.
+ * src/manconv_client.c (add_manconv): Likewise.
+ * src/manp.c (create_pathlist): Simplify manual loop iteration that can
+ now be expressed using GL_LIST_FOREACH_START/GL_LIST_FOREACH_END.
+ Simplify detection of the first loop iteration when emitting the final
+ search path as debugging information.
+
+2019-08-30 Colin Watson <cjwatson@debian.org>
+
+ Improve data types in manconv
+
+ * src/manconv.c (try_iconv): Change "last" parameter type to bool.
+ Change types of "to_utf8" and "ignore_errors" to bool.
+ (manconv): Convert "from" to gl_list.
+ * src/manconv.h (manconv): Update prototype.
+ * src/manconv_client.h (struct manconv_codes): Convert "from" to
+ gl_list.
+ (free_manconv_codes, add_manconv): Convert "codes->from" to gl_list.
+ * src/manconv_main.c (from_code, split_codes, parse_opt, main): Convert
+ to gl_list.
+
+2019-08-26 Colin Watson <cjwatson@debian.org>
+
+ Release man-db 2.8.7
+
+2019-08-26 Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>
+
+ Update Japanese translation
+
+ * po/ja.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2019-08-26 Colin Watson <cjwatson@debian.org>
+
+ Order results manually for NDBM as well as GDBM
+
+ Commit 3a753221a3dddaf4870a86a4dca4771ed2cd80b3 in 2003 (!) worked
+ around the fact that GDBM's firstkey/nextkey interface doesn't return
+ ordered results. However, at least when using GDBM's NDBM compatibility
+ interface, this may be true for NDBM too. Extend the manual result
+ ordering code to cover both of these backends.
+
+ * libdb/db_gdbm.c (parent_keys, datum_compare, datum_equals, datum_hash,
+ datum_free, empty_datum, man_gdbm_firstkey, man_gdbm_nextkey,
+ man_gdbm_close): Move to ...
+ * libdb/db_xdbm.c (parent_keys, datum_compare, datum_equals, datum_hash,
+ datum_free, empty_datum, man_xdbm_firstkey, man_xdbm_nextkey,
+ man_xdbm_close): ... here (new file).
+ * libdb/db_xdbm.h: New file.
+ * libdb/db_gdbm.c (unsorted_firstkey, unsorted_nextkey, raw_close): New
+ functions, wrapping gdbm_firstkey, gdbm_nextkey, and gdbm_close
+ respectively.
+ (man_gdbm_firstkey, man_gdbm_nextkey, man_gdbm_close): Add GDBM-specific
+ wrappers for the generic man_xdbm_* functions.
+ * libdb/db_ndbm.c (man_ndbm_close): Move NDBM-specific code ...
+ (raw_close): ... here.
+ (unsorted_firstkey, unsorted_nextkey): New functions, wrapping
+ dbm_firstkey and dbm_nextkey respectively.
+ (man_ndbm_close, man_ndbm_firstkey, man_ndbm_nextkey): Add NDBM-specific
+ wrappers for the generic man_xdbm_* functions.
+ * libdb/mydbm.h (man_ndbm_firstkey, man_ndbm_nextkey): Add prototypes.
+ (MYDBM_FIRSTKEY) [NDBM]: Rewrite in terms of man_ndbm_firstkey.
+ (MYDBM_NEXTKEY) [NDBM]: Rewrite in terms of man_ndbm_nextkey.
+ * libdb/Makefile.am (libmandb_la_SOURCES): Add db_xdbm.c and db_xdbm.h.
+ * NEWS: Document this.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Enable many more GCC warnings
+
+ * bootstrap.conf (gnulib_modules): Add manywarnings.
+ * configure.ac: Add gl_MANYWARN_ALL_GCC, with some refinements to
+ disable -Wsystem-headers and -Wmissing-field-initializers. Define
+ GNULIB_NO_VLA=1 to avoid tripping over -Wvla.
+ * src/accessdb.c (help_filter): Disable -Wformat-nonliteral around this
+ function.
+ * src/man.c (help_filter): Likewise.
+ * src/check_mandirs.c (gripe_rwopen_failed, update_db_time): Factor out
+ EAGAIN || EWOULDBLOCK check to ...
+ (is_eagain): ... here, with -Wlogical-op disabled.
+ * src/lexgrog.l, src/zsoelim.l: Disable -Wsuggest-attribute=malloc,
+ -Wsuggest-attribute=pure, and -Wunused-macros.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -Wnull-dereference
+
+ * src/accessdb.c (main): Add an assertion to help the compiler prove
+ that dbf is non-NULL. (It doesn't know that error (FATAL, ...) is
+ non-returning.)
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Add several function attributes suggested by GCC
+
+ * lib/debug.c (vdebug): Mark first argument as a printf format string.
+ * lib/encodings.c (get_page_encoding): Mark as malloc-like.
+ (is_roff_device, get_output_encoding, get_less_charset,
+ get_jless_charset): Mark as pure.
+ * lib/glcontainers.c (string_equals, string_hash): Mark as pure.
+ * lib/security.c (running_setuid): Mark as pure.
+ * lib/util.c (trim_spaces): Mark as malloc-like.
+ * libdb/db_lookup.c (dash_if_unset): Mark as const.
+ * libdb/db_store.c (compare_ids): Mark as const.
+ * src/whatis.c (match): Mark as pure.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Fix some printf formats
+
+ * libdb/db_lookup.c (list_extensions): Format the return value of
+ gl_list_size using %zu, not %zd.
+ * src/catman.c (add_arg): Format the return values of MYDBM_DSIZE and
+ strlen using %zu, not %zd.
+ (parse_for_sec): Format ARG_MAX - arg_size using %zu, not %zd.
+ * src/man.c (main): Format ruid and euid using %lu, not %d (cast to
+ unsigned long since POSIX only says that uid_t is an integer type).
+ * src/manp.c (describe_flag): Format flag using %u, not %d.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Remove several unused macros
+
+ * libdb/db_store.c (_): Remove.
+ * src/compression.c (_): Likewise.
+ * src/globbing_test.c (_): Likewise.
+ * src/zsoelim_main.c (_): Likewise.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Make a couple of functions static
+
+ * lib/orderfiles.c (compare_physical_offsets): Make static.
+ * src/descriptions.c (page_description_free): Likewise.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Move declaration of _nl_msg_cat_cntr to top level
+
+ gcc -Wnested-externs warns when it encounters this declaration within a
+ function.
+
+ * include/manconfig.h.in (locale_changed): Move _nl_msg_cat_cntr
+ declaration to the top level.
+
+2019-08-25 Colin Watson <cjwatson@debian.org>
+
+ Add some missing includes
+
+ * lib/linelength.c: Include "linelength.h".
+ * lib/orderfiles.c: Include "orderfiles.h".
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Simplify some GCC attribute handling
+
+ * lib/orderfiles.c (order_files) [!HAVE_LINUX_FIEMAP_H &&
+ !HAVE_POSIX_FADVISE]: Use _GL_UNUSED rather than ATTRIBUTE_UNUSED.
+ * lib/sandbox.c (_sandbox_load) [!HAVE_LIBSECCOMP]: Likewise.
+ * lib/security.c (drop_privs): Likewise.
+ * src/accessdb.c (help_filter): Likewise.
+ * src/check_mandirs.c (chown_if_possible): Likewise.
+ * src/decompress.c (decompress_zlib): Likewise.
+ * src/lexgrog_test.c (help_filter): Likewise.
+ * src/man.c (help_filter, squeeze_blank_lines, disable_hyphenation,
+ disable_justification): Likewise.
+ * src/manconv.c (manconv): Likewise.
+ * src/manp.c (free_config_file): Likewise.
+ * src/tests/fspause.c (main): Likewise.
+ * src/whatis.c (help_filter): Likewise.
+ * src/zsoelim_main.c (parse_opt): Likewise.
+ * include/manconfig.h.in (ATTRIBUTE_UNUSED): Remove in favour of the
+ shorter _GL_UNUSED.
+ (ATTRIBUTE_MALLOC): Remove; it was unused.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Use C11/Gnulib's _Noreturn
+
+ * lib/cleanup.c (sighandler): Declare as _Noreturn.
+ * src/man.c (gripe_converting_name): Use _Noreturn rather than
+ ATTRIBUTE_NORETURN.
+ * include/manconfig.h.in (ATTRIBUTE_NORETURN): Remove.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20190821
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Pass database file name in function parameters
+
+ Storing it in a global variable with an unresolved symbol from libmandb
+ was never very clean, and caused linking complications on some
+ platforms.
+
+ Fixes Savannah bug #56734.
+
+ * libdb/mydbm.h (database): Remove external symbol.
+ * src/accessdb.c: Remove obsolete comment.
+ * src/catman.c (database): Remove global variable.
+ (parse_for_sec): Add database parameter. Update all callers.
+ (main): Declare database locally.
+ * src/check_mandirs.c (gripe_rwopen_failed, testmandirs, update_db_time,
+ create_db, update_db, purge_missing): Add database parameter. Update
+ all callers.
+ * src/check_mandirs.h (create_db, update_db, purge_missing): Update
+ prototypes.
+ * src/mandb.c (database): Remove global variable.
+ (update_one_file, update_db_wrapper): Add database parameter. Update
+ all callers.
+ (mandb, process_manpath): Declare database locally.
+ * src/straycats.c (straycats): Add database parameter. Update all
+ callers.
+ * src/whatis.c (database): Remove global variable.
+ (search): Declare database locally.
+ * include/manconfig.h.in (straycats): Update prototype.
+ * NEWS: Document this.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Use MYDBM_FILE->name for error messages
+
+ We previously used the global "database" variable, but we were either
+ also passing a MYDBM_FILE around already or could easily do so, and it's
+ cleaner to get the file name from there now that it's consistently
+ available on all backends.
+
+ * libdb/db_lookup.c (gripe_corrupt_data): Add dbf parameter. Get file
+ name from dbf->name rather than from the global database variable.
+ Update all callers.
+ (gripe_replace_key, split_data, split_content): Add dbf parameter.
+ Update all callers.
+ (dblookup_pattern): Get file name from dbf->name rather than from the
+ global database variable.
+ * libdb/db_ver.c (dbver_rd, dbver_wr): Get file name from dbfile->name
+ rather than from the global database variable.
+ * libdb/db_storage.h (split_content, gripe_corrupt_data,
+ gripe_replace_key): Update prototypes.
+ * src/check_mandirs.c (sanity_check_db): Get file name from dbf->name
+ rather than from the global database variable.
+ * src/whatis.c (do_apropos): Likewise.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Store database file name alongside its handle
+
+ The GDBM backend already did things this way, but it's convenient to do
+ it the same way for all backends.
+
+ Rename libmandb's various backend-specific functions to be uniformly
+ man_<backend>_<operation>. In the cases of btree and ndbm there was
+ already no clash with the libraries they depend on, but this makes them
+ match the gdbm backend.
+
+ * libdb/db_btree.c (btree_close): Rename to ...
+ (man_btree_close): ... this.
+ (btree_flopen): Rename to ...
+ (man_btree_open): ... this. Wrap the returned file handle in a
+ man_btree_wrapper structure that remembers the file name.
+ (btree_replace): Rename to ...
+ (man_btree_replace): ... this.
+ (btree_insert): Rename to ...
+ (man_btree_insert): ... this.
+ (btree_fetch): Rename to ...
+ (man_btree_fetch): ... this.
+ (btree_exists): Rename to ...
+ (man_btree_exists): ... this.
+ (btree_findkey): Rename to ...
+ (man_btree_findkey): ... this.
+ (btree_firstkey): Rename to ...
+ (man_btree_firstkey): ... this.
+ (btree_nextkey): Rename to ...
+ (man_btree_nextkey): ... this.
+ (btree_nextkeydata): Rename to ...
+ (man_btree_nextkeydata): ... this.
+ (btree_get_time): Rename to ...
+ (man_btree_get_time): ... this.
+ (btree_set_time): Rename to ...
+ (man_btree_set_time): ... this.
+ Update all prototypes and callers for all renames.
+ (man_btree_close, man_btree_replace, man_btree_insert, man_btree_fetch,
+ man_btree_exists, man_btree_findkey, man_btree_firstkey,
+ man_btree_nextkey, man_btree_nextkeydata, man_btree_get_time,
+ man_btree_set_time): Take man_btree_wrapper parameter rather than DB *.
+ Update all callers.
+
+ * libdb/db_ndbm.c (ndbm_flclose): Rename to ...
+ (man_ndbm_close): ... this.
+ (ndbm_flopen): Rename to ...
+ (man_ndbm_open): ... this. Copy the given file name before passing it
+ to dbm_open, since at least GDBM's compatibility implementation declares
+ that parameter as non-const. Wrap the returned file handle in a
+ man_ndbm_wrapper structure that remembers the file name.
+ (ndbm_get_time): Rename to ...
+ (man_ndbm_get_time): ... this.
+ (ndbm_set_time): Rename to ...
+ (man_ndbm_set_time): ... this.
+ Update all prototypes and callers for all renames.
+ (man_ndbm_close, man_ndbm_get_time, man_ndbm_set_time): Take
+ man_ndbm_wrapper parameter rather than DBM *. Update all callers.
+
+ * libdb/mydbm.h (man_ndbm_wrapper): New structure.
+ (MYDBM_FILE) [NDBM]: Change to man_ndbm_wrapper.
+ (man_btree_wrapper): New structure.
+ (MYDBM_FILE) [BTREE]: Change to man_btree_wrapper.
+
+ * libdb/db_lookup.c (gripe_lock): Constify filename parameter.
+ * libdb/db_storage.h (gripe_lock): Update prototype.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Recognise eo/ta/uk translations of the NAME section
+
+ (Esperanto, Tamil, and Ukrainian.)
+
+ * src/lexgrog.l (eo_name, ta_name, uk_name): Add.
+ * NEWS: Document this.
+
+2019-08-23 Colin Watson <cjwatson@debian.org>
+
+ Remove unused sandbox variables
+
+ We no longer need these, having moved decompression code out of libman.
+
+ * src/accessdb.c, src/catman.c, src/globbing_test.c, src/manpath.c:
+ Remove "sandbox" global variables.
+
+2019-08-22 Colin Watson <cjwatson@debian.org>
+
+ Remove unused linkage from whatis
+
+ * src/Makefile.am (whatis_SOURCES): Remove manconv.c and manconv.h.
+
+2019-08-22 Colin Watson <cjwatson@debian.org>
+
+ Move decompression code out of libman
+
+ Fixes Savannah bug #56734.
+
+ * configure.ac: Remove incorrect Darwin workaround.
+ * lib/decompress.c: Move to ...
+ * src/decompress.c: ... here.
+ * lib/decompress.h: Move to ...
+ * src/decompress.h: ... here.
+ * lib/Makefile.am (libman_la_SOURCES): Remove decompress.c and
+ decompress.h.
+ (libman_la_LIBADD): Remove $(LIBCOMPRESS).
+ * lib/README: Remove decompress.*.
+ * lib/encodings.c: Remove unused #include "decompress.h".
+ * src/Makefile.am (lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD,
+ zsoelim_LDADD): Add $(LIBCOMPRESS).
+ (lexgrog_SOURCES, man_SOURCES, manconv_SOURCES, mandb_SOURCES,
+ zsoelim_SOURCES): Add decompress.c and decompress.h.
+ * NEWS: Document this.
+
+2019-08-22 Colin Watson <cjwatson@debian.org>
+
+ Squash warning in order_files stub
+
+ * lib/orderfiles.c [!HAVE_LINUX_FIEMAP_H && !HAVE_POSIX_FADVISE]: Mark
+ dir and basenamesp arguments as unused.
+
+2019-08-22 Colin Watson <cjwatson@debian.org>
+
+ Don't save cat pages if --nh/--nj is used
+
+ Fixes Savannah bug #55731.
+
+ * src/man.c (display): Disable cat pages if --no-hyphenation or
+ --no-justification is used, in effect defining those not to be part of
+ the canonical state.
+ * NEWS: Document this.
+
+2019-08-21 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow getrandom, used by Hardened Malloc
+
+ Fixes Savannah bug #56767.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow getrandom.
+ * NEWS: Document this.
+
+2019-08-21 Colin Watson <cjwatson@debian.org>
+
+ NEWS: Document EPERM change
+
+ * NEWS: Document change from raising SIGSYS to returning EPERM.
+
+2019-08-21 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Reorganise using @system-service set
+
+ systemd defines a @system-service set now which covers some of the ones
+ that were previously isolated here, so reorganise to take account of
+ that. No functional change.
+
+ * lib/sandbox.c (make_seccomp_filter): Reorganise using systemd's new
+ @system-service set.
+
+2019-08-21 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Set default action to EPERM, not TRAP
+
+ Returning EPERM rather than raising SIGSYS is no less secure, and it's
+ more likely that code injected via LD_PRELOAD will be able to recover
+ from this somehow.
+
+ * lib/sandbox.c (make_seccomp_filter): Set default action to
+ SCMP_ACT_ERRNO (EPERM), not SCMP_ACT_TRAP.
+
+2019-08-14 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow sendmsg in the ESET case
+
+ * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded,
+ then allow sendmsg.
+ * NEWS: Document this.
+
+2019-08-05 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.6.1.
+
+2019-08-04 Colin Watson <cjwatson@debian.org>
+
+ Fix missing memory copies in ult_src
+
+ Fixes Debian bug #933802.
+
+ * src/ult_src.c (ult_src): Copy strings before adding them to trace.
+
+2019-08-03 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.6.
+
+2019-08-03 Colin Watson <cjwatson@debian.org>
+
+ Update syscall lists from systemd bca5a0eacc
+
+ * lib/sandbox.c (make_seccomp_filter): Add rseq (see
+ https://github.com/systemd/systemd/issues/12127).
+
+2019-05-02 Colin Watson <cjwatson@debian.org>
+
+ Improve manual build portability slightly
+
+ * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
+ .tdvi.tps, .pp.cat, .pp.html): Use "mv -f" rather than just "mv", since
+ Automake seems to prefer that for its own rules.
+
+2019-05-02 Colin Watson <cjwatson@debian.org>
+
+ Make manual build more robust against failures
+
+ Fixes Savannah bug #56254.
+
+ * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
+ .tdvi.tps, .pp.cat, .pp.html): Write output to *.new files and rename
+ into place, so that failures are properly retried in future runs.
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Avoid configure error message if nroff is broken
+
+ * m4/man-gnu-nroff.m4 (MAN_PROG_GNU_NROFF): Adjust test arguments
+ slightly to avoid a spurious error message if nroff is sufficiently
+ broken that it doesn't produce numeric output for "\n(.g".
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Fix warnings when configuring --without-libseccomp
+
+ * lib/sandbox.c (_sandbox_load): Mark sandbox and permissive parameters
+ unused when HAVE_LIBSECCOMP is undefined, to avoid warnings from "gcc
+ -Wunused-parameter".
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Add configure option to disable building manual
+
+ * m4/man-arg-manual.m4: New file.
+ * configure.ac: Add MAN_ARG_MANUAL.
+ * manual/Makefile.am: Perform most rules only if BUILD_MANUAL is true.
+ * manual/intro.me (Arguments to configure): Add --disable-manual.
+ * README (Non-generic arguments to configure): Update.
+ * NEWS: Document this.
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document container type changes.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Add some missing entries to lib/README
+
+ * lib/README: Add glcontainers.*, orderfiles.*, and sandbox.*.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Remove pipeline.* from lib/README
+
+ It's been a separate library since 2010.
+
+ * lib/README: Remove pipeline.*.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Inline lower into name_to_key
+
+ With only one remaining user, it wasn't pulling its weight.
+
+ * libdb/db_lookup.c (name_to_key): Inline the implementation of lower.
+ * lib/Makefile.am (libman_la_SOURCES): Remove lower.c and lower.h.
+ * lib/README: Remove lower.*.
+ * lib/lower.c, lib/lower.h: Remove.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Simplify case-insensitivity in word_fnmatch
+
+ Using FNM_CASEFOLD saves us from having to lower-case the pattern
+ manually, and it also fixes the behaviour of "apropos -w" when given a
+ non-lower-case pattern.
+
+ * lib/wordfnmatch.c (word_fnmatch): Use isalpha and FNM_CASEFOLD rather
+ than manually lower-casing string or expecting pattern to have already
+ been lower-cased.
+ * NEWS: Document this.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Simplify case-insensitive comparisons in whatis
+
+ We can just use strcasecmp and similar functions rather than
+ lower-casing comparands manually.
+
+ In some corner cases this may result in matches that would not
+ previously have been returned (e.g. "whatis -w" with a non-lower-case
+ pattern).
+
+ * src/whatis.c (parse_name): Use strcasecmp and FNM_CASEFOLD rather than
+ manually lower-casing dbname or expecting pages to have already been
+ lower-cased.
+ (match): Use strcasestr and isalpha rather than manually lower-casing
+ whatis or expecting page to have already been lower-cased.
+ (parse_whatis): Remove lowpages parameter; pass pages directly to match
+ instead.
+ (do_apropos): Remove lowpages; parse_name and parse_whatis no longer
+ need it.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Import Gnulib's strcase module
+
+ We're already using strcasecmp and strncasecmp.
+
+ * bootstrap.conf (gnulib_modules): Add strcase.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Add missing #include
+
+ * src/straycats.c: Include <stdbool.h>.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Use bool for boolean command-line options
+
+ * include/manconfig.h.in (debug_level): Change type to bool. Update all
+ definitions and users.
+ * lib/encodings.c (get_roff_encoding): Change type of "found" to bool.
+ * libdb/db_lookup.c (dblookup_all, dblookup_exact): Change "match_case"
+ parameter type to bool. Update all callers.
+ (dblookup_pattern): Change "match_case", "pattern_regex", and
+ "try_descriptions" parameter types to bool. Update all callers.
+ * libdb/db_storage.h (dblookup_all, dblookup_exact, dblookup_pattern):
+ Update prototypes.
+
+ * src/descriptions_store.c (store_descriptions): Change types of
+ "found_real_page" and "found_external" to bool.
+ * src/lexgrog_test.c (main): Change types of "some_failed" and "found"
+ to bool.
+ * src/man.c (parse_opt): Change types of "apropos" and "whatis" to bool.
+ (add_roff_line_length): Change "save_cat_p" parameter type to bool *.
+ Update all callers.
+ (make_browser): Change "found_percent_s" type to bool.
+ (display): Change "display_to_stdout" type to bool.
+ (try_db): Change "found_stale" type to bool.
+ (local_man_loop): Change "local_mf" type to bool.
+ (main): Change "found_subpage" type to bool.
+ * src/manp.c (read_config_file): Change "optional" parameter type to
+ bool. Update all callers.
+ * src/manp.h (read_config_file): Update prototype.
+
+ * src/check_mandirs.c (opt_test, force_rescan): Change types to bool.
+ Update all users.
+ * src/globbing_test.c (match_case, regex_opt, wildcard): Likewise.
+ * src/lexgrog_test.c (parse_man, parse_cat, show_whatis, show_filters):
+ Likewise.
+ * src/man.c (disable_cache, troff, global_apropos, print_where,
+ print_where_cat, catman, local_man_file, findall, update, match_case,
+ regex_opt, wildcard, names_only, no_hyphenation, no_justification,
+ subpages, ascii, save_cat, ditroff, htmlout): Likewise.
+ * src/mandb.c (opt_test, force_rescan, check_for_strays, purge, user,
+ create): Likewise.
+ * src/manp.c (disable_cache): Likewise.
+ * src/manpath.c (cat, global): Likewise.
+ * src/whatis.c (am_apropos, regex_opt, exact, wildcard, require_all,
+ long_output): Likewise.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port roff_warnings to gl_list
+
+ * src/man.c (struct string_llist): Remove.
+ (parse_opt, make_roff_command): Convert roff_warnings to gl_list.
+ (main): Initialise roff_warnings.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port parse_descriptions to gl_list
+
+ * src/descriptions.c (free_descriptions): Rename to ...
+ (page_description_free): ... this. Adjust for gl_list's expected
+ interface.
+ (parse_descriptions): Convert to gl_list. Return a zero-length list if
+ whatis is NULL, where previously we returned NULL.
+ * src/descriptions_store.c (store_descriptions): Convert descs to
+ gl_list.
+ * src/descriptions.h (struct page_description): Remove next member.
+ (parse_descriptions, store_descriptions): Update prototypes.
+ (free_descriptions): Remove prototype.
+ * src/lexgrog_test.c (main): Convert descs to gl_list.
+ * src/straycats.c (check_for_stray): Likewise. Remove conditional,
+ since parse_descriptions now never returns NULL.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Improve sandbox_free
+
+ * lib/sandbox.c (sandbox_free): Free sandbox->permissive_ctx too.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Free seccomp sandbox before normal exit
+
+ This makes valgrind slightly happier.
+
+ * src/lexgrog_test.c (main): Call seccomp_free before exiting.
+ * src/man.c (main): Likewise.
+ * src/manconv_main.c (main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+ * src/zsoelim_main.c (main): Likewise.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port dblookup to gl_list
+
+ * libdb/db_lookup.c (free_mandata_struct): Only free a single structure,
+ rather than following list pointers.
+ (split_content): Stop initialising pinfo->next.
+ (dblookup, dblookup_pattern): Convert to gl_list. Return a zero-length
+ list to indicate no matches, where previously we returned NULL.
+ (dblookup_exact): Adjust for changes in dblookup. This function
+ continues to return a single element rather than a list, since that's
+ all that its callers need.
+ * libdb/db_storage.h (struct mandata): Remove next member.
+ (dblookup_all, dblookup_pattern): Update prototypes.
+ * src/man.c (db_map_value_free): New function.
+ (try_db): Convert dblookup_pattern/dblookup_all cache to store gl_lists
+ or NULL. NULL now means a database open failure and a zero-length list
+ means no matches in an existing database, rather than vice versa.
+ * src/whatis.c (do_whatis_section): Convert to gl_list.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Eliminate #ifdef in straycats.c
+
+ * src/straycats.c (check_for_stray): Replace hand-rolled
+ FAVOUR_STRAYCATS conditional with an equivalent compare_ids call.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Add helper functions for common container cases
+
+ * lib/glcontainers.c (new_string_list, new_string_map, new_string_set):
+ New functions.
+ * lib/glcontainers.h (new_string_list, new_string_map, new_string_set):
+ Add prototypes.
+
+ * lib/orderfiles.c (order_files): Use new_string_list.
+ * src/check_mandirs.c (test_manfile, add_dir_entries): Likewise.
+ * src/globbing.c (look_for_file, expand_path): Likewise.
+ * src/man.c (get_section_list): Likewise.
+ * src/manp.c (get_scetions, get_manpath_from_path, create_pathlist):
+ Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+
+ * libdb/db_gdbm.c (man_gdbm_firstkey): Use new_string_map.
+ * src/check_mandirs.c (test_manfile): Likewise.
+ * src/globbing.c (update_directory_cache): Likewise.
+ * src/man.c (try_db): Likewise.
+ * src/mandb.c (main): Likewise.
+
+ * libdb/db_btree.c (btree_findkey): Use new_string_set.
+ * src/whatis.c (main): Likewise.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Replace hashtable with Gnulib containers
+
+ Since we're using Gnulib's container types anyway, we might as well
+ reduce the maintenance burden of local code, especially since the result
+ tends to be more concise.
+
+ * bootstrap.conf (gnulib_modules): Add hash-map, hash-set, xmap, and
+ xset.
+ * lib/glcontainers.h (GL_MAP_FOREACH_START, GL_MAP_FOREACH_END): New
+ macros.
+
+ * lib/orderfiles.c (compare_physical_offsets, order_files): Convert
+ physical_offsets from a hashtable to a gl_map.
+ * libdb/db_btree.c (loop_check_hash): Rename to ...
+ (loop_check): ... this.
+ (btree_findkey): Convert loop_check from a hashtable to a gl_set.
+ * libdb/db_gdbm.c (parent_sortkey_hash): Rename to ...
+ (parent_keys: ... this.
+ (struct sortkey, parent_sortkey_hashtable_free): Remove.
+ (sortkey_hashtable_free): Rename to ...
+ (datum_free): ... this. Adjust for gl_list's expected interface.
+ (sortkey_compare): Rename to ...
+ (datum_compare): ... this. Adjust for gl_list's expected interface.
+ (datum_equals, datum_hash): New functions.
+ (man_gdbm_firstkey, man_gdbm_nextkey, man_gdbm_close): Convert
+ parent_keys from a hashtable to a gl_map, and convert its values from
+ hashtables with manual linking to gl_lists using a hash for fast lookup
+ by key.
+ * src/check_mandirs.c (whatis_hash): Rename to ...
+ (whatis_map): ... this.
+ (struct whatis_hashent): Rename to ...
+ (struct whatis): ... this.
+ (whatis_hashtable_free): Rename to ...
+ (whatis_free): ... this. Adjust for gl_map's expected interface.
+ (test_manfile): Convert whatis_map from a hashtable to a gl_map.
+ * src/globbing.c (struct dirent_hashent): Rename to ...
+ (struct dirent_names): ... this.
+ (dirent_hashtable_free): Rename to ...
+ (dirent_names_free): ... this. Adjust for gl_map's expected interface.
+ (dirent_hash): Rename to ...
+ (dirent_map): ... this.
+ (update_directory_cache): Convert dirent_map from a hashtable to a
+ gl_map.
+ * src/man.c (db_hash): Rename to ...
+ (db_map): ... this.
+ (db_hashtable_free): Remove.
+ (try_db, main): Convert db_map from a hashtable to a gl_map.
+ * src/mandb.c (process_manpath, tried_catdirs_free, purge_catdir,
+ purge_catdirs, main): Convert tried_catdirs from a hashtable to a
+ gl_map.
+ * src/whatis.c (display, main): Convert display_seen from a hashtable to
+ a gl_set.
+
+ * lib/Makefile.am (libman_la_SOURCES): Remove hashtable.c and
+ hashtable.h.
+ * lib/README: Remove hashtable.*.
+ * lib/hashtable.c, lib/hashtable.h: Remove.
+
+2019-02-01 Colin Watson <cjwatson@debian.org>
+
+ Port list_extensions to gl_list
+
+ * libdb/db_lookup.c (name_ext_equals): New function.
+ (list_extensions, dblookup): Convert to gl_list.
+ * libdb/db_storage.h (struct name_ext): New structure.
+ (list_extensions): Update prototype.
+ * libdb/db_delete.c (dbdelete): Convert to gl_list.
+
+2019-01-31 Colin Watson <cjwatson@debian.org>
+
+ Port ult_src tracing to gl_list
+
+ * src/ult_src.c (ult_trace, free_ult_trace): Remove.
+ (ult_src): Convert trace handling to gl_list.
+ * src/ult_src.h (struct ult_trace): Remove.
+ (ult_src): Update prototype.
+ (free_ult_trace): Remove.
+ * src/descriptions_store.c (store_descriptions): Convert to gl_list.
+ * src/descriptions.h (store_descriptions): Update prototype.
+ * src/check_mandirs.c (struct whatis_hashent): Change type of trace to
+ gl_list_t.
+ (whatis_hashtable_free, test_manfile): Convert to gl_list.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Use bool in more places in whatis
+
+ * src/whatis.c (use_grep, do_whatis, do_apropos): Change "found"
+ parameter type to bool *. Update all callers.
+ (any_set, all_set): Change "found_here" parameter type to bool *.
+ Update all callers.
+ (parse_name, parse_whatis): Change "found" and "found_here" parameter
+ types to bool *. Update all callers.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Port get_sections to gl_list
+
+ * src/manp.c (get_sections): Convert to gl_list.
+ * src/manp.h (get_sections): Update prototype.
+ * src/man.c (is_section, compare_candidates, do_global_apropos, man,
+ get_section_list): Convert to gl_list.
+ (compare_candidates): Sort sections missing from section_list to the
+ end.
+ (main): Free section_list.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Use HTTPS URL for libpipeline
+
+ * NEWS, docs/INSTALL.quick: Update libpipeline URL to
+ https://nongnu.org/libpipeline/.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Port expand_path to gl_list
+
+ * src/globbing.c (expand_path): Convert to gl_list.
+ * src/globbing.h (expand_path): Update prototype.
+ * src/manp.c (def_path, add_dir_to_list, add_dir_to_path_list): Convert
+ to gl_list.
+ * src/ult_src.c (find_include): Likewise.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Fix failure to link libman using the Darwin linker
+
+ Thanks to George Plymale II and John Gardner.
+
+ * configure.ac: Add "-Wl,-flat_namespace,-undefined,suppress" to CFLAGS
+ on Darwin.
+ * NEWS: Document this.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Port order_files and look_for_file to gl_list
+
+ This gets rid of some particularly awful allocation spaghetti in
+ src/globbing.c.
+
+ * bootstrap.conf (gnulib_modules): Add rbtree-list.
+ * lib/orderfiles.c (compare_physical_offsets): Expect arguments to be
+ const char * rather than const char **.
+ (order_files): Convert to taking a gl_list_t as an input/output argument
+ rather than an array. In the HAVE_LINUX_FIEMAP_H case, we produce a new
+ sorted list.
+ * lib/orderfiles.h (order_files): Update prototype.
+ * src/globbing.c (clear_glob): Remove.
+ (match_in_directory): Convert to gl_list. Remove inter-call allocation
+ and cleanup machinery.
+ (look_for_file): Convert to gl_list. Remove glob_t cleanup machinery;
+ the caller is now responsible for freeing the returned list.
+ * src/globbing.h (look_for_file): Update prototype.
+
+ * src/check_mandirs.c (add_dir_entries, count_glob_matches,
+ purge_normal): Convert to gl_list.
+ * src/straycats.c (check_for_stray): Likewise.
+
+ * src/check_mandirs.c (purge_whatis, purge_missing): Convert to gl_list.
+ Free list returned by look_for_file.
+ * src/globbing_test.c (main): Likewise.
+ * src/man.c (try_section, do_global_apropos_section): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Default to --without-systemd* on non-Linux systems
+
+ systemd is unapologetically Linux-specific, so let's not require
+ non-Linux packages to explicitly turn this off.
+
+ * m4/man-arg-systemdsystemunitdir (MAN_ARG_SYSTEMDSYSTEMUNITDIR):
+ Default to with_systemdsystemunitdir=no on non-Linux systems.
+ * m4/man-arg-systemdtmpfilesdir (MAN_ARG_SYSTEMDTMPFILESDIR): Default to
+ with_systemdtmpfilesdir=no on non-Linux systems.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Add --quiet to systemd mandb invocation
+
+ Fixes Debian bug #920628.
+
+ * init/systemd/man-db.service.in (ExecStart): Run mandb with --quiet.
+ * NEWS: Document this.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Use macros for common cases of list iteration
+
+ * lib/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END): New
+ macros.
+ * src/catman.c (main): Replace manual list iteration with equivalent
+ macros.
+ * src/man.c (do_global_apropos, locate_page_in_manpath): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/manp.c (get_config, print_list, get_sections, def_path,
+ get_manpath_from_path, create_pathlist, get_mandb_manpath, get_catpath,
+ is_global_mandir): Likewise.
+ * src/whatis.c (search): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Rename gl-container-helpers to glcontainers
+
+ This is less annoying to type.
+
+ * lib/gl-container-helpers.c: Rename to ...
+ * lib/glcontainers.c: ... this.
+ * lib/gl-container-helpers.h: Rename to ...
+ * lib/glcontainers.h: ... this.
+ * lib/Makefile.am (libman_la_SOURCES): Replace gl-container-helpers.c
+ and gl-container-helpers.h with glcontainers.c and glcontainers.h.
+ * src/manp.c: Update include.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Move Gnulib container helpers into common code
+
+ * src/manp.c (string_equals, string_hash, string_free): Move to ...
+ * lib/gl-container-helpers.c (string_equals, string_hash, plain_free):
+ ... here (new file).
+ * lib/gl-container-helpers.h: New file.
+ * lib/Makefile.am (libman_la_SOURCES): Add gl-container-helpers.c and
+ gl-container-helpers.h.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Turn config flags into an enum
+
+ * src/manp.c (enum config_flag): New enumeration.
+ (struct config_item, def_path, add_config, get_config, get_sections,
+ def_path): Use enum config_flag.
+ (describe_flag): New function.
+ (print_list): Describe flags rather than printing their integer value.
+ (add_def): Remove flag parameter; expect caller to pass the correct
+ config_def value instead. Make thing and config_def const.
+ (add_mandb_map): Remove flag parameter; expect caller to pass the
+ correct catdir value instead.
+ (add_to_dirlist): Update calls to add_mandb_map and add_def.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Port internal configuration storage to gl_list
+
+ * bootstrap.conf (gnulib_modules): Add array-list.
+ * src/manp.c (struct list): Remove.
+ (struct config_item): New structure.
+ (config_item_free): New function.
+ (add_to_list): Rename to ...
+ (add_config): ... this. Convert to gl_list. Update all callers.
+ (get_from_list): Rename to ...
+ (get_config): ... this. Convert to gl_list. Update all callers.
+ (iterate_over_list): Remove.
+ (print_list, get_sections, free_config_file, def_path,
+ get_manpath_from_path, get_mandb_manpath, get_catpath,
+ is_global_mandir): Port config list handling to gl_list.
+ (add_to_dirlist): Rename config parameter to config_file.
+ (read_config_file): Create empty config list. Rename previous local
+ config variable to config_file.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Use Gnulib's lchown function
+
+ Also remove lib/xchown.*; with only one call site, they don't pull their
+ weight over equivalent inline code.
+
+ * bootstrap.conf (gnulib_modules): Add lchown.
+ * configure.ac (AC_CHECK_FUNCS): Remove check for lchown.
+ * lib/Makefile.am (libman_la_SOURCES): Remove xchown.c and xchown.h.
+ * src/check_mandirs.c (chown_if_possible): Always use lchown rather than
+ chown, and inline the error check.
+
+ * po/POTFILES.in: Remove lib/xchown.c.
+ * po/man-db.pot, po/*.po: Update.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Simplify includes using Gnulib's fcntl module
+
+ * bootstrap.conf (gnulib_modules): Add fcntl.
+ * configure.ac (AC_CHECK_HEADERS): Remove check for fcntl.h.
+ * libdb/db_btree.c, libdb/db_ndbm.c, libdb/mydbm.h, src/man.c: Include
+ <fcntl.h> unconditionally.
+ * src/man.c: Remove conditional definitions of R_OK and X_OK; Gnulib's
+ <unistd.h> handles these.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Replace check_standard_fds with Gnulib's xstdopen
+
+ * bootstrap.conf (gnulib_modules): Add xstdopen.
+ * src/man.c (check_standard_fds): Remove.
+ (main): Call xstdopen rather than check_standard_fds.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20190124
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Use bool type where appropriate
+
+ Now that we're using <stdbool.h> anyway due to gl_list (with Gnulib
+ providing <stdbool.h> if necessary), it makes sense to use it for our
+ own functions that have essentially boolean semantics.
+
+ * lib/encodings.c (compatible_encodings, is_roff_device): Return bool.
+ * lib/pathsearch.c (pathsearch, pathsearch_executable,
+ directory_on_path): Likewise.
+ * lib/sandbox.c (search_ld_preload, can_load_seccomp): Likewise.
+ * lib/security.c (running_setuid): Likewise.
+ * lib/wordfnmatch.c (word_fnmatch): Likewise. Update all callers.
+ * src/check_mandirs.c (sanity_check_db): Likewise.
+ * src/man.c (duplicate_candidates): Likewise.
+ * src/manp.c (is_global_mandir): Likewise. Update all callers.
+ * src/whatis.c (suitable_manpath, match): Likewise.
+ (any_set, all_set): Likewise. Update all callers.
+
+ * lib/encodings.h (is_roff_device): Update prototype.
+ * lib/pathsearch.h (pathsearch_executable, directory_on_path): Likewise.
+ * lib/security.h (running_setuid): Likewise.
+ * lib/wordfnmatch.h (word_fnmatch): Likewise.
+ * src/manp.h (is_global_mandir): Likewise.
+
+ * src/mandb.c (mandb, process_manpath): Change global_manpath parameter
+ type to bool.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Note that some C99 runtime facilities may be used
+
+ * docs/HACKING (Facilities and portability): Note that C99 runtime
+ facilities that are provided by Gnulib are OK.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Remove arbitrary limit on manpath size
+
+ Fixes Savannah bug #50324.
+
+ * bootstrap.conf (gnulib_modules): Add hash-pjw-bare, linkedhash-list,
+ stdbool, and xlist.
+ * include/manconfig.h.in (MAXDIRS): Remove.
+
+ * src/manp.c (tmplist): Remove.
+ (string_equals, string_hash, string_free): New functions.
+ (gripe_overlong_list): Remove.
+ (insert_override_dir, get_manpath_from_path, add_expanded_dir_to_list,
+ add_dir_to_list, add_man_subdirs, add_dir_to_path_list, create_pathlist,
+ free_pathlist): Port manpath list handling to gl_list_t.
+ * src/catman.c (main): Likewise.
+ * src/man.c (do_global_apropos, local_man_loop, locate_page_in_manpath,
+ main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (suitable_manpath, search, main): Likewise.
+ * src/zsoelim.l (<<EOF>>, zsoelim_parse_file, zsoelim_open_file,
+ zsoelim_stdin, zsoelim_stdin_data_new): Likewise.
+ * src/zsoelim_main.c (main): Likewise.
+
+ * src/manp.h (create_pathlist, free_pathlist): Update prototypes.
+ * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file,
+ zsoelim_stdin_data_new): Likewise.
+
+ * NEWS: Document this.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document previous commit.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Automatically add more man directories to manpath
+
+ Will Starms reported that, if both ../man and ../share/man directories
+ (for example) exist relative to a directory on $PATH, then only the
+ first was considered.
+
+ * src/manp.c (has_mandir): Rename to ...
+ (add_man_subdirs): ... this. Insert directories as they are found
+ rather than returning them, and continue even if some have been found.
+ (get_manpath_from_path): Update call to add_man_subdirs.
+
+2019-01-08 Colin Watson <cjwatson@debian.org>
+
+ Recommend a distribution-independent bug tracker
+
+ * README: Link to https://savannah.nongnu.org/bugs/?group=man-db for bug
+ reporting.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.5.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20190105
+
+ In line with Gnulib, we now require Autoconf 2.63 and Automake 1.11.2.
+
+ * bootstrap: Sync to Gnulib d271f868a8df9bbec29049d01e056481b7a1a263.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ d271f868a8df9bbec29049d01e056481b7a1a263.
+ (buildreq): Bump required autoconf version to 2.63 and required automake
+ version to 1.11.2.
+ * configure.ac (AM_SILENT_RULES, AM_PROG_AR): Remove conditionals, which
+ were there for Automake 1.10 support.
+ (AC_PREREQ): Bump to 2.63.
+ * NEWS: Document this.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ Use tar --sort=name if available
+
+ * m4/man-tar-sort-name.m4: New file.
+ * configure.ac: Call MAN_TAR_SORT_NAME.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ Fix distcheck following addition of systemd timer
+
+ * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add
+ --with-systemdsystemunitdir=\$${prefix}/lib/systemd/system.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ Fix distribution of man-db.timer
+
+ Automake's "_DATA" primary defaults to "nodist_", not "dist_".
+
+ * init/systemd/Makefile.am (systemdsystemunit_DATA): Rename to ...
+ (dist_systemdsystemunit_DATA): ... this.
+ (nodist_systemdsystemunit_DATA): Rename to ...
+ (systemdsystemunit_DATA): ... this.
+ (EXTRA_DIST): Add man-db.timer if INSTALL_SYSTEMD_TIMER is false.
+
+2019-01-05 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Work around Microsoft SCEP
+
+ This is a proprietary antivirus program and I've only been able to guess
+ at how to handle it. Note that it is no longer supported by Microsoft
+ and so users should probably replace it with something else, but I still
+ want to minimise the number of support requests I get related to it.
+
+ * lib/sandbox.c (make_seccomp_filter): If libscep_pac.so is preloaded,
+ then allow some system calls related to sockets and System V message
+ queues.
+ * NEWS: Document this.
+
+2018-12-24 Colin Watson <cjwatson@debian.org>
+
+ Use (void *) 0 as a variadic sentinel
+
+ NULL is formally incorrect here since the standard allows it to be an
+ integer constant expression.
+
+ * lib/decompress.c (decompress_open, decompress_fdopen): Use (void *)
+ rather than NULL as a sentinel for variadic functions.
+ * libdb/db_delete.c (dbdelete): Likewise.
+ * src/catman.c (catman, parse_for_sec, main): Likewise.
+ * src/check_mandirs.c (add_dir_entries): Likewise.
+ * src/compression.c (comp_file): Likewise.
+ * src/filenames.c (make_filename): Likewise.
+ * src/globbing.c (look_for_file): Likewise.
+ * src/lexgrog.l (find_name): Likewise.
+ * src/man.c (do_extern, run_mandb, make_roff_command, make_browser,
+ setenv_less, add_output_iconv, make_display_command, tmp_cat_filename,
+ format_display_and_save, format_display, display_catman, display,
+ local_man_loop): Likewise.
+ * src/manconv_client.c (add_manconv): Likewise.
+ * src/manconv_main.c (parse_opt): Likewise.
+ * src/manp.c (pathappend, add_nls_manpaths, add_system_manpath,
+ add_dir_to_path_list, get_catpath): Likewise.
+ * src/straycats.c (check_for_stray, open_catdir, straycats): Likewise.
+ * src/whatis.c (use_grep, display): Likewise.
+
+2018-12-06 Colin Watson <cjwatson@debian.org>
+
+ Honour --enable-cache-owner in systemd timer
+
+ * init/systemd/Makefile.am (man-db.service): Substitute
+ @cache_top_owner@.
+ * init/systemd/man-db.service.in (ExecStart, User): Use
+ @cache_top_owner@ rather than hardcoding "man".
+
+2018-12-06 Colin Watson <cjwatson@debian.org>
+
+ Improve systemd unit commentary
+
+ * init/systemd/man-db.service.in (ExecStart): Add comment.
+
+2018-12-06 Colin Watson <cjwatson@debian.org>
+
+ Allow disabling installation of systemd components
+
+ * m4/man-arg-systemdtmpfilesdir.m4: Define an INSTALL_SYSTEMD_TMPFILES
+ Automake conditional (true unless --with-systemdtmpfilesdir=no).
+ * m4/man-arg-systemdsystemunitdir.m4: Define an INSTALL_SYSTEMD_TIMER
+ Automake conditional (true unless --with-systemdsystemunitdir=no).
+ * init/systemd/Makefile.am: Honour INSTALL_SYSTEMD_TMPFILES and
+ INSTALL_SYSTEMD_TIMER.
+
+2018-12-06 Colin Watson <cjwatson@debian.org>
+
+ Ship a systemd timer for daily DB maintenance
+
+ Thanks to Christian Göttsche. Fixes Debian bug #858022.
+
+ * m4/man-arg-systemdsystemunitdir.m4: New file.
+ * configure.ac: Accept --with-systemdsystemunitdir option.
+ * init/systemd/Makefile.am (EXTRA_DIST): Add man-db.service.in.
+ (CLEANFILES): Add man-db.service.
+ (systemdsystemunit_DATA): Install man-db.timer.
+ (nodist_systemdsystemunit_DATA): Install man-db.service.
+ (man-db.service): New rule.
+ * init/systemd/man-db.service.in, init/systemd/man-db.timer: New files.
+ * .gitignore: Add init/systemd/man-db.service.
+ * NEWS: Document this.
+
+2018-11-14 Colin Watson <cjwatson@debian.org>
+
+ Fix incorrect error message
+
+ Reported by Julian Gilbey. Fixes Debian bug #913721.
+
+ * src/man.c (check_standard_fds): Correct error message if stdout is not
+ open for writing (not "for reading", as previously claimed).
+
+2018-11-09 Colin Watson <cjwatson@debian.org>
+
+ release.sh: Simplify Lex handling
+
+ release.sh had a hack to ensure that flex-generated scanners are fresh
+ in release tarballs. This is more easily achieved by configuring with
+ --enable-maintainer-mode, which causes Automake to enable the Lex
+ rebuild rule.
+
+ * release.sh: Configure with --enable-maintainer-mode; drop conditional
+ removals of src/lexgrog.c and src/zsoelim.c.
+
+2018-11-09 Colin Watson <cjwatson@debian.org>
+
+ lexgrog: Fix handling of \- in RHS of NAME section
+
+ Fixes Debian bug #913351.
+
+ * src/lexgrog.l (MAN_NAME): Split into MAN_NAME (left-hand side) and
+ MAN_DESC (right-hand side). Most rules remain as before, except that \-
+ and similar are only handled specially in MAN_NAME and transition to
+ MAN_DESC, and rules that add a 0x11 marker (indicating the start of a
+ new whatis definition) transition to MAN_NAME.
+ (MAN_NAME_AT, MAN_NAME_BSX, MAN_NAME_BX, MAN_NAME_BX_RELEASE,
+ MAN_NAME_DQ, MAN_NAME_FX, MAN_NAME_NX, MAN_NAME_OX): Rename to
+ MAN_DESC_*.
+ (mdoc_text): Transition to MAN_DESC rather than MAN_NAME.
+ (newline_found): If adding 0x11, transition to MAN_NAME.
+ * src/tests/lexgrog-3: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add lexgrog-3.
+ * NEWS: Document this.
+
+2018-11-09 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document changes since 2.8.4.
+
+2018-11-09 Colin Watson <cjwatson@debian.org>
+
+ lexgrog: Add test for multiple whatis definitions
+
+ * src/tests/lexgrog-2: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add lexgrog-2.
+
+2018-11-09 Colin Watson <cjwatson@debian.org>
+
+ lexgrog: Tidy up rules section
+
+ No functional change.
+
+ * src/lexgrog.l: Make more use of start condition scopes. Reindent
+ rules somewhat to make better use of vertical space.
+
+2018-11-03 Nikola Forró <nforro@redhat.com>
+
+ Fix several resource and memory leaks
+
+ * lib/decompress.c (decompress_zlib): Fix fd leak if gzdopen fails.
+ * lib/encodings.c (find_charset_locale): Free locale if setlocale fails.
+ * src/man.c (make_roff_command): Free fmt_prog.
+ * src/mandb.c (process_manpath): Free catpath if manpath is not a
+ directory.
+ * src/whatis.c (do_apropos): Free found_here.
+
+2018-10-27 enolp <enolp@softastur.org>
+
+ Add Asturian translation
+
+ * po/ast.po: New from Translation Project.
+ * po/LINGUAS: Add ast.
+ * man/THANKS: Add translator credit.
+
+2018-10-27 Pedro Albuquerque <palbuquerque73@gmail.com>
+
+ Update Portuguese manual page translation
+
+ * man/po4a/po/pt.po: Update from Translation Project.
+
+2018-10-21 Colin Watson <cjwatson@debian.org>
+
+ Add Portuguese manual page translation
+
+ * man/po4a/po/pt.po: New from Translation Project (thanks, Pedro
+ Albuquerque).
+ * configure.ac (AC_CONFIG_FILES): Add man/pt/Makefile.
+ * man/LINGUAS.po4a: Add pt.
+ * man/Makefile.am (DIST_SUBDIRS): Add pt.
+ * man/pt/Makefile.am, man/pt/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/pt.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add pt.
+ * man/THANKS: Add translator credit.
+ * .gitignore: Add man/pt/man1, man/pt/man5, and man/pt/man8.
+
+2018-10-21 Colin Watson <cjwatson@debian.org>
+
+ Switch more language lists to one-per-line format
+
+ * man/LINGUAS.po4a: Switch to one language code per line, so that we
+ have better diffs in future.
+ * man/Makefile.am (DIST_SUBDIRS): Likewise.
+ * man/po4a/cfg (po4a_langs): Likewise.
+
+2018-10-21 Pedro Albuquerque <palbuquerque73@gmail.com>
+
+ Add Portuguese translation
+
+ * po/pt.po: New from Translation Project.
+ * po/LINGUAS: Add pt.
+ * man/THANKS: Add translator credit.
+
+2018-10-21 Colin Watson <cjwatson@debian.org>
+
+ Switch po/LINGUAS to one-per-line format
+
+ * po/LINGUAS: Switch to one language code per line, so that we have
+ better diffs in future.
+
+2018-10-21 Chen Qi <Qi.Chen@windriver.com>
+
+ man-arg-config-file: fix to use config_file
+
+ * m4/man-arg-config-file.m4: Compute config_file_basename based on
+ config_file, not withval.
+
+2018-08-20 Colin Watson <cjwatson@debian.org>
+
+ Fail to configure if flex is needed but missing
+
+ Fixes Savannah bug #54541.
+
+ * configure.ac: Issue an error if AC_PROG_LEX didn't find a lexer
+ generator and either src/lexgrog.c or src/zsoelim.c is missing (as may
+ be the case when building from a git clone rather than a released
+ tarball).
+
+2018-08-02 Colin Watson <cjwatson@debian.org>
+
+ Fix warning from gcc -Wcast-function-type
+
+ This exposed the fact that errors from unlink in the cleanup path were
+ previously ignored. We now issue a warning in the same way that
+ commit_tmp_cat does.
+
+ * src/man.c (cleanup_unlink): New function.
+ (open_cat_stream, close_cat_stream, display_catman): Use cleanup_unlink
+ rather than an incorrect cast of unlink.
+
+2018-08-02 Colin Watson <cjwatson@debian.org>
+
+ Fix build with Berkeley DB
+
+ Fixes Savannah bug #54425.
+
+ * libdb/db_btree.c: Include <stdlib.h> for free.
+
+2018-07-27 Colin Watson <cjwatson@debian.org>
+
+ Update advertised file size
+
+ * docs/man-db.lsm (Primary-site): Update file size.
+
+2018-07-27 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.4.
+
+2018-07-27 Colin Watson <cjwatson@debian.org>
+
+ Work around Gnulib/gettext mismatch
+
+ The versions of gettext infrastructure files installed by gnulib-tool
+ don't necessarily match our configured AM_GNU_GETTEXT_VERSION, so we
+ need to fix things up in bootstrap.
+
+ * bootstrap.conf (gnulib_tool_option_extras): Set --po-base to gl/ref-po
+ rather than gnulib/po.
+ (bootstrap_post_import_hook): Merge temporary gl/ref-po directory into
+ gl/po.
+
+2018-07-27 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20180726
+
+ * bootstrap: Sync to Gnulib 900ca5c0b092e50f9f17329feea3fbfe2b6e2139.
+ * bootstrap.conf (GNULIB_REVISION): Set to
+ 900ca5c0b092e50f9f17329feea3fbfe2b6e2139.
+
+2018-07-18 Colin Watson <cjwatson@debian.org>
+
+ Distribute man/es/translator.add
+
+ * man/es/Makefile.am (EXTRA_DIST): Add translator.add.
+
+2018-07-16 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Improve ESET compatibility further
+
+ * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded,
+ then allow msgset (second argument 0) and msgsnd.
+ * NEWS: Document this.
+
+2018-07-15 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow some shared memory operations
+
+ These were previously only allowed when ESET File Security is in use,
+ but the Astrill VPN seems to require something similar, there are
+ doubtless other such preload hacks, and they're relatively harmless.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow shmat (third argument
+ SHM_RDONLY), shmctl (second argument IPC_STAT), shmdt, and shmget
+ regardless of preloads.
+ * NEWS: Document this.
+
+2018-06-08 Colin Watson <cjwatson@debian.org>
+
+ Check for external formatter in correct directory
+
+ Check for mandb_nfmt and mandb_tfmt in the manual page hierarchy as
+ documented, not in the current directory. This was broken by the
+ working-directory-handling changes in 2.8.3.
+
+ Reported by Josh Triplett. Fixes Debian bug #901007.
+
+ * src/man.c (NFMT_PROG, TFMT_PROG): Remove leading "./".
+ (make_roff_command): Refactor confusing #ifdef forest. Prefix dir to
+ TFMT_PROG/NFMT_PROG rather than looking in the current directory. Don't
+ look for an external formatter at all if dir is NULL.
+ * NEWS: Document this.
+
+2018-06-08 Colin Watson <cjwatson@debian.org>
+
+ Define an access(2) wrapper with clearer semantics
+
+ As usual for system calls, access(2) returns zero on success. However,
+ I generally think of it as "can we access this file in this way", where
+ boolean semantics would be more convenient, and find it too easy to
+ invert logic by accident when using the system call directly. Define a
+ CAN_ACCESS wrapper with boolean semantics.
+
+ * include/manconfig.h.in (CAN_ACCESS): New macro.
+ * lib/tempfile.c (path_search): Use CAN_ACCESS.
+ * src/catman.c (check_access): Likewise.
+ * src/filenames.c (make_filename): Likewise.
+ * src/man.c (make_roff_command, display): Likewise.
+ * src/ult_src.c (find_include): Likewise.
+ * src/whatis.c (use_grep): Likewise.
+
+2018-06-07 Felipe Castro <fefcas@gmail.com>
+
+ Update Esperanto translation
+
+ * po/eo.po: Update from Translation Project.
+
+2018-06-01 Francisco Javier F. Serrador <fserrador@gmail.com>
+
+ Update Spanish manual page translation
+
+ * man/po4a/po/es.po: Update from Translation Project.
+ * man/THANKS: Update translator credit.
+
+2018-05-29 Colin Watson <cjwatson@debian.org>
+
+ Add po4a-based Spanish manual page translation
+
+ This supersedes the previous whole-file translations, which had not been
+ properly updated in many years.
+
+ * man/po4a/po/es.po: New from Translation Project (thanks, Francisco
+ Javier Serrador).
+ * man/LINGUAS: Remove es.
+ * man/LINGUAS.po4a: Add es.
+ * man/es/Makefile.am (PO4A_LINGUA): Set to yes.
+ (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1.
+ (man8_MANS): Add man8/accessdb.8.
+ * man/es/man1/apropos.man1, man/es/man1/man.man1,
+ man/es/man1/manpath.man1, man/es/man1/whatis.man1,
+ man/es/man1/zsoelim.man1, man/es/man5/manpath.man5,
+ man/es/man8/catman.man8, man/es/man8/mandb.man8: Remove.
+ * man/es/translator.add: New file.
+ * man/po4a/Makefile.am (POFILES): Add po/es.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add es.
+ * man/THANKS: Update translator credit.
+ * .gitignore: Add man/es/man1, man/es/man5, and man/es/man8.
+
+2018-05-29 Colin Watson <cjwatson@debian.org>
+
+ Remove useless if-before-free tests
+
+ * lib/hashtable.c (plain_hashtable_free): Remove; this is precisely
+ equivalent to free.
+ * lib/hashtable.h (plain_hashtable_free): Remove.
+ * lib/orderfiles.c (order_files): Use free rather than
+ plain_hashtable_free.
+ * libdb/db_btree.c (btree_findkey): Likewise.
+
+ * lib/pathsearch.c (pathsearch, directory_on_path): Remove useless
+ if-before-free.
+ * libdb/db_lookup.c (free_mandata_elements): Likewise.
+ * src/check_mandirs.c (test_manfile, count_glob_matches): Likewise.
+ * src/descriptions.c (free_descriptions): Likewise.
+ * src/lexgrog_test.c (main): Likewise.
+ * src/man.c (display_filesystem, display_database, get_section_list):
+ Likewise.
+ * src/manp.c (add_system_manpath): Likewise.
+ * src/straycats.c (check_for_stray, straycats): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+
+2018-05-29 Colin Watson <cjwatson@debian.org>
+
+ Use Gnulib progname module
+
+ This lets us produce more accurate error messages when programs are
+ invoked with an absolute path.
+
+ * bootstrap.conf (gnulib_modules): Add progname.
+ * include/manconfig.h.in (program_name): Remove.
+ * src/accessdb.c (main): Call set_program_name rather than similar
+ hand-rolled code.
+ * src/catman.c (main): Likewise. Don't free program_name.
+ * src/globbing_test.c (main): Likewise.
+ * src/lexgrog_test.c (main): Likewise.
+ * src/man.c (main): Likewise. Don't free program_name.
+ * src/manconv_main.c (main): Likewise.
+ * src/mandb.c (main): Likewise. Don't free program_name.
+ * src/manpath.c (main): Likewise.
+ * src/tests/fspause.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+ * src/zsoelim_main.c (main): Likewise.
+
+ * src/man.c (manopt_to_env): Run program_name through base_name, since
+ that's no longer necessarily done up-front.
+ * src/whatis.c (main): Run program_name through base_name before
+ comparing it to APROPOS_NAME, since that's no longer necessarily done
+ up-front.
+
+2018-05-29 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20180527
+
+ * bootstrap.conf (GNULIB_URL): Remove.
+ (GNULIB_REVISION): Set to 90f289f249a266b1afb9c63e182f5d979d17df5f.
+ (gnulib_modules): Replace gettext with gettext-h.
+ (gnulib_tool_option_extras): Remove --no-cache-modules (accidental
+ leftover from earlier testing).
+ (local_gl_dir): Set to 'gnulib-local' to avoid confusion with 'gl' as
+ the local output directory. Remove 'rm -rf gl' hack, now superseded.
+ (buildreq): Bump minimum autopoint and gettext versions to 0.18.3,
+ matching previous change to configure.ac.
+ * configure.ac (AM_PROG_AR, LT_INIT): Move below gl_EARLY.
+ * patches/argp-domain.patch: Rebase.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove use of
+ @LOCALCHARSET_TESTS_ENVIRONMENT@, which is no longer needed by Gnulib.
+
+2018-05-28 Colin Watson <cjwatson@debian.org>
+
+ Switch to bootstrap
+
+ We no longer keep autogenerated files in git.
+
+ * .gitignore: Add **/Makefile, **/Makefile.in, /ABOUT-NLS, /aclocal.m4,
+ /build-aux, /config.h.in, /configure, /gl, /gnulib,
+ docs/INSTALL.autoconf, po/Makefile.in.in, po/Makevars, po/Rules-quot,
+ po/boldquot.sed, po/en@boldquot.header, po/en@quot.header,
+ po/insert-header.sin, po/quot.sed, and po/remove-potcdate.sin. Remove
+ docs/Makefile, gnulib/*, init/Makefile, init/systemd/Makefile,
+ lib/Makefile, libdb/Makefile, man/Makefile, man/*/Makefile,
+ manual/Makefile, po/Makefile, po/Makefile.in, src/Makefile,
+ src/tests/Makefile, and tools/Makefile.
+ * ABOUT-NLS, Makefile.in, aclocal.m4, autogen.sh, build-aux,
+ config.h.in, configure, docs/INSTALL.autoconf, docs/Makefile.in, gnulib,
+ init/Makefile.in, init/systemd/Makefile.in, lib/Makefile.in,
+ libdb/Makefile.in, man/Makefile.in, man/da/Makefile.in,
+ man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in,
+ man/id/Makefile.in, man/it/Makefile.in, man/ja/Makefile.in,
+ man/nl/Makefile.in, man/pl/Makefile.in, man/po4a/Makefile.in,
+ man/pt_BR/Makefile.in, man/ru/Makefile.in, man/sr/Makefile.in,
+ man/sv/Makefile.in, man/tr/Makefile.in, man/zh_CN/Makefile.in,
+ manual/Makefile.in, po/Makefile.in.in, po/Makevars, po/Rules-quot,
+ po/boldquot.sed, po/en@boldquot.header, po/en@quot.header,
+ po/insert-header.sin, po/quot.sed, po/remove-potcdate.sin,
+ src/Makefile.in, src/tests/Makefile.in, tools/Makefile.in: Remove.
+
+ * bootstrap, bootstrap.conf: New files.
+ * Makefile.am (GNULIB_PO, SUBDIRS, EXTRA_DIST, ACLOCAL_AMFLAGS): Refer
+ to gl/ rather than gnulib/ (gnulib/ now contains pristine source).
+ (EXTRA_DIST): Replace autogen.sh with bootstrap and bootstrap.conf.
+ Replace gnulib/argp-domain.patch with patches/argp-domain.patch. Add
+ patches/fdutimens-hurd.patch. Remove gnulib/m4/gnulib-cache.m4 and
+ gnulib/m4/gnulib-tool.m4.
+ * gnulib/argp-domain.patch: Rename to ...
+ * patches/argp-domain.patch: ... this. Update target paths.
+ * gnulib/fdutimens-hurd.patch: Rename to ...
+ * patches/fdutimens-hurd.patch: ... this. Update target paths.
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to 0.18.3, for
+ compatibility with current Automake.
+ (HAVE_GNULIB_PO, AC_CONFIG_FILES): Refer to gl/ rather than gnulib/.
+ * lib/Makefile.am (libman_la_CPPFLAGS, libman_la_LIBADD): Likewise.
+ * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise.
+ * src/Makefile.am (AM_CPPFLAGS, LIBMAN): Likewise.
+ * src/tests/Makefile.am (AM_CPPFLAGS, fspause_LDADD): Likewise.
+
+ * docs/HACKING: Describe new policy.
+ * release.sh: Call ./bootstrap rather than ./autogen.sh.
+
+2018-05-17 pan93412 <pan93412@gmail.com>
+
+ Add Traditional Chinese translation
+
+ * po/zh_TW.po: New from Translation Project.
+ * po/LINGUAS: Add zh_TW.
+ * man/THANKS: Add translator credit.
+
+2018-04-22 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow sched_getaffinity
+
+ This is used by xz-utils >= 5.2.3 if the --threads=0 option is in use
+ (perhaps via XZ_DEFAULTS or XZ_OPT).
+
+ Reported by Axel Rohde.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow sched_getaffinity.
+ * NEWS: Document this.
+
+2018-04-06 Colin Watson <cjwatson@debian.org>
+
+ Fix invalid man-db.conf with --disable-cache-owner
+
+ Fixes Savannah bug #53575.
+
+ * m4/man-arg-cache-owner.m4: Set and substitute cache_top_owner.
+ * init/systemd/man-db.conf.in: Substitute cache_top_owner rather than
+ man_owner.
+ * init/systemd/Makefile.am (man-db.conf): Likewise.
+ * NEWS: Document this.
+
+2018-04-06 Colin Watson <cjwatson@debian.org>
+
+ Remove redundant debugging information
+
+ * lib/decompress.c (decompress_open): Remove filename from
+ decompress_zlib command name. pipeline_dump already includes this
+ information from want_infile.
+
+2018-04-06 Colin Watson <cjwatson@debian.org>
+
+ Rely on decompressors reading from stdin
+
+ This works better with downstream AppArmor confinement of decompressors.
+
+ * lib/decompress.c (decompress_open): Don't pass filename on
+ decompressor command lines.
+ * NEWS: Document this.
+
+2018-04-05 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.3.
+
+2018-04-05 Colin Watson <cjwatson@debian.org>
+
+ Suppress spurious gettext headers in --help output
+
+ Some of man-db's commands have post-options help text but no pre-options
+ help text. Unfortunately, the way this works in argp (separating the
+ two sections using a '\v' character) means that this results in argp
+ trying to translate the empty string, which produces gettext catalog
+ headers. The easiest way to suppress this odd behaviour seems to be to
+ use a help filter function, so do that.
+
+ Reported by Rafael Fontenelle.
+
+ * src/accessdb.c (help_filter): Return NULL for ARGP_KEY_HELP_PRE_DOC.
+ * src/lexgrog_text.c (help_filter): New function.
+ (argp): Add help_filter.
+ * src/whatis.c (help_filter): New function.
+ (apropos_argp): Add help_filter.
+ * NEWS: Document this.
+
+2018-04-05 Colin Watson <cjwatson@debian.org>
+
+ Fix compiler warnings on x32
+
+ tv_nsec is __syscall_slong_t == long long there, so we need a cast.
+
+ * libdb/db_lookup.c (dbprintf): Cast tv_nsec to long for %ld format.
+ * libdb/db_store.c (make_content): Likewise.
+ * src/check_mandirs.c (testmandirs, update_db): Likewise.
+ * src/man.c (maybe_update_file): Likewise.
+
+2018-04-04 Colin Watson <cjwatson@debian.org>
+
+ Fix broken test
+
+ * src/tests/man-8: Fix expected output to account for recent change to
+ locale_macros.
+
+2018-04-04 Colin Watson <cjwatson@debian.org>
+
+ man: Only change directory in child processes
+
+ This avoids failures due to being unable to change back to the original
+ working directory.
+
+ Fixes Debian bug #894792.
+
+ * gnulib/m4/gnulib-cache.m4 (gl_MODULES): Remove save-cwd.
+ * src/man.c (make_display_command): Remove now-unnecessary code to run
+ the pager in the original working directory.
+ (chdir_commands): New function.
+ (format_display): Change directory just for format_cmd and disp_cmd
+ rather than in-process.
+ (display): Change directory just for format_cmd rather than in-process.
+ (main): Remove now-unnecessary code to save and restore the current
+ working directory.
+ * NEWS: Document this.
+
+2018-04-04 Colin Watson <cjwatson@debian.org>
+
+ Upgrade config.guess/config.sub
+
+ * build-aux/config.guess: Upgrade to 2018-02-24.
+ * build-aux/config.sub: Upgrade to 2018-02-22.
+
+2018-04-01 Colin Watson <cjwatson@debian.org>
+
+ Fix locale_macros version check for groff RCs
+
+ Thanks to Werner LEMBERG.
+
+ * src/man.c (locale_macros): Tolerate groff release candidates.
+ * NEWS: Document this.
+
+2018-03-30 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow sibling architectures on x86 etc.
+
+ Fixes Debian bug #891267.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow sibling architectures on
+ x86/x86_64/x32.
+ * NEWS: Document this.
+
+2018-03-17 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Tighten up storage classes
+
+ * lib/sandbox.c (make_seccomp_filter, _sandbox_load): Declare as static.
+
+2018-03-17 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow kill and tgkill outright
+
+ This is unfortunate but unavoidable: groff uses kill to explicitly pass
+ on SIGPIPE to its child processes, and we can't do any more
+ sophisticated filtering in seccomp.
+
+ Based on a patch by Paul Wise. Fixes Debian bug #892309.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow kill and tgkill
+ unconditionally.
+ (adjust_seccomp_filter): Remove.
+ (_sandbox_load): Remove call to adjust_seccomp_filter.
+ * NEWS: Document this.
+
+2018-03-17 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow madvise
+
+ Reported by Tobias Klausmann.
+
+ * lib/sandbox.c (make_seccomp_filter): Allow madvise.
+ * NEWS: Document this.
+
+2018-03-02 Francisco Javier Serrador <fserrador@gmail.com>
+
+ Update Spanish translation
+
+ * po/es.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2018-02-28 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.2.
+
+2018-02-28 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Handle qemu-user returning EFAULT
+
+ Fixes Debian bug #891109.
+
+ * lib/sandbox.c (_sandbox_load): Interpret EFAULT from seccomp_load as
+ meaning that seccomp is unavailable, since this can be returned by some
+ versions of qemu-user.
+ * NEWS: Document this.
+
+2018-02-28 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Add some more ESET affordances
+
+ * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded,
+ then allow some shared memory calls and checking for the existence of
+ other processes.
+
+2018-02-25 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Work around snoopy
+
+ Fixes Debian bug #890861.
+
+ * lib/sandbox.c (search_ld_preload): Cache /etc/ld.so.preload contents
+ between calls.
+ (make_seccomp_filter): Allow some socket-related system calls if
+ libsnoopy.so is preloaded.
+
+2018-02-25 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Generalise libesets_pac.so check slightly
+
+ * lib/sandbox.c (make_seccomp_filter): LD_PRELOAD or /etc/ld.so.preload
+ can just contain "libesets_pac.so" without an explicit path, so make the
+ search slightly more permissive.
+
+2018-02-20 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Handle /etc/ld.so.preload
+
+ At least ESET File Security may be configured using /etc/ld.so.preload
+ rather than the LD_PRELOAD environment variable, so unfortunately we
+ need to check that too.
+
+ * lib/sandbox.c (search_ld_preload): New function, handling both
+ LD_PRELOAD and /etc/ld.so.preload.
+ (can_load_seccomp, make_seccomp_filter): Use search_ld_preload.
+
+2018-02-19 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Work around ESET File Security
+
+ This is a proprietary antivirus program, so this is only a best guess
+ from strace output. The choices are to disable the sandbox entirely or
+ to allow a few socket-related system calls if this antivirus program is
+ detected, and the latter is probably slightly better.
+
+ Reported by John Sivak.
+
+ * lib/sandbox.c (make_seccomp_filter): If LD_PRELOAD contains the
+ substring "/libesets_pac.so", then allow some socket-related system
+ calls so that the preload wrapper can talk to its daemon.
+ * NEWS: Document this.
+
+2018-02-19 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow ioctl(fd, TIOCGWINSZ)
+
+ Patch from the anonymous reporter of
+ https://savannah.nongnu.org/bugs/?53183 (though I think is obvious for
+ copyright purposes given knowledge of the failing system call).
+
+ Fixes Savannah bug #53183 (maybe).
+
+ * lib/sandbox.c (make_seccomp_filter): Allow ioctl(fd, TIOCGWINSZ).
+ * NEWS: Document this.
+
+2018-02-14 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow kill/tgkill for current process
+
+ xz is multithreaded, so the threading library may need to use tgkill to
+ pass signals between threads, for example when it receives SIGPIPE.
+
+ Fixes Savannah bug #53143.
+
+ * lib/sandbox.c (SC_ALLOW, SC_ALLOW_ARG_1, SC_ALLOW_ARG_2): Move macro
+ definitions out of make_seccomp_filter.
+ (adjust_seccomp_filter): New function.
+ (sandbox_load): Call adjust_seccomp_filter.
+ * NEWS: Document this.
+
+2018-02-09 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.1.
+
+2018-02-09 Colin Watson <cjwatson@debian.org>
+
+ Use HTTPS URLs where possible
+
+ * Makefile.am, NEWS, README, docs/HACKING, docs/INSTALL.quick,
+ lib/sandbox.c, manual/misc.me, src/check_mandirs.c, src/man.c,
+ src/manconv.c, src/tests/man-1, src/tests/man-2, src/tests/mandb-2,
+ src/tests/mandb-4, src/tests/mandb-5, src/tests/zsoelim-1: Replace
+ http:// links with https:// equivalents.
+ * docs/HACKING: Replace git:// link with an https:// equivalent.
+
+2018-02-09 Colin Watson <cjwatson@debian.org>
+
+ Chase some redirects
+
+ * NEWS: Link to https://bazaar.canonical.com/ rather than
+ http://bazaar-vcs.org/.
+ * man/fr/translator.add: Link to https://po4a.org/ rather than
+ http://po4a.alioth.debian.org/.
+
+2018-02-08 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Allow mremap
+
+ * lib/sandbox.c (make_seccomp_filter): Allow mremap, which may be used
+ by iconv when reading files, depending on libc configuration.
+ * NEWS: Document this.
+
+2018-02-07 Lars Wendler <polynomial-c@gentoo.org>
+
+ Change libseccomp logic to not be automagic only
+
+ Introduce --without-libseccomp configure option so that users can
+ disable seccomp even if libseccomp is available on the system.
+
+ The default is unchanged from before this patch. If no
+ --with(out)-libseccomp has been given on the command line, the macro
+ looks for presence of libseccomp and uses that if found.
+
+ * m4/man-libseccomp.m4: Guard pkg-config test with a command-line
+ option.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document changes since 2.8.0.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ Reduce number of MAN_OWNER ifdefs
+
+ * lib/security.c (init_security, running_setuid): Define
+ unconditionally, with stub behaviour if MAN_OWNER is undefined.
+ * lib/security.h (get_man_owner): Only declare prototype if MAN_OWNER is
+ defined.
+ * src/check_mandirs.c (chown_if_possible) [!MAN_OWNER]: Mark path
+ argument as unused.
+ * src/lexgrog_test.c (main): Call init_security unconditionally.
+ * src/man.c (main): Likewise.
+ * src/manconv_client.c (manconv_pre_exec): Define unconditionally.
+ (add_manconv): Simplify, since running_setuid is now always defined.
+ * src/mandb.c (main): Call init_security unconditionally. Use
+ get_man_owner rather than equivalent inline code.
+ * src/manp.c (get_def): Define unconditionally.
+ * src/manp.h (get_def): Drop macro alternative.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ Fix manconv under seccomp when man is setuid
+
+ We must drop privileges before loading the sandbox.
+
+ Reported by Lars Wendler.
+
+ * src/manconv_client.c (manconv_pre_exec): New function.
+ (manconv_stdin): Move setuid hack to ...
+ (add_manconv): ... here, now implemented using a custom pre-exec hook.
+ We no longer have a fall-through if dropping privileges fails, since
+ that's now harder to do and wasn't really necessary in the first place.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ Refactor do_system_drop_privs
+
+ Now that we have pipecmd_pre_exec, this can be simplified quite a bit.
+
+ * lib/security.c (drop_privs): New function.
+ (do_system_drop_privs_child, do_system_drop_privs): Remove.
+ * lib/security.h (drop_privs): Add prototype.
+ (do_system_drop_privs): Remove prototype.
+ * src/man.c (make_browser): Add drop_privs pre-exec hook to browser
+ command.
+ (format_display): Call browser using pipeline_run rather than
+ do_system_drop_privs, since it now has a pre-exec hook to drop
+ privileges.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ Refactor sandbox attachment to be more composable
+
+ The sandbox interface now exposes the necessary load/free primitives,
+ and callers use them directly with pipecmd_pre_exec. This allows the
+ sandbox to be composed with other pre-exec hooks.
+
+ * lib/sandbox.c (man_sandbox_op, sandbox_attach,
+ sandbox_attach_permissive): Remove.
+ (sandbox_load): Rename to ...
+ (_sandbox_load): ... this.
+ (sandbox_load, sandbox_load_permissive): New functions.
+ (sandbox_free): Expect a man_sandbox * rather than a man_sandbox_op *.
+ * lib/sandbox.h: Update prototypes.
+
+ * lib/decompress.c (decompress_open, decompress_fdopen): Update sandbox
+ attachment calls.
+ * src/lexgrog.l (find_name): Likewise.
+ * src/man.c (add_col, make_roff_command, add_output_iconv,
+ make_display_command, open_cat_stream, display_catman): Likewise.
+ * src/manconv_client.c (add_manconv): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/whatis.c (use_grep): Likewise.
+
+2018-02-07 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Fix typo in 2.6.5 notes
+
+2018-02-05 Colin Watson <cjwatson@debian.org>
+
+ Fix seccomp sandbox build on Linux/POWER
+
+ * lib/sandbox.c [HAVE_LIBSECCOMP]: Include <termios.h>, since some
+ architectures need this for TCGETS as well as <sys/ioctl.h>.
+
+2018-02-04 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.0.
+
+2018-02-04 Colin Watson <cjwatson@debian.org>
+
+ Allow ioctl (..., TCGETS, ...)
+
+ * lib/sandbox.c (make_seccomp_filter): Allow ioctl (..., TCGETS, ...) in
+ non-permissive mode (ioctl in general is already allowed in permissive
+ mode).
+
+2018-02-04 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2018-02-03 Rafael Fontenelle <rafaelff@gnome.org>
+
+ Update Brazilian Portuguese translations
+
+ * po/pt_BR.po, man/po4a/po/pt_BR.po: Update from Translation Project.
+ * man/THANKS: Update translator email address.
+
+2018-01-27 Joe Hansen <joedalton2@yahoo.dk>
+
+ Update Danish manual page translation
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2018-01-25 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2018-01-23 Yuri Kozlov <yuray@komyakino.ru>
+
+ Update Russian translations
+
+ * po/ru.po, man/po4a/po/ru.po: Update from Translation Project.
+
+2018-01-23 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+2018-01-23 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish manual page translation
+
+ * man/po4a/po/sv.po: Update from Translation Project.
+
+2018-01-23 Rafael Fontenelle <rffontenelle@gmail.com>
+
+ Update Brazilian Portuguese manual page translation
+
+ * man/po4a/po/pt_BR.po: Update from Translation Project.
+
+2018-01-22 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.0-pre2.
+
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+2018-01-21 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.0-pre1.
+
+2018-01-16 Colin Watson <cjwatson@debian.org>
+
+ Minor style cleanups
+
+ * src/man.c (sh_lang_first_word, main): Minor style cleanups.
+
+2018-01-16 Colin Watson <cjwatson@debian.org>
+
+ NEWS: Document previous commit.
+
+2018-01-16 Neven Sajko <nsajko@gmail.com>
+
+ Add fallback pager if the compile-time default is not executable
+
+ A problem with man-db's man is that in the case of the user giving no
+ configuration via conf files, argv, or environment variables; man
+ defaults to less as pager (PAGER); but less may not be present on the
+ system. Sure, other pagers may be selected in aforementioned ways, but
+ then the defaults are overridden, making that unsuitable for
+ install-time configuration.
+
+ This patch makes man check (if that becomes relevant) if PAGER is
+ executable, further defaulting to cat (which is basically ubiquitous,
+ being in original Unix, POSIX, and GNU Coreutils) if it is not. Thus
+ the poor beginner Unix users without less installed will be able to
+ get man pages.
+
+ * src/man.c (sh_lang_first_word): New function.
+ (main): Skip configured pager if it is not executable.
+ * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT):
+ Document fallback to cat.
+ * man/replace.sin.in: Substitute %cat%.
+
+2018-01-16 Colin Watson <cjwatson@debian.org>
+
+ Fix a segfault in 'man -D --help'
+
+ Reported by Jiri Kucera.
+
+ * src/man.c (init_html_pager): New function.
+ (parse_opt): Call init_html_pager rather than setting html_pager to
+ NULL.
+ (help_filter): Assert that browser is non-NULL.
+ (main): Call init_html_pager rather than doing the same thing directly.
+ * NEWS: Document this.
+
+2018-01-03 Colin Watson <cjwatson@debian.org>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project (trivial).
+
+2018-01-03 Colin Watson <cjwatson@debian.org>
+
+ Upgrade config.guess/config.sub
+
+ * build-aux/config.guess: Upgrade to 2017-11-07.
+ * build-aux/config.sub: Upgrade to 2017-11-23.
+
+2018-01-03 Colin Watson <cjwatson@debian.org>
+
+ sandbox: Cope with missing CONFIG_SECCOMP_FILTER
+
+ * lib/sandbox.c (gripe_seccomp_filter_unavailable): New function.
+ (can_load_seccomp): Return early if seccomp filtering has already been
+ detected as unavailable.
+ (sandbox_load): If seccomp_load returns an EINVAL error, assume that the
+ running kernel doesn't support seccomp filtering and emit a debugging
+ message rather than failing.
+
+2018-01-03 Colin Watson <cjwatson@debian.org>
+
+ Allow sync_file_range2 syscall
+
+ * lib/sandbox.c (make_seccomp_filter): Add sync_file_range2.
+
+2018-01-03 Colin Watson <cjwatson@debian.org>
+
+ Fix seccomp sandbox on Linux/ARM
+
+ * lib/sandbox.c (make_seccomp_filter): Add arm_fadvise64_64 and
+ arm_sync_file_range.
+
+2017-12-03 Colin Watson <cjwatson@debian.org>
+
+ Use more conventional bullets in documentation
+
+ * docs/INSTALL.quick, NEWS, README: Use "*" for bullet points instead of
+ "o".
+
+2017-12-03 Colin Watson <cjwatson@debian.org>
+
+ Confine most untrusted data handling using seccomp
+
+ Fixes Debian bug #877199.
+
+ * configure.ac: Require libpipeline >= 1.5.0. Call MAN_LIBSECCOMP.
+ * docs/INSTALL.quick: Bump minimum libpipeline version to 1.5.0. List
+ libseccomp as recommended.
+ * lib/Makefile.am (libman_la_CPPFLAGS): Add $(libseccomp_CFLAGS).
+ (libman_la_SOURCES): Add sandbox.c and sandbox.h.
+ (libman_la_LDFLAGS): Add $(libseccomp_LIBS).
+ * lib/sandbox.c: New file.
+ * lib/sandbox.h: New file.
+ * m4/man-libseccomp.m4: New file.
+
+ * src/man.c (set_term): Check that process ID matches original before
+ calling tcsetattr.
+ (get_term): Record original process ID to work around an arguable bug in
+ pipecmd_exec.
+
+ * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
+ (main), src/mandb.c (main), src/zsoelim_main.c (main): Initialise
+ sandbox.
+
+ * lib/decompress.c (decompress_open, decompress_fdopen): Attach sandbox
+ to decompression commands.
+ * src/lexgrog.l (find_name): Attach sandbox to 'col'.
+ * src/man.c (add_col): Attach sandbox to 'col'.
+ (make_roff_command): Attach sandbox to 'zsoelim' and to groff-related
+ programs.
+ (add_output_iconv): Attach sandbox to 'iconv'.
+ (make_display_command): Attach sandbox to 'tr'.
+ (open_cat_stream, display_catman): Attach sandbox to compression
+ commands.
+ * src/manconv_client.c (add_manconv): Attach sandbox to manconv_stdin.
+ * src/straycats.c (check_for_stray): Attach sandbox to 'col'.
+ * src/whatis.c (use_grep): Attach sandbox to 'grep'.
+
+ * src/accessdb.c, src/catman.c, src/globbing_test.c, src/manpath.c:
+ Define stub sandbox variable.
+
+ * docs/NEWS: Document this.
+
+2017-12-02 Colin Watson <cjwatson@debian.org>
+
+ Document more installation requirements
+
+ * docs/INSTALL.quick: List a database library as required, and zlib as
+ recommended.
+
+2017-11-22 Colin Watson <cjwatson@debian.org>
+
+ Remove Easter egg entirely
+
+ Six years is a reasonable shelf life for a joke, but I think its time
+ has passed now.
+
+ * src/man.c (main): Remove Easter egg.
+
+2017-11-21 Philipp Gesang <phg@phi-gamma.net>
+
+ Add section 0 to defaults
+
+ m4/man-arg-sections.m4: Add 0 (zero) to the default list of sections as
+ advertised in ``configure --help``.
+
+ Cf. commit f3739b9bbde27c702c911ce8a511a499705a25f7
+
+2017-11-21 Colin Watson <cjwatson@debian.org>
+
+ Stop Easter egg interfering with non-error cases
+
+ * src/man.c (main): Restrict Easter egg to the case where 'man' is run
+ without any options or arguments at all (which isn't useful for anything
+ else), not 'man -w' (which is).
+
+ https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030
+
+2017-11-21 Colin Watson <cjwatson@debian.org>
+
+ Fix formatting error in Simplified Chinese translation
+
+ * man/po4a/po/zh_CN.po: Correct formatting of exit(3tcl) references.
+
+2017-11-16 Boyuan Yang <073plan@gmail.com>
+
+ Update Simplified Chinese translations
+
+ * po/zh_CN.po, man/po4a/po/zh_CN.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2017-11-13 Colin Watson <cjwatson@debian.org>
+
+ Fix docs for minimum libpipeline requirement
+
+ * docs/INSTALL.quick: Bump minimum libpipeline version to 1.4.0.
+
+2017-07-17 Colin Watson <cjwatson@debian.org>
+
+ Fix formatting error in Turkish translation
+
+ * man/po4a/po/tr.po: Translate "\\e-" as itself rather than as "\\(e-".
+
+2017-07-16 Colin Watson <cjwatson@debian.org>
+
+ Improve --with-systemdtmpfilesdir default
+
+ * m4/man-arg-systemdtmpfilesdir.m4: Get tmpfiles directory location from
+ pkg-config.
+ * configure.ac: Call PKG_PROG_PKG_CONFIG early to avoid problems with
+ conditional use of PKG_* macros.
+
+2017-07-11 Colin Watson <cjwatson@debian.org>
+
+ Add Turkish manual page translation
+
+ * man/po4a/po/tr.po: New from Translation Project (thanks, Volkan Gezer
+ and Mesutcan Kurt).
+ * configure.ac (AC_CONFIG_FILES): Add man/tr/Makefile.
+ * man/LINGUAS.po4a: Add tr.
+ * man/Makefile.am (DIST_SUBDIRS): Add tr.
+ * man/tr/Makefile.am, man/tr/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/tr.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add tr.
+ * man/THANKS: Add translator credit.
+ * .gitignore: Add man/tr/man1, man/tr/man5, and man/tr/man8.
+
+2017-07-10 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document changes since 2.7.6.1.
+
+2017-07-10 Colin Watson <cjwatson@debian.org>
+
+ gnulib: Import memmem module
+
+ Needed to make the previous commit portable.
+
+2017-07-10 Colin Watson <cjwatson@debian.org>
+
+ Fix preprocessor handling after insertions
+
+ If man has added prefixes to a page to handle such things as disabling
+ hyphenation, then it also needs to take account of that when looking for
+ a preprocessor line at the start of the page.
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #867857.
+
+ * src/man.c (get_preprocessors_from_file): Skip over as many blocks
+ ending with an .lf macro as there are prefixes.
+ (get_preprocessors): Pass the number of prefixes through to
+ get_preprocessors_from_file.
+ (make_roff_command): Take pp_string as an argument rather than
+ dbfilters; callers should now call get_preprocessors themselves.
+ (display): Rename seq_ncmds to prefixes. Call get_preprocessors before
+ calling make_roff_command.
+
+2017-07-10 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.15.1.
+
+2017-07-10 Colin Watson <cjwatson@debian.org>
+
+ Handle \(en escapes in NAME section
+
+ * src/lexgrog.l (MAN_NAME): Treat "\(en" as another synonym for "\-",
+ and thus as a separator.
+
+2017-04-08 Volkan Gezer <volkangezer@gmail.com>
+
+ Update Turkish translation
+
+ * po/tr.po: Update from Translation Project.
+
+2017-04-04 Volkan Gezer <volkangezer@gmail.com>
+
+ Add Turkish translation
+
+ * po/tr.po: New from Translation Project.
+ * po/LINGUAS: Add tr.
+ * man/THANKS: Add translator credit.
+
+2017-01-29 Felipe Castro <fefcas@gmail.com>
+
+ Update Esperanto translation
+
+ * po/eo.po: Update from Translation Project.
+
+2017-01-07 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish translation
+
+ * po/sv.po: Update from Translation Project.
+
+2017-01-04 Colin Watson <cjwatson@debian.org>
+
+ Add Brazilian Portuguese manual page translation
+
+ * man/po4a/po/pt_BR.po: New from Translation Project (thanks, Rafael
+ Fontenelle).
+ * configure.ac (AC_CONFIG_FILES): Add man/pt_BR/Makefile.
+ * man/LINGUAS.po4a: Add pt_BR.
+ * man/Makefile.am (DIST_SUBDIRS): Add pt_BR.
+ * man/pt_BR/Makefile.am, man/pt_BR/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/pt_BR.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add pt_BR.
+ * man/THANKS: Add translator credit.
+ * .gitignore: Add man/pt_BR/man1, man/pt_BR/man5, and man/pt_BR/man8.
+
+2016-12-28 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish manual page translation
+
+ * man/po4a/po/sv.po: Update from Translation Project.
+
+2016-12-23 David Prévot <david@tilapin.org>
+
+ Update French manual page translation
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+2016-12-23 David Prévot <david@tilapin.org>
+
+ Update French translation
+
+ * po/fr.po: Update from Translation Project.
+
+2016-12-22 Robert Luberda <robert@debian.org>
+
+ Update Polish manual page translation
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+2016-12-22 Robert Luberda <robert@debian.org>
+
+ Update Polish translation
+
+ * po/pl.po: Update from Translation Project.
+
+2016-12-19 Colin Watson <cjwatson@debian.org>
+
+ Add Serbian manual page translation
+
+ * man/po4a/po/sr.po: New from Translation Project (thanks, Мирослав
+ Николић).
+ * configure.ac (AC_CONFIG_FILES): Add man/sr/Makefile.
+ * man/LINGUAS.po4a: Add sr.
+ * man/Makefile.am (DIST_SUBDIRS): Add sr.
+ * man/sr/Makefile.am, man/sr/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/sr.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add sr.
+ * man/THANKS: Add translator credit.
+ * .gitignore: Add man/sr/man1, man/sr/man5, and man/sr/man8.
+
+2016-12-19 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Update Serbian translation
+
+ * po/sr.po: Update from Translation Project.
+
+2016-12-13 Joe Hansen <joedalton2@yahoo.dk>
+
+ Update Danish manual page translation
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2016-12-13 Colin Watson <cjwatson@debian.org>
+
+ Generate tmpfiles snippet based on cache owner
+
+ man-db.conf should honour --enable-cache-owner rather than hardcoding
+ "man".
+
+ * init/systemd/man-db.conf: Rename to ...
+ * init/systemd/man-db.conf.in: ... this. Replace "man" with
+ "@man_owner@".
+ * init/systemd/Makefile.am: Generate man-db.conf at build time.
+ * .gitignore: Add init/systemd/man-db.conf.
+
+2016-12-13 Colin Watson <cjwatson@debian.org>
+
+ Fix locale macro loading for Chinese
+
+ The intent was always that we should load the macro file corresponding
+ to just the language part of the page's locale, and the debug output
+ agreed with this, but the actual implementation did not. Fix this.
+
+ See: https://savannah.gnu.org/bugs/?44941
+
+ * src/man.c (display): Pass bits.language rather than page_lang to
+ locale_macros. Adjust memory allocation.
+
+2016-12-13 Colin Watson <cjwatson@debian.org>
+
+ Rename SECURE_MAN_UID to MAN_OWNER
+
+ The latter had always been defined to the former anyway, and now that
+ the cache owner can be changed without actually installing setuid the
+ latter is more descriptive.
+
+ * m4/man-arg-cache-owner.m4: Define MAN_OWNER rather than
+ SECURE_MAN_UID. Update all users.
+ * include/manconfig.h.in (MAN_OWNER): Remove definition.
+
+2016-12-13 Colin Watson <cjwatson@debian.org>
+
+ Mark some parts of .TH sections as untranslatable
+
+ * man/po4a/Locale/Po4a/Manext.pm (translate): Don't translate anything
+ matching /^%.*%$/ or /^[A-Z]+$/ in .TH sections.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+2016-12-13 Tianze Wang <zwpwjwtz@126.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+2016-12-13 Trần Ngọc Quân <vnwildman@gmail.com>
+
+ Update Vietnamese translation
+
+ * po/vi.po: Update from Translation Project.
+
+2016-12-13 Colin Watson <cjwatson@debian.org>
+
+ Correct syntax of Danish manual page translation
+
+ * man/po4a/po/da.po: Fix a couple of font specifications.
+
+2016-12-13 Rafael Fontenelle <rffontenelle@gmail.com>
+
+ Update Brazilian Portuguese translation
+
+ * po/pt_BR.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+2016-12-13 Joe Hansen <joedalton2@yahoo.dk>
+
+ Update Danish manual page translation
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2016-12-12 Joe Hansen <joedalton2@yahoo.dk>
+
+ Update Danish translation
+
+ * po/da.po: Update from Translation Project.
+
+2016-12-12 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2016-12-12 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German translation
+
+ * po/de.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+2016-12-12 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.6.1.
+
+2016-12-12 Colin Watson <cjwatson@debian.org>
+
+ Correct installation of Swedish manual pages
+
+ * man/sv/Makefile.am (LINGUA): Set to sv, not nl.
+ * NEWS: Document this.
+
+2016-12-12 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document previous change.
+
+2016-12-12 Colin Watson <cjwatson@debian.org>
+
+ Don't chmod CACHEDIR.TAG if it doesn't exist
+
+ The containing directory might reasonably not exist. Fixes Debian
+ bug #847810.
+
+ * src/mandb.c (mandb): Only chown/chmod CACHEDIR.TAG if it exists.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.6.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Fix systemd tmpfiles group/perms of /var/cache/man
+
+ * init/systemd/man-db.conf: Change mode to 0755 and group to man.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Fix Polish mandb(8) "cannot adjust line" warnings
+
+ * man/man8/mandb.man8 (DATABASE CACHES): Set a width of 20em for the
+ "Type" column.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Drop documentation of gdbm < 1.6
+
+ gdbm 1.6 was released in 1993; it's no longer necessary to document
+ mandb's behaviour with older versions.
+
+ * man/man8/mandb.man8 (DATABASE CACHES): Remove "GNU gdbm v < 1.6" row.
+ Simplify "GNU gdbm v >= 1.6" to "GNU gdbm". Update all translations.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Fix table rendering with po4a 0.47
+
+ * man/po4a/Locale/Po4a/Manext.pm (initialize): Drop unused assignment.
+ (shiftline, pushline): Pass through to superclass if po4a version >=
+ 0.47.
+ (translate): With po4a >= 0.47, don't process text blocks since po4a now
+ does that, but handle @-separation of columns and remove trailing
+ newlines from translatable strings.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update (line
+ numbers only).
+ * NEWS: Document this.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Fix distcheck following cache-owner/setuid changes
+
+ We previously ignored chown failures on "make install", but that's not
+ really correct. Instead, configure with --disable-setuid during
+ distcheck.
+
+ * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add --disable-setuid.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * po/man-db.pot, po/*.po: Update.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+2016-12-11 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document changes since 2.7.5.
+
+2016-12-11 Mihail Konev <k.mvc@ya.ru>
+
+ src/tests: Use /tmp for temporary directories
+
+ Reduces disk reads/writes made by 'make check -C src'.
+
+ Fall back to ./tmp-* if 'mktemp -d' fails.
+
+2016-12-10 Colin Watson <cjwatson@debian.org>
+
+ Eliminate dangerous setgid-root directories
+
+ man-db has created its cache directories as setgid root for nearly 20
+ years. This seems to have originated in https://bugs.debian.org/26002.
+ However, this has some dangerous consequences, such as:
+
+ http://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/
+
+ It seems best to arrange for cache files and directories to be man:man
+ rather than man:root. To do this reliably, as well as adjusting various
+ chown and chmod calls, we make man and mandb be setgid man as well as
+ setuid man (except in the --disable-setuid case). This is a much
+ simpler and safer solution to the original problem, and doesn't
+ introduce any interesting new privilege since the man group's only real
+ purpose is to be the man user's primary group and nothing in cache
+ directories is group-writeable.
+
+ * configure.ac (AC_CHECK_FUNCS): Add lchown.
+ * lib/security.c (init_security): Record initial real and effective
+ group IDs as well as user IDs.
+ (drop_effective_privs, regain_effective_privs): Update gid.
+ * lib/xchown.c (xlchown) [HAVE_LCHOWN]: New function.
+ * lib/xchown.c (xlchown) [HAVE_LCHOWN]: Add prototype.
+ * m4/man-arg-setuid.m4: Set man_mode to 6755 rather than 4755 in the
+ --enable-setuid case.
+ * src/Makefile.am (install-exec-hook): Check for man_mode being 6755
+ rather than 4755. Set the group of man and mandb as well as their
+ owner.
+ * src/check_mandirs.c (chown_if_possible): New function. This is
+ somewhat more careful than previous implementations, changes the group
+ as well as the user if possible, and prefers lchown if it is available.
+ (mkcatdirs): Drop S_ISGID from cat directories. Use chown_if_possible.
+ (fix_permissions, fix_permissions_tree): New functions to remove setgid
+ bit from existing cat directories.
+ (testmandirs): Call fix_permissions_tree.
+ * src/check_mandirs.h (chown_if_possible): Add prototype.
+ * src/man.c (commit_tmp_cat): Set cat file group as well as owner.
+ * src/mandb.c (check_chown): Remove.
+ (do_chown): Stop taking a uid parameter. Use chown_if_possible.
+ (mandb): Use chown_if_possible for CACHEDIR.TAG. Set ownership and
+ permissions of CACHEDIR.TAG even if it already exists.
+ (process_manpath): Set ownership of database files even if they have not
+ been changed.
+
+2016-12-10 Colin Watson <cjwatson@debian.org>
+
+ Make --disable-cache-owner imply --disable-setuid
+
+ * m4/man-arg-setuid.m4: Set man_mode="755" if --disable-cache-owner was
+ given and neither --enable-setuid nor --disable-setuid was given.
+
+2016-12-10 Colin Watson <cjwatson@debian.org>
+
+ Update manual for cache-owner/setuid changes
+
+ * manual/intro.me (Arguments to configure): Add --enable-cache-owner and
+ --disable-cache-owner. Remove --enable-setuid[=ARG]. Adjust
+ description of --disable-setuid.
+ * manual/misc.me (Modes of operation): Add --disable-cache-owner to the
+ non-setuid modes. Mention --enable-setuid rather than
+ --enable-setuid=USER.
+ * README (Non-generic arguments to configure): Update.
+
+2016-12-10 Colin Watson <cjwatson@debian.org>
+
+ Allocate dbpaths on the heap rather than the stack
+
+ process_manpath's stack may have gone out of scope by the time cleanup
+ functions are called.
+
+ * src/mandb.c (cleanup): Free dbpaths.
+ (process_manpath): Allocate dbpaths on the heap.
+
+2016-12-10 Colin Watson <cjwatson@debian.org>
+
+ Handle cleanup stack more safely
+
+ If push_cleanup was called unexpectedly between a
+ push_cleanup/pop_cleanup pair, then the pop_cleanup would remove the
+ wrong cleanup function and chaos could ensue. Avoid this by being more
+ precise about which cleanup function should be popped.
+
+ * lib/cleanup.c (pop_cleanup): Take "fun" and "arg" arguments. Pop the
+ topmost matching function from the stack, rather than just the topmost
+ function. Update all callers and prototypes.
+
+2016-12-09 Colin Watson <cjwatson@debian.org>
+
+ Upgrade config.guess/config.sub
+
+ * build-aux/config.guess: Upgrade to 2016-10-02.
+ * build-aux/config.sub: Upgrade to 2016-11-04.
+
+2016-12-09 Colin Watson <cjwatson@debian.org>
+
+ Separate cache owner from --enable-setuid option
+
+ It's useful to have a notion of the cache owner even when man is not
+ installed setuid. --enable-setuid no longer takes an argument, and the
+ owner is now set by the --enable-cache-owner option instead.
+
+ * m4/man-arg-cache-owner.m4: New file.
+ * m4/man-arg-setuid.m4: Stop accepting an argument. Only set man_mode,
+ not man_owner.
+ * configure.ac: Call MAN_ARG_CACHE_OWNER.
+ * src/Makefile.am (install-exec-hook): Only chown man and mandb if
+ man_mode is 4755 (as well as the existing test for man_owner being
+ non-empty).
+
+2016-11-21 Colin Watson <cjwatson@debian.org>
+
+ Restore ylwrap to distribution
+
+ * Makefile.in (am__DIST_COMMON): Regenerate to add build-aux/ylwrap back
+ again, since it mysteriously went missing in the last regeneration.
+
+2016-11-21 Colin Watson <cjwatson@debian.org>
+
+ Update translation files
+
+ * po/man-db.pot, po/*.po: Update.
+
+2016-11-21 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Libtool 2.4.6-2 (from Debian)
+
+2016-11-21 Colin Watson <cjwatson@debian.org>
+
+ Upgrade config.guess/config.sub
+
+ * build-aux/config.guess: Upgrade to 2016-04-02.
+ * build-aux/config.sub: Upgrade to 2016-03-30.
+
+2016-11-20 Mihail Konev <k.mvc@ya.ru>
+
+ src/tests: Fix testsuite
+
+ * src/tests/man-9: Set MANPATH.
+
+2016-11-20 Mihail Konev <k.mvc@ya.ru>
+
+ man(1): Fix gcc warnings
+
+ * lib/xchown.c: New file.
+ * lib/xchown.h: New file.
+ * lib/Makefile.am (libman_la_SOURCES): Add xchown.c and xchown.h.
+ * po/POTFILES.in: Add lib/xchown.c.
+ * src/check_mandirs.c (mkcatdirs): Call xchown instead of chown.
+ * src/man.c (format_display): Ignore errors from chdir ("/").
+
+2016-11-20 Colin Watson <cjwatson@debian.org>
+
+ Make split_page_name allocate its own memory
+
+ * src/man.c (split_page_name): Allocate *ret_name and *ret_section here.
+ Simplify using xstrdup and xstrndup.
+ (man): Remove allocation of page_name and page_section.
+
+2016-11-20 Mihail Konev <k.mvc@ya.ru>
+
+ man(1): add .N names
+
+ `man chmod.2` is now the same as `man 2 chmod`
+
+ * src/man.c (split_page_name): New function.
+ (locate_page_in_manpath): New function.
+ (man): Factor out common locate_page loop into locate_page_in_manpath.
+ Add name/section splitting logic.
+ * src/tests/man-11: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-11.
+ * man/man1/man.man1 (SYNOPSIS): Document <page>.<section> form.
+ (EXAMPLES): Likewise.
+
+2016-10-04 Colin Watson <cjwatson@debian.org>
+
+ Fix formatting error in Swedish translation
+
+ * man/po4a/po/sv.po: Translate "\\(rq" as itself rather than as "\\(".
+
+2016-10-04 Colin Watson <cjwatson@debian.org>
+
+ Rename some anomalous x* functions
+
+ The usual (though not universal) pattern in gnulib is for xfoo to mean
+ "foo or exit". Rename x* to check_* so that they don't conflict with
+ this.
+
+ * src/mandb.c (xremove): Rename to ...
+ (check_remove): ... this.
+ (xrename): Rename to ...
+ (check_rename): ... this.
+ (xchmod): Rename to ...
+ (check_chmod): ... this.
+ (xchown): Rename to ...
+ (check_chown): ... this.
+
+2016-05-16 Colin Watson <cjwatson@debian.org>
+
+ man(1): Fix incorrect font
+
+ * man/man1/man.man1 (SYNOPSIS): Make "--regex" bold. Thanks to Paul
+ Townsend.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update; unfuzzy all
+ translations.
+
+2016-05-16 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+2016-02-04 Colin Watson <cjwatson@debian.org>
+
+ Note caveat with "man -K"
+
+ * man/man1/man.man1 (Main modes of operation): Note that -K searches
+ page source. Fixes Debian bug #813665.
+
+2016-01-02 Sebastian Rasmussen <sebras@gmail.com>
+
+ * po/sv.po: Add missing translator credit comment.
+
+2016-01-02 Colin Watson <cjwatson@debian.org>
+
+ Fix warnings with Perl 5.22
+
+ * man/po4a/Locale/Po4a/Manext.pm (shiftline, translate): Escape braces
+ in regular expressions.
+
+2016-01-02 Colin Watson <cjwatson@debian.org>
+
+ Add Swedish manual page translation
+
+ * man/po4a/po/sv.po: New from Translation Project (thanks, Sebastian
+ Rasmussen).
+ * configure.ac (AC_CONFIG_FILES): Add man/sv/Makefile.
+ * man/LINGUAS.po4a: Add sv.
+ * man/Makefile.am (DIST_SUBDIRS): Add sv.
+ * man/sv/Makefile.am, man/sv/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/sv.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add sv.
+ * man/THANKS: Add translator credit.
+ * .gitignore: Add man/sv/man1, man/sv/man5, and man/sv/man8.
+
+2015-12-31 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to pkg-config 0.29.
+
+2015-12-26 Sebastian Rasmussen <sebras@gmail.com>
+
+ Update Swedish translation
+
+ * po/sv.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2015-12-07 Colin Watson <cjwatson@debian.org>
+
+ Simplify database path handling in mandb
+
+ * src/mandb.c (struct dbpaths): Unconstify xtmpfile.
+ (finish_up): Free dbpaths->xtmpfile.
+ (cleanup): Update header comment. Remove unnecessary checks before
+ frees. Free all database paths for all database types, not just
+ GDBM. Free dbpaths->xtmpfile.
+ (mandb): Copy content of database to dbpaths->xtmpfile rather than
+ just copying the pointer.
+
+2015-12-07 Colin Watson <cjwatson@debian.org>
+
+ Move some database paths out of global variables
+
+ * src/mandb.c (struct dbpaths): New structure.
+ (finish_up, do_chown, cleanup_sigsafe, cleanup, mandb): Take dbpaths
+ argument.
+ (process_manpath): Allocate dbpaths on the stack, zero it, and pass
+ it to functions that need it.
+
+2015-12-07 Colin Watson <cjwatson@debian.org>
+
+ Remove lots of unnecessary inline qualifiers
+
+ It's 2015. The compiler almost certainly knows better than we do.
+
+ * lib/security.c (gripe_set_euid): Remove inline qualifier.
+ * libdb/db_btree.c (btree_findkey): Likewise.
+ * libdb/mydbm.h (gdbm_exists): Likewise.
+ * src/catman.c (catman): Remove obsolete comment.
+ (add_arg, check_access): Remove inline qualifier.
+ * src/check_mandirs.c (add_dir_entries): Likewise.
+ * src/man.c (gripe_system, gripe_no_man, manopt_to_env, escape_less,
+ is_section, do_prompt, gripe_converting_name): Likewise.
+ * src/mandb.c (xremove, xrename, xchmod, finish_up, xchown,
+ do_chown, update_db_wrapper): Likewise.
+ * src/manp.c (gripe_reading_mp_config, gripe_stat_file,
+ gripe_not_directory, has_mandir, fsstnd): Likewise.
+ * src/whatis.c (do_whatis_section): Likewise.
+
+2015-11-06 Colin Watson <cjwatson@debian.org>
+
+ Belatedly update NEWS date.
+
+ * Version: 2.7.5.
+
+ * NEWS: Document changes since 2.7.4.
+
+2015-11-06 Colin Watson <cjwatson@debian.org>
+
+ Build text manual with LC_ALL=C
+
+ nroff's UTF-8 output is a bit wonky in this case, but ASCII will do
+ fine.
+
+ * manual/Makefile.am (.pp.cat): Set LC_ALL=C.
+
+2015-11-05 Colin Watson <cjwatson@debian.org>
+
+ Disable roff input insertion with --recode
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #751795.
+
+ * src/man.c (display): Don't insert roff input for --no-hyphenation,
+ --no-justification, or locale macros when the --recode option is used.
+
+2015-11-05 Colin Watson <cjwatson@debian.org>
+
+ Adjust line number when inserting extra roff input
+
+ Reported by Bjarni Ingi Gislason. Fixes Debian bug #789219.
+
+ * src/man.c (heirloom_line_length, disable_hyphenation,
+ disable_justification, locale_macros): Emit ".lf 1" after inserted roff
+ input.
+ * src/zsoelim.l: Accept .lf without a file name argument.
+
+2015-10-19 Colin Watson <cjwatson@debian.org>
+
+ Make a mandb error message clearer
+
+ * src/mandb.c (xcopy): Say which file name we failed to fopen.
+
+2015-10-08 Colin Watson <cjwatson@debian.org>
+
+ Fix Plural-Forms header in Catalan translation
+
+ * po/ca.po (Plural-Forms): Add missing semicolon.
+
+2015-10-08 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.4.
+
+2015-10-08 Colin Watson <cjwatson@debian.org>
+
+ man: Honour MANWIDTH in conjunction with -Z
+
+ * src/man.c (get_roff_line_length): Also consider line_length if
+ ditroff is set.
+ (make_roff_command): Try add_roff_line_length regardless of troff.
+ The line length is passed to the macro package, not to the output
+ device, although get_roff_line_length will still sometimes not use
+ it (e.g. if using the "ps" device). Fixes Debian bug #801241.
+ * NEWS: Document this.
+
+2015-10-08 Colin Watson <cjwatson@debian.org>
+
+ man: Exit 3 if formatter exits non-zero
+
+ * src/man.c (format_display): Keep track of exit statuses from both
+ format_cmd and disp_cmd, and exit CHILD_FAIL if either is non-zero
+ and non-SIGPIPE. Fixes Debian bug #801261.
+ * NEWS: Document this.
+
+2015-09-22 Colin Watson <cjwatson@debian.org>
+
+ Fix replace.sed prerequisite syntax
+
+ Suffix rules may not have prerequisites. Thanks to Nikola Forró; fixes
+ Fedora bug #1263930.
+
+ * man/Rules.man: Declare dependency of $(MANS) on replace.sed
+ separately rather than trying to do so in suffix rules.
+ * NEWS: Document this.
+
+2015-09-22 Colin Watson <cjwatson@debian.org>
+
+ Fix crash in manpath deduplication
+
+ * src/manp.c (create_pathlist): Handle NULL return from
+ canonicalize_file_name.
+ * NEWS: Document this.
+
+2015-09-22 Colin Watson <cjwatson@debian.org>
+
+ Upgrade config.guess/config.sub
+
+ * build-aux/config.guess, build-aux/config.sub: Upgrade to
+ 2015-08-20.
+
+2015-09-21 Nikola Forró <nforro@redhat.com>
+
+ Fix typos in italian manpath man page
+
+2015-09-16 zwpwjwtz <zwpwjwtz@126.com>
+
+ Update Simplified Chinese manual page translation
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2015-09-09 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.3.
+
+2015-09-09 Colin Watson <cjwatson@debian.org>
+
+ Pacify gcc -Wlogical-not-parentheses
+
+ * src/man.c (find_cat_file): Add extra parentheses around
+ logical-not on the LHS of a comparison.
+ * lib/util.c (is_changed): Likewise in header comment.
+
+2015-09-09 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+
+ Restore the ability to use 'man -a' noninteractively
+
+ Fixes Debian bug #798094.
+
+ * src/man.c (do_prompt): Return 0 immediately (i.e. view) if neither
+ stdin nor stdout is a tty.
+ * NEWS: Document this.
+
+2015-09-09 Mike Frysinger <vapier@gentoo.org>
+
+ Fix crash when current directory is unreadable
+
+ Fixes Savannah bug #45861.
+
+ * src/man.c (make_display_command): Check have_cwd before trying to
+ use cwd.
+ * NEWS: Document this.
+
+2015-09-09 Colin Watson <cjwatson@debian.org>
+
+ Document squeeze-blank-lines fix
+
+ * NEWS: Document Rafael's squeeze-blank-lines fix.
+
+2015-09-09 Colin Watson <cjwatson@debian.org>
+
+ Fix use-after-free in ult_src
+
+ Reported by Hanno Boeck. Fixes Savannah bug #45854.
+
+ * src/ult_src.c (ult_src): Take a copy of base when recursing rather
+ than passing it directly as the new name argument, since it may be
+ freed by the recursive call.
+ * NEWS: Document this.
+
+2015-09-09 Colin Watson <cjwatson@debian.org>
+
+ Remove unnecessary check before free
+
+ * src/ult_src.c (ult_src): Don't check whether base is non-NULL
+ before freeing it.
+
+2015-08-30 Rafael Kitover <rkitover@gmail.com>
+
+ Squeeze blank lines internally instead of pager -s
+
+ Add a pipecmd in make_display_command to combine multiple blank lines in
+ the output into one, which is what e.g. less -s does.
+
+ Stop automatically appending -s to pager command in configure.
+
+ Fixes Debian bug #796584.
+
+ * configure.ac: Stop automatically appending -s to pager command.
+ * src/man.c (squeeze_blank_lines): New function.
+ (make_display_command): Add squeeze_blank_lines to display pipeline.
+
+2015-08-29 Colin Watson <cjwatson@debian.org>
+
+ Make sure CACHEDIR.TAG has correct ownership
+
+ * src/mandb.c (mandb): Change CACHEDIR.TAG's owner to
+ man_owner->pw_uid when running as root in global manpaths.
+ (process_manpath): Pass global_manpath to mandb.
+
+2015-08-29 Colin Watson <cjwatson@debian.org>
+
+ Rewrite CACHEDIR.TAG and databases if they cannot be read
+
+ Fixes Debian bug #797019.
+
+ * src/mandb.c (mandb): Rewrite CACHEDIR.TAG and databases if they
+ cannot be read (probably due to incorrect ownership).
+ * NEWS: Document this.
+
+2015-08-22 Colin Watson <cjwatson@debian.org>
+
+ Try to get terminal width from /dev/tty
+
+ If man is running within something like lesspipe, then there may be
+ a current tty that neither stdin nor stdout points to. Try to get
+ hold of it using /dev/tty. Fixes Fedora bug #1255930.
+
+ * lib/linelength.c (get_line_length): Try /dev/tty before either
+ stdout or stdin.
+ * NEWS: Document this.
+
+2015-08-16 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.2.
+
+2015-08-16 Jordi Mallach <jordi@gnu.org>
+
+ * po/ca.po: Update from Translation Project.
+
+2015-08-16 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1:1.15-3 (from Debian).
+
+ * NEWS: Document a couple more changes since 2.7.1.
+
+2015-08-02 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.15.
+
+2015-08-02 Colin Watson <cjwatson@debian.org>
+
+ Fix inaccurate description of "man -f"
+
+ It's equivalent to "whatis", not "whatis -r". Fixes Fedora
+ bug #1249377.
+
+ * man/man1/man.man1 (EXAMPLES): "man -k" and "man -f" are equivalent to
+ "apropos" and "whatis" respectively, not "apropos -r" and "whatis -r".
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update; unfuzzy all
+ translations.
+
+2015-08-02 Lauri Nurmi <lanurmi@iki.fi>
+
+ * po/fi.po: Update from Translation Project.
+
+2015-04-08 Colin Watson <cjwatson@debian.org>
+
+ Allow using GDBM's NDBM compatibility layer
+
+ This isn't very useful in practice since anyone using this could just
+ use GDBM directly instead, but it's helpful for testing.
+
+ * configure.ac: Check for gdbm-ndbm.h and libgdbm_compat.
+
+2015-04-08 Colin Watson <cjwatson@debian.org>
+
+ Clean up freeing of datum structures
+
+ * libdb/mydbm.h (MYDBM_FREE): Remove.
+ (MYDBM_FREE_DPTR): New macro. This zeros the data pointer to avoid
+ double-free problems.
+ * libdb/db_delete.c (dbdelete): Use MYDBM_FREE_DPTR.
+ * libdb/db_gdbm.c (man_gdbm_open_wrapper, sortkey_hashtable_free):
+ Likewise.
+ * libdb/db_lookup.c (dblookup, dblookup_pattern): Likewise.
+ * libdb/db_store.c (dbstore): Likewise.
+ * libdb/db_ver.c (dbver_rd, dbver_wr): Likewise.
+ * src/accessdb.c (main): Likewise.
+ * src/catman.c (parse_for_sec): Likewise.
+ * src/check_mandirs.c (sanity_check_db, purge_pointers, purge_missing):
+ Likewise.
+ * src/whatis.c (do_apropos): Likewise.
+
+2015-04-08 Colin Watson <cjwatson@debian.org>
+
+ Stop storing the database handle in a global variable
+
+ Fixes Ubuntu bug #1304261.
+
+ * libdb/db_delete.c (dbdelete): Take a dbf parameter. Update all
+ callers and prototypes.
+ * libdb/db_lookup.c (dblookup, dblookup_all, dblookup_exact,
+ dblookup_pattern): Likewise.
+ * libdb/db_store.c (replace_if_necessary, dbstore): Likewise.
+ * src/check_mandirs.c (test_manfile, add_dir_entries, sanity_check_db,
+ purge_pointers, purge_normal, purge_whatis): Likewise.
+ * src/descriptions_store.c (store_descriptions): Likewise.
+ * src/straycats.c (check_for_stray, open_catdir): Likewise.
+ * src/whatis.c (resolve_pointers, display, do_whatis_section, do_whatis,
+ do_apropos): Likewise.
+
+ * src/accessdb.c (main): Declare dbf here rather than at file scope.
+ * src/catman.c (parse_for_sec): Likewise.
+ * src/check_mandirs.c (testmandirs, update_db_time, update_db,
+ purge_missing): Likewise.
+ * src/man.c (dbdelete_wrapper, try_db): Likewise.
+ * src/mandb.c (update_one_file): Likewise.
+ * src/straycats.c (straycats): Likewise.
+ * src/whatis.c (search): Likewise.
+
+ * libdb/mydbm.h (dbf): Remove.
+ * src/catman.c (dbf): Rename to ...
+ (dbf_close_post_fork): ... this.
+ (rdopen_db): Merge into ...
+ (parse_for_sec): ... here.
+
+2015-03-05 Colin Watson <cjwatson@debian.org>
+
+ man: Avoid dubious use of freopen to reopen base streams
+
+ freopen doesn't actually work properly when base streams have been
+ closed (at least with glibc), and it seems better to simply refuse to
+ operate in such a non-conforming environment.
+
+ * src/man.c (check_standard_fds): New function.
+ (main): Call it rather than using freopen.
+
+2014-11-16 Colin Watson <cjwatson@debian.org>
+
+ Allow building from git without gnulib-tool
+
+ Since we don't want to keep Gnulib translations in revision control,
+ we need gnulib-tool on $PATH when generating the build system in
+ order to fetch them, but it's unnecessarily awkward to require
+ everyone to have this just in order to build man-db from git. Allow
+ building without this, although it is still required for "make
+ dist".
+
+ * configure.ac: No longer issue an error if gnulib/po/Makefile.in.in
+ is missing. Instead, set the Automake conditional HAVE_GNULIB_PO to
+ true if and only if gnulib/po/POTFILES.in exists, and only create
+ gnulib/po/Makefile.in if gnulib/po/Makefile.in.in exists.
+ * Makefile.am (SUBDIRS): Only include gnulib/po if HAVE_GNULIB_PO is
+ true.
+
+2014-11-14 Colin Watson <cjwatson@debian.org>
+
+ apropos/whatis: Don't truncate names if long output was requested
+
+ * src/whatis.c (display): Leave page_name intact if long_output is
+ true. Reported by Calle Erlandsson.
+
+2014-11-11 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+2014-11-08 Colin Watson <cjwatson@debian.org>
+
+ Pass -l through to apropos/whatis
+
+ Fixes Fedora bug #1161747.
+
+ * src/man.c (do_extern): Pass the -l option through.
+
+2014-11-07 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.1.
+
+2014-10-27 Colin Watson <cjwatson@debian.org>
+
+ Send 'man -a' prompts to /dev/tty
+
+ Fixes Debian bug #766113.
+
+ * src/man.c (locale_macros): Write prompts to and read replies from
+ /dev/tty, rather than stderr and stdin respectively.
+ * NEWS: Document this.
+
+2014-10-27 Colin Watson <cjwatson@debian.org>
+
+ Make man run correctly from a deleted directory
+
+ Fixes Debian bug #764384.
+
+ * gnulib: Import save-cwd module.
+ * src/man.c (make_display_command): Use pipecmd_fchdir rather than
+ pipecmd_chdir if the working directory was saved using a file
+ descriptor.
+ (format_display, main): Save current working directory using
+ save_cwd rather than xgetcwd.
+ (format_display, local_man_loop, main): Restore previous working
+ directory using restore_cwd rather than chdir.
+ * src/tests/man-10: New file.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Insert the parent
+ directory into $PATH using an absolute path rather than a relative
+ one. Export abs_top_builddir rather than top_builddir.
+ (ALL_TESTS): Add man-10.
+ * src/tests/testlib.sh (init): Set abstmpdir. Adjust tests to use
+ this where applicable.
+ (run): Call libtool using an absolute path.
+ (skip): Remove abstmpdir.
+ (finish): Remove abstmpdir rather than tmpdir.
+ * configure.ac: Require libpipeline >= 1.4.0.
+ * NEWS: Document this.
+
+2014-10-22 Colin Watson <cjwatson@debian.org>
+
+ NEWS: Document recent Solaris portability changes
+
+2014-10-22 Colin Watson <cjwatson@debian.org>
+
+ Fix linking of fspause on Solaris
+
+ * src/tests/fspause.c (main): Set program_name. Patch by Peter Bray.
+
+2014-10-22 Colin Watson <cjwatson@debian.org>
+
+ autogen.sh: Avoid "export VARIABLE=value" syntax
+
+ Older Solaris shells do not support this. Patch by Peter Bray.
+
+2014-10-22 Colin Watson <cjwatson@debian.org>
+
+ gnulib: Import strcasestr module.
+
+ Suggested by Peter Bray.
+
+2014-10-05 Joe Hansen <joedalton2@yahoo.dk>
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2014-09-27 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.0.2.
+
+2014-09-27 Colin Watson <cjwatson@debian.org>
+
+ Work around lack of UTIME_* on GNU/Hurd
+
+ * gnulib/fdutimens-hurd.patch: New file.
+ * autogen.sh: Apply gnulib/fdutimens-hurd.patch.
+ * NEWS: Document this.
+
+2014-09-27 Colin Watson <cjwatson@debian.org>
+
+ Avoid using or double-closing closed database handles
+
+ Thanks to Andreas Radke and Bruce Dubbs for reporting, and to
+ Andreas Radke for testing.
+
+ * src/check_mandirs.c (testmandirs): Close dbf if necessary before
+ (re-)opening it. Zero out dbf after closing it.
+ (update_db_time, purge_missing): Zero out dbf after closing it.
+ * src/man.c (dbdelete_wrapper, try_db): Likewise.
+ * src/mandb.c (update_one_file): Likewise.
+ * src/straycats.c (straycats): Likewise.
+ * src/whatis.c (search): Likewise.
+ * NEWS: Document this.
+
+2014-09-24 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.0.1.
+
+ * Makefile.am (EXTRA_DIST): Add gnulib/m4/sockpfaf.m4.
+
+2014-09-23 Colin Watson <cjwatson@debian.org>
+
+ Fix tests when build fs does not support high-precision timestamps
+
+ * gnulib: Import nanosleep module.
+ * configure.ac: Remove STAT_HAS_NSEC substitution.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Stop exporting
+ STAT_HAS_NSEC.
+ (AM_CPPFLAGS, AM_CFLAGS, check_PROGRAMS, fspause_SOURCES,
+ fspause_LDADD): Add.
+ * src/tests/fspause.c: New file.
+ * src/tests/mandb-2, src/tests/mandb-3, src/tests/mandb-4,
+ src/tests/mandb-5: Call ./fspause rather than next_second.
+ * src/tests/testlib.sh (next_second): Remove.
+ * .gitignore: Add src/tests/.deps and src/tests/fspause.
+ * NEWS: Document this.
+
+2014-09-22 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.0.
+
+2014-09-19 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+2014-09-18 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+2014-09-18 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+2014-09-18 Colin Watson <cjwatson@debian.org>
+
+ Move zsoelim to pkglibexecdir
+
+ This avoids clashes with other packages; for example, Slackware's groff
+ package installs zsoelim as a symlink to soelim.
+
+ * src/Makefile.am (bin_PROGRAMS): Move zsoelim to ...
+ (pkglibexec_PROGRAMS): ... here.
+ (AM_CPPFLAGS): Adjust ZSOELIM definition to match.
+ * NEWS: Document this.
+
+2014-09-18 Colin Watson <cjwatson@debian.org>
+
+ Rename SOELIM definition to ZSOELIM for clarity
+
+ * src/Makefile.am (AM_CPPFLAGS): Define ZSOELIM rather than SOELIM.
+ * src/man.c (make_roff_command): Use ZSOELIM rather than SOELIM.
+
+2014-09-17 Colin Watson <cjwatson@debian.org>
+
+ Make sure that generated shared libraries have no undefined symbols
+
+ Based on a change found in
+ https://github.com/Alexpux/MSYS2-packages/tree/master/man-db.
+
+ * lib/Makefile.am (libman_la_LDFLAGS): Add -no-undefined.
+ * libdb/Makefile.am (libmandb_la_LDFLAGS): Add -no-undefined.
+
+2014-09-17 Colin Watson <cjwatson@debian.org>
+
+ Correct a couple of comments in m4/man-arg-*.m4
+
+ * m4/man-arg-automatic-update.m4: Correct header comment.
+ * m4/man-arg-systemdtmpfilesdir.m4: Likewise.
+
+2014-09-17 Colin Watson <cjwatson@debian.org>
+
+ Fix "cannot adjust line" warning when formatting db.me
+
+ * manual/db.me (Contents of an index database): Insert several
+ zero-width break points in descriptions of entry formats.
+
+2014-09-17 Colin Watson <cjwatson@debian.org>
+
+ Show a better error message if no browser is configured
+
+ Fixes Savannah bug #37814.
+
+ * src/man.c (format_display): Adjust error message if html_pager is
+ NULL or the empty string.
+ * NEWS: Document this.
+
+2014-09-17 Colin Watson <cjwatson@debian.org>
+
+ Don't store canonicalised versions of manpath elements
+
+ We still compare canonicalised versions, but don't store them.
+ Storing them results in looking up the wrong catpath in the case
+ where one of the configured MANDB_MAP entries is a symlink.
+
+ Broken by commit 01e5a4febfc7b6cd53991455315ae7744c8f31dd; fixes
+ Fedora bug #1043401.
+
+ * src/manp.c (create_pathlist): Compare canonicalised versions of
+ manpath elements, but don't store them.
+ * NEWS: Document this.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ Don't use pointed-to name as title for database-located pages
+
+ For a pointer record, the pointed-from name is a legitimate alias
+ for the located page, and is likely to be closer to the name that
+ the user requested.
+
+ Fixes Debian bug #709405.
+
+ * src/man.c (display_database): Don't use the pointed-to name to
+ construct the title for display.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.7.0-pre1.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ Fix distcheck following addition of systemd tmpfiles snippet
+
+ * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add
+ --with-systemdtmpfilesdir=\$${prefix}/lib/tmpfiles.d.
+
+2014-09-16 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Formatting improvements to man(1)
+
+ Fixes Debian bug #726266.
+
+ * man/man1/man.man1: Protect "." at beginning or end of strings with
+ "\&". Start sentences on new lines. Insert italic corrections
+ between adjacent italic and roman characters. Use double quotation
+ marks around arguments rather than placing "\ " between strings.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ Prioritise COLUMNS above TIOCGWINSZ
+
+ Fixes Ubuntu bug #1315282.
+
+ * lib/linelength.c (get_line_length): Prioritise COLUMNS above
+ TIOCGWINSZ.
+ * man/man1/apropos.man1 (DESCRIPTION): Describe new terminal width
+ priorities.
+ * man/man1/man.man1 (DESCRIPTION): Likewise.
+ * man/man1/whatis.man1 (DESCRIPTION): Likewise.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * NEWS: Document this.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ Use xnrealloc rather than xrealloc in a few more places
+
+ * src/catman.c (parse_opt): Use xnrealloc rather than xrealloc.
+ * src/globbing.c (update_directory_cache): Likewise.
+ * src/ult_src.c (ult_trace): Likewise.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ Order files by first physical extent before reading
+
+ Inspired by a similar change in dpkg. This takes 'mandb -c' from
+ 104 to 32 seconds in a test installation, and 'man -K' from 74 to 38
+ seconds. On non-Linux systems where FIEMAP is not available, use
+ posix_fadvise instead to preload files.
+
+ Fixes Debian bug #574410.
+
+ * gnulib: Import nonblocking and openat modules.
+ * configure.ac: Check for <linux/fiemap.h> and posix_fadvise.
+ * lib/orderfiles.c: New file.
+ * lib/orderfiles.h: New file.
+ * lib/Makefile.am (libman_la_SOURCES): Add orderfiles.c and
+ orderfiles.h.
+ * src/check_mandirs.c (add_dir_entries): Order files before reading
+ them.
+ * src/man.c (try_section, do_global_apropos_section): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * NEWS: Document this.
+
+2014-09-16 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document a couple more changes since 2.6.7.1.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Merge convert_name into man.c
+
+ * src/convert_name.c (gripe_converting_name): Move to ...
+ * src/man.c (gripe_converting_name): ... here.
+ * src/convert_name.c (convert_name): Move to ...
+ * src/man.c (convert_name): ... here. Make static.
+ * src/convert_name.h: Remove.
+ * src/Makefile.am (man_SOURCES): Remove convert_name.c and
+ convert_name.h.
+ * po/POTFILES.in: Remove src/convert_name.c.
+ * po/man-db.pot, po/*.po: Update.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ * tools/README: Update heading to reflect moves to build-aux.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Make a few libdb functions static
+
+ * libdb/db_lookup.c (copy_if_set, split_data): Make static.
+ (make_content): Move to ...
+ * libdb/db_store.c (make_content): ... here. Make static.
+ * libdb/db_storage.h (split_data, make_content, copy_if_set): Remove
+ prototypes.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Make various functions static
+
+ These functions are only used within the same compilation unit, so
+ have no need for external linkage.
+
+ * src/check_mandirs.c (sanity_check_db): Make static.
+ * src/mandb.c (is_lang_dir, tried_catdirs_free, purge_catdir,
+ purge_catsubdirs, purge_catdirs): Likewise.
+ * src/zsoelim.l (try_compressed): Likewise.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Remove unused code in lexgrog
+
+ * src/lexgrog.l (rule_profile): Remove unused function and
+ associated global declarations.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Reorder functions in man to remove need for header file
+
+ man.h was only needed because of some poor function ordering in man.c.
+ Reorder functions so that definition comes before use, except in one
+ case of mutual recursion.
+
+ * src/man.c (main): Move to end of file.
+ (local_man_loop): Move to immediately before man.
+ (man): Add a prototype declaration just before local_man_loop, to
+ cope with mutual recursion.
+ (do_prompt): Move to immediately above display.
+ * src/man.h: Remove.
+ * src/Makefile.am (man_SOURCES): Remove man.h.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ Move argument handling out of configure to new MAN_ARG_* macros
+
+ * m4/man-arg-automatic-create.m4, m4/man-arg-automatic-update.m4,
+ m4/man-arg-cats.m4, m4/man-arg-config-file.m4, m4/man-arg-db.m4,
+ m4/man-arg-device.m4, m4/man-arg-mandirs.m4,
+ m4/man-arg-override-dir.m4, m4/man-arg-sections.m4,
+ m4/man-arg-setuid.m4, m4/man-arg-systemdtmpfilesdir.m4,
+ m4/man-arg-undoc.m4: New files.
+ * configure.ac: Call new macros rather than inlining argument
+ handling.
+
+2014-09-15 Colin Watson <cjwatson@debian.org>
+
+ * build-aux/config.sub: Upgrade to 2014-09-11.
+
+2014-09-12 Colin Watson <cjwatson@debian.org>
+
+ Simplify <dirent.h> handling using Gnulib
+
+ * gnulib: Import dirent module.
+ * configure.ac: Remove obsolescent AC_HEADER_DIRENT macro.
+ * src/check_mandirs.c: Simplify a large conditional block to
+ "#include <dirent.h>".
+ * src/straycats.c: Likewise.
+ * src/ult_src.c: Likewise.
+
+2014-09-12 Colin Watson <cjwatson@debian.org>
+
+ Remove old and broken FAST_BTREE code
+
+ This was marked as experimental and broken when I took over man-db
+ 13 years ago, and I've hardly touched it. There's no point in
+ keeping it around.
+
+ * include/manconfig.h.in (FAST_BTREE): Remove commented definition.
+ * libdb/db_btree.c (test_insert, gripe_get, dbstore, dblookup):
+ Remove.
+ (btree_flopen): Expand B_FLAGS macro.
+ (btree_replace): Remove FAST_BTREE case.
+ * libdb/db_lookup.c (dblookup): Define unconditionally.
+ * libdb/db_store.c (dbstore): Likewise.
+
+2014-09-11 Colin Watson <cjwatson@debian.org>
+
+ Speed up the test suite if we have high-precision file timestamps
+
+ * configure.ac: Substitute STAT_HAS_NSEC as "yes" or "no" depending
+ on whether high-precision file timestamps are available.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export STAT_HAS_NSEC to
+ tests.
+ * src/tests/testlib.sh (next_second): Do nothing if STAT_HAS_NSEC is
+ "yes".
+
+2014-09-11 Colin Watson <cjwatson@debian.org>
+
+ Use high-precision timestamps for manual pages
+
+ * lib/util.c (is_changed): Compare high-precision timestamps.
+ * libdb/db_storage.h (FIELDS): Increment to 10.
+ (struct mandata): Change "time_t _st_mtime" to "struct timespec
+ mtime".
+ * libdb/db_lookup.c (dbprintf): Update mtime display.
+ (split_content): Store two fields for the mtime (seconds and
+ nanoseconds).
+ (make_content): Expect two fields for the mtime.
+ * libdb/db_store.c (replace_if_necessary): Compare high-precision
+ timestamps.
+ * src/check_mandirs.c (test_manfile): Likewise.
+ * src/man.c (maybe_update_file): Likewise.
+ * src/straycats.c (check_for_stray): Update initialisation of struct
+ mandata.
+ * src/tests/testlib.sh (accessdb_filter): Adjust for new format.
+ * manual/db.me (Contents of an index database): Describe new format.
+ (Example database): Update example output.
+ * NEWS: Document this.
+
+2014-09-10 Colin Watson <cjwatson@debian.org>
+
+ Move database mtime out of the database into file metadata
+
+ This makes the database reproducible between installations, as long
+ as the underlying database has predictable behaviour and the set of
+ installed manual pages (including their timestamps) remains
+ identical. As a bonus, we now use high-precision times in several
+ places.
+
+ Fixes Debian bug #760895.
+
+ * gnulib: Import futimens and timespec modules.
+ * libdb/db_btree.c (btree_get_time, btree_set_time): New functions.
+ * libdb/db_gdbm.c (man_gdbm_get_time, man_gdbm_set_time): New
+ functions.
+ * libdb/db_ndbm.c (ndbm_get_time, ndbm_set_time): New functions.
+ * libdb/mydbm.h (man_gdbm_get_time, man_gdbm_set_time,
+ ndbm_get_time, ndbm_set_time, btree_get_time, btree_set_time): Add
+ prototypes.
+ (MYDBM_GET_TIME, MYDBM_SET_TIME): New macros.
+ * src/check_mandirs.c (testmandirs, create_db, count_glob_matches,
+ purge_normal, purge_whatis, purge_missing): Use high-precision
+ times.
+ (update_db_time): Set file modification times rather than updating a
+ database row.
+ (create_db, purge_missing): Get database file modification times
+ rather than fetching a database row.
+ (purge_missing): If the new will_run_mandb argument is true, reset
+ the database mtime to its value before purging; this ensures that
+ mandb will still run as expected afterwards.
+ * src/check_mandirs.h (purge_missing): Update prototype.
+ * src/mandb.c (xcopy): Copy access and modification times.
+ (process_manpath): Work out in advance of purging whether we will
+ need to run mandb, and pass that to purge_missing.
+ * include/manconfig.h.in (VER_ID): Bump to 2.5.0.
+ (KEY): Remove.
+
+ * man/man8/accessdb.man8 (DESCRIPTION), man/it/man8/accessdb.man8
+ (DESCRIZIONE): Remove sample output, as it is of limited usefulness
+ compared to how awkward it is to maintain, especially in text
+ intended for translation.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * manual/db.me (Contents of an index database): Remove mention of
+ $mtime$.
+ (Example database): Remove $mtime$. Update $version.
+
+ * NEWS: Document this. Bump version to 2.7.0 to correspond to the
+ database version change.
+
+2014-09-09 Colin Watson <cjwatson@debian.org>
+
+ Make update_db_time static
+
+ * src/check_mandirs.c (update_db_time): Make this static; its only
+ uses are within the same file.
+ * src/check_mandirs.h (update_db_time): Remove prototype.
+
+2014-09-09 Colin Watson <cjwatson@debian.org>
+
+ Remove unused reset_db_mtime function
+
+ * src/check_mandirs.c (reset_db_mtime): Remove. This function has
+ been unused since man-db 2.4.2.
+ * src/check_mandirs.h (reset_db_mtime): Remove prototype.
+ * src/man.c: Stop including "check_mandirs.h".
+
+2014-09-09 Colin Watson <cjwatson@debian.org>
+
+ Don't purge entries from databases that fail sanity checks
+
+ * src/check_mandirs.c (purge_missing): Return early if
+ sanity_check_db fails, for instance in the case of a version
+ mismatch.
+
+2014-09-09 Colin Watson <cjwatson@debian.org>
+
+ Switch away from obsolescent utime function
+
+ POSIX.1-2008 marks utime as obsolescent. Switch to variants of the
+ futimens/utimensat family instead, via Gnulib. Use higher-precision
+ times for cat pages.
+
+ * gnulib: Import stat-time and utimens modules.
+ * src/man.c (man_modtime): Change type to struct timespec.
+ (commit_tmp_cat): Use utimens rather than utime.
+ (display): Store a higher-precision modification timestamp for
+ man_file.
+
+2014-09-09 Colin Watson <cjwatson@debian.org>
+
+ catman: Honour program name transformations
+
+ * src/catman.c (parse_for_sec): Execute MAN rather than "man".
+
+2014-09-08 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/da.po: Fix po4a syntax error.
+
+2014-09-08 Colin Watson <cjwatson@debian.org>
+
+ Various autotools upgrades
+
+ * aclocal.m4: Upgrade to pkg-config 0.28.
+ * build-aux/config.guess: Upgrade to 2014-03-23.
+ * build-aux/config.sub: Upgrade to 2014-05-01.
+ * build-aux/ltmain.sh: Upgrade to Libtool 2.4.2-1.10 (from Debian).
+
+2014-08-30 Joe Hansen <joedalton2@yahoo.dk>
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2014-08-12 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project.
+
+2014-08-11 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po: Update from Translation Project.
+
+2014-06-18 Colin Watson <cjwatson@debian.org>
+
+ Fix cat page parsing (Debian bug #751934)
+
+ * src/lexgrog.l (find_name): Run "col -b -p -x" over cat pages if
+ possible before parsing them.
+
+2014-06-17 Colin Watson <cjwatson@debian.org>
+
+ Add systemd tmpfiles snippet to clean up old cat files after a week
+
+ Fixes Fedora bug #1110274.
+
+ * configure.ac: Accept --with-systemdtmpfilesdir option.
+ (AC_CONFIG_FILES): Add init/Makefile and init/systemd/Makefile.
+ * Makefile.am (SUBDIRS): Add init.
+ * init/Makefile.am: New file.
+ * init/systemd/Makefile.am: New file.
+ * init/systemd/man-db.conf: New file.
+ * .gitignore: Add init/Makefile and init/systemd/Makefile.
+
+2014-06-17 Colin Watson <cjwatson@debian.org>
+
+ Squash false positive from -Wmaybe-uninitialized
+
+ * src/globbing.c: Initialise pattern_start.
+
+2014-04-10 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.7.1.
+
+2014-04-10 Colin Watson <cjwatson@debian.org>
+
+ Remove test suite dependency on realpath(1)
+
+ * src/tests/mandb-7: Prepend "$(pwd -P)/" to $tmpdir in
+ configuration files rather than calling realpath.
+ * NEWS: Document this.
+
+2014-04-10 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.7.
+
+ * Makefile.am (EXTRA_DIST): Add gnulib/argp-domain.patch.
+
+2014-04-10 Peter Schiffer <pschiffe@redhat.com>
+
+ Only create a cache directory tag if catpath != manpath
+
+ * src/mandb.c (mandb): Don't create CACHEDIR.TAG if the catpath is
+ equal to the manpath.
+ * src/tests/mandb-7: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-7.
+ * NEWS: Document this.
+
+2014-04-10 Colin Watson <cjwatson@debian.org>
+
+ Make cache directory tag creation more readable
+
+ * src/mandb.c (mandb): Move cache directory tag string to ...
+ (CACHEDIR_TAG): ... here (new macro).
+
+2014-03-26 Colin Watson <cjwatson@debian.org>
+
+ Run the pager in man's original working directory
+
+ Reported by Peng Yu.
+
+ * src/man.c (make_display_command): Set pager_cmd's working
+ directory to man's original working directory.
+ * configure.ac: Require libpipeline >= 1.3.0.
+ * NEWS: Document this.
+
+2014-03-26 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1:1.14.1-3 (from Debian).
+
+2014-03-20 Mario Blättermann <mario.blaettermann@gmail.com>
+
+ Update German manual page translation
+
+ * man/po4a/po/de.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+2014-03-17 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+2014-02-20 Colin Watson <cjwatson@debian.org>
+
+ Move Autotools auxiliary build files from tools to build-aux.
+
+ This keeps man-db's own tools separate, reducing confusion, and
+ "build-aux" is a more conventional location for the Autotools files.
+
+2014-02-18 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20140202 and Libtool 2.4.2-1.7 (from Debian).
+
+ * lib/appendstr.c (appendstr): Use size_t type for string lengths.
+
+2014-01-23 Colin Watson <cjwatson@debian.org>
+
+ Improve compatibility with archaic shells
+
+ * src/tests/man-5: Assign and export shell variables in two steps,
+ for improved compatibility with some archaic shells.
+ * src/tests/man-7: Likewise.
+ * src/tests/man-8: Likewise.
+ * src/tests/zsoelim-1: Likewise.
+
+2014-01-23 Colin Watson <cjwatson@debian.org>
+
+ Fix test failure with --enable-undoc
+
+ * src/man.c (gripe_no_man): Don't print "See ... for help" message
+ when MAN_TEST_DISABLE_UNDOCUMENTED is set in the environment.
+ * src/tests/man-7: Export MAN_TEST_DISABLE_UNDOCUMENTED=1.
+ * NEWS: Document this.
+
+2014-01-23 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.6.
+
+ * man/po4a/Makefile.am (all-local): Make staging files writeable.
+
+ * README: Update copyright to 2014.
+
+2014-01-23 Colin Watson <cjwatson@debian.org>
+
+ Tidy up override directory support slightly
+
+ * src/manp.c (insert_override_dir): Drop braces.
+ (get_manpath_from_path): Standardise whitespace.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Use Automake-generated
+ substitution rather than substituting @override_dir@ again.
+
+2014-01-23 Peter Schiffer <pschiffe@redhat.com>
+
+ Add support for override directory in search path
+
+ * configure.ac: Add --with-override-dir option.
+ * include/manconfig.h.in (OVERRIDE_DIR): New definition.
+ * src/manp.c (insert_override_dir): New function.
+ (get_manpath_from_path): Call it before add_dir_to_list.
+ * src/tests/man-9: New file.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set and export
+ OVERRIDE_DIR.
+ (ALL_TESTS): Add man-9.
+ * NEWS: Document this.
+
+2014-01-23 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.14.1 and Libtool 2.4.2-1.6 (from Debian).
+
+2014-01-19 Akihiro Sagawa <sagawa.aki@gmail.com>
+
+ Fix macro and hyphenation language handling
+
+ * src/man.c (display): Don't free page_lang if it's going to be used
+ by locale_macros.
+ * src/tests/man-8: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-8.
+ * NEWS: Document this.
+
+2014-01-19 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+2014-01-18 Joe Hansen <joedalton2@yahoo.dk>
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+2014-01-16 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+2014-01-16 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.6-pre2.
+
+2014-01-16 Мирослав Николић <miroslavnikolic@rocketmail.com>
+
+ Add Serbian translation
+
+ * po/sr.po: New from Translation Project.
+ * po/LINGUAS: Add sr.
+ * man/THANKS: Add translator credit.
+
+2014-01-15 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po: Update.
+
+2014-01-15 Peter Schiffer <pschiffe@redhat.com>
+
+ Synchronise manual pages with usage messages
+
+ * man/man1/apropos.man1 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man1/lexgrog.man1 (SYNOPSIS): Add -d. Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man1/man.man1 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --path (alias for -w). Add --usage.
+ * man/man1/manpath.man1 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man1/whatis.man1 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man8/accessdb.man8 (SYNOPSIS): Add -d. Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man8/catman.man8 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+ * man/man8/mandb.man8 (SYNOPSIS): Replace -h with -?.
+ (OPTIONS): Likewise. Add --usage.
+
+2014-01-15 Colin Watson <cjwatson@debian.org>
+
+ Fix memory leaks related to make_filename
+
+ * src/check_mandirs.c (test_manfile): Remove now-redundant stat.
+ Free abs_filename.
+ * src/man.c (display_filesystem): Consolidate return paths.
+ Consistently free filename.
+ (display_database): Free file after using it.
+ (maybe_update_file): Likewise.
+
+2014-01-15 Peter Schiffer <pschiffe@redhat.com>
+
+ Silence error messages for stale database entries (Fedora bug #841431)
+
+ * src/filenames.c (make_filename): Return NULL if the resulting file
+ is not readable. Update all callers to handle NULL returns.
+ * src/tests/man-7: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-7.
+ * NEWS: Document this.
+
+2014-01-15 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/man-5, src/tests/man-6: Mark executable.
+
+2014-01-13 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+2014-01-13 Colin Watson <cjwatson@debian.org>
+
+ Fix domain handling in argp
+
+ * gnulib/argp-domain.patch: New file.
+ * autogen.sh: Apply gnulib/argp-domain.patch.
+ * NEWS: Document this.
+
+2014-01-12 Trần Ngọc Quân <vnwildman@gmail.com>
+
+ * po/vi.po: Update from Translation Project.
+
+2014-01-11 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+2014-01-11 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+2014-01-10 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.6-pre1.
+
+2014-01-10 Colin Watson <cjwatson@debian.org>
+
+ Don't update man/po4a/po/ when nothing has changed
+
+ * man/po4a/Makefile.am (DOMAIN): New variable.
+ (EXTRA_DIST): Use $(DOMAIN).
+ (STAGING): New variable.
+ (PO4A_ARGS): Set new "podir" variable.
+ (RUN_PO4A): New variable.
+ (all-local): Abbreviate using RUN_PO4A. Copy POT/PO files to
+ $(STAGING) before running po4a, to avoid updating the master files.
+ (update-po): Move to ...
+ (update-po-real): ... here. Abbreviate using RUN_PO4A. Add
+ --force, since this target is only called when we really want to
+ update. Copy POT/PO files to $(STAGING) before running po4a, and
+ only copy them back if the POT file has changed by more than just
+ the POT-Creation-Date.
+ (update-po): New rule. Call update-po-real if and only if srcdir =
+ builddir.
+ (clean-local): New rule. Remove $(STAGING).
+ * man/po4a/po4a.cfg (po4a_paths): Refer to $(podir) rather than
+ $(srcdir)/po4a/po.
+ * release.sh: Stop removing man/po4a/po/man-db-manpages.pot; this
+ should no longer be necessary.
+
+2014-01-03 victory <victory.deb@gmail.com>
+
+ * po/ja.po: Update from Translation Project.
+
+2013-12-09 Colin Watson <cjwatson@debian.org>
+
+ Make it easier to prove that catman option parsing is safe
+
+ * src/catman.c (parse_opt): Check sections before assigning to
+ sections[i]. (Already always safe, but this makes it easier to
+ prove.)
+
+2013-12-09 Colin Watson <cjwatson@debian.org>
+
+ Update documentation for git.
+
+ * docs/HACKING (Sending patches): Suggest 'git diff'.
+ (Revision control): Update for git. Remove comment about
+ ChangeLog handling for branches.
+ * NEWS: Document switch to git.
+
+2013-12-09 Colin Watson <cjwatson@debian.org>
+
+ gnulib: Import gnupload module.
+
+2013-12-09 Colin Watson <cjwatson@debian.org>
+
+ Automatically generate ChangeLog from git
+
+ * ChangeLog: Move to ...
+ * ChangeLog-2013: ... here.
+ * Makefile.am (EXTRA_DIST): Add ChangeLog-2013.
+ (dist-hook): Add gen-ChangeLog.
+ (gen-ChangeLog): New rule, based on that in coreutils.
+ * gnulib: Import gitlog-to-changelog module.
diff --git a/ChangeLog-2013 b/ChangeLog-2013
new file mode 100644
index 0000000..1a5b00d
--- /dev/null
+++ b/ChangeLog-2013
@@ -0,0 +1,13184 @@
+Mon Dec 9 00:49:22 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ * .bzrignore: Move to ...
+ * .gitignore: ... here, adjusting for differences between bzr and
+ git.
+ * Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore.
+ * gnulib: Add --no-vc-files.
+
+Wed Nov 27 11:54:17 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Only call AC_PROG_AR if it is defined, to restore
+ compatibility with Automake 1.10.
+ * NEWS: Document this.
+
+Wed Nov 27 11:48:29 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.14 and Gnulib 20130805.
+
+Sat Nov 9 16:21:05 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/man-4: Remove non-portable uses of "echo -n". Reported
+ by TheSin.
+
+Mon Jul 8 03:00:20 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (gripe_rwopen_failed, update_db_time):
+ Downgrade EAGAIN/EWOULDBLOCK errors from attempts to open a
+ database read-write to debug messages (Debian bug #684235).
+
+Mon Jul 8 02:26:07 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/whatis.man1 (NAME): Clarify that whatis displays one-line
+ descriptions, rather than e.g. the contents of DESCRIPTION
+ sections (Debian bug #713992).
+
+Mon Jul 8 02:15:52 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ Reimplement 'apropos --and' in a way that works with the
+ optimisations introduced in 2.6.2 (Debian bug #678670).
+
+ * src/whatis.c (any_set, all_set): New functions.
+ (parse_name, parse_whatis): Take an additional found_here
+ parameter and set its elements. Return void.
+ (do_apropos): Combine results from parse_name and parse_whatis
+ properly according to whether --and is set, rather than relying on
+ counters that will only ever coincidentally match the number of
+ search keywords.
+ (main): Remove apropos_seen hash table.
+ * NEWS: Document this.
+
+Mon Jul 8 01:30:56 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): Simplify using xasprintf.
+ * src/whatis.c (do_apropos): Likewise.
+
+Mon Jul 8 00:29:00 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/zh_CN.po: Fix po4a syntax errors.
+
+Sun Jul 7 22:53:02 BST 2013 Wylmer Wang <wantinghard@gmail.com>
+
+ * man/po4a/po/zh_CN.po: Update from Translation Project.
+
+Fri Jun 28 06:13:17 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * lib/encodings.c (find_charset_locale): Attempt fallback locales
+ even if /usr/share/i18n/SUPPORTED exists. (It may exist but none
+ of the UTF-8 locales mentioned it in may be present; nevertheless,
+ C.UTF-8 may be available.)
+
+Thu Jun 27 11:38:56 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.5.
+
+Thu Jun 27 11:34:40 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Allocate buf on the heap, as 32768 bytes may
+ be too large for some stacks. Reported by Coverity via Peter
+ Schiffer.
+
+Thu Jun 27 10:47:13 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING: Mention that xasprintf may be more readable than
+ appendstr.
+ * include/manconfig.h.in (mkdbname): Rephrase using xasprintf.
+ * lib/decompress.c (decompress_open): Likewise.
+ * lib/pathsearch.c (pathsearch): Likewise.
+ * lib/tempfile.c (create_tempdir): Likewise.
+ * lib/util.c (remove_directory): Likewise.
+ * src/check_mandirs.c (add_dir_entries, mkcatdirs): Likewise.
+ * src/compression.c (comp_file): Likewise.
+ * src/convert_name.c (convert_name): Likewise.
+ * src/globbing.c (make_pattern, match_in_directory, look_for_file):
+ Likewise.
+ * src/man.c (parse_opt, display_filesystem, display_database,
+ do_global_apropos_section): Likewise.
+ * src/manconv_client.c (add_manconv): Likewise.
+ * src/mandb.c (mandb, process_manpath, purge_catsubdirs,
+ purge_catdirs, main): Likewise.
+ * src/manp.c (pathappend, get_nls_manpath, get_manpath,
+ read_config_file, has_mandir): Likewise.
+ * src/ult_src.c (ult_hardlink): Likewise.
+ * src/whatis.c (simple_convert, use_grep, display, main): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+ * src/accessdb.c (parse_opt): Use mkdbname to construct default
+ database path.
+
+Thu Jun 27 09:43:35 BST 2013 Peter Schiffer <pschiffe@redhat.com>
+
+ * lib/encodings.c (get_locale_charset): Free saved_locale.
+ * src/check_mandirs.c (testmandirs): Close directory handle on
+ early-return paths.
+ * src/man.c (local_man_loop): Free locale_manpath's argument after
+ call.
+ (main): Likewise. Free cwd, internal_locale, and program_name
+ before calling gripe_no_name. Free database before exiting.
+ (format_display) [TROFF_IS_GROFF]: Free old_cwd.
+ (display) [TROFF_IS_GROFF]: Free page_lang.
+ (display): Free formatted_encoding.
+ (find_cat_file): Free cat_dir.
+ (try_section): Free info and info_buffer if they weren't added to
+ the candidates.
+ (display_filesystem): Free title and filename.
+ (try_db): Free database before setting it.
+ (man): Free each candidate using free_candidate, not free.
+ * src/manp.c (get_nls_manpath): Free manpathlist_copy.
+ (add_nls_manpaths): Free locales_copy.
+ (add_to_dirlist): Free buf before returning.
+ * src/whatis.c (suitable_manpath): Free locale_manpath's argument
+ after call.
+ (do_whatis): Free page on early-continue path.
+
+Thu Jun 27 09:38:35 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_nls_manpaths): Duplicate manpathlist in the case
+ where locales is NULL or empty, allowing the manpathlist parameter
+ to be made const.
+ * src/manp.h (add_nls_manpaths): Update prototype.
+ * src/man.c (locale_manpath): Make manpath parameter const.
+ * src/whatis.c (locale_manpath): Likewise.
+
+Thu Jun 27 09:25:19 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_preprocessors_from_file): Return a non-const string
+ rather than keeping a static copy.
+ (get_preprocessors): Return a non-const string.
+ (make_roff_command): Free the return value of get_preprocessors
+ before returning.
+
+Thu Jun 27 08:39:26 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv_client.c (add_manconv): Don't allocate codes until
+ after checking for the UTF-8/UTF-8 early-return case.
+
+Thu Jun 27 00:09:48 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * lib/encodings.c (find_charset_locale): Fix memory leaks.
+
+Thu Jun 27 00:07:09 BST 2013 Peter Schiffer <pschiffe@redhat.com>
+
+ * src/check_mandirs.c (testmandirs): Check return value of chdir.
+
+Wed Jun 26 22:41:22 BST 2013 Peter Schiffer <pschiffe@redhat.com>
+
+ * lib/encodings.c (find_charset_locale): Fall back to C.UTF-8 then
+ en_US.UTF-8 if /usr/share/i18n/SUPPORTED does not exist, the
+ requested character set is UTF-8, and the current LC_CTYPE locale
+ is not UTF-8 (Fedora bug #657409).
+ * src/tests/man-6: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-6.
+ * NEWS: Document this.
+
+Wed Jun 26 22:33:00 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Move check for whether nroff supports warning
+ control down below check for whether troff is groff, otherwise it
+ always returns false. Reported by Niels Thykier.
+ * NEWS: Document this.
+
+Sun Jun 23 22:50:24 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.4.
+
+Sun Jun 23 22:44:19 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20130623.
+
+Sun Jun 23 21:21:13 BST 2013 Peter Schiffer <pschiffe@redhat.com>
+ Colin Watson <cjwatson@debian.org>
+
+ Search the full manpath when expanding manual pages that consist
+ only of a .so directive (Fedora bug #693458).
+
+ * src/ult_src.c (find_include): New function, handling manpath
+ search where necessary.
+ (ult_src): Call it when a .so directive is found.
+ * src/Makefile.am (lexgrog_SOURCES): Add globbing.c and globbing.h.
+ * src/tests/man-5: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-5.
+ * NEWS: Document this.
+
+Sun Jun 23 21:15:45 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/mandb-3: Don't rely on ".so test.1" not working.
+
+Sun Jun 23 14:35:51 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (def_path): Expand wildcards in MANDATORY_MANPATH.
+
+Sun Jun 23 14:29:34 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (guess_manpath): Honour MAN_TEST_DISABLE_PATH
+ environment variable, allowing the test suite to disable PATH
+ handling. (May change without notice.)
+ (read_config_file): Honour MAN_TEST_DISABLE_SYSTEM_CONFIG
+ environment variable, allowing the test suite to disable reading
+ the system configuration file. (May change without notice.)
+ * src/tests/testlib.sh: Set MAN_TEST_DISABLE_SYSTEM_CONFIG=1.
+ * src/tests/man-4: Set MAN_TEST_DISABLE_PATH=1.
+
+Sun Jun 23 12:28:19 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/ult_src.c (test_for_include): Return NULL immediately if
+ buffer is NULL.
+ (ult_src): Use this to remove a level of indentation.
+
+Sun Jun 23 11:14:27 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.13.3.
+
+Fri Jun 14 09:53:47 BST 2013 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Tue Jun 11 12:44:24 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/zh_CN.po: New from Translation Project (thanks, Wylmer
+ Wang).
+ * configure.ac (AC_CONFIG_FILES): Add man/zh_CN/Makefile.
+ * man/LINGUAS.po4a: Add zh_CN.
+ * man/Makefile.am (DIST_SUBDIRS): Add zh_CN.
+ * man/zh_CN/Makefile.am, man/zh_CN/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/zh_CN.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add zh_CN.
+ * man/THANKS: Add translator credit.
+ * .bzrignore: Add man/zh_CN/man1, man/zh_CN/man5, and
+ man/zh_CN/man8.
+
+Thu Jun 6 12:24:27 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check whether tbl supports the 'x' format character
+ (e.g. versions of groff before 1.20), and substitute TBL_X_FORMAT
+ accordingly.
+ * man/replace.sin.in: Replace "l lx." with "l l." if tbl does not
+ support the 'x' format character.
+
+Thu Jun 6 12:03:59 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add a check for whether 'nroff -wmac' works.
+ * src/man.c (default_roff_warnings, roff_warnings): Define if
+ NROFF_WARNINGS is defined, rather than TROFF_IS_GROFF.
+ (options): Hide the --warnings option unless NROFF_WARNINGS is
+ defined.
+ (parse_opt, make_roff_command): Handle the --warnings option if
+ NROFF_WARNINGS is defined, rather than TROFF_IS_GROFF.
+
+Thu Jun 6 11:11:36 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Set MANDIR_LAYOUT using AC_SUBST as well as
+ AC_DEFINE/AC_DEFINE_UNQUOTED.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export MANDIR_LAYOUT.
+ * src/tests/testlib.sh (skip): New function.
+ * src/tests/man-3: Skip unless the GNU layout is in use.
+
+Thu Jun 6 10:57:17 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/man-1, src/tests/man-2, src/tests/man-3,
+ src/tests/man-4, src/tests/mandb-1, src/tests/mandb-2,
+ src/tests/mandb-3, src/tests/mandb-4, src/tests/mandb-5,
+ src/tests/mandb-6, src/tests/whatis-1, src/tests/zsoelim-1: Export
+ MANPATH separately rather than trying to set it just for the 'run'
+ function. The latter approach does not seem to work reliably in
+ FreeBSD's /bin/sh.
+ * src/tests/testlib.sh: Stop exporting MANPATH here.
+
+Thu Jun 6 09:37:46 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Use BSD layout on *-*bsd* (e.g. FreeBSD), not just
+ *-bsd*.
+ Test for Berkeley DB in libc, as is the case on FreeBSD.
+
+Thu Jun 6 09:36:09 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (purge_missing) [NDBM]: Check for the
+ existence of DATABASE.dir rather than DATABASE.
+
+Thu Jun 6 09:32:24 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (add_arg): MYDBM_DSIZE may return size_t; cast (for
+ the cases where it returns int instead) and format using %zu
+ rather than %d.
+
+Thu Jun 6 09:01:46 BST 2013 Trần Ngọc Quân <vnwildman@gmail.com>
+
+ * po/vi.po: Update from Translation Project.
+
+Thu Jun 6 02:51:15 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/testlib.sh: Export LC_ALL and MANPATH, for the benefit
+ of shells that do not automatically re-export variables they
+ receive in their environment.
+
+Thu Jun 6 02:50:25 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions_store.c (store_description): Format size_t using
+ %zu, not %d.
+
+Thu Jun 6 02:40:10 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/manconv-2, src/tests/manconv-3: Use octal escapes rather
+ than hexadecimal escapes; the latter are not portable to all
+ printf(1) implementations.
+
+Thu Jun 6 01:49:32 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (TESTS_ENVIRONMENT): Quote variable assignments.
+
+Thu Jun 6 01:43:29 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (TESTS_ENVIRONMENT): Move environment variable
+ settings here, rather than using non-portable 'export'.
+
+Thu Jun 6 01:39:29 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * docs/INSTALL.quick: Reformat external package requirements as a
+ bullet list. Add flex >= 2.5.30.
+
+Thu Jun 6 01:32:19 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * tools/config.guess: Update to 2013-05-16.
+ * tools/config.sub: Update to 2013-04-24.
+
+Tue Jun 4 09:38:08 BST 2013 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+Mon Jun 3 22:59:03 BST 2013 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Mon Jun 3 13:06:43 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.4-pre1.
+
+Mon Jun 3 12:39:22 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document changes since 2.6.3.
+
+Mon Jun 3 12:18:55 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * manual/files.me (NLS manual pages): Wrap a table cell to avoid a
+ line-width warning from nroff.
+
+Mon Jun 3 12:07:35 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ Quieten most warnings from compiling Gnulib (Debian bug #668429).
+
+ * configure.ac: Add gl_WARN_ADD results to WARN_CFLAGS rather than
+ CFLAGS.
+ * lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS).
+ * libdb/Makefile.am (AM_CFLAGS): Likewise.
+ * src/Makefile.am (AM_CFLAGS): Likewise. Move $(libpipeline_CFLAGS)
+ here from AM_CPPFLAGS.
+
+Mon Jun 3 00:01:47 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/Makefile.am (AM_LOG_FLAGS): Force each test to run with
+ the configure-detected shell.
+
+Thu May 30 12:57:50 BST 2013 Peter Schiffer <pschiffe@redhat.com>
+ Colin Watson <cjwatson@debian.org>
+
+ Add support for wildcards in MANPATH (Fedora bug #677669).
+
+ * src/Makefile.am (catman_SOURCES, manpath_SOURCES, whatis_SOURCES):
+ Add globbing.c and globbing.h.
+ * src/globbing.c (expand_path): New function.
+ * src/globbing.h (expand_path): Add prototype.
+ * src/manp.c (add_dir_to_list): Rename to ...
+ (add_expanded_dir_to_list): ... this.
+ (add_dir_to_list): New function, expanding wildcards and wrapping
+ add_expanded_dir_to_list.
+ (add_dir_to_path_list): Expand wildcards.
+ * src/tests/man-4: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-4.
+
+Thu May 30 11:51:54 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch.
+
+Thu 30 May 11:42:29 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.13.2 and Gnulib 20130529.
+
+ * .bzrignore: Add gnulib/lib/locale.h, man/**/*.log, man/**/*.trs,
+ src/tests/*.log, and src/tests/*.trs.
+ * autogen.sh: Drop gnulib/gets.patch backport.
+ * gnulib/gets.patch: Remove.
+ * configure.ac (AM_INIT_AUTOMAKE): Set minimum Automake version to
+ 1.11. Add parallel-tests option for compatibility with 1.11.
+ * man/Rules.man (TESTS_ENVIRONMENT): Move to ...
+ (LOG_COMPILER): ... this.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Rewrite as a list of
+ variable exports rather than as a command prefix, for
+ compatibility with parallel-tests.
+
+Tue May 14 22:55:09 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Define YY_NO_INPUT, suppressing a -Wunused-function
+ warning from GCC (thanks, Bjarni Ingi Gislason).
+ * src/zsoelim.l: Likewise.
+
+Tue May 7 15:27:28 BST 2013 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (escape_less): Revert handling of incompatible option
+ string escaping in less 456. That change was reverted upstream in
+ less 457.
+
+Sun Mar 3 14:22:32 GMT 2013 Felipe Castro <fefcas@gmail.com>
+
+ * po/eo.po: New from Translation Project.
+ * po/LINGUAS: Add eo.
+ * man/THANKS: Add translator credit.
+
+Sun Mar 3 14:19:38 GMT 2013 Robert Luberda <robert@debian.org>
+
+ * po/pl.po: Update from Translation Project.
+ * man/po4a/po/pl.po: Likewise.
+
+Tue Jan 29 13:15:26 GMT 2013 Will <cwr@netcom.co.uk>
+
+ * src/manp.c (add_to_dirlist): Increase key length to handle buried
+ binutils manual page paths.
+
+Mon Jan 21 11:20:48 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AC_HEADER_SYS_WAIT): Remove; no longer used.
+
+Mon Jan 21 11:04:44 GMT 2013 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Libtool 2.4.2-1.2 (from Debian).
+
+Sat Dec 22 13:59:14 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Document default section list in manual pages (Debian bug #611007).
+
+ * man/replace.sin.in: Substitute %sections%.
+ * man/man1/man.man1 (DESCRIPTION): Fix misplaced comma. Document
+ configured list of sections rather than simply saying "a
+ pre-defined order".
+ (ENVIRONMENT): Document default for $MANSECT.
+ * man/man8/catman.man8 (ENVIRONMENT): Likewise.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Fri Dec 21 21:29:27 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Use $MANLESS as the default for prompt_string if
+ the -r option was not used.
+ (setenv_less): Remove code to copy $MANLESS verbatim into $LESS.
+ * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT):
+ Describe new behaviour of $MANLESS.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Sun Dec 16 12:00:55 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (escape_less): Handle incompatible change to option
+ string escaping in less 456. Reported by Vincent Lefevre.
+
+Sat Dec 15 10:49:46 GMT 2012 Joe Hansen <joedalton2@yahoo.dk>
+
+ * man/po4a/po/da.po: Update from Translation Project.
+
+Sat Nov 24 22:42:01 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/da.po: New from Translation Project (thanks, Joe
+ Hansen).
+ * configure.ac (AC_CONFIG_FILES): Add man/da/Makefile.
+ * man/LINGUAS.po4a: Add da.
+ * man/Makefile.am (DIST_SUBDIRS): Add da.
+ * man/da/Makefile.am, man/da/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/da.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add da.
+ * man/THANKS: Credit Joe Hansen with man/da as well as da.po.
+ * .bzrignore: Add man/da/man1, man/da/man5, and man/da/man8.
+
+Mon Sep 17 23:22:48 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.3.
+
+Mon Sep 17 23:20:19 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ Stop distributing .tar.gz, as promised in the release notes for
+ 2.6.2.
+
+ * configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
+ * docs/man-db.lsm (Primary-site): Drop .tar.gz size.
+
+Mon Sep 17 22:53:40 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh, release.sh: Use 'set -e' rather than '#! /bin/sh -e',
+ to avoid accidents when debugging with 'sh -x'.
+
+Mon Sep 17 22:53:14 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Add gnulib/gets.patch.
+
+Mon Sep 17 22:33:41 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility
+ with Automake 1.12.
+ * NEWS: Document this.
+
+Mon Sep 17 22:28:27 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to
+ stop assuming gets (Savannah bug #37255).
+
+ * gnulib/gets.patch: New file.
+ * autogen.sh: Apply gnulib/gets.patch.
+ * NEWS: Document this.
+
+Mon Sep 17 22:07:02 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.11.6.
+
+Thu Aug 16 12:08:48 BST 2012 Trần Ngọc Quân <vnwildman@gmail.com>
+
+ * po/vi.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Mon Jun 18 13:37:45 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.2.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Mon Jun 18 13:34:31 BST 2012 Ville Skyttä <ville.skytta@iki.fi>
+
+ * configure.ac: Add elinks and w3m to list of HTML browsers to
+ search for.
+
+Mon Jun 18 13:02:06 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Adjust indentation. Set unlzma to empty if xz is
+ found.
+
+Mon Jun 18 12:56:56 BST 2012 Ville Skyttä <ville.skytta@iki.fi>
+
+ * configure.ac: Only check for lzma if xz is not found.
+ * include/comp_src.h.in (comp_list): Likewise.
+
+Mon Jun 18 11:40:27 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_INIT_AUTOMAKE): Distribute tarballs compressed
+ using xz as well as gzip.
+
+Mon Jun 18 11:24:30 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (main): Make the global configuration file optional
+ if a user configuration file was supplied. Fixes test suite.
+
+Mon Jun 18 10:59:41 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ * README (Copyright and licensing): Update FSF copyright years.
+
+Mon Jun 18 10:55:53 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Autoconf 2.69, Automake 1.11.5, and Gnulib
+ 20120404-stable.
+
+Mon Jun 18 04:20:41 BST 2012 Colin Watson <cjwatson@debian.org>
+
+ Avoid fatal errors when opening a 64-bit GDBM database from a 32-bit
+ process (Ubuntu bug #1001189).
+
+ * libdb/db_gdbm.c (trap_error): New function.
+ (man_gdbm_open_wrapper): Rearrange interface to call gdbm_open
+ rather than taking its return value as an argument. Fetch a test
+ value from the database after opening it, inside a setjmp/longjmp
+ guard to prevent GDBM from exiting.
+ * include/mydbm.h (man_gdbm_open_wrapper): Update prototype.
+ (MYDBM_CTRWOPEN, MYDBM_CRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN):
+ Update man_gdbm_open_wrapper calls, since it now calls gdbm_open
+ itself.
+ * NEWS: Document this.
+
+Mon May 14 16:40:00 PDT 2012 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: The fix for Ubuntu bug #927028 also fixed Debian bug #672661
+ along the way. Document this.
+
+Fri May 4 15:36:58 BST 2012 Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>
+
+ * man/po4a/po/de.po: Update from Translation Project.
+
+Thu Apr 26 09:28:44 BST 2012 Arun Persaud <arun@nubati.net>
+
+ * po/de.po: Update from Translation Project.
+
+Thu Apr 19 11:19:19 BST 2012 Arun Persaud <arun@nubati.net>
+
+ * po/de.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Sun Apr 8 09:43:11 BST 2012 Marek Černocký <marek@manet.cz>
+
+ * po/cs.po: Update from Translation Project.
+
+Mon Mar 19 10:57:16 GMT 2012 Joe Hansen <joedalton2@yahoo.dk>
+
+ * po/da.po: Update from Translation Project.
+
+Mon Feb 27 13:26:47 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (main): Move locale manpath expansion to ...
+ (locale_manpath): ... here (new function).
+ (suitable_manpath): New function.
+ (do_whatis): If a page contains a slash and is a path to an
+ executable on $PATH, then look up its base name only in
+ appropriate manual hierarchies.
+ (search): Pass current manpath entry to do_whatis.
+ * src/tests/whatis-1: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add whatis-1.
+ * NEWS: Document this.
+
+Wed Feb 22 03:04:45 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Optimise apropos when given many arguments (Ubuntu bug #927028).
+
+ * src/whatis.c (use_grep, do_whatis, parse_name, parse_whatis,
+ do_apropos, search): Operate on multiple pages.
+ (use_grep, do_whatis, do_apropos): Update an output array rather
+ than returning an int.
+ (parse_name, parse_whatis): Update an output array as well as
+ returning an int.
+ (display, do_whatis_section): Constify page argument.
+ (match): Constify lowpage and whatis arguments.
+ (main): Process all arguments using a single call to search.
+ * NEWS: Document this.
+
+Wed Feb 22 02:46:22 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * lib/encodings.c (fallback_source_encoding, fallback_roff_encoding,
+ fallback_less_charset): Save memory by declaring as const char[]
+ rather than const char * (see http://glandium.org/blog/?p=2361).
+ (find_charset_locale): Likewise for supported_path.
+ * src/man.c (default_roff_warnings): Likewise.
+
+Sat Feb 18 09:34:42 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (hashtable_lookup_structure): Make return type
+ more precise.
+ * lib/hashtable.h (hashtable_lookup_structure): Update prototype.
+
+Thu Feb 16 10:55:05 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Add gnulib/m4/math_h.m4.
+
+Tue Feb 14 12:18:50 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.1.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Thu Feb 9 08:44:09 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.11.3.
+
+Thu Feb 9 08:16:12 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l, src/zsoelim.l: Ensure that config.h is included at
+ the very top of the scanner, before any other headers. This
+ should fix a compilation problem on Solaris reported by Clark J.
+ Wang.
+
+Wed Feb 8 14:07:41 GMT 2012 Joe Hansen <joedalton2@yahoo.dk>
+
+ * po/da.po: Update from Translation Project.
+
+Tue Feb 7 00:20:51 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * docs/INSTALL.quick: Document requirement for libiconv >= 1.8 on
+ non-glibc systems.
+
+Mon Feb 6 23:00:33 GMT 2012 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po, po/fr.po: Update from Translation Project.
+
+Mon Feb 6 22:57:12 GMT 2012 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po, po/ru.po: Update from Translation Project.
+
+Mon Feb 6 10:45:22 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * FAQ: New file.
+ * Makefile.am (dist_noinst_DATA): Add FAQ.
+
+Sun Feb 5 21:59:39 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * README (Notice to users of man-db version 2.2 or 2.2.1): Remove
+ this section. The chances of anyone still running man-db versions
+ from 1995 seem remote in the extreme.
+
+Sun Feb 5 21:57:49 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * release.sh: Make sure that src/lexgrog.c and src/zsoelim.c are
+ fresh.
+
+Sun Feb 5 15:36:52 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * README (Copyright and licensing): New year.
+
+Sun Feb 5 13:14:42 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * manual/README: Fix spelling mistake.
+
+Sun Feb 5 02:11:04 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.1-pre1.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Sun Feb 5 01:34:14 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Fix 'make distcheck' to pass with Automake 1.11.2.
+
+ * Makefile.am (distuninstallcheck_listfiles): Ignore the
+ configuration file, which is deliberately left in place on
+ uninstall.
+ * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
+ * src/Makefile.am (EXTRA_DIST): Force distribution of lexgrog.c and
+ zsoelim.c.
+
+Sun Feb 5 00:53:23 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Recommend 'bzr branch' rather
+ than 'bzr get'; the latter is apparently deprecated in bzr 2.4.
+
+Sat Feb 4 23:38:15 GMT 2012 David Prévot <taffit@debian.org>
+
+ * man/man1/apropos.man1 (SEE ALSO), man/man1/lexgrog.man1 (SEE
+ ALSO), man/man1/man.man1 (SEE ALSO), man/man1/manconv.man1 (SEE
+ ALSO), man/man1/manpath.man1 (SEE ALSO), man/man1/whatis.man1 (SEE
+ ALSO), man/man1/zsoelim.man1 (SEE ALSO), man/man8/catman.man8 (SEE
+ ALSO), man/man8/mandb.man8 (SEE ALSO): Alphabetise references and
+ remove trailing full stops, per man-pages(7) (Debian bug #651482).
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Sat Feb 4 23:27:39 GMT 2012 Marek Černocký <marek@manet.cz>
+
+ * po/cs.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Sat Feb 4 23:10:58 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (split_data): Use ngettext to translate strings
+ containing plural forms (Savannah bug #34968).
+ * src/lexgrog.l (too_big): Likewise.
+ * src/mandb.c (main): Likewise.
+ * po/man-db.pot, po/*.po: Update.
+
+Sat Feb 4 21:44:47 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options): Add --path as an alias for -w.
+ (main): Running 'man -w' (etc.) without a name now prints the
+ manpath, for compatibility with other man implementations.
+ * NEWS: Document this.
+
+Thu Feb 2 18:05:16 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ * include/comp_src.h.in (comp_list): Don't handle .lzma files using
+ lzip. Requested by Matias A. Fonzo.
+
+Thu Feb 2 01:51:18 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Fix some errors spotted by the clang static analyser. Some just
+ needed to be suppressed, but there were two real bugs.
+
+ * src/manconv.c (try_iconv): Make sure outptr is always initialised,
+ even in the corner case where we convert some input text but don't
+ get any UTF-8 text in return.
+ * src/manp.c (get_catpath): Handle manpaths not containing a slash.
+
+ * src/convert_name.c: Mark as non-returning, and add an abort after
+ error (FATAL) to help the compiler prove this.
+ * src/man.c (format_display): Add an assert to help clang prove that
+ old_cwd is always non-NULL when used.
+ * src/ult_src.c: Add asserts to help clang prove that buf is always
+ non-NULL when used.
+
+Thu Feb 2 00:02:07 GMT 2012 Matias A. Fonzo <selk@dragora.org>
+
+ Add support for Lzip-compressed manual pages.
+
+ * configure.ac: Check for lzip. Don't test for lzma if lzip is
+ present, as was already the case for xz.
+ * include/comp_src.h.in (comp_list): Add lzip.
+ * include/manconfig.h.in: Define UNLZIP.
+ * NEWS: Document this.
+
+Wed Feb 1 23:25:03 GMT 2012 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.
+
+ * gnulib: Import closedir, fstat, and opendir modules.
+
+Wed Nov 2 14:33:18 GMT 2011 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Sun Oct 9 23:32:41 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (null_hashtable_free): Use ATTRIBUTE_UNUSED to
+ appease compiler warnings rather than assigning an argument to
+ itself.
+ * src/mandb.c (cleanup_sigsafe, cleanup): Likewise.
+
+Sun Oct 9 23:14:11 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_roff_line_length, add_roff_line_length): Only
+ compile if either TROFF_IS_GROFF or HEIRLOOM_NROFF is defined.
+ Spotted by cppcheck.
+
+Sun Oct 9 22:50:36 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_to_dirlist): Read lines from configuration file
+ using getline rather than fgets with a fixed-size buffer.
+
+Sun Oct 9 22:42:00 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import getline module (used in lib/encodings.c).
+
+Sun Oct 9 22:26:15 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/es/man8/accessdb.man8: Remove; this is simply an out-of-date
+ copy of the English page. Reported by Křištof Želechovski.
+ * man/es/Makefile.am (man8_MANS): Remove man8/accessdb.8.
+
+Sun Oct 9 22:21:19 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20110908-stable.
+
+Sun Oct 9 00:24:22 BST 2011 Peter Schiffer <pschiffe@redhat.com>
+
+ * src/filenames.c (filename_info): Zero-initialise the contents of
+ info to avoid a double-free in store_descriptions (Fedora bug
+ #702904).
+ * src/tests/mandb-6: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-6.
+ * NEWS: Document this.
+
+Sun Oct 9 00:16:25 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Update.
+
+Sat Oct 8 23:34:26 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Convert the German manual pages translation to po4a.
+
+ * man/po4a/po/de.po: New from Translation Project (thanks, Martin
+ Eberhard Schauer).
+ * man/LINGUAS: Remove de.
+ * man/LINGUAS.po4a: Add de.
+ * man/de/man1, man/de/man5, man/de/man8: Remove.
+ * man/de/Makefile.am (PO4A_LINGUA): Set to yes.
+ (EXTRA_DIST): Add translator.add.
+ (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1.
+ * man/po4a/Makefile.am (POFILES): Add po/de.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add de.
+ * man/THANKS: Credit Martin Schauer with man/de as well as de.po.
+ * .bzrignore: Add man/de/man1, man/de/man5, and man/de/man8.
+
+Sat Oct 8 17:11:08 BST 2011 Yasuaki Taniguchi <yasuakit@gmail.com>
+
+ * po/ja.po: Update from Translation Project.
+
+Sat Oct 8 17:09:41 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/THANKS: Consolidate duplicated credit.
+
+Sat Oct 8 17:07:17 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Convert the Japanese manual pages translation to po4a.
+
+ * man/po4a/po/ja.po: New from Translation Project (thanks, Yasuaki
+ Taniguchi).
+ * man/LINGUAS: Remove ja.
+ * man/LINGUAS.po4a: Add ja.
+ * man/ja/man1, man/ja/man5, man/ja/man8: Remove.
+ * man/ja/Makefile.am (PO4A_LINGUA): Set to yes.
+ (EXTRA_DIST): Add translator.add.
+ (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1.
+ * man/po4a/Makefile.am (POFILES): Add po/ja.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add ja.
+ * man/THANKS: Add Yasuaki Taniguchi.
+ * .bzrignore: Add man/ja/man1, man/ja/man5, and man/ja/man8.
+
+Sun Sep 18 18:28:37 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/mandb-5: Make executable.
+
+Sat Sep 17 13:28:33 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): man-db's Bazaar repository now
+ requires bzr 1.16 or later.
+
+Mon Sep 5 11:29:53 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c: Include "xvasprintf.h" for xasprintf.
+
+Mon Aug 8 14:00:32 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (mandb): Create a cache directory tag, per
+ http://www.brynosaurus.com/cachedir/ ("Cache Directory Tagging
+ Standard"). Suggested by Josh Triplett (Debian bug #637046).
+
+Fri Jul 8 13:27:41 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Use a 32KiB buffer when copying files, rather
+ than a 1KiB buffer. This seems somewhat faster (although it's
+ hard to tell on an SSD!).
+
+Fri Jul 8 12:49:46 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20110609-stable.
+
+Thu Jun 16 12:18:08 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c, libdb/db_ndbm.c: Stop including "flock.h",
+ removed in 2.6.0. Reported by Maciej Mrozowski. Include
+ <sys/file.h> unconditionally, since Gnulib now provides it.
+ * NEWS: Document this.
+
+Mon Jun 6 11:25:28 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Locale/Po4a/Manext.pm (translate): Exclude a number of
+ untranslatable table entries from translation.
+
+Mon Jun 6 10:36:01 BST 2011 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+Mon Jun 6 10:34:26 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/accessdb.man8 (NAME): Remove trailing full stop
+ (suggested by David Prévot). Unfuzzy all translations.
+
+Mon Jun 6 10:06:09 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (check_for_stray): Pass mandir_base as base
+ argument to store_descriptions, not mandir. Regression introduced
+ in man-db 2.6.0 (r1309).
+
+Sat Jun 4 07:33:36 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (check_for_stray): When invoking col, try to
+ ensure that LC_CTYPE is set to a UTF-8 locale (Arch Linux bug
+ #18722).
+
+Fri Jun 3 10:05:45 BST 2011 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+
+Tue May 31 01:04:26 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * lib/encodings.c (get_locale_charset): Eliminate ctype variable,
+ which was set but not used.
+ * src/man.c (make_roff_command): Preprocess out code to set
+ using_tbl if GNU_NROFF is defined, since that code is only used if
+ it is not defined.
+
+Tue May 31 00:59:01 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (locale_macros): Add a backslash to the end of the .if
+ line, to avoid adding a blank line to the output (Debian bug
+ #628639).
+
+Fri May 20 16:35:02 BST 2011 Yasuaki Taniguchi <yasuakit@gmail.com>
+
+ * po/ja.po: Update from Translation Project.
+
+Wed May 18 17:25:46 BST 2011 Yasuaki Taniguchi <yasuakit@gmail.com>
+
+ * po/ja.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Fri May 13 16:11:07 BST 2011 Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>
+
+ * po/de.po: Update from Translation Project.
+
+Sat Apr 23 18:54:06 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.am (SUBDIRS): Build this directory before tests/, so
+ that 'make check' works even if 'make' has not been run.
+
+Sat Apr 23 18:00:34 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Autoconf 2.68 and Gnulib 20110412-stable.
+
+Wed Apr 13 11:22:39 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.0.2.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Wed Apr 13 10:26:07 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions.c (parse_descriptions): Once we've seen at least
+ one record, ignore any further records that don't include a whatis
+ description, as they tend to be noise (Arch Linux bug #22866).
+ * NEWS: Document this.
+
+Tue Apr 12 14:10:17 BST 2011 Jordi Mallach <jordi@gnu.org>
+
+ * po/ca.po: Update from Translation Project.
+
+Tue Apr 12 14:03:38 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (test_manfile): whatis->whatis may be NULL in
+ the case of an empty page. Guard against this (Debian bug
+ #622104).
+ * src/tests/mandb-5: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-5.
+ * NEWS: Document this.
+
+Sun Apr 10 22:09:10 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.0.1.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Sun Apr 10 14:45:52 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (read_config_file): Read a user-specified configuration
+ file even if HOME is unset.
+ * NEWS: Document this.
+
+Sun Apr 10 02:10:56 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions_store.c (store_descriptions): Ensure that the
+ target of a symlink or .so chain is always recorded as a real
+ page. Fixes mandb-2 test failures.
+ * NEWS: Document this.
+
+Sun Apr 10 01:55:28 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/mandb-2: Test the case where a manual page changes from
+ a symbolic link to a regular file, as well as vice versa.
+
+Sat Apr 9 13:30:16 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.0.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot,
+ po/*.po: Update.
+
+Sat Apr 9 13:21:08 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Libtool 2.4.
+
+Sat Apr 9 12:56:02 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (Controlling formatted output): Wrap first cell
+ in --ascii translation table.
+ * man/man8/mandb.man8 (DATABASE CACHES): Wrap second cell in
+ database type table.
+ * man/po4a/Locale/Po4a/Manext.pm (shiftline): Fix T} detection.
+ * man/po4a/po/ru.po: Don't translate "\\*[softhyphen]".
+
+Sat Apr 9 11:52:20 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (DESCRIPTION): Typeset ellipses in roman rather
+ than bold (thanks, David Prévot).
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ Manually unfuzzy translations.
+
+Sat Apr 9 11:42:51 BST 2011 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+ * po/pl.po: Likewise.
+
+Sat Apr 9 11:38:52 BST 2011 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Thu Apr 7 12:46:34 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * lib/cleanup.c (do_cleanups): Set tos and nslots to 0 before
+ freeing stack, in case do_cleanups_sigsafe is called again from a
+ signal handler (Fedora bug #694332).
+ * NEWS: Document this.
+
+Sat Apr 2 12:20:30 BST 2011 David Prévot <david@tilapin.org>
+
+ * po/fr.po: Update from Translation Project.
+
+Mon Mar 28 17:59:45 BST 2011 Yuri Kozlov <yuray@komyakino.ru>
+
+ * po/ru.po: Update from Translation Project.
+
+Mon Mar 28 17:40:36 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import flock module.
+ * lib/Makefile.am (libman_la_SOURCES): Remove flock.h.
+ * lib/README: Remove flock.*.
+ * lib/flock.c, lib/flock.h: Remove.
+
+Mon Mar 28 13:07:50 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * libdb/mydbm.h (btree_close, btree_exists, btree_fetch,
+ btree_firstkey, btree_nextkey, btree_replace, btree_nextkeydata):
+ Drop inline specifier; these functions are typically used from
+ different translation units from their definitions.
+
+Mon Mar 28 12:59:54 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add support for db5.
+ * NEWS: Document this.
+
+Mon Mar 28 12:26:54 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Apply correct M4 quotation throughout.
+ * m4/man-bdb.m4: Likewise.
+ * m4/man-gnu-nroff.m4: Likewise.
+ * m4/man-linguas.m4: Likewise.
+ * m4/man-trans-subst.m4: Likewise.
+
+ * m4/man-bdb.m4: Use AS_VAR_IF rather than AS_IF plus AS_VAR_GET.
+
+Mon Mar 28 11:15:16 BST 2011 Joe Hansen <joedalton2@yahoo.dk>
+
+ * po/da.po: Update from Translation Project.
+
+Mon Mar 28 11:12:38 BST 2011 David Prévot <david@tilapin.org>
+
+ * man/po4a/po/fr.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Mon Mar 28 11:09:19 BST 2011 David Prévot <david@tilapin.org>
+
+ * po/fr.po: Update from Translation Project.
+
+Mon Mar 28 11:06:04 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-gcc-warning.m4: Remove.
+ * gnulib: Import warnings module.
+ * configure.ac: Replace MAN_GCC_WARNING with gl_WARN_ADD.
+
+Sun Mar 27 18:25:25 BST 2011 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.6.0-pre1.
+ * po/man-db.pot, po/*.po: Update.
+ * man/po4a/po/man-db-manpages.pot: Update.
+
+Thu Mar 24 12:46:38 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * lib/security.c (do_system_drop_privs_child): Remove unused
+ variable.
+
+Thu Mar 24 12:43:51 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (lang): Make non-const.
+ (local_man_loop): Free lang after calling display.
+ (display_filesystem): Likewise.
+ (display_database): Likewise.
+ (do_global_apropos_section): Ensure lang is set while calling
+ display.
+ * NEWS: Document this.
+
+Thu Mar 24 01:22:00 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Help novices find their way around. See
+ http://brainstorm.ubuntu.com/idea/25975.
+
+ * src/man.c (main): Add "(press h for help or q to quit)" to the
+ default less prompt string.
+ * man/man1/man.man1 (Controlling formatted output): Update
+ documentation.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * NEWS: Document this.
+
+Thu Mar 24 01:03:13 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Rewrite all remaining subprocess handling in terms of libpipeline.
+
+ * lib/security.c (do_system_drop_privs_child): New function.
+ (do_system_drop_privs): Rewrite using libpipeline.
+ * src/catman.c (post_fork): New function.
+ (catman): Rewrite using libpipeline.
+ (add_arg): Rewrite as a wrapper around pipecmd_arg.
+ (do_catman): Remove.
+ (reset_cursor): Remove.
+ (parse_for_sec): Use libpipeline for subprocess handling.
+ (main): Install custom post-fork handler.
+ * src/man.c (gripe_no_man) [_AIX || __sgi]: Rewrite vendor fallback
+ using libpipeline.
+ * src/Makefile.am (catman_LDADD): Add $(libpipeline_LIBS).
+
+ * src/catman.c (main): Duplicate the output of setlocale if
+ non-NULL.
+
+ * configure.ac (AC_FUNC_VFORK): Remove.
+ (AC_REPLACE_FUNCS): Remove waitpid.
+ * gnulib: Remove waitpid module.
+ * lib/README: Remove waitpid.c.
+ * lib/waitpid.c: Remove.
+
+Sun Mar 20 12:58:42 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Remove the need for our patched version of xstrdup.
+
+ * lib/encodings.c (get_locale_charset): Check return value of
+ setlocale before passing to xstrdup.
+ (find_charset_locale): Likewise.
+ * lib/pathsearch.c (pathsearch): Check return value of getenv before
+ passing to xstrdup.
+ (pathsearch_executable): Likewise.
+ * lib/tempfile.c (create_tempdir): Adjust appendstr call to avoid
+ needing to pass return value of path_search to xstrdup.
+ * src/check_mandirs.c (test_manfile): Don't pass NULL lg.whatis to
+ xstrdup.
+ * src/descriptions.c (parse_descriptions): Don't pass NULL
+ head->whatis to xstrdup.
+ * src/man.c (main): Check return value of setlocale before passing
+ to xstrdup.
+ (add_col): Only call find_charset_locale if locale_charset is
+ non-NULL.
+ (add_candidate): Don't pass NULL ult to xstrdup.
+ * src/manp.c (read_config_file): Adjust appendstr call to avoid
+ needing to pass return value of getenv to xstrdup.
+ * src/whatis.c (do_apropos): Don't pass NULL info.whatis to xstrdup.
+ (main): Check return value of setlocale before passing to xstrdup.
+ * src/zsoelim.l (zsoelim_stdin_data_new): Don't pass NULL path to
+ xstrdup.
+
+ * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and
+ gnulib/lib/xmalloc.patch.
+ * autogen.sh: Stop applying gnulib/lib/xmalloc.patch.
+ * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.
+
+Sun Mar 20 01:39:41 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import waitpid module.
+
+Sun Mar 20 01:31:33 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20110216-stable.
+
+Tue Mar 15 10:55:52 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (STD_SECTIONS): Add section 0 between 3 and
+ 2, matching a change in man-db 2.5.6.
+
+Tue Mar 15 10:52:58 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): If the user asked for an explicit
+ section, sort exact matches first (Fedora bug #684977).
+ * src/tests/man-3: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-3.
+ * NEWS: Document this.
+
+Tue Mar 15 10:48:19 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_sections): Put user entries in a separate list.
+ (get_sections): If any user entries are present, use them rather
+ than system entries.
+ (add_to_dirlist): Pass user to add_sections.
+ * NEWS: Document this.
+
+Mon Mar 14 10:55:39 GMT 2011 Joe Hansen <joedalton2@yahoo.dk>
+
+ * po/da.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Wed Mar 2 11:12:13 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Reset SIGPIPE to SIG_DFL on startup, to avoid
+ noisy output in the event that mandb was started from a context
+ where SIGPIPE was ignored (e.g. Fedora bug #649674).
+ * NEWS: Document this.
+
+Tue Jan 25 00:20:29 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (MAN_NAME): Consider .PD requests as paragraph
+ breaks, to work around poor lexical analysis that causes them to
+ be matched as .P and emit a stray trailing "D" (Debian bug
+ #611012).
+
+Sun Jan 23 23:50:38 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was
+ removed along with the internal copy of libpipeline.
+ * man/po4a/Makefile.am (EXTRA_DIST): Add Locale/Po4a/Manext.pm.
+ (PO4A_ENVIRONMENT): Set PERL5LIB to $(srcdir), not `pwd`.
+
+Sun Jan 23 17:01:51 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/apropos.man1 (OPTIONS), man/man1/lexgrog.man1 (OPTIONS),
+ man/man1/man.man1 (OPTIONS), man/man1/manconv.man1 (OPTIONS),
+ man/man1/manpath.man1 (OPTIONS), man/man1/whatis.man1 (OPTIONS),
+ man/man1/zsoelim.man1 (OPTIONS), man/man8/accessdb.man8 (OPTIONS),
+ man/man8/catman.man8 (OPTIONS), man/man8/mandb.man8 (OPTIONS):
+ Print commas in roman rather than bold. Based on a patch from
+ David Prévot (Debian bug #600002).
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ Manually unfuzzy translations.
+
+Mon Jan 10 20:08:03 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ If mandb sees that A is a symlink to B, it should never store a
+ whatis reference for B (Debian bug #204249).
+
+ * src/check_mandirs.c (whatis_hashtable_free): New function.
+ (test_manfile): Change whatis_hash free function to
+ whatis_hashtable_free. Fetch an ult_trace structure from ult_src,
+ record it in whatis_hash in the case of a cache miss, and pass it
+ to store_descriptions.
+ * src/descriptions_store.c (is_prefix): New function.
+ (store_descriptions): Add path and trace parameters. Update all
+ callers.
+ * src/descriptions.h (store_descriptions): Update prototype. Count
+ a match for any name in the provided ult_trace structure as
+ indicating that we shouldn't create a whatis reference. If a name
+ matches a trace entry outside the current manual hierarchy, skip
+ that name entirely.
+ * src/ult_src.c (ult_trace, free_ult_trace): New functions.
+ (ult_src): Add trace parameter. Record each file name we
+ encounter in the trace. Update all callers.
+ * src/ult_src.h (ult_src): Update prototype.
+ (free_ult_trace): Add prototype.
+ * src/Makefile.am (lexgrog_SOURCES): Add filenames.c and
+ filenames.h.
+
+ * src/tests/mandb-2: Test two-level symlinks.
+ * src/tests/mandb-4: New file.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-4.
+
+Mon Jan 10 16:20:22 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (DESCRIPTION), man/de/man1/man.man1
+ (BESCHREIBUNG), man/es/man1/man.man1 (DESCRIPCIÓN),
+ man/it/man1/man.man1 (DESCRIZIONE), man/ja/man1/man.man1 (説明):
+ Enclose long table cells in T{ T}.
+ * man/po4a/Locale/Po4a/Manext.pm: New file, to let us translate
+ individual table cells separately.
+ * man/po4a/Makefile.am: Run po4a with PERL5LIB=`pwd`.
+ * man/po4a/po4a.cfg: Change type to manext.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * man/check-man: Stop ignoring "table wider than line width"
+ warnings.
+ * NEWS: Document this.
+
+Sat Jan 8 18:21:07 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Remove lib/pipeline.c (file removed) and
+ src/descriptions.c (no translatable strings).
+ * po/man-db.pot, po/*.po: Update.
+
+Sat Jan 8 18:14:18 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Remove obsolete cat* subdirectories as well as NLS subdirectories.
+
+ * src/mandb.c (process_manpath): Store the manpath in tried_catdirs
+ along with whether it has been seen.
+ (tried_catdirs_free): New function.
+ (purge_catdir): Improve message.
+ (purge_catsubdirs): New function.
+ (purge_catdirs): Adjust tried_catdirs handling. Call
+ purge_catsubdirs for both top-level catdirs and NLS catdirs.
+ (main): Set tried_catdirs free function to tried_catdirs_free.
+ * NEWS: Document this.
+
+Sat Jan 8 11:42:13 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Remove obsolete NLS subdirectories of cat directories (Debian bug
+ #558804).
+
+ * lib/hashtable.c (hashtable_iterate): New function.
+ * lib/hashtable.h (hashtable_iterate): Add prototype.
+
+ * lib/util.c (remove_directory): Add recurse parameter. Add missing
+ closedir calls.
+ * include/manconfig.h.in (remove_directory): Update prototype.
+ * src/man.c (format_display): Update remove_directory callers.
+
+ * src/mandb.c (process_manpath): Add catpath to tried_catpath hash.
+ Check that manpath exists and is a directory here rather than in
+ the caller.
+ (is_lang_dir, purge_catdir, purge_catdirs): New functions.
+ (main): Create and free tried_catdirs. Move manpath stat checks
+ to process_manpath. Call purge_catdirs after all manpath entries
+ have been processed.
+
+ * NEWS: Document this.
+
+Fri Jan 7 23:49:55 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display_and_save): Drop SIGPIPE handling.
+ pipeline_pump handles this itself, and doing it here means that
+ SIGPIPE is incorrectly ignored in subprocesses (Debian bug
+ #597756).
+
+Fri Jan 7 23:25:39 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Use running_setuid.
+ * src/manp.c (get_def): Likewise.
+
+Tue Jan 4 11:09:00 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * lib/security.c (running_setuid): New function.
+ * lib/security.h (running_setuid): Add prototype.
+ * src/manconv_client.c (manconv_stdin): If running setuid, exec
+ manconv as an external process, since iconv_open is not guaranteed
+ to work correctly in setuid processes.
+
+ * configure.ac: Require libpipeline >= 1.1.0.
+ * docs/INSTALL.quick: Document increased version requirement.
+
+ * NEWS: Document this.
+
+Mon Jan 3 03:02:50 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ Add basic support for the Heirloom Documentation Tools.
+
+ * m4/man-heirloom-nroff.m4: New file.
+ * configure.ac: Call MAN_PROG_HEIRLOOM_NROFF. If successful and an
+ nroff macro was found, prepend -mg -msafe -mpadj to the nroff and
+ troff options.
+ * lib/encodings.c (charset_table) [HEIRLOOM_NROFF]: Disable latin1
+ and nippon devices.
+ (device_table) [HEIRLOOM_NROFF]: Add locale device.
+ * src/man.c (heirloom_line_length) [HEIRLOOM_NROFF]: New function.
+ (add_roff_line_length): Optionally return a command, which should
+ be inserted before troff.
+ (add_roff_line_length) [HEIRLOOM_NROFF]: Support Heirloom, which
+ needs text inserted at the start of the input.
+ (make_roff_command) [HEIRLOOM_NROFF]: Use locale device instead of
+ utf8 in UTF-8 locales. Handle add_roff_line_length return value.
+ Unset TROFFMACS if running setuid.
+ (make_browser): Compile only if TROFF_IS_GROFF.
+ (format_display): Only declare variables related to HTML output if
+ TROFF_IS_GROFF.
+ * src/tests/zsoelim-1: Ignore .ll and .lt lines inserted by
+ heirloom_line_length.
+ * NEWS: Document this.
+
+Mon Jan 3 00:56:55 GMT 2011 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (get_manpath_from_path): Return an empty string rather
+ than asserting if no path elements with corresponding manpaths
+ were found (Debian bug #608490).
+ * src/man.c (local_man_loop): Skip executable processing if no
+ useful manpath was returned.
+ * src/tests/man-2: New test for this bug.
+ * src/tests/Makefile.am (ALL_TESTS): Add man-2.
+
+ * README (Copyright and licensing): New year.
+
+Thu Dec 23 16:00:06 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (testmandirs): Make output neater when stderr
+ is not a tty. Suggested by C W Rose.
+ * NEWS: Document this.
+
+Thu Dec 23 15:50:39 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (glyphs, perldocs): Remove terminating NULL entries;
+ these arrays are handled using bsearch with an explicit length,
+ and NULL-terminating them causes crashes.
+
+Mon Dec 20 00:41:04 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (main): Initialise locale using the LC_MESSAGES
+ category rather than LC_ALL. glibc returns a composite name for
+ the latter.
+ * lib/util.c (init_locale): Return void instead of returning the
+ result of setlocale.
+ * include/manconfig.h.in (init_locale): Update prototype.
+
+Sun Dec 19 16:10:35 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import idpriv-drop and idpriv-droptemp modules.
+ * configure.ac: Stop checking for seteuid, setreuid, and setresuid.
+ * lib/security.c (POSIX_SAVED_IDS, SET_EUID, SWAP_UIDS): Remove in
+ favour of idpriv.h.
+ (drop_effective_privs): Use idpriv_temp_drop.
+ (regain_effective_privs): Use idpriv_temp_restore.
+ (do_system_drop_privs): Use idpriv_drop. Drop saved-IDs case;
+ avoiding a fork doesn't justify having two code paths.
+
+Sun Dec 5 20:58:10 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Provide byte positions in manconv errors (Debian bug #562789).
+
+ * src/manconv.c (locate_error): New function.
+ (try_iconv): Skip over processed input data after handling errors.
+ Use locate_error to produce exact byte positions for conversion
+ errors.
+
+Thu Dec 2 23:54:03 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Allow passing multiple sections to whatis and apropos (Debian bug
+ #571285).
+
+ * src/whatis.c (options): Allow spelling --section as --sections;
+ this is now the preferred long spelling. Document that the
+ argument may be colon-separated.
+ (split_sections): New function.
+ (parse_opt): Pass -s argument through split_sections.
+ (do_whatis): Move most logic to ...
+ (do_whatis_section): ... here.
+ (do_whatis): Iterate over sections, calling do_whatis_section for
+ each.
+ (do_apropos): Test all requested sections.
+ * man/man1/apropos.man1 (SYNOPSIS, OPTIONS), man/man1/whatis.man1
+ (SYNOPSIS, OPTIONS): Document new semantics.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+ * NEWS: Document this.
+
+Thu Dec 2 23:32:07 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (parse_opt): Make -f and -k force program identity to
+ whatis and apropos respectively. This is useful when running
+ directly from the build tree, since libtool makes it hard to
+ detect the program name correctly.
+
+Thu Dec 2 19:28:06 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (parse_for_sec): Format ARG_MAX - arg_size using %zd.
+ * src/manp.c (has_mandir): Cast printf field precisions to int.
+ (create_pathlist): Use %td to format pointer differences.
+
+Thu Dec 2 19:23:36 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_display_command): Make sure the returned pipeline
+ is never NULL; this causes crashes later.
+
+Thu Dec 2 12:33:43 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_display_command): Don't start a pager if standard
+ output is not a tty (Fedora bug #658132).
+ * NEWS: Document this.
+
+Thu Dec 2 00:31:31 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Handle roff named glyphs and perldoc strings in NAME sections
+ (Debian bug #601025).
+
+ * src/lexgrog.l (glyphs, perldocs): New arrays.
+ (MAN_NAME): Call newline_found on encountering \& at the start of
+ a line. Call add_glyph_to_whatis on roff named glyphs, and
+ add_perldoc_to_whatis on perldoc strings.
+ (compare_macro, add_macro_to_whatis, add_glyph_to_whatis,
+ add_perldoc_to_whatis): New functions.
+ * NEWS: Document this.
+
+Wed Dec 1 22:24:51 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Improve .so searching (Debian bug #503472).
+
+ * src/Makefile.am (zsoelim_SOURCES): Add manp.c and manp.h.
+ * src/zsoelim.l (zsoelim_parse_file): Take manpathlist and
+ parent_path arguments, and save those to pass on to
+ zsoelim_open_file.
+ (try_compressed): New function, split out from zsoelim_open_file.
+ (zsoelim_open_file): Take manpathlist and parent_path arguments.
+ Rearrange search logic as follows: (1) if there is no parent_path,
+ try opening directly; (2) look up filename within each manpath
+ entry, treating filenames without directory parts as full manual
+ page lookups; (3) if there is a parent_path, try opening directly.
+ (zsoelim_stdin): Pass path and manpathlist from input data to
+ zsoelim_open_file and zsoelim_parse_file.
+ (zsoelim_stdin_data_new, zsoelim_stdin_data_free): New functions.
+ * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file): Update
+ prototypes.
+ (zsoelim_stdin_data_new, zsoelim_stdin_data_free): Add prototypes.
+ * src/zsoelim_main.c (main): Initialise locale and manpath. Pass
+ manpath to zsoelim_open_file and zsoelim_parse_file.
+ * src/man.c (main): Calculate manpath before handling -l option.
+ (make_roff_command): Pass dir and manpathlist to zsoelim_stdin.
+ * src/tests/zsoelim-1: New test.
+ * src/tests/Makefile.am (ALL_TESTS): Add zsoelim-1.
+ * NEWS: Document this.
+
+ * src/manp.c (get_def): If not setuid, make this identical to
+ get_def_user.
+ * src/manp.h (get_def): Likewise.
+
+Wed Dec 1 14:15:34 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/security.c (do_system_drop_privs): Copy-edit header comment,
+ and update it for libpipeline.
+
+Mon Nov 29 17:48:29 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Remove obsolete versions of lexgrog. They're still available in
+ revision control if people want them.
+
+ * src/Makefile.am (EXTRA_DIST): Remove.
+ * src/README.lexgrog, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
+ src/lexgrog.l.new: Remove.
+
+Sun Nov 28 15:01:21 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Remove internal copy of libpipeline.
+
+ * configure.ac: Remove --enable-socketpair-pipe and
+ --with-external-pipeline options. Remove INTERNAL_PIPELINE
+ Automake conditional. Check for libpipeline unconditionally.
+ * docs/INSTALL.quick: Mention the need to install libpipeline.
+ * gnulib: Remove strsignal and sys_select modules.
+ * lib/Makefile.am (libman_la_SOURCES): Never add pipeline.c or
+ pipeline.h.
+ * lib/pipeline.c, lib/pipeline.h: Remove.
+ * m4/man-socketpair.m4: Remove.
+ * NEWS: Document this. Bump to 2.6.0.
+
+Thu Nov 18 13:46:04 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Reducing linkage when we switched to libtool caused build failures
+ with versions of GNU ld that default to --no-copy-dt-needed-entries.
+ Partially revert these changes, this time taking care to directly
+ link programs against libraries if and only if they use symbols from
+ those libraries directly (otherwise, the linkage from libman.la and
+ libmandb.la should be sufficient).
+
+ * src/Makefile.am (LIBMAN): Add $(top_builddir)/gnulib/lib/libgnu.la
+ and @LTLIBINTL@.
+ (LIBMANDB): Add $(LIBMAN) and $(DBLIBS).
+ (lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD): Add
+ $(libpipeline_LIBS) and $(LTLIBICONV).
+ (whatis_LDADD, zsoelim_LDADD): Add $(libpipeline_LIBS).
+ * NEWS: Document this.
+
+Wed Nov 17 11:43:30 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.9.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Wed Nov 17 11:34:36 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/util.c (init_locale): Avoid warnings if configured with
+ --disable-nls. Remove arguments, since this was only ever called
+ as 'init_locale (LC_ALL, "")' anyway, and that required callers to
+ explicitly include <locale.h>. Update all callers.
+ * include/manconfig.h.in (init_locale): Update prototype.
+
+Wed Nov 17 11:22:28 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (test_manfile): Revert changes to this
+ function from 2010-11-14. Explicitly deleting bad links from the
+ database was overly sensitive to directory ordering, and caused
+ test failures on some systems.
+ * NEWS: Document this.
+
+Mon Nov 15 22:34:57 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.8.
+ * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
+
+Mon Nov 15 22:22:47 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (distclean-hook): Rename to ...
+ (distclean-local): ... this, and fix syntax so that it actually
+ works.
+
+Mon Nov 15 21:38:04 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (local_man_loop): Simplify and improve code to make a
+ temporary copy of manpathlist, in order that it can't free
+ unallocated memory (may fix Savannah bug #31633).
+
+Mon Nov 15 13:48:26 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (clean-local): Remove; distclean-hook in
+ man/Rules.man already takes care of this (thanks, Denis Barbier).
+
+Sun Nov 14 22:12:21 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Prevent repeated rescans when a link is broken. Thanks to Daniel
+ Isenmann for debugging information.
+
+ * src/check_mandirs.c (test_manfile): Explicitly delete bad links
+ from the database.
+ (count_glob_matches, purge_whatis, purge_missing): Extract the
+ database mtime, and ignore any pages at least as old as that for
+ the purposes of deciding whether a whatis entry has been replaced
+ by a real page.
+ * src/tests/mandb-3: New test.
+ * src/tests/Makefile.am (ALL_TESTS): Add mandb-3.
+ * NEWS: Document this.
+
+Wed Nov 3 23:40:25 GMT 2010 Jordi Mallach <jordi@gnu.org>
+
+ * po/ca.po: Update from Translation Project.
+
+Wed Nov 3 20:27:46 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (parse_for_sec): Explicitly pass -S before section
+ number, to reduce ambiguity.
+ * src/man.c (main): In catman mode, never try to guess whether a
+ page argument is a section, as it's too easy to get this wrong
+ (Ubuntu bug #664211).
+
+Fri Oct 29 07:25:44 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (pipeline_install_post_fork): Clarify that this is
+ run in the child process.
+ (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent
+ to exiting zero.
+
+Fri Oct 29 06:18:31 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipecmd_new_sequencev): New function.
+ (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence.
+ (pipeline_new_command_argv): New function.
+ (pipeline_new_command_args): Rewrite in terms of
+ pipeline_new_command_argv.
+ (pipeline_command_argv): New function.
+ (pipeline_command_args): Rewrite in terms of
+ pipeline_command_argv.
+ * lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv,
+ pipeline_command_argv): Add prototypes.
+
+Fri Oct 29 05:28:33 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Rename to ...
+ (pipeline_wait_all): ... this. Return 127 rather than 1 if
+ closing the pipeline output fails. Return 127 if a command other
+ than the last one fails. Return the statuses and the number of
+ statuses in new output parameters if they are non-NULL.
+ (pipeline_wait): Add new wrapper function.
+ * lib/pipeline.h (pipeline_wait_all): Add prototype.
+
+Fri Oct 29 03:50:16 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_new): Default ignore_signals to 0.
+ * lib/decompress.c (decompress_open, decompress_fdopen): Remove
+ redundant calls to pipeline_ignore_signals.
+ * src/man.c (make_browser): Explicitly ignore SIGINT and SIGQUIT
+ when running the browser.
+ (make_display_command): Explicitly ignore SIGINT and SIGQUIT when
+ running the pager.
+
+Fri Oct 29 03:28:57 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c, lib/pipeline.h: Rename command to pipecmd,
+ command_* to pipecmd_*, and COMMAND_* to PIPECMD_*. Update all
+ callers.
+
+Fri Oct 29 03:24:10 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/nl.po: Use I<> rather than U<>.
+
+Tue Oct 26 12:43:45 BST 2010 Erwin Poeze <erwin.poeze@gmail.com>
+
+ * man/po4a/po/nl.po: Update from Translation Project.
+
+Tue Oct 26 12:40:12 BST 2010 Martin Schauer <Martin.E.Schauer@gmx.de>
+
+ * po/de.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Mon Oct 25 17:59:01 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_install_post_fork): New function.
+ (pipeline_start): Call post-fork handler rather than hardcoding
+ pop_all_cleanups.
+ * lib/pipeline.h (pipeline_install_post_fork): Add prototype.
+
+ * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
+ (main), src/mandb.c (main), src/whatis.c (main),
+ src/zsoelim_main.c (main): Install pop_all_cleanups as a post-fork
+ handler.
+
+Mon Oct 25 16:18:08 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_unsetenv): New function.
+ (command_dup, command_dump, command_tostring): Check for NULL
+ cmd->env[i].value.
+ (command_start_child): If cmd->env[i].value is NULL, call unsetenv
+ rather than setenv.
+ * lib/pipeline.h (command_unsetenv): Add prototype.
+
+Sun Oct 24 23:37:08 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Allow building with an external libpipeline.
+
+ * configure.ac: Add --with-external-pipeline option.
+ * lib/Makefile.am (libman_la_CPPFLAGS): Add $(libpipeline_CFLAGS).
+ (libman_la_SOURCES): Include pipeline.c and pipeline.h only
+ conditionally.
+ (libman_la_LDFLAGS): Add $(libpipeline_LIBS).
+ * src/Makefile.am (AM_CPPFLAGS): Add $(libpipeline_CFLAGS).
+ * NEWS: Document this.
+
+Sun Oct 24 21:15:07 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_start_child): Add trailing newline to
+ "nice failed" debug message.
+
+Sun Oct 24 21:10:20 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Make command and pipeline opaque types.
+
+ * lib/pipeline.c (command_nice, command_discard_err,
+ pipeline_get_ncommands, pipeline_get_command,
+ pipeline_set_command, pipeline_want_in, pipeline_want_out,
+ pipeline_want_infile, pipeline_want_outfile,
+ pipeline_ignore_signals): New functions.
+ * lib/pipeline.h (command_nice, command_discard_err,
+ pipeline_get_ncommands, pipeline_get_command,
+ pipeline_set_command, pipeline_want_in, pipeline_want_out,
+ pipeline_want_infile, pipeline_want_outfile,
+ pipeline_ignore_signals): Add prototypes.
+
+ * lib/pipeline.h (enum command_tag, struct command_env, struct
+ command, struct pipeline): Move to ...
+ * lib/pipeline.c (enum command_tag, struct command_env, struct
+ command, struct pipeline): ... here.
+
+ Redirections are now handled slightly differently internally,
+ allowing redirection from/to fd 0.
+
+ * lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and
+ redirect_out.
+ (pipeline_connect): Use pipeline_want_in and pipeline_want_out.
+ Check source->redirect_out.
+ (pipeline_start): Handle new redirection semantics.
+
+ * lib/decompress.c (decompress_open, decompress_fdopen): Use new
+ accessor functions rather than accessing pipeline fields directly.
+ * src/man.c (make_display_command, discard_stderr, open_cat_stream,
+ format_display, display_catman, display): Likewise.
+
+Sun Oct 24 21:04:45 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_run): This would be a more convenient
+ wrapper for the common case if it freed the pipeline as well, so
+ do that. (Callers that don't want this should call pipeline_start
+ and pipeline_wait separately.)
+ * lib/pipeline.h (pipeline_run): Update comment.
+ * lib/security.c (do_system_drop_privs): Consistently free the
+ supplied pipeline, and document doing so.
+ * src/man.c (format_display): Remove pipeline_free after
+ do_system_drop_privs.
+ * src/whatis.c (use_grep): Remove pipeline_free after pipeline_run.
+
+Sun Oct 24 21:03:25 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_new_command_args): New function.
+ * lib/pipeline.h (pipeline_new_command_args): Add prototype.
+ * src/man.c (make_browser): Use it.
+
+Sun Oct 24 20:59:27 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_run): New function.
+ * lib/pipeline.h (pipeline_run): Add prototype.
+ * lib/security.c (do_system_drop_privs): Use it.
+ * src/man.c (do_extern, run_mandb): Likewise.
+ * src/whatis.c (use_grep): Likewise.
+
+Sun Oct 24 20:56:00 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (pipeline_pump): Mention in comment that arguments
+ must be NULL-terminated.
+
+Sun Oct 24 20:55:10 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (pipeline_new_commandv): Fix comment.
+
+Sat Oct 23 20:52:24 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AC_TYPE_SIGNAL): Remove (unused).
+
+Tue Oct 12 11:16:31 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/util.c (init_locale): New function.
+ * include/manconfig.h.in (init_locale): Add prototype.
+ * src/Makefile.am (AM_CPPFLAGS): Move -DLOCALEDIR to ...
+ * lib/Makefile.am (libman_la_CPPFLAGS): ... here.
+
+ * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
+ (main), src/lexgrog_test.c (main), src/man.c (main),
+ src/manconv_main.c (main), src/mandb.c (main), src/manpath.c
+ (main), src/whatis.c (main), src/zsoelim.c (main): Use
+ init_locale.
+
+ * lib/util.c (init_locale): Suppress warning message if
+ DPKG_RUNNING_VERSION is set in the environment.
+ * NEWS: Document this.
+
+Mon Oct 11 09:38:03 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Update for restored bzr+ssh
+ access.
+
+Mon Oct 11 09:36:55 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * .bzrignore: Remove tools/config.rpath.*, which hasn't been needed
+ here since 2009-04-14.
+
+Tue Oct 5 11:48:57 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (clean-local): Don't use 'po4a
+ --rm-translations', since it sometimes updates PO/POT files and
+ the obvious workaround for that breaks 'make distcheck'.
+ Reimplement it by hand instead.
+
+Tue Oct 5 10:59:02 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Use libtool to run man from the build tree.
+
+Tue Oct 5 10:36:35 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ It turns out that AM_GNU_GETTEXT([use-libtool]) is unsupported.
+ Switch to external libintl instead.
+
+ * configure.ac (AM_GNU_GETTEXT): Set external.
+ (AC_CONFIG_FILES): Remove intl/Makefile.
+ * Makefile.am (SUBDIRS): Remove intl.
+ (EXTRA_DIST): Add gnulib/m4/glibc2.m4, gnulib/m4/intdiv0.m4,
+ gnulib/m4/intl.m4, gnulib/m4/intmax.m4, gnulib/m4/inttypes-pri.m4,
+ gnulib/m4/lcmessage.m4, gnulib/m4/printf-posix.m4,
+ gnulib/m4/uintmax_t.m4, and gnulib/m4/visibility.m4.
+ * intl: Remove.
+ * lib/Makefile.am (libman_la_CPPFLAGS): Remove
+ -I$(top_builddir)/intl.
+ * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise.
+ * src/Makefile.am (AM_CPPFLAGS): Likewise.
+ * .bzrignore: Remove intl/Makefile, intl/charset.alias,
+ intl/libgnuintl.h, intl/libintl.h, intl/ref-add.sed, and
+ intl/ref-del.sed.
+ * NEWS: Document this.
+
+Tue Oct 5 01:05:24 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_GNU_GETTEXT): Set use-libtool.
+
+Tue Oct 5 00:11:23 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/Makefile.am (libman_la_LIBADD): Include @LTLIBINTL@ rather
+ than @LIBINTL@.
+ * src/Makefile.am (whatis_LDADD): Include $(LTLIBICONV) rather than
+ $(LIBICONV).
+
+Mon Oct 4 23:56:36 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Add lib/security.c. Remove src/fake_security.c
+ and src/security.c.
+ * po/man-db.pot, po/*.po: Update.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Sun Oct 3 23:57:45 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_argf): New function.
+ * lib/pipeline.h (command_argf): Add prototype.
+ * src/man.c (add_roff_line_length): Use it, reducing need for
+ temporary local variables.
+ (make_roff_command): Likewise.
+
+Sun Oct 3 23:30:06 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (setenv_less): Take a command argument. Set environment
+ variables only for that command, not globally.
+ (make_display_command): Call setenv_less on the command
+ constructed from pager.
+
+Sun Oct 3 22:34:13 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (reap_children, pipeline_sigchld,
+ pipeline_install_sigchld): Move above pipeline_start.
+ (pipeline_install_sigchld): Make static. Return immediately if
+ already installed.
+ (pipeline_start): Call pipeline_install_sigchld.
+ * lib/pipeline.h (pipeline_start): Document that this installs a
+ SIGCHLD handler.
+ (pipeline_install_sigchld): Remove prototype.
+ * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
+ (main), src/mandb.c (main), src/whatis.c (main),
+ src/zsoelim_main.c (main): Stop calling pipeline_install_sigchld.
+
+Thu Sep 30 16:01:22 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Convert the French manual pages translation to po4a.
+
+ * man/LINGUAS: Remove fr.
+ * man/LINGUAS.po4a: Add fr.
+ * man/fr/man1, man/fr/man5, man/fr/man8: Remove.
+ * man/fr/Makefile.am (PO4A_LINGUA): Set to yes.
+ (EXTRA_DIST): Add translator.add.
+ (man1_MANS): Add man1/manconv.1.
+ * man/po4a/Makefile.am (POFILES): Add po/fr.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add fr.
+ * man/THANKS: Add David Prévot.
+ * .bzrignore: Add man/fr/man1, man/fr/man5, and man/fr/man8.
+
+Thu Sep 30 15:44:46 BST 2010 David Prévot <david@tilapin.org>
+
+ * po/fr.po: Update from Translation Project.
+ * man/po4a/po/fr.po: New from Translation Project.
+ * man/fr/translator.add: New file.
+
+Mon Sep 27 19:06:10 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Move util to libman.
+
+ * src/util.c: Move to ...
+ * lib/util.c: ... here.
+ * lib/Makefile.am (libman_la_SOURCES): Add util.c.
+ * src/Makefile.am (accessdb_SOURCES, catman_SOURCES,
+ globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, mandb_SOURCES,
+ manpath_SOURCES, whatis_SOURCES, zsoelim_SOURCES): Remove util.c.
+ * lib/README: Add util.c.
+
+Mon Sep 27 00:50:37 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/m4/gnulib-cache.m4: Remove obsolete modules atexit, memcmp,
+ and strcspn.
+
+Mon Sep 27 00:24:50 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Move security to libman.
+
+ * src/security.c: Move to ...
+ * lib/security.c: ... here.
+ * src/security.h: Move to ...
+ * lib/security.h: ... here.
+ * lib/Makefile.am (libman_la_SOURCES): Add security.c and
+ security.h.
+ * src/Makefile.am (lexgrog_SOURCES): Remove fake_security.c and
+ security.h.
+ (man_SOURCES, mandb_SOURCES): Remove security.c and security.h.
+ * lib/README: Add security.*.
+ * src/lexgrog_test.c: Call init_security, so that we can use generic
+ security functions rather than fake_security.
+ * src/fake_security.c: Remove.
+
+ * lib/security.c (do_system_drop_privs): Unroll calls to do_system
+ into calls to pipeline_start and pipeline_wait.
+ * src/whatis.c (use_grep): Likewise.
+ * src/util.c (do_system): Remove.
+ * include/manconfig.h.in (do_system): Remove.
+
+ * src/*.c: Update #include grouping for movements to libman.
+
+Sun Sep 26 23:53:08 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Get the tests working again following the switch to libtool.
+
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove CLEANPATH.
+ * src/tests/man-1, src/tests/mandb-1, src/tests/mandb-2: Set MANPATH
+ rather than using run_clean_path; running with a stripped-down
+ PATH is risky in general and breaks libtool in particular.
+ * src/tests/testlib.sh (run_clean_path): Remove.
+
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add top_builddir.
+ * src/tests/testlib.sh (run): New function.
+ * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1,
+ src/tests/manconv-2, src/tests/manconv-3, src/tests/mandb-1,
+ src/tests/mandb-2, src/tests/testlib.sh (accessdb_filter): Use run
+ when running programs from the build tree.
+
+Sun Sep 26 23:25:31 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Move encodings to libman.
+
+ * src/encodings.c: Move to ...
+ * lib/encodings.c: ... here.
+ * src/encodings.h: Move to ...
+ * lib/encodings.h: ... here.
+ * lib/Makefile.am (libman_la_SOURCES): Add encodings.c and
+ encodings.h.
+ * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, manconv_SOURCES,
+ mandb_SOURCES, manpath_SOURCES): Remove encodings.c and
+ encodings.h.
+ * lib/README: Add encodings.*.
+
+Sun Sep 26 23:15:00 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (struct manconv_codes, manconv_stdin,
+ free_manconv_codes, add_manconv): Move to ...
+ * src/manconv_client.c: ... here (new file).
+ * src/encodings.h (add_manconv): Move to ...
+ * src/manconv_client.h: ... here (new file).
+ * src/lexgrog.l, src/man.c, src/straycats.c: Include
+ manconv_client.h.
+ * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES): Add
+ manconv_client.c and manconv_client.h.
+
+ * src/manp.c: Remove unnecessary inclusion of encodings.h.
+
+Sun Sep 26 22:59:54 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c: Remove unnecessary inclusion of security.h.
+ * src/ult_src.c: Likewise.
+
+Sun Sep 26 22:47:02 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (mkcatdirs): Move to ...
+ * src/check_mandirs.c (mkcatdirs): ... here, as it's only used by
+ testmandirs. Removes dependency of manp.c on security.h.
+ * src/manp.h (mkcatdirs): Remove prototype.
+ * src/Makefile.am (catman_SOURCES, manpath_SOURCES, whatis_SOURCES):
+ Remove fake_security.c.
+
+Sun Sep 26 22:34:17 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/security.c (remove_with_dropped_privs): Remove; no longer
+ used.
+ * src/fake_security.c (remove_with_dropped_privs): Likewise.
+ * src/security.h (remove_with_dropped_privs): Likewise.
+
+Sun Sep 26 22:23:26 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/Makefile.am (libman_la_LIBADD): Use $(LTLIBOBJS) rather than
+ $(LIBOBJS).
+
+Sun Sep 26 22:08:39 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Build libman and libmandb as shared libraries, reducing our
+ installed footprint by about 200K.
+
+ * configure.ac: Add LT_INIT. Move AC_GNU_SOURCE up to above it.
+ Remove redundant AC_PROG_RANLIB.
+ * gnulib/m4/gnulib-cache.m4: Enable libtool support.
+ * gnulib/m4/libtool.m4, gnulib/m4/ltoptions.m4,
+ gnulib/m4/ltsugar.m4, gnulib/m4/ltversion.m4,
+ gnulib/m4/lt~obsolete.m4, tools/ltmain.sh: New files, created by
+ libtoolize.
+ * autogen.sh: Export LIBTOOLIZE_OPTIONS=--quiet.
+ * lib/Makefile.am: Switch to libtool. Add ../gnulib/lib/libgnu.la,
+ $(LIBCOMPRESS), and @LIBINTL@ to LIBADD. Install the library in
+ $(pkglibdir), and instruct libtool to set an RPATH on binaries
+ built against this library.
+ * libdb/Makefile.am: Switch to libtool. Add ../lib/libman.la to
+ LIBADD. Install the library in $(pkglibdir), and instruct libtool
+ to set an RPATH on binaries built against this library.
+ * src/Makefile.am (LIBMAN): Reduce to libman.
+ (LIBMANDB): Reduce to libmandb.
+ (accessdb_LDADD, catman_LDADD, globbing_LDADD, lexgrog_LDADD,
+ man_LDADD, manconv_LDADD, mandb_LDADD, manpath_LDADD,
+ whatis_LDADD, zsoelim_LDADD): Remove dependencies of libman and
+ libmandb.
+ * .bzrignore: Add **/*.la, **/*.lo, **/.libs, and ./libtool.
+ * NEWS: Document this.
+
+ Avoid symbol clashes between libgnu and libman.
+
+ * lib/hashtable.c (null_hash_free, plain_hash_free, hash_create,
+ hash_lookup_structure, hash_lookup, hash_install, hash_remove,
+ hash_free): Rename to ...
+ (null_hashtable_free, plain_hashtable_free, hashtable_create,
+ hashtable_lookup_structure, hashtable_lookup, hashtable_install,
+ hashtable_remove, hashtable_free): ... these. Update all callers
+ and prototypes.
+ * lib/hashtable.h (hash_free_ptr): Rename to ...
+ (hashtable_free_ptr): ... this. Update all users.
+
+Thu Sep 16 13:53:11 BST 2010 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Tue Aug 17 15:31:38 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (clean-local): Make sure not to change PO or
+ POT files when removing generated translations.
+
+Tue Aug 17 15:26:12 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Autoconf 2.67.
+
+Tue Aug 17 14:29:53 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display_catman): Add iconv to format_cmd before adding
+ a compressor.
+ * NEWS: Document this.
+
+Tue Aug 17 14:22:06 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (add_output_iconv): Make static.
+
+Tue Jul 20 08:18:41 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20100704.
+
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.18.1.
+
+Wed May 19 12:38:31 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions.c (parse_descriptions): Free record.
+ * src/encodings.c (check_preprocessor_encoding): Free directive.
+ (manconv_stdin): Free p.
+ * src/lexgrog_test.c (main): Free lg.filters and lg.whatis.
+
+Thu May 13 11:45:02 CEST 2010 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon May 10 09:42:41 CEST 2010 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Sun May 9 07:37:14 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.8-pre1.
+ * release.sh: Remove man/po4a/po/man-db-manpages.pot before running
+ 'make distcheck', to force it to be regenerated with the current
+ version number.
+ * man/po4a/Makefile.am: Make po/man-db-manpages.pot depend on
+ update-po, rather than using dist-hook which is too late.
+ * po/man-db.pot, po/*.po: Update.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Sat May 8 15:39:49 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/filenames.c (filename_info): Explicitly fail if the extension
+ is zero-length.
+
+Sat May 8 15:35:17 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/filenames.c (filename_info): Allow section and extension to
+ differ as long as the first character is the same. (This is my
+ understanding of what the code was originally meant to do, but it
+ only worked if the section was exactly one character long.)
+
+Tue Apr 27 11:02:48 BST 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20100424.
+
+Fri Apr 2 20:44:11 BST 2010 Ville Skyttä <ville.skytta@iki.fi>
+
+ * configure.ac: Only test for lzma if xz is missing. Add xz to list
+ of compressors checked when deciding whether to define COMP_CAT or
+ COMP_SRC.
+ * include/comp_src.h.in (comp_list): If xz is available, use it for
+ .lzma files in preference.
+
+Fri Apr 2 20:26:41 BST 2010 Ville Skyttä <ville.skytta@iki.fi>
+
+ * include/comp_src.h.in (comp_list): If compress is not available,
+ use gzip to handle .Z files.
+
+Mon Mar 29 09:36:00 BST 2010 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Wed Mar 24 11:04:46 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Fix build regression when GNU_NROFF is undefined (Savannah bug
+ #29318).
+
+ * src/man.c (add_col): New function, split out from
+ make_display_command.
+ (make_roff_command): Reinstate tbl/col logic here, as by the time
+ we get to make_display_command we've forgotten whether tbl was
+ used.
+ (make_display_command): Remove tbl/col logic, useless here. Use
+ add_col.
+
+Sun Mar 21 21:59:54 GMT 2010 Tanguy Ortolo <tanguy+debian@ortolo.eu>
+
+ * src/man.c (main): Try underscore-separated subpages as well as
+ hyphen-separated ones (Debian bug #574641).
+ * man/man1/man.man1 (Finding manual pages): Document this.
+ * NEWS: Document this.
+
+Wed Mar 17 10:26:44 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import localcharset module.
+ * src/encodings.c (struct charset_entry): Rename locale_charset to
+ charset_from_locale. Update all users.
+ (struct less_charset_entry): Likewise.
+ (get_locale_charset): Use locale_charset function from Gnulib,
+ rather than dealing with nl_langinfo and the fallback ourselves.
+ (get_default_device): Rename locale_charset parameter to
+ charset_from_locale.
+ (get_less_charset): Likewise.
+ (get_jless_charset): Likewise.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add
+ @LOCALCHARSET_TESTS_ENVIRONMENT@.
+
+Sat Mar 13 22:15:54 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Ignore "table wider than line width" warnings for
+ Dutch too.
+
+Sat Mar 13 21:33:48 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20100308.
+
+Thu Mar 11 01:26:56 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add AM_MAINTAINER_MODE. In the modern world,
+ timestamps are often just too fragile for those make targets to
+ work well; use ./autogen.sh instead.
+
+Tue Mar 2 19:11:44 GMT 2010 Darren Salt <linux@youmustbejoking.demon.co.uk>
+
+ Add support for XZ-compressed manual pages (Debian bug #572233).
+
+ * configure.ac: Check for xz.
+ * include/comp_src.h.in (comp_list): Add xz.
+ * include/manconfig.h.in: Define UNXZ.
+ * NEWS: Document this.
+
+Tue Mar 2 10:04:54 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Fix assertion failure on 'man -l' with an uncompressed page and
+ prefixed input (no-hyphenation, no-justification, or a non-English
+ page).
+
+ * lib/pipeline.c (command_new_passthrough): New function.
+ * lib/pipeline.h (command_new_passthrough): Add prototype.
+ * src/man.c (display): Allow zero-command decompression pipelines
+ with prefix sequences. In that case, append a passthrough command
+ to the prefix sequence, and append the prefix sequence to the
+ decompression pipeline rather than replacing its first command.
+ * NEWS: Document this.
+
+Tue Mar 2 09:31:36 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/nl.po: New from Translation Project (thanks, Erwin
+ Poeze).
+ * configure.ac (AC_CONFIG_FILES): Add man/nl/Makefile.
+ * man/LINGUAS.po4a: Add nl.
+ * man/Makefile.am (DIST_SUBDIRS): Add nl.
+ * man/nl/Makefile.am, man/nl/translator.add: New files.
+ * man/po4a/Makefile.am (POFILES): Add po/nl.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add nl.
+ * man/THANKS: Credit Erwin Poeze with man/nl as well as nl.po.
+ * .bzrignore: Add man/nl/man1, man/nl/man5, and man/nl/man8.
+
+Thu Feb 18 01:38:04 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (locale_macros): Explicitly set groff's hyphenation
+ language, to ensure that it only hyphenates languages it knows
+ about (Debian bug #570247).
+
+Tue Feb 16 23:11:58 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.7.
+ * po/man-db.pot, po/*.po: Update.
+
+Tue Feb 16 23:09:11 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (get_catpath): Fix handling of non-translated cat
+ paths.
+
+Sun Feb 14 00:19:47 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Always save cat pages in UTF-8 (Debian bug #446741).
+
+ * src/encodings.c (struct directory_entry): Remove
+ standard_output_encoding member.
+ (directory_table): Likewise.
+ (get_standard_output_encoding): Remove.
+ * src/encodings.h (get_standard_output_encoding): Remove prototype.
+ * src/man.c (my_locale_charset): New function, with code moved from
+ make_roff_command.
+ (make_roff_command): Return pipeline output encoding in a new
+ output parameter. Remove enforcement that cat pages could only be
+ saved for the manual hierarchy's default character set. Move
+ post-cat-page pipeline elements to ...
+ (add_output_iconv, make_display_command): ... here.
+ (make_display_command): Remove code for handling a named input
+ file, which has been unused for some time. New encoding argument.
+ (open_cat_stream): New encoding argument. Convert from it to
+ UTF-8 while saving the cat page.
+ (format_display_and_save): New encoding argument, passed to
+ open_cat_stream.
+ (display_catman): New encoding argument. Convert from it to UTF-8
+ while saving the cat page.
+ (display): Get formatted encoding from make_roff_command and pass
+ it to display_catman, make_display_command, and
+ format_display_and_save. Assume UTF-8 when displaying an existing
+ cat page.
+ * NEWS: Document this.
+
+Sat Feb 13 14:25:42 GMT 2010 Vincent Lefèvre <vincent@vinc17.net>
+
+ * lib/decompress.c (decompress_open): Fix sense of directory check
+ (Debian bug #537434).
+
+Mon Feb 8 07:01:35 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (get_catpath): Handle man -> cat substitution correctly
+ for translated cat pages.
+
+Mon Feb 8 04:57:09 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display_and_save): Use sigaction, not signal.
+
+Mon Feb 8 04:29:42 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import getopt-gnu module rather than the obsolete getopt.
+
+Mon Feb 1 12:18:36 PST 2010 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Don't bother printing error
+ messages for SIGINT and SIGQUIT, since these correspond to
+ explicit user actions (Debian bug #568000).
+
+Sun Jan 31 03:44:59 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Don't lose iconv errors from converting
+ to UTF-8 when the target encoding is not UTF-8.
+
+Sun Jan 31 03:33:33 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Automake 1.11.1 and Gnulib 20100109.
+
+Thu Jan 14 11:51:59 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (search): "%s: nothing appropriate." is an error;
+ write it to stderr, not stdout (Debian bug #565255).
+
+Wed Jan 13 23:42:00 GMT 2010 Werner Fink <werner@suse.de>
+
+ Add support for using socketpair(2) as a replacement for pipe(2),
+ which is faster on some systems (Savannah patch #6741).
+
+ * configure.ac: Add --enable-socketpair-pipe option.
+ * m4/man-socketpair.m4: New file.
+ * lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a
+ construction based on socketpair().
+ * NEWS: Document this.
+
+Wed Jan 13 22:04:23 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Autoconf 2.65 and Gnulib 20091120.
+
+Wed Jan 13 18:26:47 GMT 2010 Diego Pettenò <flameeyes@gentoo.org>
+
+ Add support for heirloom-doctools (Savannah patch #6933).
+
+ * configure.ac: Substitute TROFF.
+ * manual/Makefile.am (.pp.dvi, .pp.ps, .pp.tdvi, .pp.html): Use
+ $(TROFF) rather than groff or troff.
+ * src/man.c (options, parse_opt): Just ignore the --warnings option
+ when troff is not groff, rather than compiling it out entirely.
+ (make_roff_command): Only use gxditview variable when troff is
+ groff.
+ * NEWS: Document this.
+
+Tue Jan 12 13:33:51 GMT 2010 Samuel Thibault <sthibault@debian.org>
+
+ * lib/pipeline.c (pipeline_pump): Fix off-by-one error when write
+ returns EAGAIN (Debian bug #564818).
+
+Fri Jan 1 17:03:18 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * README (Copyright and licensing): Update copyright years.
+
+Fri Jan 1 13:26:21 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Only handle iconv errors when iconv
+ returned -1.
+
+Fri Jan 1 11:37:13 GMT 2010 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Handle iconv errors when attempting to
+ convert the last input encoding to UTF-8 (Debian bug #562503).
+ * src/tests/manconv-3: Add test for this.
+ * src/tests/Makefile.am (TESTS): Add manconv-3.
+
+Tue Dec 15 14:10:19 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Fix possible crash when MAN_MUST_CREATE is
+ unset.
+ * NEWS: Document this.
+
+Tue Dec 15 13:47:50 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/debug.c (init_debug): New function: check for MAN_DEBUG=1 in
+ the environment.
+ * include/manconfig.h.in (init_debug): Add prototype.
+ * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
+ (main), src/lexgrog_test.c (main), src/man.c (main),
+ src/manconv_main.c (main), src/mandb.c (main), src/manpath.c
+ (main), src/whatis.c (main), src/zsoelim_main.c (main): Call
+ init_debug.
+ * NEWS: Document this.
+
+Sat Dec 12 00:36:14 GMT 2009 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Tue Dec 1 17:01:19 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (do_extern): Pass section through to external program
+ (Savannah bug #28145). Fix passing of alternate system name to use
+ -m rather than -s.
+
+Tue Nov 24 18:27:59 GMT 2009 Robert Luberda <robert@debian.org>
+
+ * po/pl.po: Update from Translation Project.
+
+Wed Nov 18 14:58:52 GMT 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Wed Nov 18 14:55:31 GMT 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * po/ru.po: Update from Translation Project.
+
+Wed Nov 18 14:52:43 GMT 2009 Erwin Poeze <erwin.poeze@gmail.com>
+
+ * po/nl.po: Update from Translation Project.
+
+Sun Nov 15 22:49:35 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * README (Non-generic arguments to configure): Use more readable
+ formatting.
+ * manual/options-only.me, manual/print-options: New file.
+ * manual/intro.me (Arguments to configure): Add hooks for
+ options-only.me.
+ * manual/Makefile.am (dist_noinst_DATA): Add options-only.me and
+ print-options.
+
+Sun Nov 15 16:15:56 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Savannah has disabled bzr+ssh for
+ the time being; update push URL.
+
+Sun Nov 15 16:05:26 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.7-pre1.
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Nov 15 14:30:27 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document previous change.
+
+Sun Nov 15 14:18:35 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Prefer getting a page from the
+ best manual section over getting a page in the correct language; I
+ have my reservations about this, but it seems to be what people
+ are requesting (Debian bug #519547).
+
+Sun Nov 15 14:02:11 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Search man<sec><ext> directories in the GNU layout (Debian bug
+ #519807, Arch Linux bug #13734).
+
+ * src/globbing.c (match_in_directory): Optionally take allocated
+ count from caller. If it's non-zero, don't clear the glob.
+ (look_for_file): In the GNU layout, search all subdirectories of
+ hier that begin with the first character of the section.
+ * NEWS: Document this.
+
+Sun Nov 15 13:32:58 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (match_in_directory): Make this void; checking
+ whether any glob matches were returned is sufficient. Move
+ glob-clearing code to ...
+ (clear_glob): ... here (new function).
+ (look_for_file): Simplify since we now only need to check
+ gbuf.gl_pathc == 0, not the return value of match_in_directory as
+ well. Clear gbuf on entry.
+
+Sun Nov 15 13:18:38 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1,
+ src/tests/manconv-2, src/tests/mandb-1, src/tests/mandb-2: Use
+ 'diff -u', which produces more helpful output on failures.
+
+Sat Nov 14 20:10:57 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * README (System specific notes): Remove entirely. The notes about
+ Linux here only pertain to thoroughly obsolete systems.
+
+Sat Nov 14 20:08:40 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Handle Ultrix-4.3a -YPOSIX requirement
+ automatically.
+ * README (System specific notes): Remove note about Ultrix-4.3a.
+
+Sat Nov 14 19:14:02 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/README: Copyright is not the same as licensing; fix confusion.
+
+Sat Nov 14 18:57:42 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options): Add --nh and --nj aliases for
+ --no-hyphenation and --no-justification respectively.
+ * man/man1/man.man1 (Controlling formatted output): Document new
+ aliases.
+
+Sat Nov 14 18:52:15 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (argstr_get_word): Fix a small memory leak.
+
+Sat Nov 14 18:51:37 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Do what the user probably means when the full path to an executable
+ is given as an argument (Debian bug #505465).
+
+ * lib/pathsearch.c (directory_on_path): New function.
+ * lib/pathsearch.h (directory_on_path): Add prototype.
+ * src/manp.c (get_manpath_from_path): Make external. Add 'mandatory'
+ argument to control the addition of MANDATORY_MANPATH entries.
+ (guess_manpath): Update caller.
+ * src/manp.h (get_manpath_from_path): Add prototype.
+ * src/man.c (main): Move locale manpath expansion to ...
+ (locale_manpath): ... here (new function).
+ (local_man_loop): If the argument is an executable, try looking up
+ the corresponding manual page in the appropriate part of the
+ manpath, rather than just trying to format the text of the
+ executable as a manual page.
+ * NEWS: Document this.
+
+Sat Nov 14 10:28:29 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Add option to disable justification (Debian bug #440047).
+
+ * src/man.c (options, parse_opt): Accept --no-justification. Reset
+ corresponding variable with -D.
+ (disable_justification): New function.
+ (display): Append disable_justification to the decompressor
+ pipeline if --no-justification is used.
+ * man/man1/man.man1 (SYNOPSIS, Controlling formatted output):
+ Document --no-justification.
+ * NEWS: Document this.
+
+Sat Nov 14 10:23:28 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (ATTRIBUTE_NORETURN): Define to an
+ attribute marking a function as non-returning if using GCC 2.5 or
+ newer.
+ * lib/pipeline.c (command_new_sequence, command_sequence_command):
+ New functions.
+ (command_dup, command_dump, command_tostring, command_free):
+ Handle commands of type COMMAND_SEQUENCE.
+ (pipeline_start): Move command execution to ...
+ (command_start_child): ... here (new function). Handle commands of
+ type COMMAND_SEQUENCE.
+ * lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE.
+ (struct command): Add support for commands that consist of a
+ sequence of commands.
+ (command_new_sequence, command_sequence_command): Add prototypes.
+ * src/man.c (disable_hyphenation, locale_macros): Drop passthrough
+ code.
+ (display): Create a command sequence for hyphenation and
+ locale-macro decompressor prefixes if necessary.
+
+Mon Nov 9 16:59:47 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Define a CROSS_COMPILING conditional if
+ cross-compiling.
+ * man/Rules.man, src/tests/Makefile.am: Don't run tests if
+ cross-compiling.
+ * NEWS: Document this.
+
+Mon Nov 9 16:53:10 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Gnulib 20090915.
+
+Mon Nov 9 16:27:44 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (find_charset_locale): New function.
+ * src/encodings.h (find_charset_locale): Add prototype.
+ * src/man.c (make_roff_command): When invoking col, ensure that
+ LC_CTYPE is set to an appropriate locale for the selected
+ character set (Debian bug #555331).
+ * NEWS: Document this.
+
+Thu Oct 8 23:22:57 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c: Include <unistd.h> for dup and STDIN_FILENO.
+
+Thu Oct 1 01:08:40 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (parse_opt), src/lexgrog_test.c (parse_opt),
+ src/whatis.c (parse_opt): Turn off ARGP_HELP_PRE_DOC to avoid
+ problems with translations of documentation strings beginning with
+ a vertical tab separator (i.e. no pre-option documentation).
+
+Thu Sep 24 12:32:48 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_pump): When a source pipeline dies, make
+ sure to drain its output before discarding its output file
+ descriptor (Debian bug #548153). We still record the death to
+ avoid duplicate debugging messages.
+ * NEWS: Document this.
+
+Tue Sep 22 00:53:42 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_default_device): If the locale encoding is
+ ASCII, then use the ascii device even if preconv is available; it
+ will do a better job than producing UTF-8 output and then recoding
+ that to ASCII (Debian bug #547695).
+
+Sat Sep 19 15:02:20 BST 2009 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Fri Sep 11 01:19:41 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/id.po: Fix syntax error.
+
+Wed Sep 9 14:42:18 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (General options): Refer to the "Warnings" node
+ in 'info groff' for a list of available warning names (Debian bug
+ #545805).
+
+Wed Sep 9 14:36:39 BST 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project.
+
+Tue Sep 8 19:14:23 BST 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po: Update from Translation Project.
+
+Wed Aug 26 01:12:20 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.6.
+ * po/man-db.pot, po/*.po: Update.
+
+Wed Aug 26 01:07:16 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (display): Include the section in the hash key used
+ to determine whether a page has already been displayed.
+
+Wed Aug 26 00:20:45 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (compare_ids): Fix documentation of return
+ values.
+ (replace_if_necessary): Don't replace ULT_MAN or SO_MAN with
+ lesser ids just because the mtime is newer. (This still satisfies
+ Debian bug #490582, but doesn't cause the database to be rebuilt
+ every time mandb runs on hierarchies with both symlinks and whatis
+ entries for the same name.)
+
+Tue Aug 25 17:07:05 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (zh_CN_name, zh_TW_name): Add alternative
+ translation "名字", seen in testprns(1).
+
+Tue Aug 25 17:05:51 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/man-1: Restrict manpath to test directories.
+
+Tue Aug 25 10:30:58 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Add .bzrignore,
+ gnulib/lib/xmalloc.c.orig, gnulib/m4/intldir.m4,
+ gnulib/m4/sockpfaf.m4, and release.sh, for consistency between
+ revision control and the distribution.
+
+Tue Aug 25 09:48:39 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Remove src/wrapper.c.
+
+Sun Aug 23 15:49:45 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_dup): Fix newcmd->nenv assertion.
+
+Sun Aug 23 15:41:32 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_dup, command_setenv): cmd->env does not
+ need to be { NULL, NULL }-terminated.
+
+Sun Aug 23 11:25:50 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-tool.m4.
+
+Sun Aug 23 11:21:40 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Distribute gnulib/lib/xmalloc.patch.
+
+Sun Aug 23 11:15:53 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/man-db.lsm (Keywords): Add accessdb and lexgrog.
+
+Sun Aug 23 11:14:04 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.64.
+
+Sun Aug 23 11:11:02 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-bdb.m4: Bump serial, forgotten in most recent change.
+
+Sun Aug 23 11:07:26 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/README: Update.
+
+Sun Aug 23 10:56:50 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/TODO: Remove entry about the other 'man' package; 'man -K'
+ was the last major missing feature relative to it.
+ * docs/HACKING (Testing): Document new test suite.
+
+Sun Aug 23 10:51:33 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * tools/README: Don't bother describing files installed here by the
+ autotools.
+
+Sun Aug 23 10:47:16 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/README.zsoelim: Remove, merging text into ...
+ * src/zsoelim.l: ... here.
+ * src/Makefile.am (EXTRA_DIST): Remove README.zsoelim.
+
+Sun Aug 23 10:36:28 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Remove the old set-id wrapper, which hasn't been recommended for
+ several years now.
+
+ * src/wrapper.c: Remove.
+ * src/Makefile.am (noinst_PROGRAMS, wrapper_LDADD, wrapper_SOURCES):
+ Remove.
+
+Sun Aug 23 10:26:32 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * README: Various minor updates.
+
+Sun Aug 23 00:13:56 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * manual/Makefile.am (noinst_DATA): Move $(MANUAL).dvi to ...
+ (CLEANFILES): ... here.
+ (install-data-hook): Stop installing the DVI version of the manual
+ by default.
+
+Sun Aug 23 00:07:03 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add --enable-automatic-create,
+ --disable-automatic-update, and --disable-cats options.
+ * include/manconfig.h.in (MAN_DB_CREATES, MAN_DB_UPDATES, MAN_CATS):
+ Remove.
+ * manual/intro.me (Arguments to configure): Document new options.
+ * manual/misc.me (Modes of operation): Adjust configuration advice
+ to use new configure options.
+ * README (Non-generic arguments to configure): Update.
+ * NEWS: Document this.
+
+Sun Aug 23 00:04:56 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_setenv): New function, allowing
+ application code to ask for environment variables to be set when a
+ command is executed.
+ (command_new, command_new_function, command_dup, command_dump,
+ command_tostring, command_free): Handle new nenv, env_max, and env
+ members of 'struct command'.
+ (argstr_get_word): Add TODO comment for environment variable
+ support.
+ (pipeline_start): Set environment variables as requested.
+ * lib/pipeline.h (struct command_env): New structure.
+ (struct command): Add nenv, env_max, and env members.
+ (command_setenv): Add prototype.
+ * src/man.c (run_mandb): Set MAN_MUST_CREATE=1 environment variable
+ if create is true.
+ * src/mandb.c (main): If --create was passed and no databases were
+ created, only exit non-zero if MAN_MUST_CREATE=1.
+
+Sat Aug 22 15:34:15 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Cope with some more cases of database corruption (Debian bug
+ #187750).
+
+ * libdb/db_store.c (dbstore): Always replace existing keys once
+ we've decided we ought to. If the key already exists in the
+ database, then that probably indicates some kind of database
+ corruption, but our new key is almost certainly better.
+ * src/check_mandirs.c (sanity_check_db): New function, checking
+ dbver_rd and ensuring that all keys have non-NULL content.
+ (update_db): Use sanity_check_db to decide whether an existing
+ database is OK.
+
+ * src/accessdb.c (main): If we encounter a key with no content,
+ print a debugging message and continue as far as we can before
+ exiting non-zero, rather than just silently exiting non-zero
+ immediately.
+
+Sat Aug 22 14:58:39 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/mandb-2: Run mandb with a clean path, and only on the
+ test manual page hierarchy (already done for the second instance,
+ but not the first).
+
+Sat Aug 22 14:51:25 BST 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * po/ru.po: Update from Translation Project.
+
+Sat Aug 22 14:42:49 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): When trying the last source encoding in
+ the list, ignore characters not representable in UTF-8 (which
+ almost certainly means codepoints that do not exist in the source
+ encoding).
+ * src/tests/manconv-2: Add test for this.
+
+Thu Aug 20 23:52:28 BST 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Thu Aug 20 15:17:54 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (MAX_NAME): Increase from 2048 to 8192, since some
+ manual pages with NAME sections exceeding 2048 bytes have been
+ observed in the wild (Debian bug #489907).
+
+Thu Aug 20 15:05:38 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (check_preprocessor_encoding): Break coding tag
+ search loop if pp_search is NULL, fixing a segfault (introduced by
+ the fix for Debian bug #496604) if there is a preprocessor comment
+ line with no coding tag.
+ * src/tests/manconv-1: Add a test for this bug.
+
+Thu Aug 20 09:52:23 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (replace_if_necessary): Always replace if the
+ mtime of the new data is newer than that of the old data,
+ regardless of the id (Debian bug #490582).
+
+ * src/tests/testlib.sh (next_second): New function.
+ * src/tests/mandb-2: New test for this bug.
+ * src/tests/Makefile.am (TESTS): Add mandb-2.
+
+ * src/tests/mandb-1: Run mandb with a clean path, and only on the
+ test manual page hierarchy.
+
+Thu Aug 20 07:47:02 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (run_mandb): If -C was given, pass it through to mandb.
+ (main): Treat the main configuration file as optional if -C was
+ given.
+
+ * src/tests/testlib.sh (fake_config): Take the manual page
+ hierarchies to use as arguments.
+ (run_clean_path): New function.
+ * src/tests/man-1: New test, for Debian bug #163347 (apparently
+ fixed some time back).
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set CLEANPATH, so that
+ run_clean_path can run commands with a reduced PATH.
+ (TESTS): Add man-1.
+
+Wed Aug 19 20:23:00 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Treat the main configuration file as optional
+ if we're only producing user databases. This makes testing easier.
+
+ * configure.ac, m4/man-bdb.m4 (MAN_CHECK_BDB): Define DBTYPE to
+ gdbm, ndbm, or btree, indicating the database type in use.
+
+ * src/tests/testlib.sh (fake_config, db_ext, accessdb_filter): New
+ functions.
+ * src/tests/mandb-1: New test.
+ * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set DBTYPE
+ appropriately in the test environment.
+ (TESTS): Add mandb-1.
+
+Wed Aug 19 12:17:25 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/testlib.sh (write_page): New function.
+ * src/tests/lexgrog-1: New (fairly trivial) test.
+ * src/tests/Makefile.am (TESTS): Add lexgrog-1.
+
+Wed Aug 19 00:10:58 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.6-pre1.
+ * po/man-db.pot, po/*.po: Update.
+
+Tue Aug 18 23:53:50 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/Makefile.am (dist_check_SCRIPTS): Distribute test files.
+
+Tue Aug 18 23:39:28 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/Makefile: Remove; accidentally added to revision
+ control.
+ * .bzrignore: Ignore src/tests/Makefile.
+
+Tue Aug 18 09:47:50 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Convert text to UTF-8 and then (if
+ necessary) to the target encoding. This allows us to distinguish
+ between "text not in input encoding" and "characters not
+ representable in output encoding" (Debian bug #514963).
+ * src/tests/manconv-2: Add test for this and some other possible
+ encoding-handling bugs in manconv.
+ * src/tests/Makefile.am (TESTS): Add manconv-2.
+ * NEWS: Document this.
+
+Mon Aug 17 18:32:04 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/testlib.sh (init): New function.
+ (finish): Honour TEST_FAILURE_KEEP environment variable.
+ * src/tests/manconv-1: Use init function. Reverse diff arguments so
+ that failure output makes more sense.
+
+Mon Aug 17 00:56:20 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Update.
+
+Mon Aug 17 00:38:12 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (conversion_table): New table, with contents
+ mostly borrowed from groff's preconv.
+ (convert_encoding): New function.
+ (check_preprocessor_encoding): Loop through semicolon-separated
+ tags, and convert Emacs coding tags to ones that libiconv
+ understands (Debian bug #496604).
+ * src/tests/manconv-1: Test multiple tags. Test coding aliases.
+
+Sun Aug 16 23:52:38 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/testlib.sh: Add a simple test library, to be extended as
+ necessary.
+ * src/tests/manconv-1: Use it.
+
+Sun Aug 16 23:37:11 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/tests/manconv-1: Simple test for manconv's handling of
+ Emacs-style coding: tags.
+ * src/tests/Makefile.am: New file.
+ * src/Makefile.am (SUBDIRS): Add tests.
+ * configure.ac (AC_CONFIG_FILES): Add src/tests/Makefile.
+ * .bzrignore: Ignore src/tests/tmp-*.
+
+Fri Aug 14 16:09:56 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * tools/chconfig: Make executable.
+
+Fri Aug 14 12:20:16 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * manual/Makefile.am (install-data-hook, uninstall-hook):
+ Install/uninstall the manual into/from $(docdir).
+
+Fri Aug 14 12:18:43 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/Makefile.am (dist_noinst_DATA): Move NEWS to ...
+ * Makefile.am (dist_noinst_DATA): ... here.
+
+Fri Aug 14 11:50:27 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Move ChangeLog and NEWS to their more conventional location at the
+ top level.
+
+ * docs/ChangeLog: Move to ...
+ * ChangeLog: ... here.
+ * docs/NEWS: Move to ...
+ * NEWS: ... here.
+ * README, docs/HACKING (Revision control, Release process),
+ src/check_mandirs.c: Update references.
+
+Fri Aug 14 11:43:41 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Use silent rules by default if Automake 1.11 is
+ available.
+ * man/Rules.man (replace.sed, .man1.1, .man5.5, .man8.8): Be quieter
+ in silent mode.
+
+ Upgrade to Autoconf 2.64, Automake 1.11, and Gnulib 20090801.
+
+Mon Aug 3 17:13:19 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (less_charset_table): Add CP1251 -> windows, per
+ less(1) (Debian bug #539690).
+
+Wed Jul 22 10:48:10 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Make whatis/apropos only display any given manual page, or pointers
+ to it, once (Ubuntu bug #27113).
+
+ * lib/hashtable.c (hash_lookup_structure): Make external.
+ * lib/hashtable.h (hash_lookup_structure): Add prototype.
+ * src/whatis.c (get_whatis): Split pointer resolution out to ...
+ (resolve_pointers): ... here. Only accept info->pointer == page if
+ info->name == page too.
+ (display): Use resolve_pointers so that we have the resolved name
+ to hand. Only display any given resolved name once.
+ (main): Initialise display_seen hash table.
+ * docs/NEWS: Document this.
+
+Tue Jul 21 22:05:01 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Fix typo.
+
+Tue Jul 21 15:17:49 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT):
+ Explicitly state that -P/$PAGER/$MANPAGER identifies a single
+ command with no pipes (Debian bug #363250).
+
+Mon Jul 20 10:59:00 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (locale_macros): Fix groff version test not to think
+ that 1.20.1 >= 1.20.2.
+
+Tue Jul 14 22:48:56 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add -Wredundant-decls to CFLAGS.
+ * lib/tempfile.c: Remove redundant declarations of mkstemp and
+ mkdtemp.
+ * src/manp.c: Remove redundant and unused declaration of
+ program_name.
+ * src/zsoelim.l: Add never-interactive option, partly because that's
+ reasonably accurate anyway and partly to suppress flex's redundant
+ declaration of isatty.
+
+Mon Jul 13 13:40:17 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options, parse_opt): New --no-subpages option.
+ (main): Try pairing up manual page names with hyphens unless
+ --no-subpages was given.
+ * ma/man1/man.man1 (SYNOPSIS, Finding manual pages): Document
+ --no-subpages.
+ * docs/NEWS: Document this.
+
+Mon Jul 13 01:17:41 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * README (Copyright and licensing): Update copyright years.
+
+Mon Jul 13 00:48:32 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_less_charset, get_jless_charset): Cope with
+ locale_charset being NULL; loosely based on a patch posted to
+ mingw-msys by Mark Junker
+ (http://osdir.com/ml/gnu.mingw.msys/2005-06/msg00012.html).
+
+Sun Jun 28 17:56:49 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Don't create unnecessary database directories (Debian bug #472919).
+
+ * src/check_mandirs.c (testmandirs): Add catpath and create
+ arguments. Create the database when it first seems to be needed.
+ Use mkcatdirs rather than make_database_directory.
+ (make_database_directory): Remove.
+ (create_db): Add catpath argument. Don't create the database here;
+ let testmandirs do it when needed instead.
+ (update_db): Add catpath argument. Don't create the database
+ directory; either it exists already in which case there's nothing
+ to do, or it's missing in which case there'll be no database to
+ update anyway.
+ * src/check_mandirs.h (create_db, update_db): Update prototypes.
+ * src/mandb.c (update_db_wrapper): Add catpath argument.
+ (mandb): Update calls to functions that now take the catpath too.
+ * src/manp.c (add_mandb_map): Don't create the cat hierarchy here;
+ testmandirs will do it on demand.
+ (mkcatdirs): Make external for use by check_mandirs.c.
+ * src/manp.h (mkcatdirs): Add prototype.
+ * docs/NEWS: Document this.
+
+Sun Jun 28 16:33:24 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (DESCRIPTION): Note that the exact rendering of
+ (e.g.) italic text may vary depending on the output device (Debian
+ bug #516808).
+
+Sun Jun 28 16:21:34 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Implement 'man -K', which was the last major remaining missing
+ feature when comparing man-db with the man package (Debian bug
+ #135926, Ubuntu bug #390575).
+
+ * src/man.c (options, parse_opt): New -K/--global-apropos option.
+ (main): Handle --global-apropos.
+ (locate_page): Skip database lookups in --global-apropos mode.
+ (grep, do_global_apropos_section, do_global_apropos): New
+ functions.
+ * src/man.h (do_global_apropos): Add prototype.
+ * man/man1/man.man1 (SYNOPSIS, Main modes of operation): Document
+ -K/--global-apropos.
+ * docs/NEWS: Document this.
+
+Sun Jun 28 10:31:16 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: po4a 0.36 tags
+ "type:" comments as extracted comments rather than translator
+ comments. Upgrade our .pot and .po files to match.
+
+Sun Jun 28 02:04:55 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (get_nls_manpath): Close mandir, fixing a memory leak.
+
+Sun Jun 28 01:47:51 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_free): Free buffer and line_cache.
+
+Sun Jun 28 01:40:24 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (get_line): Limit newline search to the data length
+ returned by get_block, fixing an assertion failure.
+ * docs/NEWS: Document this.
+
+Mon Jun 22 08:02:55 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions.c (parse_descriptions): Strip leading and
+ trailing whitespace from name tokens before checking whether they
+ contain whitespace.
+ * docs/NEWS: Document this.
+
+Sun Jun 21 02:55:56 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document previous change.
+
+Sun Jun 21 02:20:22 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (dblookup): In exact mode, make sure extensions
+ match exactly, rather than merely that the extension found is a
+ prefix of that which was requested (Arch Linux bug #14467).
+
+Sun Jun 21 02:00:31 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/ult_src.c (ult_src): Keep a copy of base before passing it to
+ decompress_open, as that function doesn't keep its own copy and we
+ may change base later.
+
+Sat Jun 20 21:26:02 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (replace_if_necessary): Prevent misleading
+ debugging message: don't say "ignoring differing ids" if the new
+ id was preferred and we attempted a replacement.
+
+Sat May 30 12:50:44 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Check the return value of nice.
+
+ * include/manconfig.h.in (create_tempdir): Warn if the result is not
+ used.
+ * lib/tempfile.c (create_tempdir): Check the return value of
+ mkdtemp.
+ * src/man.c (format_display): Check the return value of
+ create_tempdir.
+
+Sat May 30 13:37:58 CEST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Initialise page_encoding.
+
+Wed May 13 18:28:44 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20090501.
+ * tools/config.guess, tools/config.sub: Update.
+
+Wed Apr 22 15:50:51 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (lt_name): Add.
+
+Wed Apr 15 00:34:06 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/it/man1/whatis.man1 (STATI D'USCITA): Fix section heading
+ (formerly "STATI D?USCITA") to match man(1) and apropos(1).
+ Reported by Ken Moffat.
+
+Wed Apr 15 00:33:16 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Set MAN_KEEP_FORMATTING=1, since a UTF-8-aware col
+ (such as that in util-linux-ng) will object to being asked to
+ process non-ASCII text under LC_ALL=C. Reported by Ken Moffat.
+ * docs/NEWS: Document this.
+
+Wed Apr 15 00:31:00 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.5.6.
+
+Wed Apr 15 00:22:54 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ * .bzrignore: Ignore gnulib/lib/glthread/.deps and
+ gnulib/lib/glthread/.dirstamp.
+
+Wed Apr 15 00:20:45 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to Autoconf 2.63, Automake 1.10.2, and Gnulib 20090401.
+
+Tue Apr 14 23:59:40 BST 2009 Colin Watson <cjwatson@debian.org>
+
+ Call gnulib-tool after autopoint, and only use the gettext macros
+ supplied via gnulib. This is required to work properly with current
+ versions of gettext and gnulib; see
+ http://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html
+ and thread.
+
+ * autogen.sh: If gnulib-tool is installed, call autopoint first and
+ prevent autoreconf from calling it later. Remove special handling
+ of tools/config.rpath, which is not necessary with this approach.
+ * Makefile.am (ACLOCAL_AMFLAGS): Put gnulib/m4 before m4, so that
+ autopoint puts its macros in gnulib/m4 (later overwritten by
+ gnulib-tool).
+
+Mon Mar 23 14:32:25 GMT 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po, man/po4a/po/id.po: Update from Translation Project.
+
+Wed Mar 18 01:10:50 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Moved bzr archive to Savannah;
+ update URLs and note that this now allows access to other members
+ of the man-db group on Savannah.
+
+Mon Mar 16 11:42:35 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-cache.m4.
+
+Mon Mar 16 10:39:40 GMT 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project.
+
+Sun Mar 15 13:13:40 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Apparently some packages ship section 0 manual pages documenting C
+ library header files. See http://bugs.archlinux.org/task/13734 and
+ http://en.wikipedia.org/wiki/Manual_page_(Unix).
+
+ * configure.ac (--with-sections): Add section 0 between 3 and 2.
+ * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION.
+ * src/man_db.conf.in (SECTION): Update documentation.
+
+Sun Mar 15 01:08:16 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import the sigaction, signal, and sigprocmask modules.
+
+Sat Mar 14 22:44:33 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.5.
+
+Sat Mar 14 22:42:39 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Ignore "cannot adjust line" and "can't break line"
+ groff warnings for all languages, not just CJK; long
+ %manpath_config_file% values during 'make distcheck' cause
+ problems here at the moment.
+
+Sat Mar 14 18:51:22 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Force MANWIDTH to 80. Ignore "table wider than line
+ width" warnings from groff >= 1.20 for now.
+
+Sat Mar 14 18:34:26 GMT 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project.
+
+Sat Mar 14 13:54:13 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.am (EXTRA_DIST): Distribute check-man.
+
+ * src/manp.c (read_config_file): Add argument to control whether the
+ main configuration file is optional. Use a static variable to
+ track whether we've been called already.
+ (get_manpath): read_config_file will keep track of whether it's
+ been called already for itself. Pass new argument.
+ * src/manp.h (read_config_file): Update prototype.
+ * src/man.c (main): Treat the main configuration file as optional if
+ -l was given, since in that case we can get by well enough without
+ it. This makes it easier to run 'make check' without first running
+ 'make install'.
+
+Sat Mar 14 12:07:58 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.5.5.
+
+Sat Mar 14 00:29:51 GMT 2009 Dustin Marquess <dmarquess@gmail.com>
+
+ * src/man.c (sort_candidates): Initialise count (Debian bug
+ #519647).
+
+Tue Mar 10 23:46:08 GMT 2009 Will Day <wd+debianbugs@hpgx.net>
+
+ * man/man1/man.man1 (Controlling formatted output): Fix missing
+ backslash in -r default (Debian bug #519162).
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
+
+Tue Mar 10 23:24:27 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Fix handling of pages that declare a non-default encoding in their
+ preprocessor lines. Thanks to Hugo Herbelin for some of the ideas
+ here (Debian bug #519095).
+
+ * src/encodings.c (get_source_encoding): Note that this function
+ should only be called if the page encoding is UTF-8. Add another
+ example.
+ * src/manconv.c (check_preprocessor_encoding): Move to ...
+ * src/encodings.c (check_preprocessor_encoding): ... here.
+ * src/encodings.h (check_preprocessor_encoding): Add prototype.
+ * src/man.c (make_roff_command): Use preprocessor-declared encoding
+ as page_encoding if known. Set source_encoding to page_encoding
+ unless the latter is UTF-8.
+ * src/Makefile.am (manconv_SOURCES): Add encodings.c.
+
+ * src/encodings.c (charset_table): Use ISO-8859-15 -> latin1 entry
+ only in the !MULTIBYTE_GROFF case; true ISO-8859-15 pages are
+ better handled using ascii8 or preconv if possible.
+
+Tue Mar 10 14:11:14 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/zsoelim.l (zsoelim_parse_file): Put the initial .lf request
+ after any initial comment line, so that manconv can find encoding
+ instructions more easily.
+
+Mon Mar 9 11:32:19 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/check-man: Check that a manual page formats without errors;
+ inspired by Lintian.
+ * man/Rules.man: Run check-man over all manual pages during 'make
+ check'.
+
+Mon Mar 9 10:47:08 GMT 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project.
+
+Tue Feb 24 01:06:46 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.4.
+ * po/man-db.pot, po/*.po: Update.
+
+Tue Feb 24 01:00:56 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/id.po: Fix groff syntax error.
+
+Mon Feb 23 22:37:36 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Sending patches): Refer to new man-db-devel mailing
+ list.
+
+Mon Feb 23 22:29:43 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Things to do): Improve bug tracking system link.
+
+Mon Feb 23 22:17:50 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (locale_macros, display): Only load per-locale groff
+ macros if preconv is available, since those macros may change the
+ assumed input encoding.
+
+Mon Feb 23 22:11:56 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Update.
+
+Sat Feb 21 12:01:55 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Load per-locale groff macros if possible. This only works with groff
+ 1.20.2 (as yet unreleased) or better, since that introduces
+ facilities to allow us to avoid an error message if there is no
+ macro file for the relevant locale.
+
+ * src/man.c (locale_macros): New function.
+ (display): Check the page language, and add locale_macros to the
+ formatting pipeline provided that the language is not empty or
+ "C".
+
+Fri Feb 20 09:58:13 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Partially rewrite building of manpath according to locale. The
+ previous code was completely wrong: as well as handling duplicates
+ rather oddly, it effectively handled LANGUAGE in reverse order
+ (Debian bug #516133).
+
+ * src/manp.c (add_nls_manpath): Rename to ...
+ (get_nls_manpath): ... this. Some minor adjustments. Make
+ manpathlist argument const and always return a freshly-allocated
+ string. Explicitly add the top-level directory to the string in
+ the case of English locales (although we still look for
+ subdirectories in case of things like en_GB.UTF-8); C and POSIX
+ already just return a copy of manpathlist.
+ (add_nls_manpaths): New function to iterate over a colon-separated
+ list of locales, concatenating the result of get_nls_manpath for
+ each. Stop worrying about deduplication at this point as we used
+ to; instead, we let create_pathlist sort that out.
+ (create_pathlist): Keep the first of any set of duplicates rather
+ than the last, in order to keep item order stable.
+ * src/manp.h (add_nls_manpath): Remove prototype.
+ (add_nls_manpaths): Add prototype.
+ * src/man.c (main), src/whatis.c (main): Call add_nls_manpaths
+ rather than add_nls_manpath, with appropriate adjustments.
+
+ * src/man.c (main), src/whatis.c (main): Don't set internal_locale
+ to the first component of multiple_locale. We will account for
+ this in search paths, but shouldn't forget about internal_locale
+ entirely.
+
+Thu Feb 19 21:50:44 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_to_manpath): Remove; this just called pathappend
+ with the same arguments and so is pointless cruft.
+ (add_nls_manpath): Update all callers.
+
+Tue Feb 17 00:49:28 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for gpreconv/preconv properly, i.e. by using
+ AC_CHECK_PROGS rather than by using 'which'.
+
+Mon Feb 16 01:45:59 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Update.
+
+Mon Feb 16 00:49:47 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): If we have preconv, it's silly to
+ recode to the assumed page encoding and risk problems with
+ characters unrepresentable in that encoding; we might as well just
+ recode to UTF-8 and feed that to preconv.
+
+Mon Feb 16 00:39:22 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Append //TRANSLIT to iconv -t
+ argument (specifically, so that hyphens get properly
+ transliterated when using preconv and groff -Tutf8 in a non-UTF-8
+ locale; thanks, Matthew Burgess and Alexander Patrakov).
+
+Mon Feb 16 00:20:07 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for gpreconv/preconv, which is evidence of a
+ version of groff supporting Unicode input, and therefore good
+ enough to assume --enable-mb-groff (thanks, Matthew Burgess).
+
+Sun Feb 15 23:48:51 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Remove obsolete first-pass
+ language code comparison. Language codes are already handled by
+ later code here, and this comparison caused English pages to be
+ preferred over pages for languages whose names sort later than
+ "man".
+
+Thu Feb 12 11:23:19 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv_main.c (main): Correct error message if the given
+ filename cannot be opened.
+
+Wed Feb 4 13:53:47 CET 2009 Yuri Kozlov <yuray@komyakino.ru>
+
+ * man/po4a/po/ru.po: Update from Translation Project (trivial).
+
+Sun Feb 1 16:40:16 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Directory layout): Mention gnulib.
+
+Sun Feb 1 16:36:01 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/linelength.c (get_line_length): Use line length from standard
+ input, but only if standard output is not a terminal; this allows
+ commands such as 'MAN_KEEP_STDERR=1 man foo >/dev/null' to report
+ errors based on the current line length.
+
+Sat Jan 31 12:20:42 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Update.
+
+Sat Jan 31 12:14:10 GMT 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po: Update from Translation Project.
+
+Tue Jan 27 09:54:25 GMT 2009 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project (trivial).
+
+Tue Jan 27 09:52:18 GMT 2009 Erwin Poeze <erwin.poeze@gmail.com>
+
+ * po/nl.po: Update from Translation Project.
+ * man/THANKS: Update.
+
+Mon Jan 26 13:40:30 GMT 2009 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon Jan 26 13:38:11 GMT 2009 Robert Luberda <robert@debian.org>
+
+ * po/pl.po, man/po4a/po/pl.po: Update from Translation Project.
+
+Sun Jan 18 23:27:11 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * lib/linelength.c (get_line_length): Line length is a property of
+ output, not input, so only check whether standard output is a
+ terminal, not also standard input (Debian bug #512233).
+
+Thu Jan 15 16:04:01 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ * po/Makevars (XGETTEXT_OPTIONS): Add --flag=debug:1:c-format
+ --flag=debug_error:1:c-format.
+
+Thu Jan 15 00:00:05 GMT 2009 Colin Watson <cjwatson@debian.org>
+
+ Update manual page search order to permit FHS-compliant installation
+ of packages in /opt. Reported by Matt Domsch.
+
+ * src/manp.c (has_mandir): Use xasprintf rather than clumsier
+ xmalloc/strncpy/strcpy combination. Try ../share/man and share/man
+ subdirectories too.
+ (get_manpath_from_path): Update header comment and debug output.
+ * manual/files.me (Determination of the internal manpath): Update
+ description of directory search order.
+ * docs/NEWS: Document this.
+
+Mon Jan 5 17:47:55 GMT 2009 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * po/ru.po, man/po4a/po/ru.po: Update from Translation Project.
+
+Mon Jan 5 17:35:02 GMT 2009 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project.
+
+Wed Dec 31 12:28:55 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Trust the database if it tells us that a page is ULT_MAN (i.e. not a
+ hard link, symbolic link, or .so link), and avoid passing the
+ SO_LINK flag to ult_src which requires it to open the page to look
+ for .so links. Produces roughly a threefold speed improvement for
+ searches with thousands of results.
+
+ * src/man.c (get_ult_flags): New function.
+ (add_candidate, display_database): Use it.
+
+Wed Dec 31 11:51:41 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Sort manual page candidates in one go just before displaying them,
+ rather than insertion-sorting them along the way. Produces, very
+ roughly, a 25% speed improvement for searches with many results
+ (e.g. with --regex).
+
+ * src/man.c (duplicate_candidates, compare_candidates): Simplify
+ interface by passing 'struct candidate' for both sides.
+ (compare_candidates): Explicitly stabilise the comparison as a
+ last resort, using a new add_index member.
+ (compare_candidates_qsort, free_candidate): New functions.
+ (add_candidate): Adjust calls to duplicate_candidates and
+ compare_candidates, requiring us to create the candidate structure
+ earlier. Note that the search produces quadratic-time behaviour.
+ Only compare candidates in cases of duplicates; otherwise just add
+ them to the end of the list and defer sorting until later. Use
+ free_candidate to free search->ult as well as search when freeing
+ superseded duplicates.
+ (sort_candidates): New function.
+ (man): Sort candidates before displaying them.
+
+Tue Dec 30 13:08:35 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.4-pre2.
+ * po/man-db.pot, po/*.po: Update.
+
+Tue Dec 30 12:55:59 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man5/manpath.man5 (FORMAT): Add space between
+ "MINCATWIDTH"/"MAXCATWIDTH"/"CATWIDTH" and "width".
+ * man/po4a/po/id.po: Unfuzzy translations.
+
+Tue Dec 30 12:52:26 GMT 2008 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po, man/po4a/po/id.po: Update from Translation Project.
+
+Sun Dec 28 00:27:23 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.4-pre1.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot,
+ po/*.po: Update.
+
+Sun Dec 28 00:17:45 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (PO4A_ARGS): Always generate output files
+ even if poorly translated, since Automake's generated rules will
+ get upset otherwise.
+
+Sat Dec 27 23:47:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (dist-hook): Update PO and POT files on 'make
+ dist'.
+
+Sat Dec 27 23:42:53 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (Controlling formatted output): Hide ".B
+ \-\-no\-hyphenation" from po4a.
+
+Sat Dec 27 11:38:43 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.5.4.
+
+Sat Dec 27 00:00:01 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Add option to disable hyphenation (Debian bug #166701).
+
+ * src/man.c (options, parse_opt): Accept --no-hyphenation. Reset
+ corresponding variable with -D.
+ (disable_hyphenation): New function.
+ (display): Append disable_hyphenation to the decompressor pipeline
+ if --no-hyphenation is used.
+ * man/man1/man.man1 (SYNOPSIS, Controlling formatted output):
+ Document --no-hyphenation.
+
+Thu Dec 25 22:09:01 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Add regular expression and shell wildcard search facilities to man
+ (Debian bug #461319).
+
+ * src/whatis.c (lower): Move to ...
+ * lib/lower.c: ... here, with optimisation from name_to_key. New
+ file.
+ * lib/lower.h: New file.
+
+ * src/whatis.c (word_fnmatch): Move to ...
+ * lib/wordfnmatch.c: ... here, with more generic argument names. New
+ file.
+ * lib/wordfnmatch.h: New file.
+
+ * src/whatis.c (main): Factor regcomp error handling out to ...
+ * lib/xregcomp.c: ... here. New file.
+ * lib/xregcomp.h: New file.
+
+ * lib/Makefile.am (libman_a_SOURCES): Add lower.c, lower.h,
+ wordfnmatch.c, wordfnmatch.h, xregcomp.c, and xregcomp.h.
+ * po/POTFILES.in: Add lib/xregcomp.c; remove src/globbing.c.
+
+ * libdb/db_lookup.c (name_to_key): Use lower.
+ (dblookup_pattern): New function.
+ * libdb/db_storage.h (dblookup_pattern): Add prototype.
+ * src/globbing.c (end_pattern): Rename to ...
+ (make_pattern): ... this. Create the whole pattern rather than
+ merely appending section or extension components. Handle regexes
+ if the new opts argument has the LFF_REGEX bit set.
+ (match_in_directory): Take an opts disjunction rather than a
+ boolean ignore_case argument; ignore_case is replaced by the
+ LFF_MATCHCASE bit being unset. Handle regexes if opts has the
+ LFF_REGEX bit set.
+ (look_for_file): Take an opts disjunction rather than a boolean
+ match_case argument; match_case is replaced by the LFF_MATCHCASE
+ bit being set. Handle regexes if opts has the LFF_REGEX bit set.
+ Handle shell wildcards if opts has the LFF_WILDCARD bit set (which
+ simply means not shell-escaping unesc_name). Call make_pattern
+ rather than end_pattern (with appropriate adjustments).
+ * src/globbing.h (enum look_for_file_opts): New enumeration.
+ (look_for_file): Update prototype.
+ * src/globbing_test.c (options, parse_opt): Accept -r/--regex and
+ -w/--wildcard.
+ (main): Update look_for_file arguments, including passing
+ LFF_REGEX or LFF_WILDCARD if the corresponding options are used.
+ * src/check_mandirs.c (purge_whatis, purge_missing), src/zsoelim.l
+ (zsoelim_open_file): Update look_for_file arguments.
+ * src/whatis.c (main): Only free preg if a regular expression was
+ compiled into it in the first place.
+
+ * src/man.c (options, parse_opt): Accept --regex, --wildcard, and
+ --names-only. Reset corresponding variables with -D. Refuse to
+ accept both --regex and --wildcard.
+ (try_section): Update look_for_file arguments, including passing
+ LFF_REGEX or LFF_WILDCARD if the corresponding options are used.
+ (try_db): Use dblookup_pattern if --regex or --wildcard is used,
+ with corresponding options.
+ * man/man1/man.man1 (SYNOPSIS, Finding manual pages): Document
+ --regex, --wildcard, and --names-only.
+
+Tue Dec 23 11:17:01 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Sync supported language list with Fedora's patch to man
+ (http://cvs.fedora.redhat.com/viewvc/rpms/man/F-10/man-1.6b-i18n_nroff.patch?view=markup,
+ with corrections based on /usr/share/i18n/SUPPORTED).
+
+ * src/encodings.c (directory_table): Add Estonian -> ISO-8859-1,
+ Belarusian -> CP1251, Greek -> ISO-8859-7, Lithuanian ->
+ ISO-8859-13, Latvian -> ISO-8859-13, Macedonian -> ISO-8859-5,
+ Romanian -> ISO-8859-2, Slovenian -> ISO-8859-2, and Ukrainian ->
+ KOI8-U.
+ (charset_alias_table): Map KOI8U to KOI8-U.
+ (less_charset_table): Map KOI8-U to koi8-r (possibly not quite
+ right but with any luck good enough).
+
+Mon Dec 8 13:08:22 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (compare_ids): If the promote_links argument is
+ true, consider SO_MAN equivalent to ULT_MAN.
+ (replace_if_necessary): Update call to compare_ids.
+ * libdb/db_storage.h (compare_ids): Update prototype.
+ * src/man.c (compare_candidates): Consider SO_MAN equivalent to
+ ULT_MAN for the purposes of sorting candidate pages for display
+ (Debian bug #384301).
+
+Mon Dec 8 10:08:45 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Improve sorting and de-duplication of manual page candidates (Debian
+ bugs #389762 and #496172).
+
+ * src/man.c (struct candidate): Add ult member.
+ (duplicate_candidates): Pare down to only check for duplication
+ rather than trying to compare as well; the latter function is now
+ handled entirely by compare_candidates. Compare the ultimate
+ source file as the first test.
+ (compare_candidates): Compare locale elements in candidate paths
+ before comparing sections.
+ (add_candidates): Look up the ultimate source file if necessary,
+ and save it in the candidate structure. Use duplicate_candidates
+ for duplicate testing only and compare_candidates for comparison.
+ Insert elements at the latest possible position rather than the
+ earliest possible.
+ (try_section): Pass the ultimate source file that was already
+ looked up here.
+ (try_db): Adjust for new add_candidate signature.
+
+Sun Dec 7 17:43:21 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Make handling of terminal widths for cat pages configurable (Debian
+ bug #121997).
+
+ * src/manp.c (add_to_dirlist): Recognise new MINCATWIDTH,
+ MAXCATWIDTH, and CATWIDTH directives.
+ * src/man_db.conf.in: Add MINCATWIDTH, MAXCATWIDTH, and CATWIDTH.
+ * src/man.c (get_roff_line_length): Use CATWIDTH rather than the
+ terminal width if the former is non-zero.
+ (add_roff_line_length): Check the terminal width against
+ MINCATWIDTH and MAXCATWIDTH rather than checking whether it
+ differs from groff's default (via get_roff_line_length). Allow cat
+ page saving regardless in catman mode.
+ (make_roff_command): Forbid saving cat pages in troff mode here
+ rather than via add_roff_line_length/get_roff_line_length.
+ * man/man5/manpath.man5 (FORMAT): Document MINCATWIDTH, MAXCATWIDTH,
+ and CATWIDTH.
+
+Sun Dec 7 17:17:34 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man5/manpath.man5 (FORMAT): Document SECTION.
+
+Sat Dec 6 22:57:14 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Reorganise lexgrog to stop on any unrecognised roff request, rather
+ than continuing and often littering the database with garbage
+ (Debian bug #271402). This also involved extending lexgrog to
+ recognise some additional requests.
+
+ * src/lexgrog.l (word): New definition.
+ (typeface): Add .SB and .SM.
+ (MAN_PRENAME): Go straight to MAN_REST on encountering a section
+ request or EOF. Go to MAN_NAME on encountering roff requests that
+ would ordinarily be processed and removed. Skip over any other
+ roff requests, including spacing and comments.
+ (MAN_NAME): Process .Tn and .Nm by handling their arguments as
+ text. Process .At, .Bsx, .Bx, .Fx, .Nx, .Ox, and .Ux by inserting
+ the appropriate text (introducing several new mini-scanners).
+ Process .Dq by surrounding its arguments by double quotes. Go to
+ MAN_REST on encountering any unrecognised roff request.
+ (add_wordn_to_whatis, add_word_to_whatis, mdoc_text): New
+ functions to support scanning of .At and friends.
+
+Fri Dec 5 22:27:03 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (FILES): List FHS database cache location
+ first, and indicate more clearly that the others are old locations
+ (from a comment in Debian bug #243763).
+
+Fri Dec 5 13:52:14 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Make it possible to override man's default of discarding stderr when
+ stdout is a terminal (Debian bug #480996).
+
+ * src/man.c (discard_stderr): Make static.
+ (maybe_discard_stderr): New function, checking MAN_KEEP_STDERR.
+ (format_display_and_save, format_display, display_catman): Use
+ maybe_discard_stderr.
+ * man/man1/man.man1 (ENVIRONMENT): Document this.
+
+Thu Dec 4 15:03:08 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Exit as soon as possible if database writes return ENOSPC (Debian
+ bug #167159).
+
+ * src/check_mandirs.c (testmandirs, create_db, update_db,
+ purge_normal, purge_whatis, check_multi_key, purge_missing):
+ Return int rather than short, to make space for -errno.
+ * src/mandb.c (update_one_file, update_db_wrapper, mandb,
+ process_manpath): Likewise.
+ * src/check_mandirs.h (create_db, update_db, purge_missing): Update
+ prototypes.
+
+ * src/check_mandirs.c (create_db): Return -errno for database open
+ errors other than EACCES and EROFS.
+ * src/mandb.c (mandb): Return early on errors from create_db and
+ update_db_wrapper. Propagate errors from xcopy as well as
+ returning early.
+ (process_manpath): Return early on errors from mandb.
+ (main): Exit FATAL on errors from process_manpath.
+
+Wed Dec 3 10:54:53 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (make_content): Cast time_t value to long before
+ trying to print as %ld.
+
+ * libdb/db_ndbm.c (ndbm_flclose, ndbm_flopen): Rename dbf to db to
+ avoid shadowing a global variable.
+ * libdb/mydbm.h: Update prototypes and gdbm/ndbm macros likewise.
+
+Wed Dec 3 10:45:07 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/Makefile.am (libman_a_CPPFLAGS), libdb/Makefile.am
+ (libmandb_a_CPPFLAGS), src/Makefile.am (AM_CPPFLAGS): Add
+ -I$(top_builddir)/intl.
+
+Wed Dec 3 10:38:33 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import the gettext module. The practical effect of this is
+ to get the intl directory included while compiling files in
+ gnulib/lib.
+ * autogen.sh: Prefer gnulib's version of tools/config.rpath over
+ gettext's.
+
+Wed Dec 3 10:17:50 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-po4a.m4 (MAN_PO4A): Define a PO4A Automake conditional
+ (again).
+ * man/po4a/Makefile.am: Define all-local, update-po, and clean-local
+ rules only if PO4A is set, so that (in particular) distclean works
+ if po4a isn't installed.
+
+Tue Dec 2 16:25:53 GMT 2008 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * man/po4a/po/id.po: Update from Translation Project (trivial).
+
+Tue Dec 2 14:50:12 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/id.po: New from Translation Project (thanks, Arif E.
+ Nugroho).
+ * configure.ac (AC_CONFIG_FILES): Add man/id/Makefile.
+ * man/Makefile.am (DIST_SUBDIRS): Add id.
+ * man/id/Makefile.am: New file.
+ * man/po4a/Makefile.am (POFILES): Add po/id.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add id.
+ * man/THANKS: Credit Arif E. Nugroho with man/id as well as id.po.
+ * .bzrignore: Add man/id/man1, man/id/man5, and man/id/man8.
+
+Mon Nov 17 19:26:50 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Now that we use the ISO 8601 date format rather than
+ language-specific date variants, there's no reason to call out to
+ date (using options specific to GNU date) to format the date
+ string, so just hardcode it.
+ * docs/HACKING (Release process): datemark -> date.
+
+Mon Nov 17 17:55:35 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ FreeBSD build fixes.
+
+ * man/Rules.man (replace.sed): Spell out
+ $(top_builddir)/man/replace.sin in full since $< is unspecified in
+ target rules.
+ * src/Makefile.am (accessdb_LDADD, catman_LDADD, globbing_LDADD,
+ lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD,
+ manpath_LDADD, whatis_LDADD, wrapper_LDADD, zsoelim_LDADD): Add
+ @LIBINTL@.
+ (apropos$(EXEEXT)): Remove target before creating symlink. Spell
+ out whatis$(EXEEXT) in full since $< is unspecified in target
+ rules.
+
+ * src/check_mandirs.c (testmandirs): Cast time_t values to long
+ before trying to print as %ld.
+ * src/descriptions.c (parse_descriptions): Rename base_name to base
+ and seen_base_name to seen_base.
+ * src/descriptions_store.c (store_descriptions): Rename base_name to
+ base.
+ * src/descriptions.h (parse_descriptions, store_descriptions):
+ Update prototypes.
+
+Mon Nov 17 11:44:17 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.3.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Nov 17 11:07:50 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_new_function): Initialise discard_err.
+ (pipeline_start): Zero-initialise pids and statuses arrays on
+ allocation, and don't unblock SIGCHLD until after doing so.
+ * src/manconv.c (manconv): Don't free elements of from here, as when
+ called from manconv_stdin they will be freed by
+ free_manconv_codes.
+ * src/manconv_main.c (main): Free elements of from_code here
+ instead.
+
+Mon Nov 17 10:45:55 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_storage.h (infoalloc): Implement as a macro rather than
+ as an inline function; seems to cause fewer problems when building
+ without optimisation.
+
+Mon Nov 17 10:18:10 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * m4/longdouble.m4: Remove; gettext no longer installs this.
+ * man/Makefile.am (EXTRA_DIST): Distribute LINGUAS and LINGUAS.po4a.
+
+Mon Nov 17 09:59:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * release.sh: Use 'make distcheck' rather than 'make dist'.
+
+Mon Nov 17 01:13:17 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Add src/manconv_main.c and src/zsoelim_main.c.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Nov 17 00:53:33 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Update.
+
+Mon Nov 17 00:39:14 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Mangle return value into a value
+ suitable for passing to exit (Debian bug #477305).
+
+Mon Nov 17 00:06:28 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Make bare .so includes (e.g. ".so foo.1" rather than ".so
+ man1/foo.1") work, although only within the same manual page
+ hierarchy for now. Reported by Mike Frysinger; partially fixes
+ Debian bug #503472.
+
+ * src/zsoelim.l (zsoelim_open_file): Attempt to handle bare .so
+ includes using look_for_file.
+ * src/Makefile.am (zsoelim_SOURCES): Add globbing.c, globbing.h, and
+ util.c.
+
+Sun Nov 16 23:34:02 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Improve handling of systems without internationalisation support.
+ Reported by Mike Frysinger.
+
+ * include/manconfig.h.in (locale_changed): New macro.
+ * src/man.c (main), src/whatis.c (main): Use it.
+ * src/manconv.c (check_preprocessor_encoding, try_iconv): Declare
+ only if HAVE_ICONV is defined.
+ (manconv): If HAVE_ICONV is not defined, supply a replacement that
+ just passes data straight through.
+ * src/whatis.c (simple_convert): Declare only if HAVE_ICONV is
+ defined and supply a macro replacement otherwise, since in the
+ latter case iconv_t is not defined.
+
+Sun Nov 16 18:40:09 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * manual/misc.me (Credits): Update with contributors of
+ non-translation patches since I started maintaining man-db;
+ mention man/THANKS for translator credits. Probably still missing
+ some people, as ever ...
+
+Sun Nov 16 18:16:55 GMT 2008 Chusslove Illich <caslav.ilic@gmx.net>
+
+ * src/encodings.c (directory_table): Add Serbian Latin ->
+ ISO-8859-2.
+ * src/lexgrog.l (sr_name): Add another possible translation.
+ (srlatin_name): Add.
+
+Sun Nov 16 18:00:23 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main), src/whatis.c (main): Tokenise LANGUAGE properly
+ rather than only taking the first two characters of each entry.
+ Based on a suggestion from Chusslove Illich in Savannah patch
+ #6658.
+
+Sun Nov 16 17:57:57 GMT 2008 Chusslove Illich <caslav.ilic@gmx.net>
+
+ * src/manp.c (add_nls_manpath): Check that modifiers match if set
+ (Savannah patch #6658).
+
+Wed Nov 12 12:32:17 GMT 2008 Arif E. Nugroho <arif_endro@yahoo.com>
+
+ * po/id.po: New from Translation Project.
+ * po/LINGUAS: Add id.
+ * man/THANKS: Add translator credit.
+
+Sun Nov 9 16:23:12 GMT 2008 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Sun Oct 26 12:44:42 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (create_pathlist): Eliminate duplicates due to
+ symlinks. Reported by Mike Frysinger.
+ * src/man.c (main): Emit "manpath search path" debugging message
+ before calling create_pathlist.
+ * docs/NEWS: Document this.
+
+Sun Oct 26 11:58:37 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Support LINGUAS environment variable to control installation of
+ localised manual pages. Reported by Mike Frysinger.
+
+ * m4/man-po4a.m4, m4/man-linguas.m4: New files.
+ * configure.ac: Call MAN_PO4A instead of inline code. Remove NLS and
+ PO4A Automake conditionals, no longer needed. Call MAN_LINGUAS.
+ * man/LINGUAS, man/LINGUAS.po4a: New files.
+ * man/Makefile.am (SUBDIRS): Set to $(MAN_SUBDIRS) rather than
+ computing the list here.
+ (DIST_SUBDIRS): Add, since we no longer use Automake conditionals.
+ * docs/NEWS: Document this.
+
+Sun Oct 26 01:53:36 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for lzma.
+ * include/comp_src.h.in (comp_list): Add lzma.
+ * include/manconfig.h.in: Define UNLZMA.
+ * docs/NEWS: Document this.
+
+Wed Oct 1 12:19:29 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/TODO: Remove entry about Berkeley DB's error handling, fixed
+ in Berkeley DB 4.1 (see http://bugs.debian.org/180379).
+
+Tue Sep 30 16:39:19 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Norwegian Bokmål and
+ Norwegian Nynorsk (following a comment on
+ http://www.linuxfromscratch.org/lfs/view/development/chapter06/man-db.html).
+
+Sun Sep 28 11:35:18 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * manual/files.me (NLS manual pages): Describe automatic detection
+ of manual pages encoded in UTF-8. Recommend that character set
+ components not be used in directory names.
+
+Sun Sep 28 11:30:40 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for GDBM before Berkeley DB.
+ * docs/man-db.lsm: List GDBM before Berkeley DB.
+ * manual/db.me (Database types): Explain why GDBM is preferred.
+ * manual/intro.me (Arguments to configure), README (Non-generic
+ arguments to configure): Update --with-db description.
+ * docs/NEWS: Document this, with a note to distributors on upgrade
+ handling.
+
+Thu Sep 18 02:00:54 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/apropos.man1 (AUTHOR), man/man1/manpath.man1 (AUTHOR),
+ man/man1/whatis.man1 (AUTHOR), man/man8/catman.man8 (AUTHOR): Add
+ my name.
+
+Thu Sep 18 01:42:34 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Call zsoelim as an internal function rather than as an external
+ process, to improve performance.
+
+ * src/Makefile.am (man_SOURCES): Add zsoelim.h and zsoelim.l.
+ (zsoelim_SOURCES): Add zsoelim.h and zsoelim_main.c.
+ * src/man.c (make_roff_command): Call zsoelim_stdin as an internal
+ function.
+ * src/zsoelim.l (open_file): Rename to ...
+ (zsoelim_open_file): ... this. Make external. Update all callers.
+ (parse_file): Rename to ...
+ (zsoelim_parse_file): ... this. Make external. Update all callers.
+ (zsoelim_stdin): New function.
+ (parse_opt, main): Move to ...
+ * src/zsoelim_main.c: ... here. New file.
+ * src/zsoelim.h: New file.
+ * docs/NEWS: Document this.
+
+ * man/man1/zsoelim.man1 (AUTHOR): Add my name.
+
+Mon Sep 8 09:21:34 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Call manconv as an internal function rather than as an external
+ process, to improve performance. Indirectly suggested by Dr. Werner
+ Fink in Savannah bug #24043.
+
+ * src/Makefile.am (whatis_LDADD): Add $(LIBCOMPRESS).
+ (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES, whatis_SOURCES): Add
+ manconv.c and manconv.h.
+ (manconv_SOURCES): Add manconv.h and manconv_main.c.
+ * src/encodings.c (manconv_stdin, free_manconv_codes): New
+ functions.
+ (add_manconv): Call manconv as an internal function.
+ * src/manconv.c (try_iconv): Take the target code as an argument
+ rather than using a global variable.
+ (manconv): New function, split out of main.
+ (split_codes, parse_opt, main): Move to ...
+ * src/manconv_main.c: ... here. New file.
+ * src/manconv.h: New file.
+ * docs/NEWS: Document this.
+
+Mon Sep 8 09:09:06 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Add support for freeing command_function data.
+
+ * lib/pipeline.c (command_new_function): Add free_func argument.
+ (command_dup): Copy it.
+ (pipeline_connect): Adjust command_new_function call.
+ (pipeline_start): Free command_function data before exiting.
+ (pipeline_wait): Free command_function data while cleaning up
+ pipeline.
+ * lib/pipeline.h: Add command_function_free_type typedef.
+ (struct command [struct command_function]): Add free_func member.
+ (command_new_function): Update prototype.
+ * lib/decompress.c (decompress_open, decompress_fdopen): Adjust
+ command_new_function calls.
+
+Sun Sep 7 15:26:25 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Remove premature optimisation that
+ sometimes caused us to write incomplete output.
+
+ * src/encodings.c (add_manconv): Always use manconv even if iconv
+ could theoretically do the job, as manconv has slightly more
+ permissive behaviour that is generally more suitable for
+ converting manual page source (Debian bug #498082).
+
+Sun Aug 31 18:38:34 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Update.
+
+Sun Aug 31 18:17:14 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080801.
+
+Sun Aug 17 16:42:43 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
+ (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c
+ (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c
+ (main), src/zsoelim.l (main): Suppress locale warning if being
+ called by another man-db program (Debian bug #494989).
+
+Sun Aug 17 00:27:07 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (tmp_cat_fd, man_modtime, discard_stderr): Move
+ definitions outside MAN_CATS guard; these are needed by catman
+ handling and (in the case of discard_stderr) manual page
+ formatting functions as well as cat handling in man itself
+ (Savannah bug #24044).
+
+Thu Aug 7 02:12:09 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): If we fail to decompress man_file and it
+ matters (i.e. we aren't just displaying a stray cat), then emit an
+ error message and return early (Coverity CID #5, #6).
+
+Wed Aug 6 22:36:48 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (infoalloc): Move to ...
+ * libdb/db_storage.h (infoalloc): ... here (as inline function).
+ Include "xalloc.h" for this.
+ (dblookup_all, dblookup_exact, gripe_lock, gripe_corrupt_data):
+ Stop declaring inline.
+ * src/security.h (drop_effective_privs, regain_effective_privs):
+ Stop declaring inline.
+
+Wed Aug 6 22:23:41 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): If display_to_stdout is set, assert that
+ man_file is non-NULL; all the stray-cat code paths ensure that
+ neither troff nor recode is set by this point (Coverity CID #5).
+
+Wed Aug 6 21:40:37 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (manopt_to_env): Duplicate options assigned to elements
+ of argv, and free the copy of manopt before returning. This isn't
+ really a bug as such, but it appeases Coverity CID #22.
+
+Thu Jul 31 02:10:06 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_section_list): Fix leak of get_sections return
+ value if the configuration file contains no SECTIONS directives
+ (Coverity CID #21).
+
+Thu Jul 31 02:03:46 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (try_section): Free info and info_buffer if there is a
+ failure before adding a candidate (Coverity CID #24).
+
+Thu Jul 31 01:41:17 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_nls_manpath): Copy manpathlist to omanpathlist
+ after the initial locale checks, to avoid memory leaks (Coverity
+ CID #20).
+ (get_manpath): Free return value of add_system_manpath (Coverity
+ CID #18) and guess_manpath (Coverity CID #19) when they're simply
+ interpolated into another string.
+
+Thu Jul 31 01:18:59 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): Check for failure to open the preformatted
+ cat file (Coverity CID #14).
+
+Thu Jul 31 01:01:13 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/util.c (lang_dir): Free ld if returning xstrdup ("C") instead
+ (Coverity CID #17).
+
+Thu Jul 31 00:55:36 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pathsearch.c (pathsearch): Free path if returning early due to
+ being given a qualified name (Coverity CID #16).
+
+Thu Jul 31 00:51:58 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_pump): Free known_source before returning
+ (Coverity CID #15).
+
+Thu Jul 31 00:47:43 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (word_fnmatch): Free lowwhatis on return paths
+ (Coverity CID #25).
+
+Thu Jul 31 00:40:29 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (parse_for_sec): Fix initialisation of initial_bit
+ (Coverity CID #28).
+
+Tue Jul 15 15:58:24 BST 2008 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Sat Jul 12 16:47:11 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.3-pre1.
+ * po/man-db.pot, po/*.po: Update.
+
+Sat Jul 12 16:43:07 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.5.3.
+
+Sat Jul 5 11:33:16 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080701.
+
+Mon Jun 9 13:47:50 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080601.
+
+Mon Jun 9 09:31:04 BST 2008 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * man/po4a/po/ru.po: Update.
+
+Tue Jun 3 09:54:17 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/ru.po: Update with msgmerge.
+
+Tue Jun 3 09:53:59 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/ru/translator.add: Add dummy file.
+
+Tue Jun 3 00:07:47 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/ru.po: New from Translation Project (thanks, Yuri
+ Kozlov).
+ * configure.ac (AC_CONFIG_FILES): Add man/ru/Makefile.
+ * man/Makefile.am (MAYBE_PO4A_LINGUAS): Add ru.
+ * man/ru/Makefile.am: New file.
+ * man/po4a/Makefile.am (POFILES): Add po/ru.po.
+ * man/po4a/po4a.cfg (po4a_langs): Add ru.
+ * man/THANKS: Credit Yuri Kozlov with man/ru as well as ru.po.
+ * .bzrignore: Add man/ru/man1, man/ru/man5, and man/ru/man8.
+
+Sun Jun 1 16:40:12 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (SYNOPSIS): Document -t (thanks, Yuri Kozlov;
+ Debian bug #483951).
+
+Sun Jun 1 04:01:12 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/whatis.man1 (SYNOPSIS): Document -v (thanks, Yuri Kozlov;
+ Debian bug #483862).
+
+Fri May 30 00:11:15 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/manconv.man1 (SYNOPSIS), man/man1/manpath.man1
+ (SYNOPSIS): Document -h and -V here as well as in OPTIONS (thanks,
+ Yuri Kozlov; Debian bug #483589).
+
+Sun May 25 18:51:47 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (SYNOPSIS): Fix minor formatting error in -w|-W
+ synopsis.
+
+Sun May 25 18:46:55 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (SYNOPSIS): Restructure to include all options
+ from the OPTIONS section and to use approximately the same order.
+ Thanks to Yuri Kozlov; Debian bugs #482424, #482791, #482792, and
+ #482810.
+
+Sun May 25 18:29:28 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/lexgrog.man1 (SYNOPSIS): Correct -s to -E.
+ (OPTIONS): Correct -e to -E.
+ Thanks to Yuri Kozlov; Debian bug #481226.
+
+Sun May 25 19:23:00 CEST 2008 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * man/man1/apropos.man1 (SYNOPSIS): Document -v (Debian bug
+ #480678).
+
+Mon May 5 09:53:19 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/cleanup.c: #include <string.h> for memset.
+
+Mon May 5 02:34:52 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/man-db.lsm: Update to 2.5.2.
+ * docs/HACKING: Note requirement for docs/man-db.lsm update just
+ before release.
+
+Mon May 5 02:11:38 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.2.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon May 5 02:07:00 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document previous commit.
+
+Mon May 5 01:39:22 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Fix jless support to avoid breaking less (Debian bug #217519).
+
+ * src/encodings.c (less_charset_table): Add jless_charset members.
+ Move EUC-JP less_charset to jless_charset, falling back to iso8859
+ for less. Use the more explicit japanese-ujis rather than ja.
+ * src/encodings.c (get_jless_charset): New function.
+ * src/encodings.h (get_jless_charset): Add prototype.
+ * src/man.c (make_roff_command): Set JLESSCHARSET to the return
+ value of get_jless_charset if non-NULL.
+
+Mon May 5 01:06:56 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Clean up some loose ends of Chinese support (thanks, Wu Songhai;
+ Debian bug #354321).
+
+ * src/encodings.c (directory_table): Add zh_SG, defaulting to the
+ GBK encoding.
+ (charset_alias_table): Map EUCTW to EUC-TW.
+ (charset_table): Add EUC-TW, defaulting to the nippon driver.
+ (compatible_encodings): Recognise EUC-TW encoding.
+
+Mon May 5 00:05:19 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080501.
+
+Sun May 4 23:16:59 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/cleanup.c (sighandler, trap_signal), lib/pipeline.c
+ (pipeline_start, pipeline_pump): Zero sigaction structures before
+ using them. (I believe we set all required fields anyway; this is
+ just an extra safety catch.)
+
+Mon Apr 28 09:54:48 BST 2008 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon Apr 28 09:38:53 BST 2008 Benno Schulenberg <benno@vertaalt.nl>
+
+ * po/nl.po: Update from Translation Project.
+
+Sun Apr 27 22:41:54 BST 2008 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: Update from Translation Project.
+
+Sun Apr 27 11:47:19 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * po/man-db.pot, po/*.po: Update (sync with 2.5.2-pre2 tarball).
+
+Sun Apr 27 11:27:46 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.2-pre2.
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Apr 27 11:24:24 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_sigchld): assert is not
+ async-signal-safe, so avoid calling it in a signal handler and use
+ an if guard instead (Ubuntu bug #221635, although exactly why the
+ assertion is failing there is unclear).
+
+Sun Apr 27 01:40:32 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080401.
+
+Sun Apr 27 01:32:58 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (ko_name): Add another possible translation, seen in
+ hdparm(1).
+
+Sun Apr 27 01:31:47 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Don't handle //IGNORE unless this is
+ the last encoding to be tried.
+ * src/encodings.c (add_manconv): Append //IGNORE to the target
+ encoding.
+ * docs/NEWS: Document this.
+
+Sun Apr 27 00:54:05 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ Don't emit encoding conversion errors in mandb's quiet mode (Debian
+ bug #473862).
+
+ * src/manconv.c (options, parse_opt): Accept -q/--quiet.
+ (try_iconv): Suppress iconv errors under --quiet.
+ * man/man1/manconv.man1 (SYNOPSIS, OPTIONS): Document --quiet.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
+ * po/man-db.pot, po/*.po: Update.
+
+ * src/encoding.c (add_manconv): Pass -q to manconv if this is mandb
+ in quiet mode.
+
+Sat Apr 26 14:34:26 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (DESCRIPTION): Bring list of conventional
+ section names more into sync with man-pages(7).
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
+
+Sat Apr 26 13:51:27 BST 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/de/man1/apropos.man1, man/de/man1/man.man1,
+ man/de/man1/manpath.man1, man/de/man1/whatis.man1,
+ man/de/man1/zsoelim.man1, man/de/man5/manpath.man5,
+ man/de/man8/catman.man8, man/es/man1/man.man1,
+ man/fr/man1/man.man1, man/it/man8/accessdb.man8: Fix various small
+ mistakes that caused warnings from groff.
+
+Sun Mar 30 20:39:34 BST 2008 Benno Schulenberg <benno@vertaalt.nl>
+
+ * po/nl.po: Update from Translation Project.
+
+Mon Mar 17 19:29:43 GMT 2008 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Fri Mar 14 14:24:58 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Persuade 'make distcheck' to pass again.
+
+ * man/po4a/po4a.cfg: Use paths relative to $(srcdir) and
+ $(builddir).
+ * man/po4a/Makefile.am (PO4A_ARGS): Define srcdir and builddir
+ variables.
+ (all-local, update-po, clean-local): Pass $(PO4A_ARGS) to $(PO4A).
+ Read po4a.cfg from $(srcdir).
+ * man/po4a/*.pl.add: Consolidate into ...
+ * man/pl/translator.add: ... this.
+ * man/Rules.man (dist-hook): Only do anything if PO4A_LINGUA is not
+ set to yes.
+ (distclean-hook): Remove man1, man5, and man8 if PO4A_LINGUA is
+ set to yes.
+ * man/pl/Makefile.am (PO4A_LINGUA): Set to yes.
+ (EXTRA_DIST): Distribute translator.add.
+ * .bzrignore: Ignore man/pl/man1, man/pl/man5, and man/pl/man8,
+ rather than just some files within those directories.
+
+Fri Mar 14 01:06:42 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (Controlling formatted output): Change
+ 'soft-hyphen' string to 'softhyphen' to work around Debian bug
+ #470849.
+ * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
+
+Fri Mar 14 00:57:37 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Build Polish manual pages. The method used scales rather poorly and
+ will probably need to be revisited at some point.
+
+ * configure.ac (AC_CONFIG_FILES): Add man/pl/Makefile.
+ * man/Makefile.am (MAYBE_PO4A_LINGUAS): New, containing pl.
+ (SUBDIRS): Add $(MAYBE_PO4A_LINGUAS) if po4a is present.
+ * man/pl/Makefile.am: New file.
+ * man/po4a/Makefile.am (POFILES): New, containing po/pl.po.
+ (EXTRA_DIST): Add $(POFILES).
+ (all-local, clean-local): New rules to generate and remove
+ translated documents.
+ (update-po): Add --no-translations option.
+ * man/po4a/po4a.cfg (po4a_langs): Replace zh_CN with pl. (zh_CN can
+ come back once it has a translation.)
+ * man/THANKS: Credit Robert Luberda with man/pl as well as pl.po.
+
+ * .bzrignore: Add man/pl/man1/*.man1, man/pl/man5/*.man5, and
+ man/pl/man8/*.man8.
+ * man/po4a/po/man-db-manpages.pot: Update.
+
+Fri Mar 14 00:55:15 GMT 2008 Robert Luberda <robert@debian.org>
+
+ * man/po4a/po/pl.po: New from Translation Project.
+ * man/po4a/accessdb.pl.add, man/po4a/apropos.pl.add,
+ man/po4a/catman.pl.add, man/po4a/lexgrog.pl.add,
+ man/po4a/man.pl.add, man/po4a/manconv.pl.add,
+ man/po4a/mandb.pl.add, man/po4a/manpath.pl.add,
+ man/po4a/whatis.pl.add, man/po4a/zsoelim.pl.add: New files.
+
+Thu Mar 13 09:56:53 GMT 2008 Robert Luberda <robert@debian.org>
+
+ * po/pl.po: Update from Translation Project.
+
+Wed Mar 12 18:29:32 GMT 2008 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * po/ru.po: Update from Translation Project.
+
+Wed Mar 12 13:52:02 GMT 2008 Benno Schulenberg <benno@vertaalt.nl>
+
+ * po/nl.po: Update from Translation Project.
+
+Wed Mar 12 12:30:09 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (parse_opt): Only set html_pager if arg is non-NULL.
+ * docs/NEWS: Document this.
+
+Wed Mar 12 12:20:50 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for po4a. Define an Automake conditional based
+ on whether it is present.
+ * man/Makefile.am (SUBDIRS): Add the po4a subdirectory only if the
+ po4a program is present.
+ * man/po4a/Makefile.am (update-po): Use PO4A variable.
+
+Wed Mar 12 08:53:48 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/Makefile.am (update-po): New target.
+
+Wed Mar 12 08:53:32 GMT 2008 Robert Luberda <robert@debian.org>
+
+ * man/man1/apropos.man1 (OPTIONS, FILES), man/man1/man.man1
+ (ENVIRONMENT, FILES), man/man1/manconv.man1 (OPTIONS),
+ man/man1/manpath.man1 (OPTIONS, FILES), man/man1/whatis.man1
+ (OPTIONS, EXIT STATUS, FILES), man/man8/mandb.man8 (OPTIONS):
+ Consolidate various nearly-identical strings.
+ * man/po4a/po/man-db-manpages.pot: Update.
+
+Tue Mar 11 10:41:05 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.2-pre1 (really this time).
+
+Tue Mar 11 10:39:45 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AC_CONFIG_FILES): Add man/po4a/Makefile.
+ * man/Makefile.am (SUBDIRS): Add po4a.
+ * man/po4a/Makefile.am: New file. Distribute po4a.cfg and
+ po/man-db-manpages.pot.
+
+Tue Mar 11 10:26:49 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.2-pre1.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Mar 10 19:42:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (Controlling formatted output): Quote %pager,
+ since it may expand to multiple words.
+
+Mon Mar 10 16:07:11 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: More updates for 2.5.2.
+
+Mon Mar 10 16:00:15 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/man-db.pot: Rename to ...
+ * man/po4a/po/man-db-manpages.pot: ... this, so that the translation
+ domain name stops clashing with that used for program translations
+ (per Benno Schulenberg).
+ * man/po4a/po4a.cfg (po4a_paths): Adjust for rename.
+
+Mon Mar 10 01:05:57 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (.man1.1, .man8.8): Substitute name of manual page
+ being processed as %program%.
+ * man/man1/apropos.man1 (OPTIONS), man/man1/man.man1 (Finding manual
+ pages), man/man1/whatis.man1 (OPTIONS): Consolidate
+ nearly-identical descriptions of --locale using %program% (thanks,
+ Robert Luberda).
+ * man/po4a/po/man-db.pot: Update.
+
+Tue Mar 4 09:24:40 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to 20080301.
+
+Tue Mar 4 09:18:43 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options): Force --extension to appear after --sections
+ in --help output.
+
+Mon Mar 3 21:46:36 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/man-db.pot: Update.
+
+Sun Mar 2 12:41:13 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Mar 2 12:37:43 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options): Describe --recode's argument as ENCODING, not
+ CODE (thanks, Benno Schulenberg).
+
+Sun Mar 2 12:35:28 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options), src/manpath.c (options), src/whatis.c
+ (options): Use a unified description for --systems (thanks, Benno
+ Schulenberg).
+
+Sun Mar 2 12:29:57 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (args_doc, options): Describe argument to -f as
+ "CODE[:...]" rather than "CODE:..." (thanks, Benno Schulenberg).
+
+Sun Mar 2 12:28:40 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (OPTIONS): Reorganise into subsections, with
+ options listed in the same order as in 'man --help' output.
+ * src/man.c (options, parse_opt): Rearrange a few options slightly
+ so that the ordering makes more sense.
+
+Sun Mar 2 11:56:48 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1, src/encodings.c, src/encodings.h,
+ src/lexgrog_test.c: Update copyright notices.
+
+Sun Mar 2 11:03:21 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Improve 'man -E' to allow overriding the output encoding explicitly,
+ rather than implicitly (and unreliably) by changing the *roff device
+ (Debian bug #466396).
+
+ * src/encodings.c (device_table): Add stub entries for troff
+ devices.
+ (is_roff_device): New function.
+ * src/encodings.h (is_roff_device): Add prototype.
+ * src/man.c (options): Change description of -E to allow general
+ encoding selection.
+ (parse_opt): Only assign the argument of -E to roff_device if it
+ is actually a *roff device; otherwise it is presumed to be a true
+ character encoding and stored in want_encoding. Remove
+ different_encoding, since testing whether want_encoding is set
+ supersedes that.
+ (make_roff_command): If want_encoding is set and is not a *roff
+ device, recode to it rather than to the locale's encoding.
+ (display, try_section, display_filesystem, display_database): Test
+ want_encoding rather than different_encoding.
+ * man/man1/man.man1 (OPTIONS): Adjust documentation of -E.
+ * docs/NEWS: Document this.
+
+ * src/lexgrog_test.c (options): Bring description of -E into sync
+ with man.
+
+Sat Mar 1 22:14:43 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_roff_encoding): In the CJK UTF-8 special
+ case, check the canonicalised encoding in order that locale
+ specifications such as "zh_CN.utf8" work (Debian bug #467249).
+
+Fri Feb 29 09:59:23 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Run autoreconf with -f.
+ * tools/config.guess, tools/config.sub, tools/depcomp,
+ tools/install-sh, tools/ylwrap: Update.
+
+Thu Feb 28 10:47:22 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Terminate MAN_NAME at .ie or .if conditionals
+ (Debian bug #467444).
+
+Sun Feb 17 17:17:16 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (def_path): Fix brace indentation.
+
+Sun Feb 17 17:13:55 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import the strsignal module.
+ * lib/pipeline.c (pipeline_wait): Call strsignal rather than
+ xstrsignal.
+ * lib/xstrsignal.c: Remove.
+ * lib/README (xstrsignal): Remove.
+ * lib/Makefile.am (libman_a_SOURCES): Remove xstrsignal.c.
+ * include/manconfig.h.in (xstrsignal): Remove.
+ * m4/man-strsignal.m4: Remove.
+ * configure.ac (MAN_FUNC_STRSIGNAL): Remove.
+
+Sun Feb 17 16:59:22 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.in, aclocal.m4, config.h.in, configure, docs/Makefile.in,
+ gnulib, lib/Makefile.in, libdb/Makefile.in, man/Makefile.in,
+ man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in,
+ man/it/Makefile.in, man/ja/Makefile.in, manual/Makefile.in,
+ src/Makefile.in, tools/Makefile.in: Upgrade to Automake 1.10.1 and
+ Gnulib 20080201.
+
+Mon Feb 4 08:28:33 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man_db.conf.in: Make /usr/local/share/man mandatory rather
+ than /usr/local/man (thanks, Reuben Thomas; Debian bug #463892).
+
+Fri Feb 1 09:01:34 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/replace.sin.in: Strip off ".if !'po4a'hide' " from input
+ manual pages. It's a no-op except for po4a's purposes, and
+ removing it helps non-groff manual page renderers.
+
+Mon Jan 28 08:54:47 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * docs/man-db.lsm: Update to 2.5.1.
+
+Mon Jan 28 08:47:51 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.1.
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Jan 27 22:48:32 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ Support Korean when configured with support for the multibyte groff
+ patch (thanks, Hansun Lee; Ubuntu bug #176896).
+
+ * src/encodings.c (compatible_encodings): Allow EUC-KR -> UTF-8.
+ (get_roff_encoding): Handle ko_KR.UTF-8 via devutf8.
+
+Sun Jan 27 13:42:31 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen,
+ bufmax, line_cache, and peek_offset.
+
+Sun Jan 27 13:37:17 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (struct pipeline): Add ignore_signals member.
+ * lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1.
+ (pipeline_join): Set ignore_signals if either input pipeline has
+ it set.
+ (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals
+ is set.
+ (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals
+ is set.
+ * lib/decompress.c (decompress_open, decompress_fdopen): Set
+ ignore_signals to 0 so that SIGINT and SIGQUIT are not ignored
+ just because a decompression process is running (Debian bug
+ #462276).
+ * docs/NEWS: Document this.
+
+Thu Jan 24 17:12:24 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (INTERRUPTED): Remove.
+ * src/man.c (int_handler): Remove; this is useless and
+ non-signal-safe.
+ (main): Don't set SIGINT to int_handler.
+
+Thu Jan 17 09:13:04 GMT 2008 Ming Hua <minghua-guest@users.alioth.debian.org>
+
+ * po/zh_CN.po: Update from Translation Project.
+
+Tue Jan 15 18:45:22 GMT 2008 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * po/ru.po: Update from Translation Project.
+ * man/THANKS: Update e-mail address.
+
+Tue Jan 15 14:37:15 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-bdb.m4: Add WITH-DB option; make ACTION-IF-FOUND optional;
+ define BDB_H and BTREE.
+ * configure.ac: Make Berkeley DB checks more concise using the
+ above.
+
+Tue Jan 15 12:31:12 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Remove unused AC_HEADER_STDC.
+
+Tue Jan 15 08:42:27 GMT 2008 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Tue Jan 15 08:39:56 GMT 2008 Benno Schulenberg <benno@vertaalt.nl>
+
+ * po/nl.po: Update from Translation Project.
+
+Tue Jan 15 00:01:39 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-compress-lib.m4: New function, MAN_COMPRESS_LIB: like
+ AC_CHECK_LIB but adds the library to LIBCOMPRESS rather than LIBS.
+ * configure.ac: Use it for -lz.
+ * src/Makefile.am (lexgrog_LDADD, man_LDADD, manconv_LDADD,
+ mandb_LDADD, zsoelim_LDADD): Add $(LIBCOMPRESS).
+
+Mon Jan 14 15:29:55 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Don't check for strerror; Gnulib supplies a
+ replacement now.
+
+Mon Jan 14 13:59:18 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Set the new file's mode to DBMODE in order to
+ try to defend against strange problems with databases being left
+ world-unreadable (Debian bug #430800).
+
+Mon Jan 14 00:55:22 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po/man-db.pot: Update.
+
+Mon Jan 14 00:16:57 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.1-pre2.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Jan 14 00:00:21 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog_test.c (parse_opt): Use argp_error rather than
+ error/argp_usage. Suggested by Ivan Shmakov.
+ * src/man.c (parse_opt): Likewise.
+ * src/manconv.c (parse_opt): Likewise.
+
+Sun Jan 13 23:35:27 GMT 2008 Ivan Shmakov <oneingray@gmail.com>
+
+ Add a command-line option to man to enable groff warnings.
+
+ * src/man.c (enum opts, struct string_llist): New types.
+ (default_roff_warnings, roff_warnings): Set defaults.
+ (options, parse_opt): Accept --warnings.
+ (make_roff_command): Add warnings to groff command line.
+ * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document --warnings.
+ * docs/NEWS: Document this.
+
+Thu Jan 10 09:24:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (local_man_loop): Guess language based on absolute path
+ to provided file, rather than relative (Debian bug #460014).
+
+Mon Jan 7 17:28:54 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/lib/xmalloc.patch: Add commentary.
+
+Mon Jan 7 15:30:56 GMT 2008 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * po/ru.po: Update from Translation Project.
+
+Mon Jan 7 11:38:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/replace.sin: Rename to ...
+ * man/replace.sin.in: ... this.
+ * configure.ac (AC_CONFIG_FILES): Generate man/replace.sin.
+ * man/Rules.man (CLEANFILES, replace.sed, .man1.1, .man5.5,
+ .man8.8): Generate replace.sed at 'make' time so that
+ $(config_file) is substituted properly. Reported by Peter
+ Breitenlohner.
+ * .bzrignore: Update.
+
+Mon Jan 7 11:14:04 GMT 2008 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * manual/Makefile.am: Use soelim with -I$(srcdir).
+
+ * man/Rules.man (mandir): Append the language so that Automake can
+ handle translated manual pages.
+ (install-data-local, uninstall-local): Removed in favor of rules
+ generated by Automake.
+ (CLEANFILES, dist-hook): Go back to using man*_MANS.
+ (all-am): Remove explicit dependencies.
+ * man/Makefile.am, man/de/Makefile.am, man/es/Makefile.am,
+ man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Go
+ back to using man*_MANS.
+
+ * man/man8/accessdb.man8, man/fr/man8/accessdb.man8: Fix typo (-V,
+ not -v).
+
+ * manual/Makefile.am (.pp.ps): Use groff -Tps, not -Tdvi.
+
+ * src/Makefile.am (install-data-hook): Don't (try to) overwrite
+ existing config files.
+
+ * src/Makefile.am (bin_SCRIPTS, all-am, install-exec-hook,
+ uninstall-hook): Remove apropos from bin_SCRIPTS, explicitly
+ depend on it from all-am, and manually create a whatis->apropos
+ symlink at install time; installing the symlink from the build
+ directory using bin_SCRIPTS would install a second copy (not
+ stripped by "make install-strip").
+
+Mon Jan 7 09:54:12 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Stop checking for memory.h (not used) and limits.h
+ (guaranteed by C89).
+ * lib/hashtable.c, libdb/db_ver.c, src/convert_name.c,
+ src/descriptions.c, src/filenames.c: Remove unnecessary #include
+ <stdio.h>.
+ * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c,
+ src/manpath.c: Remove unnecessary #include <assert.h>.
+ * libdb/mydbm.h, src/catman.c, src/man.c, src/manpath.c: Include
+ <limits.h> unconditionally.
+ * src/convert_name.c: Remove unnecessary #include <unistd.h>.
+ * src/man.c: Remove unnecessary #include <sys/file.h> and
+ <sys/wait.h>.
+ * src/manpath.c: Remove unnecessary #include <termios.h>.
+ * src/straycats.c: Remove unnecessary #include <fcntl.h>.
+ * src/ult_src.c: Remove S_ISLNK conditionals; Gnulib's <sys/stat.h>
+ wrapper deals with this.
+
+ * lib/linelength.c (get_line_length): Remove trailing newline from
+ message passed to perror.
+
+Mon Jan 7 03:21:49 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/gettext.h: Remove; now provided by Gnulib.
+ * lib/Makefile.am (libman_a_SOURCES): Remove gettext.h.
+ * lib/README: Remove gettext.h.
+
+Mon Jan 7 03:11:08 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * include/comp_src.h.in: Update header comment.
+
+Mon Jan 7 02:52:25 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/util.c (mkdbname): Replace with ...
+ * include/manconfig.h.in (mkdbname): ... a simpler macro.
+
+Mon Jan 7 02:27:59 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c, libdb/db_storage.h, libdb/mydbm.h, src/catman.c,
+ src/check_mandirs.c, src/convert_name.c, src/globbing.c,
+ src/man.c, src/man.h, src/mandb.c, src/manp.c, src/security.c,
+ src/security.h, src/whatis.c: Replace __inline__ with inline
+ everywhere. Autoconf's handling of the latter is sufficient.
+ * include/manconfig.h.in: Remove __inline and __inline__
+ definitions.
+
+Mon Jan 7 02:12:26 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Automatically detect the Debian multibyte patch to
+ groff.
+
+Mon Jan 7 01:14:39 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (options, parse_opt): Accept -d/--debug.
+ * src/lexgrog_test.c (options, parse_opt): Likewise.
+ * src/zsoelim.l (options, parse_opt): Likewise.
+ * docs/NEWS: Document this.
+
+Mon Jan 7 01:08:39 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/zsoelim.l (options): Fix incorrect description of -C.
+
+Sun Jan 6 15:01:08 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ sigaction is specified as non-interruptible; there is no need to
+ wrap it with EINTR detection.
+
+ * lib/xsigaction.c: Remove.
+ * include/manconfig.h.in (xsigaction): Remove prototype.
+ * lib/Makefile.am (libman_a_SOURCES): Remove xsigaction.c.
+ * lib/README: Remove xsigaction.c.
+ * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Call
+ sigaction rather than xsigaction.
+ * lib/pipeline.c (pipeline_start, pipeline_wait,
+ pipeline_install_sigchld, pipeline_pump): Call sigaction rather
+ than xsigaction.
+
+Sun Jan 6 14:46:36 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * po/nl.po: Update with msgmerge.
+
+Sun Jan 6 14:45:09 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man, man/de/Makefile.am, man/es/Makefile.am,
+ man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Use
+ LINGUA rather than LANGUAGE to name the manual page language, as
+ setting LANGUAGE causes 'make' output to be translated.
+
+Sun Jan 6 14:34:15 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8,
+ man/ja.UTF-8: Rename to ...
+ * man/de, man/es, man/fr, man/it, man/ja: ... these.
+ * .bzrignore, configure.ac, man/de/Makefile.am, man/es/Makefile.am,
+ man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am,
+ man/po4a/po4a.cfg, man/THANKS: Adjust for new directory names.
+
+Sun Jan 6 10:20:19 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Upgrade to Debian 20080104-1. Import the unsetenv module.
+ * src/man.c, src/whatis.c: No longer #include "setenv.h".
+
+Sun Jan 6 09:57:51 GMT 2008 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Sat Jan 5 23:15:23 GMT 2008 Ming Hua <minghua-guest@users.alioth.debian.org>
+
+ * po/zh_CN.po: Update from Translation Project (trivial).
+
+Sat Jan 5 23:06:14 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Define NLS Automake conditional from USE_NLS.
+ * man/Makefile.am (SUBDIRS): Define only if NLS.
+
+Sat Jan 5 22:54:05 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.am, man/de.UTF-8/Makefile.am,
+ man/es.UTF-8/Makefile.am, man/fr.UTF-8/Makefile.am,
+ man/it.UTF-8/Makefile.am, man/ja.UTF-8/Makefile.am: Declare
+ man*_files rather than man*_MANS. Using the MANS primary causes
+ Automake's incorrect manual page rules to be used.
+ * man/Rules.man (CLEANFILES, install-data-local, uninstall-local,
+ dist-hook): Expect man*_files rather than man*_MANS.
+ (all-am): Depend on $(man*_files).
+
+ * man/Rules.man (install-data-local, uninstall-local): Stop
+ stripping leading "man*/" from install location.
+
+Sat Jan 5 21:49:40 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-gcc-warning.m4: New file.
+ * configure.ac: Test whether each -W option (other than -Wall) that
+ we want to add is supported, rather than adding it
+ unconditionally. Reported by Peter Breitenlohner.
+
+Sat Jan 5 14:12:33 GMT 2008 Ivan Shmakov <oneingray@gmail.com>
+
+ * configure.ac: Test for existence of
+ "$srcdir/gnulib/po/Makefile.in.in" rather than just
+ gnulib/po/Makefile.in.in in order to work for VPATH builds. Also
+ reported by Peter Breitenlohner.
+
+Fri Jan 4 16:03:57 GMT 2008 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * src/man.c (display): Stop -W printing blank lines for manual pages
+ without corresponding cat pages.
+
+Fri Jan 4 15:59:41 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.am: Install globbing and manconv in
+ $(libexecdir)/@PACKAGE@ rather than in $(pkglibdir). Reported by
+ Peter Breitenlohner.
+
+Fri Jan 4 12:44:34 GMT 2008 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * libdb/db_btree.c (dbstore): Rename basename argument to base to
+ avoid clashing with the function of the same name.
+ * libdb/db_storage.h (dbstore): Update prototype.
+ * libdb/mydbm.h (dbver_wr, dbver_rd), src/security.h
+ (do_system_drop_privs): Update prototype argument names to match
+ definition.
+
+Fri Jan 4 11:52:22 GMT 2008 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * src/man.c: Make prompt_string const. Avoids "discards qualifier"
+ warning when building without NLS.
+
+Thu Jan 3 21:39:27 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import the lib-ignore module, to have the linker ignore
+ unused libraries.
+
+Wed Jan 2 23:30:33 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * lib/decompress.c (decompress_zlib), lib/linelength.c
+ (get_line_length), lib/pipeline.c (passthrough), src/lexgrog.l
+ (find_name), src/man.c (set_term, get_term, main,
+ make_roff_command, format_display_and_save, format_display,
+ display_catman, display), src/manconv.c (main), src/zsoelim.l
+ (open_file): Use STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO
+ macros rather than calling fileno.
+
+Wed Jan 2 16:46:46 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
+ (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c
+ (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c
+ (main), src/wrapper.c (main), src/zsoelim.l (main): Bind the
+ "man-db-gnulib" textual domain as well as "man-db".
+
+Wed Jan 2 00:12:48 GMT 2008 Benno Schulenberg <benno@vertaalt.nl>
+
+ * po/nl.po: New from Translation Project.
+ * po/LINGUAS: Add nl.
+ * man/THANKS: Add translator credit.
+
+Tue Jan 1 15:36:23 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * README, src/man.c: Update copyright years.
+
+Tue Jan 1 15:27:51 GMT 2008 Ming Hua <minghua-guest@users.alioth.debian.org>
+
+ * po/zh_CN.po: Update.
+
+Tue Jan 1 12:34:10 GMT 2008 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (options): Add -s as an alias for -S (Debian bug
+ #458499).
+ (parse_opt): Accept it.
+ (get_section_list): Allow the section list to be separated by
+ commas as well as colons.
+ * man/man1/man.man1 (OPTIONS): Document -s and comma-separation.
+ * docs/NEWS: Document this.
+
+Mon Dec 31 22:13:00 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Coding style): Expand.
+
+Mon Dec 31 22:01:35 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Remove obsolete definitions of VERSION and
+ DATE and declaration of ver.
+ * src/zsoelim.l: Remove obsolete definition of STATIC_VER.
+
+Mon Dec 31 17:00:19 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (hash_lookup_structure): New function; same as
+ previous hash_lookup but returns a struct nlist * rather than the
+ value.
+ (hash_lookup): Rewrite in terms of hash_lookup_structure.
+ (hash_install): Use hash_lookup_structure rather than hash_lookup
+ (thanks, Ivan Shmakov; should fix Debian bug #374708).
+
+Mon Dec 31 16:15:26 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (hash_install): Fix head comment to match reality
+ (thanks, Ivan Shmakov).
+
+Mon Dec 31 15:45:31 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Mention that the bzr archive now
+ requires bzr 0.15 or later.
+
+Mon Dec 31 15:31:08 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.1-pre1.
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Dec 31 10:02:28 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (passthrough): New helper function.
+ (pipeline_connect): Add special (kludge) handling for zero-command
+ sinks.
+ (pipeline_pump): Add minor commentary.
+ * src/man.c (options, parse_opt): New -R/--recode option.
+ (make_roff_command): If --recode is used, suppress external
+ formatters and all processing filters, and force the output
+ encoding to the argument to --recode.
+ (display): If --recode is used, force display to stdout and
+ suppress cat pages.
+ (try_section, display_filesystem, display_database): Don't show
+ cat pages or follow .so links for --recode.
+ * src/util.c (lang_dir): Handle relative filenames starting with
+ "man/".
+ * man/man1/man.man1 (OPTIONS): Document --recode.
+ * docs/NEWS: Document this.
+
+Fri Dec 14 10:06:21 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (options): Note that --exact is for apropos only.
+
+Fri Dec 14 09:39:06 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Convert from getopt to argp for option parsing. This invalidates
+ many translations, but this should be the last time; in future, a
+ changes in a single option will only affect translations of the help
+ strings for that option, not the program's entire help string.
+
+ * gnulib: Import the argp and lock modules.
+ * autogen.sh: Hack around a tools/config.rpath clash between Gnulib
+ and gettext.
+ * configure.ac (CFLAGS): Add -Wno-missing-field-initializers for
+ GCC.
+ * .bzrignore: Add gnulib/lib/strings.h, po/remove-potcdate.sed, and
+ tools/config.rpath.*.
+
+ * src/version.c: Remove in favour of argp's --version handling.
+ * po/POTFILES.in: Remove src/version.c.
+ * src/Makefile.am (accessdb_SOURCES, catman_SOURCES,
+ globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, manconv_SOURCES,
+ mandb_SOURCES, manpath_SOURCES, whatis_SOURCES, wrapper_SOURCES,
+ zsoelim_SOURCES): Remove version.c.
+
+ * src/accessdb.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, doc, options, parse_opt,
+ help_filter, argp): Add.
+ (main): Switch from getopt_long to argp_parse. Use error (FATAL)
+ for database read errors rather than error (0); usage (FAIL).
+ * src/catman.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
+ (catman, do_catman, parse_for_sec): Rename argp to args.
+ (main): Switch from getopt_long to argp_parse.
+ * src/globbing_test.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
+ (main): Switch from getopt_long to argp_parse.
+ * src/lexgrog_test.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, doc, options, parse_opt, argp):
+ Add.
+ (main): Switch from getopt_long to argp_parse.
+ * src/man.c (long_options, args, usage, man_getopt): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, help_filter,
+ argp): Add.
+ (do_extern): Adjust iteration over arguments.
+ (main): Switch from getopt_long to argp_parse. Initialise
+ html_pager early for use in --help.
+ * src/man.h (man_getopt): Remove prototype.
+ * src/manconv.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
+ (main): Switch from getopt_long to argp_parse.
+ * src/mandb.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
+ (main): Switch from getopt_long to argp_parse.
+ * src/manpath.c (long_options, args, usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, options, parse_opt, argp): Add.
+ (main): Switch from getopt_long to argp_parse.
+ * src/whatis.c (long_options, args, apropos_usage, whatis_usage,
+ usage): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, apropos_doc, options, parse_opt,
+ apropos_argp, whatis_argp): Add.
+ (main): Switch from getopt_long to argp_parse. Suppress --exact
+ and --and options in the whatis case.
+ * src/zsoelim.l (long_options, args, usage, ver): Remove.
+ (argp_program_version, argp_program_bug_address,
+ argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
+ (main): Switch from getopt_long to argp_parse.
+ * po/POTFILES.in: Add zsoelim.l.
+
+Thu Dec 13 17:20:51 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Permit gnulib-tool to be missing; in that case, just
+ run autoreconf.
+
+Thu Dec 13 11:36:26 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.17.
+ * gnulib: Upgrade to Debian 20071201+dfsg-1.
+ * README (Copyright and licensing): New section. Explain the
+ implications of Gnulib components being distributed under GPL v3.
+ * .bzrignore: Ignore gnulib/lib/fcntl.h.
+
+Mon Nov 26 08:37:30 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Utility functions to use): Rename to ...
+ (Facilities and portability): ... this. Add comments on Gnulib and
+ C89/C99.
+
+Sun Nov 25 21:11:34 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): Add advice on docs/ChangeLog
+ practice in branches.
+
+Sun Nov 25 21:01:22 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_roff_encoding): Just use the fallback
+ encoding if device is NULL, rather than crashing. Bug reported by
+ Ivan Shmakov.
+
+Sun Nov 25 18:51:16 GMT 2007 Ivan Shmakov <oneingray@gmail.com>
+
+ * man/Rules.man: replace.sed lives in $(top_builddir)/man, not
+ $(top_srcdir)/man.
+
+Sat Nov 24 10:45:50 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): If the environment variable
+ MANROFFOPT is set, append its contents to the *roff command line
+ (thanks, Ivan Shmakov; Debian bug #451187).
+ * man/man1/man.man1 (ENVIRONMENT): Document MANROFFOPT.
+ * docs/NEWS: Document this.
+
+Mon Nov 19 19:41:18 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.10. Ming Hua
+ reported that Automake 1.9 doesn't have the MKDIR_P feature we
+ depend on.
+
+Tue Nov 13 22:10:51 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (use_grep, do_whatis, word_fnmatch, search, main):
+ Rename regex to regex_opt, as Solaris' <libgen.h> defines a regex
+ function (thanks to the Nexenta developers).
+
+Mon Nov 12 19:24:00 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (main), src/globbing_test.c (main),
+ src/lexgrog_test.c (main), src/zsoelim.l (main): Enable
+ localisation (Debian bug #448395).
+
+Sun Nov 11 05:43:16 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Issue a useful error message if
+ gnulib/po/Makefile.in.in does not exist (reported by Ming Hua).
+
+Mon Oct 22 00:04:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Bruno Haible notes in
+ http://lists.gnu.org/archive/html/groff/2005-12/msg00061.html that
+ setlocale is supported on all known systems, and it is in C89. Use
+ it unconditionally.
+
+ * configure.ac: Don't check for setlocale.
+ * src/catman.c (parse_for_sec), src/man.c (main), src/manp.c
+ (add_nls_manpath), src/whatis.c (main): Remove HAVE_SETLOCALE
+ conditionals.
+
+Sun Oct 21 21:56:02 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Forbid output tokens beginning with "MAN_".
+
+Sun Oct 21 21:52:43 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Rationalise use of comments. Use more vertical
+ whitespace.
+
+Sun Oct 21 21:12:46 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * gnulib: Import .po files (--po-base=gnulib/po --po-domain=man-db).
+ * configure.ac (AC_CONFIG_FILES): Generate gnulib/po/Makefile.in.
+ * Makefile.am (SUBDIRS): Build gnulib/po.
+ * .bzrignore: Ignore gnulib/po. This is contrary to our usual
+ practice, since this is generated by autogen.sh; but gnulib-tool
+ gives us full .po files which are then stripped down to just the
+ parts of Gnulib we use by make, so adding them to bzr is
+ inconvenient.
+
+Sun Oct 21 19:46:26 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man_getopt): Fix reversed handling of -f and -k in the
+ "incompatible options" message.
+
+Sun Oct 21 19:43:27 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (CFLAGS): Add -Wformat-security.
+ * src/man.c (man_getopt): Use %s as the format string for the
+ "incompatible options" message since the message itself is not a
+ string literal. (This is only a security problem in the presence
+ of hostile translators.)
+
+Sun Oct 21 17:59:13 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (SED_ARGS): Move to ...
+ * man/replace.sin: ... here.
+ * man/Rules.man (.man1.1, .man5.5, .man8.8): Use replace.sed to
+ shorten build output.
+ * configure.ac (AC_CONFIG_FILES): Generate man/replace.sed from
+ man/replace.sin.
+ * .bzrignore: Ignore man/replace.sed.
+
+Sun Oct 21 13:38:09 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (purge_missing): If there is no content, that
+ might just be because the key was already freed while purging an
+ earlier multi key, so skip to the next key rather than breaking
+ out of the loop.
+
+Sun Oct 21 13:33:38 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Check for gdbm_exists in DBLIBS as well as LIBS.
+ Remove unused gdbm_setopt check.
+
+Sun Oct 21 01:25:00 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AC_INIT): Pass a BUG-REPORT argument.
+
+Sat Oct 20 18:27:13 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/lib/xmalloc.c (xstrdup): Explicitly tolerate a NULL
+ argument, returning NULL in that case. (Also sent to Gnulib
+ upstream.)
+ * gnulib/lib/xmalloc.patch: Add, with the above change in patch
+ format.
+ * autogen.sh: Apply xmalloc.patch after updating Gnulib.
+
+Sat Oct 20 18:20:07 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/lib/asnprintf.c, gnulib/lib/asprintf.c,
+ gnulib/lib/float+.h, gnulib/lib/float_.h,
+ gnulib/lib/printf-args.c, gnulib/lib/printf-args.h,
+ gnulib/lib/printf-parse.c, gnulib/lib/printf-parse.h,
+ gnulib/lib/size_max.h, gnulib/lib/stdio_.h,
+ gnulib/lib/vasnprintf.c, gnulib/lib/vasnprintf.h,
+ gnulib/lib/vasprintf.c, gnulib/lib/xasprintf.c,
+ gnulib/lib/xsize.h, gnulib/lib/xvasprintf.c,
+ gnulib/lib/xvasprintf.h, gnulib/m4/eoverflow.m4,
+ gnulib/m4/float_h.m4, gnulib/m4/intmax_t.m4,
+ gnulib/m4/inttypes_h.m4, gnulib/m4/size_max.m4,
+ gnulib/m4/stdarg.m4, gnulib/m4/stdint_h.m4, gnulib/m4/stdio_h.m4,
+ gnulib/m4/vasnprintf.m4, gnulib/m4/vasprintf.m4,
+ gnulib/m4/wchar_t.m4, gnulib/m4/xsize.m4, gnulib/m4/xvasprintf.m4:
+ Import the Gnulib xvasprintf module.
+ * .bzrignore: Update.
+
+ * libdb/mydbm.h: Add MYDBM_RESET_DSIZE and MYDBM_SET convenience
+ macros, to obsolete most direct uses of MYDBM_SET_DPTR and
+ MYDBM_DSIZE. Code that just wants to put a string in a datum
+ should use MYDBM_SET.
+ * libdb/db_btree.c (dbstore), libdb/db_delete.c (dbdelete): Use
+ MYDBM_SET.
+ * libdb/db_lookup.c (make_multi_key): Use MYDBM_SET and xasprintf.
+ (make_content): Likewise. Collapse ANSI_SPRINTF #ifdef, no longer
+ needed.
+ (dblookup): Use MYDBM_SET.
+ * libdb/db_ndbm.c (ndbm_flopen): Use xasprintf.
+ * libdb/db_store.c (dbstore): Use MYDBM_SET and xasprintf.
+ * libdb/db_ver.c (dbver_rd, dbver_wr): Use MYDBM_SET.
+ * src/check_mandirs.c (update_db_time): Use MYDBM_SET and xasprintf.
+ (reset_db_time, update_db): Use MYDBM_SET.
+ * src/filenames.c (make_filename): Use xasprintf.
+ * src/man.c (setenv_less): Use xasprintf.
+
+ * m4/man-ansi-sprintf.m4, configure.ac (MAN_FUNC_ANSI_SPRINTF):
+ Remove.
+
+Sat Oct 20 14:30:44 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Remove redundant check for getcwd.
+
+Thu Oct 18 01:51:06 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/wrapper.c: Include "config.h" right at the top and with a
+ HAVE_CONFIG_H guard, like other files.
+
+Thu Oct 18 01:41:41 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pathsearch.c, src/man.c, src/mandb.c, src/manp.c: Include
+ "xgetcwd.h" rather than <xgetcwd.h>, as suggested by gnulib-tool.
+
+Thu Oct 18 01:37:22 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (cat_manpath): Whitespace adjustments.
+
+Thu Oct 18 01:15:25 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c: PIPE_BUF is no longer used, so don't define it.
+
+Wed Oct 17 22:34:32 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/lib/minmax.h, gnulib/m4/minmax.m4: Import the Gnulib minmax
+ module.
+ * src/man.c (duplicate_candidates): Use it.
+ * src/util.c: Remove unused definition of MAX.
+
+ Regenerate all build system files. (Future ChangeLog entries will
+ not mention this.)
+
+Wed Oct 17 22:22:25 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * gnulib/lib/strerror.c, gnulib/m4/strerror.m4: Import the Gnulib
+ strerror module.
+
+ Regenerate all build system files.
+
+Wed Oct 17 21:05:50 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Use the Gnulib portability library.
+
+ * lib/alloca.c, lib/basename.c, lib/error.c, lib/error.h,
+ lib/fnmatch.c, lib/fnmatch_.h, lib/getcwdalloc.c,
+ lib/getcwdalloc.h, lib/getopt.c, lib/getopt1.c, lib/getopt_.h,
+ lib/glob.c, lib/glob_.h, lib/memcmp.c, lib/mkdtemp.c,
+ lib/mkstemp.c, lib/putenv.c, lib/realpath.c, lib/rename.c,
+ lib/setenv.c, lib/setenv.h, lib/strcspn.c, lib/strnlen.c,
+ lib/strsep.c, lib/tempname.c, lib/unsetenv.c, lib/xmalloc.c,
+ lib/xstrdup.c, lib/xstrndup.c, m4/man-fnmatch.m4, m4/setenv.m4,
+ m4/tempname.m4: Remove.
+ * gnulib/*, tools/link-warning.h: Import atexit, canonicalize,
+ dirname, error, fnmatch-gnu, getopt, glob, memcmp, mkdtemp,
+ mkstemp, regex, rename, setenv, strcspn, strsep, sys_select,
+ xalloc, xgetcwd, and xstrndup modules.
+ * .bzrignore: Update.
+ * Makefile.am (SUBDIRS): Build gnulib/lib.
+ (ACLOCAL_AMFLAGS): Add -I gnulib/m4.
+ * autogen.sh: Add gnulib-tool --update.
+ * configure.ac: Call gl_EARLY and gl_INIT.
+ Remove calls to AC_AIX and AC_MINIX.
+ Stop checking for unistd.h, regex.h, libgen.h, string.h, and
+ strings.h headers.
+ Stop checking for alloca, memcmp, strcoll, vprintf, getwd, atexit,
+ on_exit, canonicalize_file_name, regcomp, re_comp, globfree,
+ getopt_long, putenv, realpath, rename, basename, strsep, strcspn,
+ strnlen, mkdtemp, mkstemp, setenv, and __gen_tempname functions.
+ Generate gnulib/lib/Makefile.
+ * docs/HACKING: Document policy on generated files in revision
+ control.
+ * include/manconfig.h.in: Replace xmalloc, xrealloc, xstrdup, and
+ xstrndup declarations with inclusions of xalloc.h and xstrndup.h.
+ Stop defining basename, strsep, and getcwd.
+ * lib/Makefile.am (libman_a_CPPFLAGS): Include headers from
+ gnulib/lib.
+ (libman_a_SOURCES): Remove error.c, error.h, getcwdalloc.c,
+ getcwdalloc.h, setenv.h, xmalloc.c, xstrdup.c, and xstrndup.c.
+ (libman_a_LIBADD): Remove $(ALLOCA).
+ (BUILT_SOURCES, MOSTLYCLEANFILES, EXTRA_DIST, fnmatch.h, getopt.h,
+ glob.h): Remove; replaced by Gnulib.
+ * lib/README: Alphabetise, update file list, and update authors.
+ * libdb/Makefile.am (libmandb_a_CPPFLAGS): Include headers from
+ gnulib/lib.
+ * src/Makefile.am (AM_CPPFLAGS): Include headers from gnulib/lib.
+ (LIBMAN): Link with gnulib/lib/libgnu.a.
+
+ * lib/cleanup.c: Assume <unistd.h> and atexit.
+ * lib/decompress.c, lib/flock.c: Assume <unistd.h>.
+ * lib/pathsearch.c: Assume <unistd.h>.
+ (pathsearch): Use xgetcwd.
+ * lib/pipeline.c: Assume <sys/select.h> and <unistd.h>. Remove
+ duplicate <fcntl.h> inclusion.
+ (command_new): Use base_name.
+ * lib/tempfile.c, lib/xstrsignal.h: Assume <unistd.h>.
+ * libdb/db_btree.c: Assume <unistd.h>.
+ * libdb/db_btree.c, libdb/db_lookup.c: Assume <unistd.h> and strsep.
+ * libdb/db_ndbm.c: Assume <unistd.h>.
+ * libdb/db_store.c: Assume <unistd.h> and strsep.
+ * src/accessdb.c (main): Use base_name.
+ * src/catman.c: Assume <unistd.h>.
+ (main): Use base_name.
+ * src/check_mandirs.c: Assume <unistd.h>, strpbrk, and time.
+ (test_manfile): Use base_name. Rename existing base_name variable
+ to manpage_base.
+ (reset_db_time): Use dir_name.
+ * src/compression.c, src/convert_name.c: Assume <unistd.h>.
+ * src/filenames.c: Remove unused <libgen.h> inclusion.
+ * src/globbing_test.c (main): Use base_name.
+ * src/lexgrog.l, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
+ src/lexgrog.l.new: Assume <unistd.h>.
+ * src/lexgrog_test.c (main): Use base_name.
+ * src/man.c: Assume <unistd.h>.
+ (gripe_no_man): Use unsetenv rather than putenv.
+ (local_man_loop): Use base_name.
+ (main): Use base_name and xgetcwd.
+ (make_roff_command): Use setenv rather than putenv.
+ (format_display): Use xgetcwd and base_name.
+ * src/manconv.c: Assume <unistd.h>.
+ (main): Use base_name.
+ * src/mandb.c: Assume <unistd.h>.
+ (main): Use base_name and xgetcwd.
+ * src/manp.c: Assume <unistd.h>.
+ (add_dir_to_path_list): Use xgetcwd.
+ * src/manpath.c: Assume <unistd.h>.
+ (main): Use base_name.
+ * src/security.c: Assume <unistd.h>.
+ * src/straycats.c: Assume <unistd.h>.
+ (check_for_stray): Use base_name. Assume canonicalize_file_name.
+ * src/ult_src.c: Assume <unistd.h>.
+ (ult_softlink): Use canonicalize_file_name.
+ * src/ult_src.c: Assume <unistd.h>.
+ * src/whatis.c: Assume <unistd.h> and <sys/types.h>.
+ (use_grep, parse_name, parse_whatis, search, main): Assume POSIX
+ regex functions (provided by Gnulib's regex module).
+ (main): Use base_name.
+ * src/wrapper.c (main): Use base_name.
+ * src/zsoelim.l: Assume <unistd.h>.
+ (main): Use base_name.
+
+ * docs/NEWS: Document this.
+
+ Drop remaining bits of pre-C89 compatibility.
+
+ * lib/ansidecl.h, lib/strspn.c, lib/strstr.c: Remove.
+ * configure.ac: Stop checking for strstr and strspn.
+ * include/manconfig.h.in: Remove VOID definition.
+ * lib/Makefile.am (libman_a_SOURCES): Remove ansidecl.h.
+ * lib/appendstr.c, lib/decompress.c, lib/flock.c, lib/hashtable.c,
+ lib/pathsearch.c, lib/tempfile.c, libdb/db_btree.c,
+ libdb/db_delete.c, libdb/db_gdbm.c, libdb/db_lookup.c,
+ libdb/db_ndbm.c, libdb/db_store.c, libdb/db_ver.c, src/accessdb.c,
+ src/catman.c, src/check_mandirs.c, src/compression.c,
+ src/convert_name.c, src/descriptions.c, src/descriptions_store.c,
+ src/encodings.c, src/fake_security.c, src/filenames.c,
+ src/globbing.c, src/globbing_test.c, src/lexgrog.l,
+ src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, src/lexgrog.l.new,
+ src/lexgrog_test.c, src/man.c, src/manconv.c, src/mandb.c,
+ src/manp.c, src/manpath.c, src/security.c, src/straycats.c,
+ src/ult_src.c, src/util.c, src/version.c, src/whatis.c,
+ src/zsoelim.l: Assume C89 declaration syntax, headers, and
+ functions.
+ * docs/NEWS: Document this.
+
+ * configure.ac (--enable-mandirs): Improve grammar.
+
+ Regenerate all build system files using autogen.sh.
+
+Mon Oct 15 10:15:48 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document previous change.
+
+Mon Oct 15 10:13:57 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (check_preprocessor_encoding): Allow only
+ alphanumerics and "-_/:.()" in encoding names (Debian bug
+ #446055). This matches everything in 'iconv --list' on my system.
+ (try_iconv): Include encoding names in error message if iconv_open
+ fails.
+
+Mon Oct 15 10:06:51 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (.man1.1, .man5.5, .man8.8): Use $(MKDIR_P) rather
+ than hardcoding mkdir -p.
+ * man/Makefile.in, man/de.UTF-8/Makefile.in,
+ man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
+ man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate.
+
+Sun Oct 14 02:39:43 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.am (AM_CPPFLAGS): Fix SOELIM definition.
+ * src/Makefile.in: Regenerate.
+
+Sun Oct 14 01:20:07 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * .bzrignore: Restore some ignores needed in intl/.
+
+Sun Oct 14 01:16:23 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add most files generated by autogen.sh to revision control, as it
+ makes it easier to keep track of what the Autotools are doing.
+ autom4te.cache and po/Makevars.template are explicitly still
+ ignored; the former is junk and the latter is only necessary in the
+ gettext-tools package.
+
+ * ABOUT-NLS, aclocal.m4, config.h.in, configure, intl/ChangeLog,
+ intl/Makefile.in, intl/VERSION, intl/bindtextdom.c,
+ intl/config.charset, intl/dcgettext.c, intl/dcigettext.c,
+ intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c,
+ intl/eval-plural.h, intl/explodename.c, intl/export.h,
+ intl/finddomain.c, intl/gettext.c, intl/gettextP.h, intl/gmo.h,
+ intl/hash-string.c, intl/hash-string.h, intl/intl-compat.c,
+ intl/intl-exports.c, intl/l10nflist.c, intl/langprefs.c,
+ intl/libgnuintl.h.in, intl/loadinfo.h, intl/loadmsgcat.c,
+ intl/localcharset.c, intl/localcharset.h, intl/locale.alias,
+ intl/localealias.c, intl/localename.c, intl/lock.c, intl/lock.h,
+ intl/log.c, intl/ngettext.c, intl/os2compat.c, intl/os2compat.h,
+ intl/osdep.c, intl/plural-exp.c, intl/plural-exp.h, intl/plural.c,
+ intl/plural.y, intl/printf-args.c, intl/printf-args.h,
+ intl/printf-parse.c, intl/printf-parse.h, intl/printf.c,
+ intl/ref-add.sin, intl/ref-del.sin, intl/relocatable.c,
+ intl/relocatable.h, intl/textdomain.c, intl/vasnprintf.c,
+ intl/vasnprintf.h, intl/vasnwprintf.h, intl/version.c,
+ intl/wprintf-parse.h, intl/xsize.h, m4/codeset.m4, m4/gettext.m4,
+ m4/glibc2.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4,
+ m4/intl.m4, m4/intldir.m4, m4/intmax.m4, m4/inttypes-pri.m4,
+ m4/inttypes_h.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4,
+ m4/lib-prefix.m4, m4/lock.m4, m4/longdouble.m4, m4/longlong.m4,
+ m4/nls.m4, m4/po.m4, m4/printf-posix.m4, m4/progtest.m4,
+ m4/size_max.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4,
+ m4/visibility.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4,
+ po/Makefile.in.in, po/Rules-quot, po/boldquot.sed,
+ po/en@boldquot.header, po/en@quot.header, po/insert-header.sin,
+ po/quot.sed, po/remove-potcdate.sin, tools/config.rpath,
+ tools/depcomp, tools/missing, tools/ylwrap: New files.
+ * .bzrignore: Update.
+
+Sun Oct 14 01:04:41 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Use 'autoreconf -i' rather than reinventing the wheel.
+
+Sun Oct 14 00:53:14 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Oct 14 00:49:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/Rules.man (clean-local): Remove; we don't need to worry about
+ removing empty directories in separated build trees.
+ * man/Makefile.in, man/de.UTF-8/Makefile.in,
+ man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
+ man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate.
+
+Sun Oct 14 00:40:26 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man-db.lsm: Move to ...
+ * docs/man-db.lsm: ... here.
+ * Makefile.am, docs/Makefile.am: Move man-db.lsm reference.
+ * Makefile.in, docs/Makefile.in: Regenerate.
+
+Sun Oct 14 00:33:10 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * README: Remove several restrictions lifted by the conversion to
+ Automake. Remove documentation of how to install native language
+ manual pages, since this is now done unconditionally. Remove
+ documentation of the update target, which no longer exists and
+ should no longer be needed.
+
+ * docs/NEWS: Document conversion to Automake.
+
+Sun Oct 14 00:22:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Convert to Automake. This fixes VPATH builds, fixes a number of bugs
+ in areas such as dependency generation, provides new features such
+ as 'make distcheck', moves complexity into autogenerated code, and
+ prepares the way for using Gnulib more effectively.
+
+ * makefile.in, include/Defines.in: Remove.
+ * GNUmakefile.in, lib/Makefile.in, libdb/Makefile.in,
+ man/Makefile.in, manual/Makefile.in, src/Makefile.in: Translate to
+ Automake and move to ...
+ * Makefile.am, lib/Makefile.am, libdb/Makefile.am, man/Makefile.am,
+ manual/Makefile.am, src/Makefile.am: ... here.
+ * docs/Makefile.am, tools/Makefile.am: Build these directories
+ separately.
+ * man/Rules.man, man/de.UTF-8/Makefile.am, man/es.UTF-8/Makefile.am,
+ man/fr.UTF-8/Makefile.am, man/it.UTF-8/Makefile.am,
+ man/ja.UTF-8/Makefile.am: Build manual pages recursively, as it
+ makes VPATH builds easier.
+ * Makefile.in, docs/Makefile.in, lib/Makefile.in, libdb/Makefile.in,
+ man/Makefile.in, man/de.UTF-8/Makefile.in,
+ man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
+ man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in,
+ manual/Makefile.in, src/Makefile.in, tools/Makefile.in: Add
+ generated files.
+ * README: Remove mention of include/Defines.
+ * autogen.sh: Call automake-1.10 --add-missing --copy.
+ * m4/man-trans-subst.m4: New macro.
+ * configure.ac: Various changes for Automake. AC_SUBST man_owner,
+ and set man_mode rather than man_install_flags. Set
+ config_file_dirname. Calculate transformed versions of program
+ names (using MAN_TRANS_SUBST) here for use in Automake variables.
+ * docs/HACKING (Directory layout): Mention automake.
+
+ Arrange that each file only needs to be built once.
+
+ * src/globbing.c: Split main program out to ...
+ * src/globbing_test.c: ... here.
+ * src/lexgrog.l: Split main program out to ...
+ * src/lexgrog_test.c: ... here.
+ * po/POTFILES.in: Add src/globbing_test.c and src/lexgrog_test.c.
+ * src/whatis.c (args, long_options): Include -a/--and
+ unconditionally.
+ (usage): Replace with a wrapper selecting between ...
+ (apropos_usage, whatis_usage): ... these.
+ (apropos, whatis): Rename to ...
+ (do_apropos, do_whatis): ... these, respectively.
+ (use_grep, do_whatis, parse_name, match, do_apropos, search,
+ main): Use run-time conditionals rather than compile-time
+ conditionals.
+ (main): Detect whether we are being invoked as "apropos" or
+ "whatis" and adjust behaviour accordingly.
+ * src/Makefile.am: Adjust for the above. Make apropos a symlink to
+ whatis.
+
+ Make VPATH builds work, and simplify some includes.
+
+ * configure.ac, m4/man-fnmatch.m4: Define FNMATCH_H, GETOPT_H, and
+ GLOB_H to the respective header names if system versions do not
+ exist.
+ * lib/hashtable.h: Remove unnecessary libdb includes.
+ * lib/decompress.h, lib/glob.c, libdb/db_btree.c, libdb/db_delete.c,
+ libdb/db_gdbm.c, libdb/db_lookup.c, libdb/db_ndbm.c,
+ libdb/db_storage.h, libdb/db_store.c, libdb/db_ver.c,
+ src/accessdb.c, src/catman.c, src/check_mandirs.c,
+ src/check_mandirs.h, src/compression.c, src/convert_name.c,
+ src/descriptions.h, src/descriptions_store.c, src/encodings.c,
+ src/fake_security.c, src/filenames.c, src/filenames.h,
+ src/globbing.c, src/lexgrog.l, src/lexgrog.l-2.3.8,
+ src/lexgrog.l-2.4a, src/lexgrog.l.new, src/man.c, src/manconv.c,
+ src/mandb.c, src/manp.c, src/manpath.c, src/security.c,
+ src/straycats.c, src/ult_src.c, src/util.c, src/version.c,
+ src/whatis.c, src/wrapper.c, src/zsoelim.l: Remove lib/ and libdb/
+ prefixes from includes. Include <fnmatch.h>, <getopt.h>, and
+ <glob.h> directly rather than using a forest of #ifdefs, since the
+ copies in lib/ are now not built if a system version exists.
+
+ * .bzrignore: Update.
+
+Sat Oct 13 15:04:06 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/popen.c, m4/man-pclose.m4: Remove; we no longer need popen or
+ pclose.
+ * configure.ac: Remove call to MAN_FUNC_PCLOSE.
+
+Sat Oct 13 11:55:21 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Add --with-sections option to change the default
+ value of SECTION.
+ * src/man_db.conf.in: Use its output.
+ * docs/NEWS: Document this.
+
+Fri Oct 12 12:22:52 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.5.1.
+
+Fri Oct 12 11:57:50 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): If we need to try the next encoding in
+ the list, make sure to do that before writing the output buffer.
+
+Fri Oct 12 10:21:07 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (use_grep): Add trailing newline to debugging output.
+
+Fri Oct 12 01:47:49 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manconv.c (try_iconv): Improve debugging output slightly.
+
+Fri Oct 12 01:43:25 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display_and_save, format_display,
+ display_catman): Only discard stderr from formatting processes if
+ stdout is a terminal.
+
+Fri Oct 12 01:32:52 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (device_table): groff's ascii device only supports
+ ASCII input, not ISO-8859-1.
+ (compatible_encodings): If the output is ASCII, this is probably
+ because the caller explicitly asked for it, so allow recoding to
+ it unconditionally.
+
+Fri Oct 12 00:48:42 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (main): locale is a constant pointer; free
+ internal_locale instead (Debian bug #446302).
+
+Thu Oct 11 01:40:51 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): Free format_cmd on two more early return
+ paths.
+
+Thu Oct 11 00:53:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): I don't think it's possible for decomp to be
+ NULL on the display_to_stdout path, but better safe than sorry.
+
+Thu Oct 11 00:38:56 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): Connect up the decompression pipeline in the
+ display_to_stdout case too (Debian bug #446189).
+ (checked_system): Remove, no longer used.
+
+Thu Oct 11 00:21:49 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Perform input encoding conversion
+ for troff output as well as nroff output.
+
+Wed Oct 10 09:39:53 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (DATABASE CACHES): Fix "occured" typo (thanks,
+ Alfie Costa; Debian bug #446044).
+
+Mon Oct 8 02:24:19 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/popen.c (popen), src/descriptions.c (parse_descriptions),
+ src/man.c (add_candidate), src/manp.c (add_dir_to_path_list): Use
+ xmalloc instead of malloc.
+ * lib/pipeline.c (get_block): Use xrealloc instead of realloc.
+
+Mon Oct 8 02:15:47 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING: Minor release process adjustment now that we're no
+ longer using CVS.
+
+Mon Oct 8 02:13:15 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * README: Building the manual requires running ./configure now.
+
+Mon Oct 8 02:09:55 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ The strappend function is in the namespace reserved by C99
+ 7.26.10/7.26.11; rename it to appendstr.
+
+ * lib/strappend.c: Rename to ...
+ * lib/appendstr.c: ... this. Rename function.
+ * lib/Makefile.in (ALLSRCS, ALL): Build appendstr instead of
+ strappend.
+ * lib/README: Update credit.
+ * include/manconfig.h.in: Update prototype.
+ * lib/decompress.c, lib/pathsearch.c, lib/pipeline.c,
+ lib/tempfile.c, libdb/db_delete.c, src/accessdb.c, src/catman.c,
+ src/check_mandirs.c, src/compression.c, src/convert_name.c,
+ src/encodings.c, src/filenames.c, src/globbing.c,
+ src/lexgrog.l.new, src/man.c, src/manconv.c, src/mandb.c,
+ src/manp.c, src/straycats.c, src/ult_src.c, src/util.c,
+ src/whatis.c, src/zsoelim.l: Update all callers.
+ * docs/HACKING: Update reference.
+ * docs/TODO: Remove item for this.
+
+Mon Oct 8 01:21:10 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (_man): Ship po4a files.
+ (dist): Create the necessary directories.
+
+Mon Oct 8 01:16:07 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Build the manual automatically. This avoids problems trying to do a
+ distclean (distclean at the top level runs ./config.status --recheck
+ and regenerates manual/Makefile, but manual/Makefile requires
+ include/Defines to exist, so there is no way to distclean both the
+ top level and manual/).
+
+ * GNUmakefile.in (EVERYTHING, ALL): Add manual.
+ (_subdirs): Remove manual, now included in $(EVERYTHING).
+
+Sun Oct 7 17:05:54 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.0.
+ * configure.ac, docs/NEWS, man-db.lsm: Update.
+
+Sun Oct 7 17:01:47 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (ja_name): Add another possible translation.
+
+Sun Oct 7 15:19:15 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/Makefile.in (distclean): Remove Makefile.
+
+Sun Oct 7 14:28:27 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * po/man-db.pot, po/*.po: Update.
+
+Sun Oct 7 14:24:31 BST 2007 Ming Hua <minghua-guest@users.alioth.debian.org>
+
+ * po/zh_CN.po: New translation.
+ * po/LINGUAS: Add zh_CN.
+ * man/THANKS: Add translator credit.
+
+Wed Sep 26 17:57:44 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/util.c (escape_shell): '=' is conceivably a shell
+ metacharacter if used in the first word of a command (although I
+ can't see anywhere in man-db where this might actually happen,
+ barring very unlikely settings of $BROWSER).
+
+Wed Sep 26 17:51:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (look_for_file): Don't escape the hierarchy path;
+ it isn't necessary and it causes problems for paths containing
+ metacharacters (Debian bug #444187).
+ * src/globbing.h (look_for_file): Update prototype.
+
+Tue Sep 18 11:29:26 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/po4a/po4a.cfg: Add po4a mechanism for manual page translation,
+ as the Simplified Chinese translator would like to use this.
+ * man/po4a/po/man-db.pot: Add generated file.
+
+ * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1,
+ man/man1/manconv.man1, man/man1/manpath.man1,
+ man/man1/whatis.man1, man/man1/zsoelim.man1,
+ man/man5/manpath.man5, man/man8/accessdb.man8,
+ man/man8/catman.man8, man/man8/mandb.man8: Some strings should not
+ be translated. Use the ".if !'po4a'hide'" idiom to mark them.
+ * man/man1/man.man1 (OVERVIEW): Adjust some spacing.
+
+Tue Sep 18 08:59:55 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Switch Simplified Chinese to
+ GBK by default. Ming Hua points out that GBK is a superset of
+ EUC-CN, and indeed all Simplified Chinese manual pages I can find
+ can be recoded from GBK without hassle. I'm less certain about
+ changing the output encoding, but for CJK encodings it's best for
+ these to be the same at the moment.
+
+Mon Sep 17 16:13:37 BST 2007 Daniel Nylander <po@danielnylander.se>
+
+ * po/sv.po: Update from Translation Project.
+
+Mon Sep 17 14:27:15 BST 2007 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon Sep 17 00:34:17 UTC 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (ja_name): Oops; make the first translation keep
+ working!
+
+Mon Sep 17 00:26:27 UTC 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (ja_name): Add another possible translation.
+
+Mon Sep 17 00:11:38 UTC 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Break after execvp, otherwise we
+ segfault if execvp fails.
+
+Sun Sep 16 23:15:27 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.0-pre2.
+ * man-db.lsm (Keywords): Add manconv.
+
+Sun Sep 16 20:41:36 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (__distclean): Remove config.status.lineno.
+ * .bzrignore: Ignore ./config.status.lineno.
+
+Sun Sep 16 20:38:32 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.in: Deal more neatly with manual pages without
+ complete sets of translations.
+
+Sun Sep 16 20:25:24 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add more intelligent guessing of manual page encodings. Thanks to
+ Adam Borowski for discussion leading to this.
+
+ * src/manconv.c: New program.
+ * man/man1/manconv.man1: Document it.
+ * .bzrignore: Ignore src/manconv.
+ * include/Defines.in (manconv): Add.
+ * man/Makefile.in (manconv, thmanconv, manconv.1): Add.
+ (process_manpage): Add manconv and thmanconv.
+ (allmanpages): Add ./man1/manconv.1.
+ (nlsinstall): Install manconv.1.
+ (nlsuninstall): Uninstall manconv.1.
+ * src/Makefile.in (PRIVTOOLS, all): Add manconv.
+ * po/POTFILES.in: Add src/manconv.c.
+ * po/man-db.pot, po/*.po: Update.
+
+ * src/man.c (PP_COOKIE): Move to ...
+ * include/manconfig.h.in (PP_COOKIE): ... here.
+
+ * src/encodings.c (add_manconv): New function to use manconv instead
+ of iconv where appropriate.
+ * src/encodings.h (add_manconv): Add prototype.
+ * src/lexgrog.l (find_name): Use it.
+ * src/man.c (make_roff_command): Use it. Remove coding: preprocessor
+ string handling, as manconv deals with that now.
+ * src/straycats.c (check_for_stray): Use it.
+ * src/Makefile.in (DEFS_encodings.o): Add, defining location of
+ manconv.
+
+ * docs/NEWS: Document this.
+
+Sun Sep 16 12:41:05 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (main), src/globbing.c (main), src/lexgrog.l (main),
+ src/man.c (man_getopt), src/mandb.c (main), src/manpath.c (main),
+ src/whatis.c (main), src/zsoelim.l (main): Pass NULL as the fifth
+ argument to getopt_long rather than requiring an unused variable.
+
+Tue Sep 11 13:49:33 BST 2007 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon Sep 10 10:29:40 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/TODO: Miscellaneous updates.
+
+Mon Sep 10 10:26:57 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.61.
+
+Mon Sep 10 10:20:23 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/misc.me (NLS message catalogues): Update Translation
+ Project URL.
+
+Mon Sep 10 10:17:43 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/Makefile: Rename to ...
+ * manual/Makefile.in: ... this. Write out a version file with the
+ current version of man-db.
+ * manual/man_db.me: Use the automatically-generated version file
+ rather than hardcoding the version. Set the manual version to
+ simply the version of man-db.
+ * configure.ac (AC_CONFIG_FILES): Add manual/Makefile.
+ * GNUmakefile.in (_manual): Distribute manual/Makefile.in rather
+ than manual/Makefile.
+ * .bzrignore: Update.
+
+Mon Sep 10 09:17:17 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.5.0-pre1. I mistakenly used version 2.4.5-pre1 earlier.
+
+Mon Sep 10 09:11:05 BST 2007 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Mon Sep 10 00:15:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.16.1.
+ * .bzrignore: Update ignores.
+
+Sun Sep 9 23:49:37 BST 2007 Daniel Nylander <po@danielnylander.se>
+
+ * po/sv.po: Update from Translation Project.
+
+Sun Sep 9 22:50:22 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/format.me (Format scripts): Adjust for renaming of
+ tools/mandb_[nt]fmt-script to tools/mandb_fmt-script.
+
+Sun Sep 9 21:03:25 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/comp.me (Compressed manual pages): Using compressed manual
+ pages is perfectly reasonable these days; stop recommending
+ against it.
+
+Sun Sep 9 20:57:16 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/files.me (Displaying latin1 characters on a Linux virtual
+ terminal): Rename to ...
+ (Displaying non-ASCII characters on a Linux virtual terminal): ...
+ this. Mention console-tools as an alternative to kbd. Remove
+ detailed advice on configuring kbd as it is now woefully out of
+ date. Recommend the UTF-8 encoding again.
+
+Sun Sep 9 20:49:59 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/files.me (NLS manual pages): Update for new per-locale
+ directory handling. Recommend UTF-8 encoding.
+
+Sun Sep 9 19:39:36 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * manual/intro.me (The manual page system): Refer to /usr/share/man
+ rather than /usr/man.
+ * manual/sec.me (Package specific manual page sections): Likewise.
+ * manual/files.me (Manual page hierarchies, Other OS's manual pages,
+ NLS manual pages): Likewise.
+ * manual/leader.me: Update copyright years.
+
+Sun Sep 9 19:24:56 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Reorder, roughly by importance.
+
+Sun Sep 9 09:01:30 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (_root): Add autogen.sh to the distribution; it's
+ useful if you need to change autotools input files.
+
+Sun Sep 9 08:37:04 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.5-pre1 (for translators).
+ * po/man-db.pot, po/*.po: Update.
+
+Mon Sep 3 14:34:06 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_nls_manpath): Handle the POSIX locale the same way
+ as C.
+
+Mon Sep 3 13:48:13 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/whatis.man1 (OPTIONS): Refer to whatis rather than
+ apropos in description of --manpath.
+
+Mon Sep 3 13:45:30 BST 2007 Nicolas François <nicolas.francois@centraliens.net>
+
+ * man/man1/apropos.man1 (ENVIRONMENT): Remove stray space in
+ description of POSIXLY_CORRECT. Patch from Debian bug #281811.
+
+Mon Sep 3 13:26:19 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Bulgarian -> CP1251 and
+ Vietnamese -> TCVN5712-1.
+ * src/lexgrog.l (bg_name, vi_name): Add.
+
+Mon Sep 3 12:15:55 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (test_manfile): Fix comment typos and
+ formatting.
+
+Mon Sep 3 12:01:36 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * .bzrignore: Update for manual directory renaming.
+ * GNUmakefile.in (nls_man): Likewise.
+
+Mon Sep 3 11:56:58 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/de_DE.88591, man/es_ES.88591, man/fr_FR.88591,
+ man/it_IT.88591, man/ja_JP.eucJP: Rename to ...
+ * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8,
+ man/ja.UTF-8: ... these. Recode all contents to UTF-8.
+ * man/Makefile.in (NLS): Adjust directory search.
+ * man/THANKS: Update credits.
+
+Mon Sep 3 11:38:11 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Create and use databases for non-English manual hierarchies (Debian
+ bug #29448). Extensive changes elsewhere to support this by means of
+ better UTF-8 handling and knowledge of more languages.
+
+ * src/check_mandirs.c (make_database_directory): New function.
+ (create_db, update_db): Use it.
+ (purge_missing): Check that the database exists before starting.
+ * src/mandb.c (process_manpath): New function, split out from main.
+ Make the single_filename check aware that the file might be in a
+ per-locale subdirectory that we aren't processing right now.
+ (main): Use it. Move man_owner, purged, and strays to file scope.
+ Build databases for all per-locale subdirectories.
+ * src/straycats.c (straycats): Constify manpath argument.
+ * src/whatis.c (main): Sync locale handling with src/man.c, in order
+ to look up per-locale databases correctly. Based on a patch by
+ Nicolas François (Debian bug #281811).
+ * include/manconfig.h.in (straycats): Update prototype.
+
+ * src/man.c (duplicate_candidates): New function to determine
+ whether candidates are substantially duplicated, and if so in
+ which direction. The logic is better than before: it now knows how
+ to compare locales and pick the best available candidate for each
+ language, and prefers UTF-8 candidates if everything else is
+ equal.
+ (add_candidate): Move duplication logic to duplicate_candidates.
+ Adjust insertion handling so that we can drop old candidates in
+ favour of new candidates.
+ * src/manp.c (check_and_give): Remove.
+ (unpack_locale_bits): New function, inspired by _nl_explode_name
+ in libintl.
+ (free_locale_bits): New function.
+ (add_nls_manpath): Instead of trying individual directories (which
+ doesn't work so well with character set aliasing), iterate over
+ all subdirectories of each manpath entry and add all those
+ matching the current locale's language and (if specified)
+ territory. This now includes ll.CODESET as well as more
+ conventional locale names.
+ * src/manp.h: Declare 'struct locale_bits'. Prototype
+ unpack_locale_bits and free_locale_bits.
+
+ * src/man.c (lang_dir): Move to ...
+ * src/util.c (lang_dir): ... here.
+ * src/lexgrog.l (long_options, args, main): New -E/--encoding
+ option.
+ (usage): Document it.
+ (cs_name, hu_name, ja_name, ru_name): Recode to UTF-8.
+ (find_name): Add encoding argument. Guess the page's encoding from
+ its filesystem location (or use encoding if supplied), and add an
+ iconv command to recode it to UTF-8.
+ * man/man1/lexgrog.man1 (SYNOPSIS, OPTIONS): Document --encoding.
+ * src/straycats.c (check_for_stray): Guess the page's encoding from
+ its filesystem location, and add an iconv command to recode it to
+ UTF-8.
+ * src/whatis.c (simple_convert): New function to simplify iconv
+ handling.
+ (display): Convert output from UTF-8 to locale charset.
+ (main): Initialise iconv descriptor.
+ * include/manconfig.h.in (find_name): Update prototype.
+ (lang_dir): Add prototype.
+ * configure.ac: Call AM_ICONV.
+ * src/Makefile.in (mandb, lexgrog): Add encodings.o.
+ * src/Makefile.in (whatis, apropos): Add encodings.o and
+ $(LIBICONV).
+
+ * src/encodings.c (directory_table): Add Serbian -> ISO-8859-5.
+ * src/lexgrog.l (cs_name, hu_name): Expand character classes
+ containing non-ASCII characters into the form (a|b|...); flex
+ doesn't understand Unicode well enough to deal with them
+ otherwise.
+ (cs_name, ru_name): Add more possible translations.
+ (ko_name, sk_name, sr_name, tr_name, zh_CN_name, zh_TW_name): Add.
+ (find_name_decompressed): Ignore exit status from decompressor
+ pipeline; iconv may exit non-zero on misencoded pages, but if we
+ manage to extract a whatis from it anyway then it doesn't really
+ matter.
+
+ * src/whatis.c (usage): Document -L/--locale.
+ * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Likewise.
+ * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise.
+
+ * docs/NEWS: Document this.
+
+Sun Sep 2 01:21:11 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add limited character set aliasing support.
+
+ * src/encodings.c (charset_alias_table): New table for common
+ character set aliases.
+ (get_canonical_charset_name): New function to inspect
+ charset_alias_table.
+ (get_page_encoding): Use get_canonical_charset_name. Adjust FHS
+ commentary, since we now support its craziness.
+ (get_standard_output_encoding): Use get_canonical_charset_name.
+ (get_locale_charset): Likewise.
+ * src/encodings.h: Prototype get_canonical_charset_name.
+
+ * src/encodings.c (directory_table): Use EUC-CN rather than GB2312
+ and BIG5HKSCS rather than BIG5-HKSCS (canonical names according to
+ glibc's /usr/lib/gconv/gconv-modules).
+ (charset_table): Likewise.
+ (compatible_encodings): Likewise.
+
+Sun Sep 2 00:49:27 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/decompress.c (decompress_open, decompress_fdopen): Don't start
+ the returned pipeline.
+ * lib/decompress.h (decompress_open, decompress_fdopen): Note that
+ the caller must start the returned pipeline.
+ * src/lexgrog.l (find_name): Start the decompressor pipeline.
+ * src/man.c (display): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+ * src/zsoelim.l (open_file): Likewise.
+ * src/straycats.c (check_for_stray): Append 'col -bx' to the
+ decompressor pipeline rather than connecting two pipelines
+ together. Don't call pipeline_wait by hand as pipeline_free will
+ do this for us now.
+
+Fri Aug 31 14:52:22 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (maybe_update_file): Only recache pages automatically if
+ --update was given.
+
+Fri Aug 31 04:54:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline
+ is still running.
+ * lib/pipeline.h (pipeline_free): Document that this may happen.
+
+Fri Aug 31 04:46:04 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/zsoelim.l (main): Call pipeline_install_sigchld.
+
+Wed Aug 29 17:12:52 BST 2007 Lars Wirzenius <liw@iki.fi>
+
+ * po/fi.po: Adjust translation of "No manual entry for %s" (Debian
+ bug #320108).
+
+Wed Aug 29 15:22:54 BST 2007 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+
+Wed Aug 29 15:18:34 BST 2007 Daniel Nylander <po@danielnylander.se>
+
+ * po/sv.po: Update from Translation Project.
+
+Wed Aug 29 12:07:38 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Reorganise slightly. Document mandb --quiet fixes.
+
+Wed Aug 29 11:57:59 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add an option to apropos to display only items matching all keywords
+ (thanks, Alfie Costa; Debian bug #259340).
+
+ * src/whatis.c (args, long_options, main): New -a/--and option for
+ apropos.
+ (usage): Document it.
+ (apropos): Store a count of how many times each item has been seen
+ in the hashtable. If --and was given, only display an item if its
+ count equals the number of supplied keywords.
+ (main): Store the number of supplied keywords. Adjust hash free
+ function.
+ * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --and.
+ * docs/NEWS: Document this.
+
+Wed Aug 29 11:09:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-path-progs.m4: Rename to ...
+ * m4/man-check-progs.m4: ... this. Use AC_CHECK_PROGS rather than
+ AC_PATH_PROGS.
+ * configure.ac: Use AC_CHECK_PROGS rather than
+ AC_PATH_PROG/AC_PATH_PROGS, and MAN_CHECK_PROGS rather than
+ MAN_PATH_PROGS. This fixes problems due to system utilities moving
+ around on $PATH (Debian bug #385651).
+
+Wed Aug 29 10:42:08 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Move bogus makefile content ...
+ * makefile.in: ... here.
+
+Wed Aug 29 10:15:33 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-path-progs.m4: Define HAVE_WITH-ARG if the program is
+ found.
+ * configure.ac: Rely on the above rather than setting HAVE_GZIP,
+ HAVE_COMPRESS, and HAVE_BZIP2 here.
+
+Wed Aug 29 09:41:51 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Revert inadvertently-committed debugging
+ change to straycats logic.
+
+Wed Aug 29 09:34:50 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Add Indonesian translation of NAME.
+
+Wed Aug 29 09:29:36 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document previous apropos change.
+
+Wed Aug 29 09:26:23 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (apropos): Add output keys to a hashtable, and skip
+ any that have already been seen (Debian bug #259338).
+ (main): Create the hashtable on startup and free it on exit.
+
+Tue Aug 28 19:16:18 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): Wait for the decomp pipeline in the
+ !format_cmd case too.
+
+Tue Aug 28 19:07:53 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display_catman): Take a decompressor pipeline argument.
+ Connect it to format_cmd.
+ (display): Update call to display_catman.
+
+Tue Aug 28 18:38:31 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add a configuration file flag (NOCACHE) to disable cat page caching
+ (thanks, Ralph Corderoy; Debian bug #196642).
+
+ * src/manp.c (add_to_dirlist): Recognise NOCACHE.
+ * src/man.c (display): Don't save a cat page if NOCACHE is set.
+ * src/man_db.conf.in: Document NOCACHE.
+ * man/man5/manpath.man5 (FORMAT): Document NOCACHE.
+ * docs/NEWS: Document this.
+
+Tue Aug 28 17:23:26 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Bump to 2.5.0; I think there's now enough to justify
+ that.
+
+Tue Aug 28 17:19:16 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Implement and use a decompression library. This allows cat pages to
+ be saved in the background (Debian bug #18452) and operation with a
+ read-only /tmp (Debian bug #165499).
+
+ * lib/pipeline.h (struct command): Add support for commands that
+ consist of calling a function rather than executing a process.
+ (struct pipeline): Add want_infile and want_outfile members. Note
+ that infile and outfile default to NULL. Add source, buffer,
+ buflen, bufmax, line_cache, and peek_offset members.
+ (command_new_function, command_dump, command_tostring,
+ pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek,
+ pipeline_peek_size, pipeline_peek_skip, pipeline_readline,
+ pipeline_peekline): New prototypes.
+ (pipeline_join): Update description for want_infile and
+ want_outfile.
+ * lib/pipeline.c (command_new, command_dup, command_arg,
+ command_argv, command_args, command_argstr, command_free): Update
+ for 'struct command' changes.
+ (command_new_function, command_dump, command_tostring): New
+ functions.
+ (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring):
+ Update for 'struct pipeline' changes.
+ (pipeline_dump): Use command_dump.
+ (pipeline_tostring): Use command_tostring.
+ (pipeline_start): Implement want_infile, want_outfile, and
+ function commands. Make zero-command case work properly (read
+ directly from input file). Flush all pending stdio output so that
+ subprocesses don't inherit it.
+ (pipeline_connect, pipeline_pump, get_block, pipeline_read,
+ pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line,
+ pipeline_readline, pipeline_peekline): New functions.
+
+ * lib/decompress.c, lib/decompress.h: New files, implementing a
+ decompression abstraction layer.
+ * lib/Makefile.in: Always compile decompress.c.
+
+ * src/lexgrog.l (YY_INPUT): Define to read from a 'struct pipeline'.
+ (find_name): Use decompress_open/decompress_fdopen rather than
+ older decompression methods. Split handling once we have a
+ decompressor pipeline out to ...
+ (find_name_decompressed): ... here.
+ * src/check_mandirs.c (test_manfile): Remove decompression code;
+ find_name will handle this itself now.
+ * src/compression.c (create_ztemp, decompress, remove_ztemp,
+ get_ztemp): Remove.
+ * src/man.c (checked_popen): Remove.
+ (local_man_loop): Remove decompression code.
+ (get_preprocessors_from_file): Convert to peeking the first line
+ from a pipeline.
+ (get_preprocessors): Adjust arguments and
+ get_preprocessors_from_file call.
+ (remove_stdintmp, create_stdintmp): Remove.
+ (make_roff_command): Remove special handling of stdin, now handled
+ by peeking a pipeline.
+ (open_cat_stream): Don't start the returned pipeline.
+ (close_cat_stream): Remove unnecessary COMP_CAT special case.
+ (format_display_and_save): Take a decompressor pipeline argument.
+ Simplify by using pipeline_connect and pipeline_pump.
+ (format_display): Take a decompressor pipeline argument. Use
+ pipeline_connect and pipeline_pump.
+ (display): Use decompress_open/decompress_fdopen rather than older
+ decompression methods.
+ (display_filesystem, display_database): Drop remove_ztemp calls.
+ * src/straycats.c (check_for_stray): Use decompression layer.
+ Rearrange control flow a bit to reduce duplication. Remove use of
+ temporary file; use find_name_decompressed instead. Only increment
+ strays if find_name_decompressed succeeds.
+ (straycats): Remove temporary file creation.
+ * src/ult_src.c (ult_src): Use pipeline and decompression layers
+ rather than older decompression methods.
+ * src/zsoelim.l (YY_INPUT): Define to read from a 'struct pipeline'.
+ (<so>\"?[^ \t\n\"]+\"?): Call open_file only once; let it worry
+ about compression extensions. Decrement so_stack_ptr here if
+ open_file fails rather than having it do it.
+ (<lfname>\"?[^ \t\n\"]+\"?): Free the old value of NAME, if set.
+ (<<EOF>>): Clean up used pipeline and free NAME. Remove so_delete
+ handling.
+ (main): Let open_file handle stdin.
+ (open_file): Use decompress_open/decompress_fdopen rather than
+ older decompression methods. Don't decrement so_stack_ptr here on
+ failure.
+
+ * configure.ac: Remove decompressor variable. Check for gzopen in
+ libz.
+ * include/manconfig.h.in (DECOMPRESSOR): Remove.
+ (comp_list): Declare extern here.
+ (create_tempfile): Remove.
+ (decompress, remove_ztemp, get_ztemp): Remove.
+ (find_name_decompressed): Add prototype.
+ * lib/tempfile.c (create_tempfile): Remove. We now only need
+ temporary directory creation.
+ * src/man_db.conf.in (decompressor): Remove.
+
+ * docs/TODO: Update.
+ * docs/NEWS: Document this.
+
+Tue Aug 28 11:14:53 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * tools/mandb_[nt]fmt-script: Rename to tools/mandb_fmt-script,
+ which is a rather less hostile filename.
+ * tools/README: Update.
+ * GNUmakefile.in: Update.
+
+Tue Aug 28 10:36:20 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (check_for_stray): Drop privileges while opening
+ temporary file (previously created with dropped privileges).
+
+Tue Aug 28 10:31:03 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (straycats): Regain privileges on the error path
+ too.
+
+Mon Aug 27 20:13:09 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (comp_file): Free compfile if returning NULL.
+
+Mon Aug 27 20:02:17 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they
+ terminate a subprocess.
+
+Mon Aug 27 19:58:19 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the
+ pipeline's output.
+
+Sun Aug 26 23:33:23 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): Check whether format_cmd is NULL
+ before discarding stderr from it.
+
+Sun Aug 26 21:20:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (checked_popen): Remove unnecessary SECURE_MAN_UID
+ guard; drop_effective_privs/regain_effective_privs already check
+ this.
+ * src/security.c (remove_with_dropped_privs): Likewise. The uid !=
+ ruid check is no longer necessary now that
+ drop_effective_privs/regain_effective_privs handle nesting
+ correctly.
+
+Sun Aug 26 19:40:12 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): If MAN_KEEP_FORMATTING is set in
+ the environment, don't strip formatting characters with col
+ (Debian bug #340673).
+ * man/man1/man.man1 (ENVIRONMENT): Document MAN_KEEP_FORMATTING.
+ * docs/NEWS: Document this.
+
+Sun Aug 26 16:40:50 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Suppress warnings in --quiet mode (thanks, Martin Dorey; Debian bugs
+ #348008, #378428, and #411220).
+
+ * src/check_mandirs.c (test_manfile): Suppress "bad symlink" warning
+ under --quiet.
+ * src/ult_src.c (ult_hardlink): Suppress "can't search directory"
+ warning under --quiet.
+ (ult_softlink): Suppress "dangling symlinks" and "can't resolve"
+ warnings under --quiet.
+ (ult_src): Suppress "can't resolve", "is self referencing", and
+ "can't open" warnings under --quiet.
+ * src/lexgrog.l: Declare global quiet variable.
+
+Sun Aug 26 16:10:26 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (main): Skip descriptions with NULL name or whatis.
+ This causes pages with no description to be flagged as parse
+ failures, so that automatic scanners can pick them up more easily.
+
+Sun Aug 26 15:08:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (is_section): Disallow sectional extensions of
+ alphabetic sections, e.g. n and l from the default configuration
+ (Debian bug #391977). Also disallow sectional extensions beginning
+ with a digit (Debian bug #421481).
+
+Mon Aug 20 00:10:49 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Discard stderr from formatting processes when outputting to a pager,
+ to avoid visual corruption from any error messages (thanks, Vincent
+ Lefevre; Debian bug #372939).
+
+ * lib/pipeline.h (struct command): Add discard_err member.
+ * lib/pipeline.c (command_new, command_dup): Initialise discard_err.
+ (pipeline_start): Redirect the child's stderr to /dev/null if
+ discard_err is set.
+ * src/man.c (discard_stderr): New function to set discard_err on all
+ commands in a pipeline.
+ (format_display_and_save, format_display): Use it on format_cmd.
+ * docs/NEWS: Document this.
+
+Sun Aug 19 21:04:24 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions.c (parse_descriptions): Skip name tokens
+ containing whitespace, as they are almost never useful as manual
+ page names.
+ * man/man1/lexgrog.1 (WHATIS PARSING), docs/NEWS: Document this.
+
+Sun Aug 19 21:00:20 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Skip over .ft font change requests, and the .Vb and
+ .Ve definitions used by pod2man to begin and end verbatim mode.
+ This handles some POD-generated pages better.
+
+Sun Aug 19 20:48:42 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Truncate apropos/whatis output to the terminal width by default
+ (thanks, Dan Jacobson; Debian bug #411721).
+
+ * lib/linelength.c: New file for terminal line length detection,
+ split out from src/man.c. Unlike the previous implementation, this
+ does its own memoisation rather than requiring explicit
+ initialisation.
+ * lib/linelength.h: Prototype get_line_length.
+ * lib/Makefile.in: Always compile linelength.c.
+ * src/man.c (line_length, store_line_length): Remove.
+ (get_roff_line_length): Use get_line_length.
+ (main): We no longer need to call store_line_length.
+ * src/whatis.c (args, long_options, main): New -l/--long option.
+ (usage): Document it.
+ (display): Truncate names and descriptions to fit within the
+ terminal width.
+ * man/man1/apropos.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Document
+ --long and the MANWIDTH override.
+ * man/man1/whatis.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Likewise.
+ * docs/NEWS: Document this.
+
+Tue Jun 26 10:48:45 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/de_DE.88591/man1/man.man1 (UMGEBUNG),
+ man/de_DE.88591/man8/catman.man8 (BESCHREIBUNG): MANSEC -> MANSECT
+ (thanks, Holger Kubiak; Debian bug #430635).
+
+Mon Jun 18 10:19:22 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/cleanup.c (do_cleanups): Split out signal-safe processing ...
+ (do_cleanups_sigsafe): ... here.
+ (sighandler): Call do_cleanups_sigsafe rather than do_cleanups.
+ (push_cleanup): Add sigsafe argument to allow cleanup functions to
+ be flagged as non-signal-safe (e.g. freeing memory).
+ * lib/cleanup.h: Update prototypes.
+ * libdb/db_gdbm.c (man_gdbm_firstkey): hash_free cleanup is not
+ signal-safe.
+ * src/globbing.c (update_directory_cache): hash_free cleanup is not
+ signal-safe.
+ (look_for_file): globfree cleanup is not signal-safe.
+ * src/man.c (open_cat_stream, display_catman): unlink cleanup is
+ signal-safe.
+ * src/mandb.c (cleanup): Split out signal-safe processing ...
+ (cleanup_sigsafe): ... here.
+ (main): Call cleanup_sigsafe as well as cleanup.
+ * src/manp.c (read_config_file): free_config_file cleanup is not
+ signal-safe.
+
+Mon Jun 18 08:03:30 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/xstrsignal.c: Include config.h.
+
+Mon Jun 18 07:50:56 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c (btree_close, btree_flopen, btree_replace,
+ btree_insert, btree_fetch, btree_exists, btree_findkey,
+ btree_firstkey, btree_nextkey, btree_nextkeydata): Rename dbf to
+ db to avoid shadowing a global variable.
+ * libdb/mydbm.h: Update prototypes and btree macros likewise.
+
+Sat May 26 10:58:11 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (gripe_no_name): On reflection, borrowing the error
+ message from gripe_no_man is clearer if a possible section name
+ was specified.
+ * po/man-db.pot, po/*.po: Update.
+
+Sat May 26 10:53:58 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * po/man-db.pot: Add to revision control.
+
+Sat May 26 10:52:01 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (gripe_no_name): Resolve ambiguous error message when
+ asking for a nonexistent manual page that might also be a section
+ name (Debian bug #421481).
+ * po/*.po: Update.
+
+Sat May 26 10:46:56 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (gripe_no_name): Complete renaming of section to sect.
+
+Fri May 25 21:23:05 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add (untested) zh_HK support. Thanks to Alex Lau for advice.
+
+ * src/encodings.c (directory_table): Add zh_HK, defaulting to the
+ BIG5-HKSCS encoding.
+ (charset_table): Add BIG5-HKSCS, defaulting to the nippon driver.
+ (compatible_encodings): Recognise BIG5-HKSCS encoding.
+ (get_roff_encoding): Add special case for zh_HK.UTF-8 locale.
+
+Wed Apr 11 04:37:35 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ Add MANPAGER support. Thanks to Faidon Liambotis for the suggestion.
+
+ * src/man.c (main): Support MANPAGER, overriding PAGER.
+ * man/man1/man.man1 (OPTIONS, ENVIRONMENT): Document MANPAGER.
+ * docs/NEWS: Document this.
+
+Thu Apr 5 18:00:00 BST 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Break whatis definitions at .IP, .HP, .RS, and .RE
+ (thanks to Ori Avtalion for the report).
+
+Mon Mar 5 10:02:01 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man_db.conf.in (MANDATORY_MANPATH): Remove /usr/X11R6/man
+ (Debian bug #413349).
+
+Sun Mar 4 10:40:49 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_gdbm.c (gdbm_exists): Rename dbf to file.
+
+Sun Mar 4 10:39:14 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (dbstore): Rename basename to base.
+
+Sun Mar 4 00:51:30 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Eliminate variable and function shadowing.
+
+ * configure.ac (CFLAGS): Add -Wshadow if the compiler is GCC.
+
+ * src/manp.c: Don't declare manpathlist here, as it's never used in
+ this file.
+ * src/catman.c, src/man.c, src/mandb.c, src/whatis.c: Declare it
+ here instead.
+
+ * lib/pipeline.c (pipeline_start): Remove duplicate declarations of
+ set and oset.
+ * libdb/db_ver.c (dbver): Merge into ...
+ (dbver_rd): ... this, eliminating a global variable.
+ (dbver_rd, dbver_wr): Rename dbf to dbfile.
+ * src/accessdb.c (main): Don't redeclare dbf locally.
+ * src/check_mandirs.c (gripe_rwopen_failed): Use global database
+ rather than passing it as an argument. Update all callers.
+ * src/man.c (gripe_no_name): Rename section to sect.
+ (add_roff_line_length): Rename save_cat to save_cat_p.
+ (make_roff_command): Declare cmd only once.
+ (make_browser): Rename command to pattern.
+ (display): Rename pause to prompt.
+ * src/manp.c (get_manpath): Rename to ...
+ (get_manpath_from_path): ... this. Update all callers.
+ (manpath): Rename to ...
+ (get_manpath): ... this. Update all callers.
+ (add_system_manpath): Rename system to one_system.
+ * src/manp.h (manpath): Rename to ...
+ (get_manpath): ... this.
+ * src/ult_src.c (ult_hardlink): Rename link to base.
+ (ult_src): Rename basename to base.
+ * src/whatis.c (apropos): Rename match to got_match.
+ (search): Return found rather than setting the global variable
+ status based on it.
+ (main): Use search's return value, eliminating a global variable.
+ * src/zsoelim.l (usage): Rename status to exit_status.
+ (open_file): Rename decompress to decomp.
+
+Sat Mar 3 22:35:31 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c: Declare tmplist as static.
+
+Wed Feb 28 22:04:04 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Close inputs and outputs from
+ other active pipelines in all subprocesses.
+
+Wed Feb 28 21:57:24 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in
+ subprocesses; this has undesirable consequences in some
+ situations.
+ (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead.
+
+Tue Feb 27 20:58:31 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT
+ such that it gets restored as SIGQUIT, not as SIGINT.
+
+Wed Feb 14 12:20:28 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * m4/man-path-progs.m4: New file with MAN_PATH_PROGS macro.
+ * configure.ac: Use MAN_PATH_PROGS where reasonable (browser, pager,
+ nroff, eqn, neqn, tbl, col, vgrind, refer, grap, pic, gzip,
+ compress, bzip2) to allow overriding the default search for
+ auxiliary program locations.
+ * docs/NEWS: Document this.
+
+Wed Feb 14 10:41:28 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4: Remove and split into ...
+ * m4/man-ansi-sprintf.m4, m4/man-bdb.m4, m4/man-fnmatch.m4,
+ m4/man-gnu-nroff.m4, m4/man-pclose.m4, m4/man-strsignal.m4: ...
+ these new files.
+ * configure.ac (AC_CONFIG_SRCDIR): Use src/man.c rather than
+ acinclude.m4.
+
+Wed Feb 14 10:32:28 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (make_content): Restore (size_t) cast in
+ assertion.
+
+Wed Feb 14 10:30:52 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_gdbm.c (man_gdbm_nextkey): Fix MYDBM_DPTR vs. MYDBM_DSIZE
+ typo.
+
+Wed Feb 14 09:52:15 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c (test_insert): Use debug function.
+
+ * libdb/mydbm.h (GDBM, NDBM, BTREE): Add MYDBM_DPTR, MYDBM_SET_DPTR,
+ and MYDBM_DSIZE accessor macros.
+ (BTREE): Make datum be a typedef for DBT rather than our own
+ struct, fixing "dereferencing type-punned pointer will break
+ strict-aliasing rules" warnings from GCC. Adjust MYDBM_DELETE
+ definition accordingly.
+ * libdb/db_btree.c (test_insert, btree_findkey, dbstore, dblookup):
+ Use MYDBM_DPTR, MYDBM_SET_DPTR, and MYDBM_DSIZE macros instead of
+ accessing dptr and dsize members directly.
+ * libdb/db_delete.c (dbdelete): Likewise.
+ * libdb/db_gdbm.c (parent_sortkey_hash_free, sortkey_compare,
+ man_gdbm_firstkey, man_gdbm_nextkey, gdbm_exists): Likewise.
+ * libdb/db_lookup.c (copy_datum, make_multi_key, make_content,
+ dblookup): Likewise.
+ * libdb/db_store.c (replace_if_necessary, dbstore): Likewise.
+ * libdb/db_ver.c (dbver, dbver_wr, dbver_rd): Likewise.
+ * src/accessdb.c (main): Likewise.
+ * src/catman.c (add_arg, parse_for_sec): Likewise.
+ * src/check_mandirs.c (update_db_time, reset_db_time, update_db,
+ purge_pointers, purge_missing): Likewise.
+ * src/whatis.c (apropos): Likewise.
+
+ * libdb/db_btree.c (btree_fetch, btree_findkey, dbstore, dblookup):
+ Make sure that datum structures allocated on the stack are zeroed
+ properly.
+ * libdb/db_delete.c (dbdelete): Likewise.
+ * libdb/db_lookup.c (make_multi_key, make_content, dblookup):
+ Likewise.
+ * libdb/db_store.c (dbstore): Likewise.
+ * libdb/db_ver.c (dbver, dbver_wr): Likewise.
+ * src/check_mandirs.c (update_db_time, reset_db_time, update_db):
+ Likewise.
+
+Tue Feb 13 11:02:08 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * zsoelim/README: Rename to ...
+ * src/README.zsoelim: ... this.
+ * zsoelim/zsoelim.l: Rename to ...
+ * src/zsoelim.l: ... this.
+ * zsoelim/Makefile.in: Remove.
+ * src/Makefile.in: Build, install, and clean zsoelim.
+ * GNUmakefile.in: Remove references to zsoelim directory. Distribute
+ src/README.zsoelim.
+ * configure.ac: Stop producing zsoelim/Makefile.
+ * docs/HACKING: Remove description of zsoelim directory.
+ * .bzrignore: Update ignores.
+
+Tue Feb 13 10:52:33 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * zsoelim/zsoelim.l (yywrap): Remove; use %option noyywrap instead.
+ * zsoelim/Makefile.in (LDLIBS): zsoelim doesn't need to be linked
+ with LEXLIB any more.
+
+Mon Feb 12 18:06:42 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in (LFLAGS), zsoelim/Makefile.in (LFLAGS),
+ zsoelim/zsoelim.l: Set options using %option rather than using
+ command-line options.
+
+Mon Feb 12 17:52:11 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
+ po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
+ po/ru.po, po/sv.po, po/vi.po: Update.
+
+Mon Feb 12 17:44:48 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/debug.c: New file for debugging functions.
+ * include/manconfig.h.in: debug -> debug_level; prototype debug and
+ debug_error.
+ * lib/Makefile.in (ALL): Add debug.o.
+ * Update all emissions of debugging messages to use the new
+ functions where possible; otherwise, debug -> debug_level.
+
+Mon Feb 12 13:00:42 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Change "No databases updated" to "No databases
+ created" now that we're no longer string-frozen.
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
+ po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
+ po/ru.po, po/sv.po, po/vi.po: Update.
+
+Mon Feb 12 12:58:10 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Add src/descriptions_store.c.
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
+ po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
+ po/ru.po, po/sv.po, po/vi.po: Update.
+
+Mon Feb 12 12:42:44 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/es_ES.88591/man1/man.man1 (OPCIONES),
+ man/it_IT.88591/man1/man.man1 (OPZIONI),
+ man/ja_JP.eucJP/man1/man.man1 (オプション): Fix soft-hyphen
+ declarations to avoid error messages from groff.
+
+Mon Feb 12 10:35:14 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.4.
+ * configure.ac, docs/NEWS, man-db.lsm: Update.
+
+Mon Feb 12 09:20:09 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (OPTIONS): Stop claiming that -d does not
+ display any manual pages (thanks, Dan Jacobson; Debian bug
+ #340910).
+
+Mon Feb 12 09:04:17 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Treat an empty LANGUAGE environment variable as
+ equivalent to it being unset.
+
+Sun Feb 11 10:31:04 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Add forgotten item about SIGCHLD handling.
+
+Sat Feb 3 10:08:03 GMT 2007 Giuseppe Sacco <eppesuig@debian.org>
+
+ * man/it_IT.88591/man1/man.man1: Update translation.
+ * man/THANKS: Update translator credit.
+
+Mon Jan 29 10:51:09 GMT 2007 Valéry Perrin <valery.perrin.debian@free.fr>
+
+ * man/fr_FR.88591: Add French man page translations.
+ * .bzrignore: Add ignores under man/fr_FR.88591.
+ * GNUmakefile.in (nls_man): Add fr_FR.88591.
+ * man/THANKS: Add translator credit.
+
+Mon Jan 8 13:31:15 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Partial update of tempname module from gnulib. (Once we switch to
+ automake, it will be possible to import it properly.)
+
+ * m4/tempname.m4: New file.
+ * configure.ac: Use gl_FUNC_GEN_TEMPNAME.
+
+Mon Jan 8 13:06:42 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * docs/ToDo: Rename to ...
+ * docs/TODO: ... this for consistency with other projects.
+ * GNUmakefile.in (_docs), docs/README, docs/HACKING: Update
+ references.
+
+Mon Jan 8 12:45:33 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AC_PREREQ): Require autoconf 2.59, for gnulib.
+
+Mon Jan 8 12:37:12 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Update setenv module from gnulib.
+
+ * m4/setenv.m4: New file.
+ * .bzrignore: Ignore only gettextize-generated files in m4
+ directory.
+ * autogen.sh: Pass '-I m4' option to aclocal.
+ * configure.ac: Use gt_FUNC_SETENV.
+ * lib/setenv.c, lib/unsetenv.c: Update.
+
+Mon Jan 8 12:14:59 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_FUNC_STRSIGNAL): Include <string.h> for
+ strsignal.
+
+Mon Jan 8 12:10:08 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_FUNC_FNMATCH): New macro to check whether
+ fnmatch supports the FNM_CASEFOLD flag (a GNU extension).
+ * configure.ac: Use it.
+
+Mon Jan 8 10:39:24 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * lib/xsigaction.c: New file: sigaction with EINTR checking.
+ * include/manconfig.h.in: Add prototype.
+ * lib/Makefile.in: Build xsigaction.
+ * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Use
+ xsigaction instead of bare sigaction.
+ * lib/pipeline.c (pipeline_start, pipeline_wait,
+ pipeline_install_sigchld): Use xsigaction instead of
+ sigaction-plus-EINTR-check.
+
+Mon Jan 8 09:55:48 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Rename lynx variable to browser. Check for
+ www-browser (as on Debian) before lynx.
+ * include/manconfig.h.in: Rename lynx variable to browser.
+
+Mon Jan 8 09:15:04 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): If no database changes were necessary, then:
+ don't bother committing database changes or running straycats;
+ only exit non-zero if the -c option was given; only emit "No
+ databases updated" message (should be "No databases created" now)
+ if the -c option was given but not -q, to help automatic
+ invocation from man.
+
+Sun Jan 7 23:54:18 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Don't try to pass -X or -P-g
+ options to eqn, only troff (Debian bug #327772).
+
+Sun Jan 7 21:16:57 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document -X option (thanks,
+ Sam Morris; Debian bug #360112).
+
+Sun Jan 7 20:58:16 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Add cross-references to mandb in apropos and whatis documentation
+ (thanks, Phil Endecott; Debian bug #388755).
+
+ * man/man1/apropos.man1 (DESCRIPTION): Mention that the database is
+ updated by mandb.
+ (SEE ALSO): Refer to mandb(8).
+ * man/man1/whatis.man1 (DESCRIPTION, SEE ALSO): Likewise.
+
+Sun Jan 7 20:51:27 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (parse_layout): Actually check upper-cased version
+ of layout rather than creating it and then ignoring it.
+
+Sun Jan 7 20:48:58 GMT 2007 Colin Watson <cjwatson@debian.org>
+
+ Fix a slew of memory leaks, including a nasty per-search leak in
+ apropos (Debian bug #368749).
+
+ * include/manconfig.h.in (ATTRIBUTE_UNUSED): Define to an attribute
+ marking a variable as unused if using GCC 2.4 or newer.
+
+ * lib/error.c (error): Free program_name before exiting.
+ * src/accessdb.c (main): Put program_name in allocated memory.
+ * src/wrapper.c (main): Likewise.
+ * src/Makefile.in: Link wrapper against libman.
+
+ * libdb/db_gdbm.c (man_gdbm_firstkey): Register cleanup function to
+ free parent_sortkey_hash on exit.
+ * src/globbing.c (update_directory_cache): Register cleanup function
+ to free dirent_hash on exit.
+ (look_for_file): Register cleanup function to free gbuf on exit.
+ Move freeing of gbuf before each search to ...
+ (match_in_directory): ... here.
+ * src/manp.c (free_config_file): New function.
+ (read_config_file): Register cleanup function to free
+ configuration file structures on exit.
+
+ * lib/cleanup.c (do_cleanups): Free the stack after processing it.
+ * lib/hashtable.c (hash_free): Free ht->hashtab as well.
+ * libdb/db_lookup.c (free_mandata_elements): Add TODO comment about
+ strange memory handling.
+ * src/catman.c (parse_for_sec): Free entry.
+ (main): Free various variables before exiting.
+ * src/check_mandirs.c (count_glob_matches): Free info.name.
+ (purge_missing): Free entry rather than just content.dptr (==
+ entry.addr).
+ * src/globbing.c (parse_layout): Free upper_layout.
+ (match_in_directory): Free pattern_start.pattern in early return
+ case.
+ * src/man.c (main): Free various variables before exiting.
+ * src/mandb.c (finish_up, cleanup, mandb, main): Free various
+ database file names properly.
+ (main): Remember to assign the result of getcwd_allocated
+ somewhere. Free various variables before exiting.
+ * src/manp.c (add_sections): Free section_list; comment was
+ incorrect.
+ (add_nls_manpath): Free temp_locale.
+ (guess_manpath): Constify path. Free result of get_manpath before
+ returning.
+ (get_manpath): Constify path. Free tmplist elements.
+ (create_pathlist): Free result of xstrndup.
+ (free_pathlist): New function.
+ * src/manp.h (free_pathlist): Add prototype.
+ * src/util.c (mkdbname): Don't allocate mkdbname statically; it's
+ less confusing just to free it each time.
+ * src/whatis.c (apropos): Initialise and free info.
+ (search): Free database.
+ (main): Free regular expression after each search. Free various
+ variables before exiting.
+
+Wed Dec 27 13:34:23 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ Teach lexgrog front-end about pages with multiple name/description
+ pairs (Debian bug #342834).
+
+ * src/descriptions.c (parse_descriptions): Allow base_name to be
+ NULL to suppress ensuring that base_name is in the returned list.
+ (gripe_bad_store, store_descriptions): Move to ...
+ * src/descriptions_store.c: ... here.
+ * src/lexgrog.l (main): Use parse_descriptions to split lg.whatis up
+ into its component descriptions, and display each on a separate
+ line.
+ * src/Makefile.in (mandb, lexgrog): Adjust object lists for the
+ above.
+ * docs/NEWS: Document this.
+
+Tue Dec 26 20:52:50 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (local_man_loop): Fail with an error message if argv is
+ a character or block device, as we may well hang trying to read
+ from it and it almost certainly isn't what the caller intended
+ anyway (Debian bug #341706).
+
+Tue Dec 26 20:11:04 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING (Revision control): New section.
+ * docs/NEWS: Refer to docs/HACKING for bzr archive location.
+
+Tue Dec 26 20:04:32 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in: Distribute configure.ac and docs/HACKING.
+
+Tue Dec 26 15:06:06 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.4-pre1 (for translators).
+
+Tue Dec 26 15:02:33 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * po/*.po: Update.
+
+Tue Dec 26 14:49:56 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c, libdb/db_ver.c: Correct gettext.h inclusions.
+
+Tue Dec 26 14:47:36 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * libdb/Makefile.in, src/Makefile.in: Remove .depend directory on
+ clean, not distclean.
+
+Tue Dec 26 14:34:25 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Upgrade to aclocal 1.10.
+
+Tue Dec 26 14:27:59 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.15.
+ * lib/gettext.h: Copy from gettext 0.15.
+ * lib/README: Mention the above.
+ * lib/pipeline.c, libdb/db_delete.c, libdb/db_lookup.c,
+ libdb/db_store.c, libdb/db_ver.c, src/accessdb.c, src/catman.c,
+ src/check_mandirs.c, src/compression.c, src/convert_name.c,
+ src/descriptions.c, src/encodings.c, src/fake_security.c,
+ src/filenames.c, src/globbing.c, src/lexgrog.l, src/lexgrog.l.new,
+ src/man.c, src/mandb.c, src/manp.c, src/manpath.c, src/security.c,
+ src/straycats.c, src/ult_src.c, src/version.c, src/whatis.c,
+ src/wrapper.c, zsoelim/zsoelim.l: Include "gettext.h" rather than
+ <libintl.h>. Make sure not to include <locale.h> before
+ "gettext.h", for portability to Solaris.
+ * src/wrapper.c: Drop ENABLE_NLS test, now handled by gettext.h.
+
+Tue Nov 7 11:00:14 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_browser): Remove unnecessary check for browser
+ being NULL.
+ * docs/NEWS: Add CVE identifier.
+
+Mon Nov 6 09:45:49 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac, include/manconfig.h.in: Only prepend "exec " to
+ WEB_BROWSER if configure found a web browser.
+
+Mon Nov 6 09:01:13 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c: _GNU_SOURCE is defined throughout now, so don't
+ redefine it.
+
+Mon Nov 6 08:40:54 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document switch to bzr.
+
+Mon Nov 6 08:34:57 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_browser): Fix buffer overrun if BROWSER contains
+ multiple %s expansions. Thanks to Jochen Voß for the report.
+ * docs/NEWS: Document this.
+
+Sun Nov 5 23:41:45 PST 2006 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Call AC_GNU_SOURCE before AC_PROG_CC, as autoconf
+ objects otherwise (due to macros called by AM_GNU_GETTEXT). Let's
+ hope using _GNU_SOURCE for everything doesn't break anything ...
+
+Sat Nov 4 17:24:27 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in, docs/HACKING: Update references to configure.in to
+ say configure.ac instead.
+
+Sat Nov 4 17:04:54 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * configure.ac: Use AS_HELP_STRING throughout.
+ (AC_PREREQ): Bump to 2.53.
+
+Sat Nov 4 16:52:20 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Rename to configure.ac.
+
+Sat Nov 4 16:41:59 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Force the use of aclocal-1.8; at least 1.4 won't work
+ correctly.
+
+Fri Oct 20 12:46:41 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * tools/config.guess: Update to 2006-07-02.
+ * tools/config.sub: Update to 2006-09-20.
+
+Sun Sep 17 09:20:33 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes
+ (Debian bug #387864).
+ * docs/NEWS: Document this.
+
+Thu Aug 10 17:23:03 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_default_device): Always use utf8 if preconv
+ is available.
+ (get_roff_encoding): Skip CJK UTF-8 hack if preconv is available.
+ * src/man.c (make_roff_command): Use preconv if available to recode
+ input even if the encoding is detected by means other than looking
+ at the preprocessor line. Skip iconv preprocessing in that case.
+
+Thu Aug 10 17:00:21 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_groff_preconv): New function, moved from
+ src/man.c because other functions here are going to need it.
+ * src/encodings.h (get_groff_preconv): Prototype it.
+ * src/man.c (make_roff_command): Use it.
+
+Wed Aug 9 14:58:50 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Set page_encoding to pp_encoding if
+ available. Plug a memory leak.
+
+Wed Aug 9 14:45:13 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (GNUC_PREREQ): Check for __GNUC_MINOR__,
+ not __GNUC_MINOR.
+
+Wed Aug 9 14:10:57 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Recognise preprocessor encoding
+ declarations like "-*- coding: utf8 -*-". Invoke the "preconv"
+ preprocessor for these if available.
+
+Mon Jul 3 04:54:13 BST 2006 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (make_content): Break up dsize calculation
+ differently for legibility.
+
+Tue Mar 21 11:08:55 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ Improve portability to Solaris and other systems without setenv.
+
+ * lib/setenv.c, lib/setenv.h, lib/unsetenv.c: Copied from gnulib
+ 0.0.20051110-1.
+ * lib/Makefile.in (ALLSRCS): Add setenv.c and unsetenv.c.
+ * lib/README: Mention the above.
+ * configure.in: Check for setenv and unsetenv and use the gnulib
+ versions if they are unavailable.
+ * src/man.c, src/whatis.c: Include lib/setenv.h.
+
+Thu Mar 9 08:08:39 GMT 2006 Daniel Nylander <po@danielnylander.se>
+
+ * po/sv.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+Wed Feb 22 09:44:02 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a
+ command, to make old configuration files work (Debian bug
+ #353959).
+ * docs/NEWS: Document this.
+
+Mon Feb 20 09:33:18 GMT 2006 Henning Makholm <henning@makholm.net>
+
+ * src/lexgrog.l: Add Danish translation of NAME.
+
+Sun Jan 22 19:02:43 GMT 2006 Clytie Siddall <clytie@riverland.net.au>
+
+ * po/vi.po: Update from Translation Project.
+ * po/LINGUAS: Add vi.
+ * man/THANKS: Add translator credit.
+
+Sun Jan 22 18:49:16 GMT 2006 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1, man/es_ES.88591/man1/man.man1,
+ man/it_IT.88591/man1/man.man1: Fix mistaken use of .l instead of
+ .I (thanks, Valéry Perrin).
+
+Thu Jan 19 10:15:33 GMT 2006 Karl Eichwalder <ke@suse.de>
+
+ * po/de.po: Update from Translation Project.
+ * man/THANKS: Add translator credit.
+
+Sat Dec 31 16:30:44 GMT 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (hash_free): Update function name in debug
+ message.
+
+Sun Dec 18 08:57:01 GMT 2005 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * src/lexgrog.l: Change encoding of Russian translation of NAME to
+ KOI8-R.
+
+Sat Dec 10 17:31:45 CET 2005 Giuseppe Sacco <eppesuig@debian.org>
+
+ * Updated italian translation po/it.po
+
+Mon Nov 14 11:02:54 GMT 2005 Yuri Kozlov <kozlov.y@gmail.com>
+
+ * src/lexgrog.l: Add Russian translation of NAME.
+
+Tue Oct 4 10:34:03 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * tools/chconfig: Start with "#! /" rather than "#!/", for 4.2BSD.
+
+Wed Sep 21 10:56:22 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time
+ we're collecting child process statuses; we need to keep a careful
+ count of processes. Forget any previous errno before calling
+ reap_children. Should fix Debian bug #326488.
+
+Wed Sep 21 10:47:51 BST 2005 Nicolas Velin <nsv@fr.st>
+
+ * po/fr.po: Update from Rosetta.
+ * man/THANKS: Add translator credit.
+
+Wed Sep 21 10:36:19 BST 2005 Ondřej Surý <ondrej@sury.org>
+
+ * po/cs.po: Update from Rosetta.
+ * man/THANKS: Add translator credit.
+
+Wed Sep 21 10:33:13 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * man/THANKS: Recode to UTF-8.
+
+Wed Sep 21 10:10:12 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and
+ SIGQUIT in the parent while running subprocesses (Debian bug
+ #328982).
+ * docs/NEWS: Document this.
+
+Wed Sep 21 10:04:42 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Start 2.4.4.
+
+Wed Sep 21 09:45:48 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Substitute basename of config_file as
+ config_file_basename.
+ * src/man_db.conf.in: Use @config_file_basename@ in header comment.
+
+Thu Sep 1 14:10:07 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather
+ than magic numbers.
+
+Thu Sep 1 14:04:29 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (ATTRIBUTE_WARN_UNUSED_RESULT): Define to a
+ function attribute enabling unused result checking if using GCC
+ 3.4 or newer.
+ (xmalloc, xrealloc, strappend): Use it.
+
+Wed Aug 31 01:23:55 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Simplified Chinese ->
+ GB2312 and Traditional Chinese -> BIG5.
+ (charset_table): Use the nippon device for BIG5, GB2312, and GBK.
+ (device_table): Assume that the nippon device is
+ encoding-agnostic, since it handles several encodings now.
+ (compatible_encodings, get_roff_encoding): Extend the ja_JP.UTF-8
+ hack to cover zh_CN.UTF-8, zh_SG.UTF-8, and zh_TW.UTF-8 too.
+
+Sun Jul 31 16:34:15 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/COPYING, docs/COPYING.LIB: Update from www.gnu.org to pick up
+ the FSF's new address.
+ * Update all other GPL and LGPL notices with the new address (apart
+ from those in externally-maintained files).
+
+Wed Jul 27 11:29:02 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (gripe_no_man): Don't emit a different message in the
+ troff case; it's extra translation load and nobody really cares
+ about the distinction. Avoid splitting up a sentence into two
+ translatable pieces (Debian bug #320111).
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
+ po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
+ po/ru.po, po/sv.po: Update with msgmerge.
+
+Tue Jul 26 00:05:02 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Use 'col -b -p -x' rather than just
+ 'col -b' when stdout is not a terminal.
+
+Tue Jul 12 02:08:41 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (ATTRIBUTE_MALLOC): Define to a function
+ attribute enabling malloc return value checking if using GCC 2.96
+ or newer.
+ (xmalloc, xrealloc, xstrdup, xstrndup): Use it.
+
+Tue Jul 12 01:59:10 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (GNUC_PREREQ): Helper macro borrowed from
+ glibc.
+ (ATTRIBUTE_FORMAT_PRINTF): Define to a function attribute enabling
+ printf-style format string checking if using GCC 2.0 or newer.
+ (ATTRIBUTE_SENTINEL): Use GNUC_PREREQ. Use __sentinel__ rather
+ than sentinel to avoid possible clashes with other macros.
+ * lib/error.h (error): Add printf format attribute.
+ * lib/xmalloc.c: Include "error.h" rather than redeclaring error.
+
+Mon Jul 11 18:12:58 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Emit a debugging message.
+
+Mon Jul 11 14:41:52 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function
+ attribute enabling sentinel checking if using GCC 4.0 or newer.
+ (strappend): Use it.
+ * lib/pipeline.h (command_new_args, command_args,
+ pipeline_new_commands, pipeline_command_args, pipeline_commands):
+ Likewise.
+
+Mon Jul 11 14:38:30 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/Makefile.in, libdb/Makefile.in, src/Makefile.in,
+ zsoelim/Makefile.in: Stop using -I-; it's deprecated in GCC 4.0,
+ and it doesn't seem worth the effort of switching to the -iquote
+ replacement.
+
+Mon Jul 11 12:02:57 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (usage): Fix "gditview" typo (Debian bug #317696).
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
+ po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
+ po/ru.po, po/sv.po: Unfuzzy all translations.
+
+Fri Jul 8 13:12:29 BST 2005 Ralph Corderoy <ralph@inputplus.co.uk>
+
+ * src/man.c (display): Drop "Reformatting %s, please wait..."
+ message; it's been years since processing power was low enough for
+ this to be relevant.
+
+Mon Jul 4 00:49:36 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (EVERYTHING, ALL): List intl before lib, since
+ intl/Makefile runs config.status and thus recreates lib/Makefile
+ after lib has been distcleaned.
+
+Sun Jul 3 22:14:02 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.3.
+ * configure.in, docs/NEWS, man-db.lsm: Update.
+ * man-db.lsm: Correct primary download location.
+
+Sun Jul 3 20:55:13 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Define HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 as
+ appropriate.
+ * include/comp_src.h.in: Conditionalise compressor list on
+ HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 rather than on GUNZIP,
+ UNCOMPRESS, and BUNZIP2; if a compressor isn't detected, the
+ latter will end up as empty strings, not undefined. Thanks to Paul
+ Slootman (Debian bug #196097).
+ * docs/NEWS: Document this.
+
+Sun Jul 3 18:58:14 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (__distclean): Remove po/Makevars.template.
+
+Sun Jul 3 18:11:56 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: List more language support since 2.4.2.
+
+Sun Jul 3 17:45:18 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Minor clarification.
+
+Sun Jul 3 17:41:20 BST 2005 Robert Luberda <robert@debian.org>
+
+ * po/pl.po: Update.
+
+Sun Jul 3 17:39:14 BST 2005 Yuri Kozlov <yuray@id.ru>
+
+ * po/ru.po: Update.
+
+Tue Jun 21 13:58:37 BST 2005 Jordi Mallach <jordi@gnu.org>
+
+ * po/ca.po: Update from Translation Project.
+ * man/THANKS: Update e-mail address.
+
+Mon Jun 20 14:46:22 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * tools/config.guess, tools/config.sub: Update to 2005-04-22.
+
+Fri Jun 10 15:05:53 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.3-pre1 (for translators).
+
+Fri Jun 10 14:53:52 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * man/THANKS: Add translator credits for it.po, ja.po, pt_BR.po, and
+ sv.po.
+
+Fri Jun 10 14:36:36 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/LINGUAS: Add ro.
+ * man/THANKS: Add translator credit.
+ * po/fi.po, po/ro.po: Update with msgmerge.
+
+Fri Jun 10 14:31:42 BST 2005 Eugen Hoanca <eugenh@urban-grafx.ro>
+
+ * po/ro.po: New from Translation Project.
+
+Fri Jun 10 14:29:17 BST 2005 Jordi Mallach <jordi@sindominio.net>
+
+ * po/ca.po: Update from Translation Project.
+
+Fri Jun 10 14:22:04 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/fi.po: New, from Lauri Nurmi via the Translation Project.
+ * po/LINGUAS: Add fi.
+ * man/THANKS: Add translator credit.
+
+Mon Jun 6 02:15:07 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document various changes since this file was last
+ updated.
+
+Sun Jun 5 15:47:10 BST 2005 Jeremy C. Reed <reed@reedmedia.net>
+
+ * configure.in: Add support for db4. Check for db3/db_185.h before
+ db_185.h.
+
+Sat Jun 4 12:42:26 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example.mdoc: New file.
+
+Sat Jun 4 12:23:15 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/ru.po: Update with msgmerge.
+
+Sat Jun 4 12:21:17 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/ru.po: New, from Yuri Kozlov (Debian bug #268584).
+ * po/LINGUAS: Add ru.
+ * man/THANKS: Add translator credit.
+
+Sat Jun 4 12:17:52 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/sv.po: Update with
+ msgmerge.
+
+Sat Jun 4 11:48:58 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/pl.po: Fix typo in Last-Translator e-mail address.
+
+Sat Jun 4 11:46:13 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * po/pl.po: New, from Robert Luberda (Debian bug #245057).
+ * po/LINGUAS: Add pl.
+ * man/THANKS: Add translator credit.
+
+Sat Jun 4 10:59:29 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * lib/getcwdalloc.c, lib/getcwdalloc.h: Fix header comments.
+
+Sat Jun 4 10:55:47 BST 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (MAN_NAME): Terminate NAME section parsing on
+ encountering a macro definition (Debian bug #275562).
+
+Wed Jan 5 15:08:06 GMT 2005 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Turkish -> ISO-8859-9.
+
+Sun Dec 12 21:48:04 CET 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_sigchld): Don't bother saving and
+ restoring errno if SIGCHLD is being queued.
+
+Mon Nov 8 09:57:27 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/pathsearch.c: New file, containing functions for searching
+ $PATH.
+ * lib/pathsearch.h: Prototype pathsearch_executable().
+ * lib/Makefile.in: Always compile pathsearch.c.
+ * src/man.c (find_in_path): Remove; replaced by
+ pathsearch_executable().
+ (gripe_no_man): Use pathsearch_executable() instead of
+ find_in_path().
+
+Mon Nov 8 09:52:02 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ Get rid of plain getcwd(); this allows getting rid of most uses of
+ PATH_MAX.
+
+ * lib/getcwdalloc.c: New file, providing an allocating version of
+ getcwd().
+ * lib/getcwdalloc.h: Prototype it.
+ * lib/Makefile.in: Always compile getcwdalloc.c.
+
+ * src/man.c (main, format_display): Use getcwd_allocated() instead
+ of getcwd().
+ * src/mandb.c (main): Likewise.
+ * src/manp.c (add_dir_to_path_list): Likewise.
+
+Mon Nov 8 09:40:07 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (null_hash_free): No-op hash_free_ptr provider,
+ for convenience.
+ * lib/hashtable.h (null_hash_free): Prototype it.
+
+Mon Nov 8 09:36:55 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4: Improve quoting to stop aclocal complaining. Improve
+ indentation. Get rid of unnecessary changequote().
+
+Sun Nov 7 16:07:26 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Close pipeline output before
+ reaping processes, so that writing processes get SIGPIPE.
+
+Sun Nov 7 16:05:08 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): Fix active process debugging
+ output to include processes without statuses.
+
+Sun Nov 7 16:01:26 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): Invalidate file_fd after closing
+ it.
+
+Sun Nov 7 15:31:18 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Compare extensions' positions in
+ section_list at the same time as sections, but do the lexical
+ comparison fallback after comparing ids; this restores the
+ intended ability to use SECTIONS to move extensions out of order
+ with respect to their parent sections without breaking the earlier
+ workaround for Debian bug #204249.
+
+Thu Jul 22 14:46:30 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (testmandirs): Always scan directory if last
+ is 0 (i.e. creating) to avoid problems on systems with badly
+ broken clocks set before the epoch.
+
+Mon Jun 28 03:56:56 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man): Free candidate list after displaying it.
+
+Mon Jun 28 01:19:45 BST 2004 David Weinehall <tao@debian.org>
+
+ * tools/mkcatdirs: Replace XSIish uses of 'test' with more portable
+ code.
+
+Thu Apr 1 05:10:50 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (charset_table): Use the latin1 device for
+ ISO-8859-15, even though that isn't exactly right.
+
+Thu Apr 1 04:56:02 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_page_encoding, get_standard_output_encoding):
+ Remove trailing ,<version> and @<modifier> from locale names.
+ * src/encodings.h (get_page_encoding, get_standard_output_encoding):
+ Update prototypes: these no longer return const.
+ * src/man.c (make_roff_command): Free page_encoding and cat_charset.
+
+Thu Apr 1 00:18:55 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (do_extern): Pass only options understood by
+ apropos/whatis, using the pipeline library (Debian bug #207436).
+ (main): Make optind global. Install SIGINT and SIGCHLD handlers
+ earlier. Update do_extern call.
+ * docs/NEWS: Document this.
+
+Wed Mar 31 23:40:15 BST 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): If stdout isn't a terminal, get rid
+ of formatting characters using GROFF_NO_SGR=1 and 'col -b'
+ (thanks, Adam Heath).
+ * docs/NEWS: Document this.
+
+Thu Mar 25 19:31:02 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (apropos): Move warning-silencing code to the bottom
+ of the function, so that it doesn't interfere with declarations.
+
+Sun Mar 14 03:52:12 UTC 2004 Giuseppe Sacco <eppesuig@debian.org>
+
+ * Updated italian translation (corrected three fuzzy strings)
+
+Tue Mar 9 10:25:40 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * zsoelim/zsoelim.l: Define debug for the benefit of pipeline.c.
+ (open_file): Use pipeline library.
+
+Tue Mar 9 01:54:20 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * zsoelim/zsoelim.l: Long-overdue style cleanup per docs/HACKING. No
+ functional changes.
+
+Tue Mar 9 00:37:23 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ Roll out the new pipeline library in most programs.
+
+ * src/compression.c (decompress): Use pipeline library.
+ * src/fake_security.c (do_system_drop_privs): Likewise.
+ * src/lexgrog.l (main): Initialize pipeline library.
+ * src/man.c (checked_popen, gripe_system, checked_system, run_mandb,
+ format_display_and_save, format_display, display_catman, display):
+ Use pipeline library.
+ (add_roff_line_length): Append to a command structure rather than
+ using strappend.
+ (main): Initialize pipeline library.
+ (make_roff_command): Return a constructed pipeline instead of a
+ malloced string. This plugs various hitherto difficult leaks. Drop
+ support for changing the line length with groff < 1.18, as the
+ pipeline library can't handle compound commands in pipelines yet.
+ (make_browser): Return a constructed pipeline instead of a
+ statically allocated string. The pipeline construction is very
+ crude for now.
+ (make_display_command): Return a constructed pipeline instead of a
+ malloced string. The htmlout case is strange for now (return NULL
+ and let format_display sort it out).
+ (tmp_cat_filename): Handle debug > /dev/null here rather than in
+ open_cat_stream. Construct the temporary cat filename more
+ sensibly. Open the temporary file and record its file descriptor.
+ (open_cat_stream): Return a constructed (and started, if COMP_CAT
+ is defined) pipeline instead of a stream. This gets rid of a
+ fixed-size buffer associated with security problems in the past,
+ although it wasn't a vulnerability in itself.
+ (close_cat_stream): Clean up pipeline rather than stream.
+ (format_display): The htmlout case ignores disp_cmd and puts the
+ display pipeline together itself.
+ (display): When calling format_display_and_save, assert (disp_cmd)
+ to make sure we aren't in the htmlout case.
+ * src/man.h (make_roff_command): Drop unnecessary prototype.
+ * src/mandb.c (main): Initialize pipeline library.
+ * src/security.c (do_system_drop_privs): Take a pipeline rather than
+ a string.
+ * src/security.h (do_system_drop_privs): Update prototype.
+ * src/straycats.c (check_for_stray): Use pipeline library.
+ * src/util.c (do_system): Take a pipeline rather than a string. This
+ becomes a simple synchronous wrapper around pipeline_start and
+ pipeline_wait.
+ * src/whatis.c (use_grep): Use pipeline library.
+ (main): Initialize pipeline library.
+
+ * include/manconfig.h.in (struct pipeline): Declare opaquely.
+ (do_system): Update prototype.
+
+ * configure.in: Drop 'exec' from default pager; no longer needed
+ since the pipeline library obviates the use of /bin/sh -c.
+
+ * docs/NEWS: Document all this.
+
+Mon Mar 8 16:45:27 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (comp_info): If the new want_stem argument is
+ set, put a copy of the filename without extension in comp->stem
+ rather than a strange thing in comp->file. This is closer to what
+ most callers actually want, and removes a lot of memory management
+ confusion.
+ (comp_file): Use comp->stem instead of comp->file (previous usage
+ matched this semantically).
+ * include/manconfig.h.in (struct compression): Replace 'file' with
+ 'stem'.
+ (comp_info): Update prototype.
+
+ * src/convert_name.c (convert_name): Update comp_info call.
+ * src/filenames.c (filename_info): Fix misuse of basename. Update
+ comp_info call.
+ * src/lexgrog.l (find_name): Update comp_info call.
+ * src/man.c (local_man_loop): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+ * zsoelim/zsoelim.l (open_file): Don't set comp->file. Add a
+ clone-and-hack warning.
+
+Mon Mar 8 16:07:11 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): Error out if decompression program
+ not found, as a temporary workaround for poor detection in
+ configure.
+
+Mon Mar 8 15:59:29 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (get_catpath): Use xstrdup and strappend rather than
+ doing memory management by hand.
+
+Mon Mar 8 11:28:51 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Protect against multiple inclusion.
+
+Mon Mar 8 11:21:05 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_dump): Show caller-supplied input and
+ output file descriptors.
+
+ * lib/pipeline.c (command_free, pipeline_free): Return safely if
+ argument is NULL.
+ * lib/pipeline.h (command_free, pipeline_free): Document NULL
+ arguments as a safe no-op, like free().
+
+Mon Mar 8 09:33:08 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example (DESCRIPTION): ".SS macros" -> ".SS macro".
+
+Mon Mar 8 00:16:53 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Instead of comparing extensions
+ followed by ids, compare pure sections first, then ids, then
+ extensions. This works around the worst effects of Debian bug
+ #204249, in which we have an incorrect whatis ref xterm(1) in
+ /usr/share/man and a correct real xterm(1x) in /usr/X11R6/man.
+
+Sun Mar 7 23:55:48 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Keep searching for more specific
+ extension matches in section_list even after finding one.
+
+Wed Jan 28 00:15:00 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Add a terrifying hack to make '.B "..."' work in
+ NAME sections. lex is really the wrong tool for this job, I feel.
+
+Tue Jan 27 23:37:58 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Attempt to fix problems with groff requests
+ immediately following .SH NAME. All patterns in the MAN_FILE and
+ MAN_NAME states need to avoid matching trailing newlines, since
+ they're needed by other patterns to detect beginning-of-line.
+
+ In order to ignore any excess whitespace following .SH NAME, which
+ is how this problem got created, introduce a MAN_PRENAME start
+ condition, which just skips over spacing. Some evil use of yyless
+ is needed to transition properly to the MAN_NAME start condition
+ from this without eating trailing newlines.
+
+Tue Jan 27 21:19:41 GMT 2004 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in (LFLAGS): Add -d if LEXGROG_DEBUG=yes.
+
+Wed Dec 24 10:29:16 UTC 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * src/whatis.c (usage): Fix usage message for --section
+ * updated italian translation.
+
+Wed Dec 24 10:10:16 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (usage): Fix usage message for --section, thanks to
+ Giuseppe Sacco.
+
+Wed Dec 24 09:14:19 UTC 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * Updated italian translation
+
+Mon Nov 17 22:50:39 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (match_in_directory): Oops; stop decrementing
+ bsearched when it reaches the beginning of the cache->names array,
+ otherwise patterns beginning with a metacharacter cause a
+ segfault. (The decrement loop is necessary because bsearch()
+ doesn't specify which element it returns if there are multiple
+ matches.)
+
+Mon Nov 17 05:04:54 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ Speed up mandb's purging functions further, from about 20 seconds to
+ about 2 seconds on my i386 laptop, by being more intelligent about
+ calling fnmatch().
+
+ * src/globbing.c (cache_compare): New function.
+ (update_directory_cache): Sort the cache.
+ (pattern_compare): New function.
+ (match_in_directory): Rather than scanning the whole cache, start
+ from a point matching the start of the pattern up to the first
+ metacharacter, and stop once this no longer matches.
+
+ * src/globbing.c (TEST): Include <libintl.h> and define _() so that
+ the test code compiles.
+ (main): Set program_name before any calls to usage().
+
+Sun Nov 16 21:45:24 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING: Mention the new CTYPE() macro.
+
+Sun Nov 16 21:29:35 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/convert_name.c (convert_name): Reorganize and clarify. The
+ alternate argument was confusing and is now gone. Add a new fsstnd
+ argument which controls whether the "man1" to "cat1" etc.
+ conversion is performed. That conversion now makes sure that the
+ directory name starts with "man" before blithely overwriting it.
+ Treat comp->file as const, since it will be soon.
+ * src/convert_name.h (convert_name): Update prototype.
+ * src/man.c (find_cat_file): New logic. First, check for existing
+ FSSTND cat files; then check for a cat dir based on the ultimate
+ source, if different from the original (Debian bug #129575); then
+ check for a cat dir based on the original man page path.
+ (display): Drop the !local_man_file case which tries to work out
+ whether to save a cat, as it's not a problem to try regardless of
+ whether there's already one in a FSSTND location.
+ (display_filesystem, display_database): Add extra argument to
+ find_cat_file() so that it knows the original man page path as
+ distinct from the ultimate source.
+ (display_filesystem): Remove debugging output, now in
+ find_cat_file().
+
+ * docs/ToDo: Remove entry about cleaning up cat file code, now done.
+
+Sun Nov 16 19:28:38 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ Add an option to apropos and whatis to allow specification of a
+ section to search.
+
+ * src/whatis.c (args, long_options, main): New -s/--section option.
+ (usage): Document it.
+ (whatis): Tell dblookup_all() to look in the section named by
+ --section, if present.
+ (apropos): If --section was given, check that it matches either
+ info.sec or info.ext for each page. Use info.whatis rather than
+ parsing the whatis out manually.
+ * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --section.
+ * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise.
+
+ * docs/NEWS: Start 2.4.3. Document the above.
+
+Sun Nov 16 18:47:46 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (CTYPE): New macro to help get <ctype.h>
+ calls right.
+ * libdb/db_lookup.c (name_to_key): Use it.
+ * src/globbing.c (parse_layout, look_for_file): Likewise.
+ * src/man.c (manopt_to_env, main): Likewise.
+ * src/manp.c (add_to_dirlist): Likewise.
+ * src/ult_src.c (ult_softlink, test_for_include): Likewise.
+ * src/whatis.c (lower, match, word_fnmatch): Likewise.
+
+Sun Nov 16 17:06:29 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ Style cleanups; no functional changes.
+
+ * src/whatis.c (usage, match, apropos, search, main): Add a space
+ before the open parenthesis in several function calls.
+ (apropos): The nesting level has got out of control here. Use a
+ goto and a 'nextpage' label near the end of the loop instead.
+
+Sun Nov 16 15:49:12 GMT 2003 Erik Andersen <andersen@codepoet.org>
+
+ * src/straycats.c (check_for_stray): Add missing open brace to
+ non-HAVE_CANONICALIZE_FILE_NAME case.
+
+Tue Oct 28 16:24:41 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.in: Create new th* variables with capitalized
+ variants of program names for .TH lines.
+ * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5,
+ man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1,
+ man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8,
+ man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5,
+ man/it_IT.88591/man8/*.man8, man/ja_JP.eucJP/man1/*.man1,
+ man/ja_JP.eucJP/man5/*.man5, man/ja_JP.eucJP/man8/*.man8,
+ man/man1/*.man1, man/man5/*.man5, man/man8/*.man8: Capitalize all
+ page titles in .TH lines.
+ * man/de_DE.88591/man5/manpath.man5: Fix typo: 'man' => 'manpath'.
+
+Sun Sep 28 20:11:55 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man-db.gnu: Remove. This is licensed under the GFDL, whose
+ freeness is under serious question. I'm not sure if the FSF
+ actually have standing to claim copyright over this file in the
+ first place, but it doesn't need to be in CVS here so I don't feel
+ like arguing about it.
+
+Sun Sep 21 02:17:43 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode.
+
+Sun Sep 21 02:15:17 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Add a forgotten entry for 2.4.2.
+
+Sat Sep 20 18:35:54 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Galician -> ISO-8859-1,
+ Indonesian -> ISO-8859-1, Croatian -> ISO-8859-2, and Slovak ->
+ ISO-8859-2.
+
+Sat Sep 20 11:57:58 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge
+ (po/Makevars changed).
+
+Sat Sep 20 01:07:24 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.2.
+ * configure.in, docs/NEWS, man-db.gnu, man-db.lsm: Update.
+ * man-db.gnu: Suggest libgdbm-dev rather than libdb3-dev.
+ * man-db.lsm: Suggest GDBM.
+
+Sat Sep 20 00:11:14 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Don't recode output if an explicit
+ encoding was specified with -E.
+
+Sat Sep 20 00:09:03 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * po/.cvsignore: Add stamp-po.
+
+Fri Sep 19 22:49:14 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_CHECK_BDB): Temporarily add $lib to LIBS for
+ AC_TRY_LINK, not to DBLIBS; but add it to DBLIBS if the test
+ succeeds.
+ * configure.in: Simply set DBLIBS rather than appending to it.
+
+Fri Sep 19 22:20:07 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Run aclocal after autopoint, in accordance with the
+ autopoint info documentation.
+
+Fri Sep 19 22:17:18 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.12.1.
+ * po/Makevars (MSGID_BUGS_ADDRESS): Set to me.
+ * po/.cvsignore: Add Makevars.template.
+
+Fri Sep 19 00:48:07 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (MAN_FILE): Accept blank lines immediately following
+ ".SH NAME".
+
+Fri Sep 19 00:06:02 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (OPTIONS): Improve --filename wording a bit.
+
+Wed Sep 17 07:17:22 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix case where a page explicitly encoded in UTF-8 has to be recoded
+ down to a non-ISO-8859-1 legacy encoding for processing by groff and
+ then back up to UTF-8 for display.
+
+ * src/encodings.c (get_page_encoding): New function, renamed from
+ get_source_encoding.
+ (get_source_encoding): Return only the canonical source encoding,
+ not any explicit encoding in the directory name. This allows us to
+ take account of differing explicit encoding and canonical encoding
+ of pages for the purposes of working out which device to use.
+ (get_roff_encoding): New source_encoding argument, now returned
+ instead of NULL.
+ (get_default_device): Pass source_encoding to get_roff_encoding().
+ (compatible_encodings): The roff encoding can no longer be NULL.
+ * src/encodings.h (get_page_encoding): Add prototype.
+ (get_roff_encoding): Update prototype.
+ * src/man.c (make_roff_command): Call get_page_encoding(), and
+ recode from that to roff_encoding, not from source_encoding to
+ roff_encoding. Pass source_encoding to get_roff_encoding().
+ roff_encoding can no longer be NULL.
+
+Tue Sep 16 22:53:36 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Purge database entries corresponding to removed stray cat pages.
+
+ * src/check_mandirs.c (purge_normal, purge_whatis): Add TODO notes
+ for systems where the cat extension differs from the man
+ extension.
+ (purge_whatis): Rename manpath to path. New cat argument, passed
+ through to look_for_file().
+ (purge_missing): New catpath argument, passed to look_for_file()
+ and purge_whatis() in the STRAY_CAT and WHATIS_CAT cases, which
+ are now handled.
+ * src/check_mandirs.h (purge_missing): Update prototype.
+ * src/mandb.c (main): Pass catpath to purge_missing().
+ * docs/NEWS: Document this.
+
+Tue Sep 16 22:37:33 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Work around the fact that GDBM's firstkey/nextkey interface doesn't
+ return ordered results.
+
+ * libdb/db_gdbm.c (man_gdbm_open_wrapper): New function. Wraps the
+ return value from gdbm_open() in a structure that remembers the
+ file name.
+ (parent_sortkey_hash_free, sortkey_hash_free): New functions to
+ free hashtables used here.
+ (sortkey_compare): New comparison function for qsort().
+ (man_gdbm_firstkey): New function. Retrieve all keys using
+ gdbm_firstkey() and gdbm_nextkey() in advance, sort them into an
+ ordered hashtable, remember that hashtable for later, and return
+ the first key.
+ (man_gdbm_nextkey): New function. Find the previously remembered
+ ordered hashtable and return the next element from it.
+ (man_gdbm_close): New function. Clean up remembered data.
+ * libdb/db_lookup.c (copy_datum): Define even if using GDBM.
+ (gripe_lock): Explain why this isn't used for GDBM.
+ * libdb/mydbm.h (man_gdbm_wrapper): New type.
+ (man_gdbm_open_wrapper, man_gdbm_firstkey, man_gdbm_nextkey,
+ man_gdbm_close): Add prototypes.
+ (MYDBM_FILE): Change to man_gdbm_wrapper for GDBM. Adjust all
+ other MYDBM_* macros to cope with this and use man_gdbm_*
+ functions where necessary.
+ (copy_datum): Declare for all database types. Remove __inline__.
+ * docs/NEWS: Document this.
+
+Tue Sep 16 01:44:59 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (main): Free each key after listing it rather than
+ just leaking it.
+
+Mon Sep 15 23:45:33 BST 2003 Byrial Ole Jensen <byrial@image.dk>
+
+ * po/da.po: Update from Translation Project.
+
+Mon Sep 15 23:29:33 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Add --enable-mb-groff option, which defines
+ MULTIBYTE_GROFF for src/encodings.c.
+ * docs/NEWS: Document this.
+
+Mon Sep 15 01:23:00 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * po/it.po: msgfmt doesn't like "charset=iso8859-1". Use
+ "charset=iso-8859-1" instead.
+
+Sun Sep 14 17:48:38 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_source_encoding): If the language directory
+ is unknown (e.g. 'man -l'), guess based on the locale before
+ falling back to a default.
+ (get_standard_output_encoding): Likewise.
+
+Sun Sep 14 16:58:34 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_source_encoding): Assume ISO-8859-1 source
+ encoding if it's unknown (e.g. 'man -l').
+ (get_default_device): source_encoding can no longer be NULL.
+ * src/man.c (make_roff_command): Likewise.
+
+Sun Sep 14 16:45:43 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (EXAMPLES, ENVIRONMENT, HISTORY): Change a few
+ stray hyphens to dashes.
+
+Sun Sep 14 16:37:56 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_source_encoding,
+ get_standard_output_encoding, get_default_device,
+ get_roff_encoding, get_output_encoding, get_less_charset):
+ Simplify using new table element struct types.
+
+Sun Sep 14 16:24:00 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Make locales like ru_RU.UTF-8 that need the ascii8 device but UTF-8
+ output work. This involves a good deal of restructuring.
+
+ * src/encodings.c (directory_table): Remove a completed TODO
+ comment.
+ (directory_table, charset_table, device_table): Name array element
+ struct types in order to abbreviate code later.
+ (device_table): Split less_charset members out into a new table,
+ less_charset_table. They really depend on the locale charset, but
+ aren't quite appropriate for charset_table. Use "iso8859" rather
+ than "latin1", and add KOI8-R.
+ (device_table): Add output_encoding member, which is almost the
+ inverse of charset_table but slightly different for ascii8.
+ (compatible_encodings): New function to figure out if a source
+ encoding and a roff encoding are compatible.
+ (get_default_device): Take new source_encoding argument so that we
+ can make ru_RU.UTF-8 use the ascii8 device and an iconv pipe
+ rather than utf8 directly. Drop through to the fallback default
+ device if none of the predefined entries in charset_table are
+ compatible when considering the source encoding.
+ (get_roff_encoding): Split LESSCHARSET handling out into a new
+ function ...
+ (get_less_charset): ... here. The caller is expected to set
+ environment variables rather than having it done by the library.
+ (get_output_encoding): New function, returning the output encoding
+ produced by a device.
+ * src/encodings.h (get_default_device): Update prototype.
+ (get_output_encoding, get_less_charset): Add prototypes.
+ * src/man.c (make_roff_command): Update calls to encoding library
+ for these changes.
+
+Sun Sep 7 23:10:01 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix decision about whether a given encoding is safe to save as a cat
+ page.
+
+ * src/encodings.c (directory_table): Add standard_output_encoding
+ member, used to set the default encoding for cat pages.
+ (fallback_locale_charset): Remove.
+ (get_standard_output_encoding): New function.
+ (get_locale_charset): New function, split out in modified form
+ from get_default_device().
+ (get_default_device): Take a character set as input rather than a
+ locale.
+ * src/encodings.h (get_standard_output_encoding,
+ get_locale_charset): Add prototypes.
+ (get_default_device): Update prototype.
+ * src/man.c (make_roff_command): Instead of comparing devices, test
+ that the default character set for this manual hierarchy is being
+ used, and don't save cat pages if it isn't.
+
+Sun Sep 7 11:33:09 +0200 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * po/it.po: changed the header of the po file correcting the
+ charset and the transfer encoding.
+
+Sat Sep 6 11:53:06 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (get_source_encoding): Implement encodings in
+ manual hierarchy directory names. Include a mini-rant about the
+ bizarre specification for these in FHS 2.1, which I've declined to
+ implement for now.
+
+Sat Sep 6 11:28:46 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (purge_missing): Call MYDBM_REORG() after
+ deleting entries. Currently only useful for gdbm.
+
+Sat Sep 6 00:23:03 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_CHECK_BDB): Append to DBLIBS rather than LIBS.
+ * configure.in: Likewise for gdbm and ndbm tests. Make DBLIBS an
+ output variable.
+ * src/Makefile.in: Link only the necessary programs with the
+ database library.
+
+Sat Sep 6 00:15:37 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (make_content): Cast cont.dsize to size_t when
+ comparing it with the return value of strlen(). Avoids warning
+ when building with gdbm.
+
+Thu Sep 4 20:22:21 BST 2003 Christian Rose <menthos@menthos.com>
+
+ * po/sv.po: Update from Translation Project.
+
+Fri Aug 29 17:46:40 BST 2003 Michael Piefel <piefel@informatik.hu-berlin.de>
+
+ * po/de.po: Update from Translation Project.
+
+Fri Aug 29 17:42:15 BST 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * po/it.po: Updated after the revision in tp@linux.it.
+
+Thu Aug 28 11:19:21 BST 2003 Christian Rose <menthos@menthos.com>
+
+ * po/sv.po: Update from Translation Project.
+
+Thu Aug 28 00:45:50 BST 2003 Jordi Mallach <jordi@sindominio.net>
+
+ * po/ca.po: Update from Translation Project.
+
+Thu Aug 28 00:43:33 BST 2003 Christian Rose <menthos@menthos.com>
+
+ * po/sv.po: Update from Translation Project.
+
+Thu Aug 28 00:40:09 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to
+ "can't execute %s" in line with src/man.c, to make translators'
+ lives easier.
+ (pipeline_wait): Separate "%s: %s%s" into two translatable
+ strings: the "(core dumped)" portion should definitely be
+ translated.
+ * src/accessdb.c (usage): Clarify "man_database" to "(The) man
+ database".
+
+Thu Aug 28 00:18:46 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (usage): Expand "sec" to "section".
+
+Wed Aug 27 00:50:07 BST 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * po/it.po: Remove all fuzzy translations and insert missed ones.
+ Now this translation will be reviewed by the Italian translation
+ project for proofreading.
+
+Tue Aug 26 20:16:23 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.2-pre1 (for translators).
+ * docs/NEWS: Mention pipeline library.
+
+Sat Aug 16 14:07:46 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (find_name): Report a sensible error if file is a
+ directory.
+
+Fri Aug 15 18:11:06 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (test_manfile): file is const.
+ * src/check_mandirs.h (test_manfile): Update prototype.
+ * src/mandb.c (update_one_file): filename is const.
+
+Fri Aug 15 18:05:37 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Remove incorrect prototype of basename()
+ which was hiding several bugs.
+ * configure.in: Check for <libgen.h>.
+ * lib/pipeline.c, src/accessdb.c, src/catman.c, src/check_mandirs.c,
+ src/filenames.c, src/lexgrog.l, src/man.c, src/mandb.c,
+ src/manpath.c, src/straycats.c, src/whatis.c, zsoelim/zsoelim.l:
+ Include <libgen.h> instead of relying on basename() prototype in
+ manconfig.h.
+ * src/check_mandirs.c (test_manfile), src/man.c (local_man_loop),
+ src/straycats.c (check_for_stray): Copy strings before calling
+ basename() on them.
+
+Fri Aug 15 00:16:13 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/ult_src.c (ult_hardlink): Return a newly allocated string
+ rather than messily copying over an existing one (and possibly
+ corrupting the malloc arena). link and dir are now allocated
+ rather than being declared as arrays.
+ (ult_src): Update call to ult_hardlink(). Return 'const char *' to
+ make sure callers aren't messing about with our memory.
+ * src/ult_src.h (ult_src): Update prototype.
+ * src/check_mandirs.c (test_mandirs): ult is const.
+ * src/lexgrog.l (main): file is const.
+ * src/man.c (try_section): ult is const.
+ (display_filesystem, display_database): man_file is const.
+
+Sat Aug 9 21:30:16 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Add lib/pipeline.c, src/descriptions.c,
+ src/filenames.c, and src/globbing.c.
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
+
+Sat Aug 9 18:28:01 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Replace the old "wait() for one child at a time" approach with a
+ SIGCHLD-handling edifice that collects children's exit statuses as
+ they die.
+
+ * lib/pipeline.c (pipeline_new): Initialize statuses.
+ (pipeline_join): Set statuses to NULL in joined pipeline.
+ (pipeline_join, pipeline_get_infile, pipeline_get_outfile,
+ pipeline_start, pipeline_wait): Assert that statuses field is NULL
+ or non-NULL as appropriate.
+ (pipeline_free): Free statuses if necessary.
+
+ (pipeline_start): Add p to a new active_pipelines array, to be
+ used while reaping children. Initialize statuses elements to -1.
+ Block SIGCHLD while forking children.
+ (reap_children): New function. Delivers collected exit statuses
+ into statuses fields of entries in active_pipelines.
+ (pipeline_wait): Rather than wait()ing manually here, check
+ whether any statuses have been picked up by the SIGCHLD handler,
+ and if not call reap_children(). Remove now-obsolete TODO comment.
+ (pipeline_sigchld): New function, the SIGCHLD handler.
+ (pipeline_install_sigchld): New function, to be called once per
+ program.
+
+ (pipeline_start, pipeline_wait): Add minimal debugging
+ information.
+
+ * lib/pipeline.h: Prototype new functions.
+ (struct pipeline): New statuses member.
+
+Sat Aug 9 17:00:12 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_dup): Copy cmd->nice.
+ (pipeline_command): Correct condition for growing commands array.
+
+Mon Aug 4 20:44:16 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (HISTORY): Rearrange text to avoid having
+ "Wilf." at the end of a line, since groff thinks that's the end of
+ a sentence and adjusts spacing accordingly. (Alternatively, I
+ could have used \&.)
+
+Mon Aug 4 19:35:26 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_dup): Terminate argv with a NULL.
+ (command_dup, command_arg): Assert that argc < argv_max after
+ changing either.
+
+Mon Aug 4 19:30:22 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_dump): New function to dump a printable
+ representation of a pipeline to a stream.
+ (pipeline_tostring): Likewise, but to a newly allocated string.
+ * lib/pipeline.h: Prototype these.
+
+Mon Aug 4 12:03:38 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (argstr_get_word): Plug some memory leaks.
+
+Mon Aug 4 01:05:12 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_wait): The return value was a bit
+ groff-specific. Now just return the status of the last command in
+ the pipeline, as reported by wait().
+
+Mon Aug 4 00:31:44 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Add support for getting stdio streams for input and output. Needs
+ library support because pipeline_wait() needs to know to close the
+ stream rather than the underlying file descriptor.
+
+ * lib/pipeline.h (struct pipeline): New infile and outfile members.
+ (pipeline_get_infile, pipeline_get_outfile): Add prototypes.
+ * lib/pipeline.c (pipeline_new): Initialize infile and outfile.
+ (pipeline_join): Likewise.
+ (pipeline_get_infile, pipeline_get_outfile): New functions.
+ (pipeline_wait): Check for infile and outfile and fclose() them in
+ preference to close()ing infd and outfd. Check for errors on
+ close().
+
+Sun Aug 3 23:59:18 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Use dup2() instead of close()
+ then dup().
+
+Sun Aug 3 23:52:14 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ infd and outfd should now only be set by pipeline_start(). Positive
+ values in want_in and want_out now indicate caller-supplied file
+ descriptors, while negative values indicate a request for
+ pipeline_start() to create a pipe.
+
+ * lib/pipeline.h (struct pipeline): Document this.
+ * lib/pipeline.c (pipeline_start): Implement it. Caller-supplied
+ input and output file descriptors previously didn't work properly.
+ (pipeline_wait): Update TODO comment.
+
+Sun Aug 3 21:07:46 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (struct command): New 'nice' member.
+ * lib/pipeline.c (command_new): Initialize nice.
+ (pipeline_start): Change child process priority if nice is set.
+
+Sun Aug 3 20:50:35 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (pipeline_start): Pop all cleanups in child.
+
+Sun Aug 3 20:47:24 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (argstr_get_word, command_new_argstr,
+ command_argstr, pipeline_command_argstr): New functions to handle
+ constructing commands from shell-quoted strings, such as those
+ found in man-db configuration files. They deliberately handle only
+ a safe subset of shell syntax.
+ * lib/pipeline.h: Prototype command_new_argstr(), command_argstr(),
+ and pipeline_command_argstr().
+
+Sun Aug 3 19:09:59 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c (command_dup): New function to duplicate a command.
+ (pipeline_join): New function to join two pipelines together.
+ * lib/pipeline.h: Prototype these.
+
+Sun Aug 3 18:00:59 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd,
+ and readfd names turn out to be confusing in calling code. Rename
+ to want_in, want_out, infd, and outfd respectively.
+ * lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use
+ new names.
+
+Sun Aug 3 16:35:24 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Add support in pipeline library for writing input to or reading
+ output from the whole pipeline.
+
+ * lib/pipeline.c (pipeline_new): Initialize writeto, readfrom,
+ writefd, and readfd.
+ (pipeline_start): Create extra pipes as necessary.
+ (pipeline_wait): Expand TODO comment. Close file descriptors from
+ extra pipes if necessary.
+ * lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd,
+ and readfd.
+
+Sun Aug 3 11:15:17 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/pipeline.c: New pipeline library, adapted from that in groff.
+ The interface isn't complete yet; in particular, it can't be a
+ replacement for popen() at the moment.
+ * lib/pipeline.h: New file with pipeline library interface.
+ * lib/Makefile.in (ALLSRCS, ALL): Build pipeline.
+
+Sun Aug 3 11:09:07 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_FUNC_STRSIGNAL): New macro to check for the GNU
+ extension strsignal().
+ * configure.in: Use it.
+ * lib/xstrsignal.c: New file, wrapping strsignal() or sys_siglist
+ depending on what's available (and with a saner return type than
+ strsignal()).
+ * lib/Makefile.in (ALLSRCS, XOBJS): Build xstrsignal.
+ * include/manconfig.h.in (xstrsignal): Add prototype.
+
+Sun Aug 3 10:57:55 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * include/comp_src.h.in: Protect against multiple inclusions.
+
+Sat Aug 2 19:32:04 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Document the recent security fixes.
+
+Sat Aug 2 12:31:24 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/error.c (error_print_progname): Use a proper prototype.
+
+Sat Aug 2 01:23:08 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * tools/checkman: Tolerate spaces in NAME sections, since they occur
+ in practice and confused checkman before this. Prompted by a
+ question from James B. Hiller.
+
+Fri Aug 1 22:06:33 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix vulnerability due to over-permissiveness of DEFINE directive.
+
+ * src/manp.c (DEFINE_USER): New list flag.
+ (get_def): Note that this must not return DEFINEs set in
+ ~/.manpath.
+ (get_def_user): New function, which may return DEFINEs set in
+ ~/.manpath.
+ (add_def): Use DEFINE or DEFINE_USER depending on context.
+ (add_to_dirlist): Update call to add_def().
+ * src/manp.h (get_def_user): Add prototype.
+
+ * src/man.c (main): pager and cat are safe for the user to define.
+ (make_display_command): cat, tr, and decompressor are safe.
+ * src/straycats.c (check_for_stray): col and decompressor are safe.
+ * src/whatis.c (use_grep): whatis_grep_flags,
+ apropos_regex_grep_flags, apropos_grep_flags, and grep are safe.
+
+Fri Aug 1 01:32:37 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Minor whitespace cleanups.
+
+Fri Aug 1 01:05:42 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (mkcatdirs): Allocate manname and catname dynamically.
+
+Wed Jul 30 22:28:13 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix vulnerability 4 posted by Vade 79 <v9@fakehalo.deadpig.org> on
+ BugTraq, Message-ID:
+ <20030729210308.15518.qmail@www.securityfocus.com>. This fix is just
+ a stopgap measure for now; proper list handling will be added later.
+
+ * src/manp.c (gripe_overlong_list): New function.
+ (add_dir_to_list): Die gracefully if too many list entries are
+ added.
+ (add_dir_to_path_list): Likewise. Take an extra argument for the
+ head of the list so that we can spot this efficiently.
+ (create_pathlist): Update calls to add_dir_to_path_list().
+
+Wed Jul 30 22:15:16 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (gripe_reading_mp_config): This is a fatal error, so
+ shouldn't be conditional on quiet.
+
+Wed Jul 30 20:48:57 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix vulnerability 1 posted by Vade 79 <v9@fakehalo.deadpig.org> on
+ BugTraq, Message-ID:
+ <20030729210308.15518.qmail@www.securityfocus.com>.
+
+ * src/manp.c (add_to_dirlist): Limit all sscanf() calls to the
+ appropriate buffer size. Leave a TODO to say that a replacement
+ that allocates its own memory would be welcome.
+
+Wed Jul 30 20:38:40 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Fix vulnerabilities 2 and 3 posted by Vade 79
+ <v9@fakehalo.deadpig.org> on BugTraq, Message-ID:
+ <20030729210308.15518.qmail@www.securityfocus.com>.
+
+ * src/ult_src.c (ult_softlink): Return a newly allocated string
+ rather than copying into fullpath.
+ (test_for_include): Return a newly allocated string rather than
+ copying into rel (which was a pointer into part of basename in
+ ult_src(), and wasn't reallocated in the event that the .so text
+ was too large).
+ (ult_src): Allocate basename dynamically rather than using a
+ static buffer. relative is no longer needed. Update for changes in
+ ult_softlink() and test_for_include().
+
+Wed Jul 30 12:33:25 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (close_cat_stream): The unlink(tmp_cat_file) cleanup is
+ only pushed if (!debug), so apply the same condition to popping
+ it.
+
+Wed Jul 30 12:21:20 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/descriptions.c (parse_descriptions): Revert this part of
+ xstrdup(NULL) change from 28 April 2003; head->whatis is undefined
+ if the else branch was taken.
+
+Wed Jul 30 10:40:06 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (find_in_path): Avoid leaking filename for each PATH
+ element.
+
+Wed Jul 30 10:36:22 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): Don't free command until after
+ printing the error message that includes it.
+
+Wed Jul 30 10:23:50 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Return non-zero with an error message if no
+ databases were updated. Required so that man knows not to call
+ mandb over and over again.
+
+Sat Jun 28 01:26:55 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/it_IT.88591/man1/apropos.man1: Use %date% rather than
+ %date_it% (which the build system no longer supports).
+
+Sat Jun 28 00:23:02 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1: Clarify section 3 as "program libraries" rather
+ than "system libraries".
+
+Tue May 6 00:50:25 CEST 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * Updated the apropos italian man page.
+
+Mon May 5 19:47:07 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (set_term, get_term, store_line_length): Use the
+ fileno() of stdin and stdout respectively instead of literal 0 and
+ 1.
+ * src/ult_src.c (ult_src): Use STRNEQ() instead of strncmp().
+
+Mon May 5 18:35:02 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Czech -> ISO-8859-2.
+
+Thu May 1 19:12:54 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (CFLAGS): Add -Wpointer-arith and -Wstrict-prototypes
+ for gcc.
+
+ * src/man.h: Move prototype from convert_name.c to ...
+ * src/convert_name.h: ... here (new file).
+ * src/convert_name.c: Include "convert_name.h". Add some TODO
+ comments.
+ * src/man.c: Include "convert_name.h".
+
+ * lib/error.c: Include "error.h". Prototype strerror() fully.
+ * lib/tempfile.c: Include "manconfig.h" instead of prototyping
+ strappend() and xstrdup(). Prototype path_search() fully.
+ * lib/xmalloc.c: Remove most K&R compatibility, since it's not
+ really supported elsewhere in man-db.
+ * src/globbing.c: Include "globbing.h".
+ (match_in_directory): Add static.
+ * src/man.c (set_term, get_term): Add static.
+ (int_handler): Move above main(), and add static.
+ (main): Remove int_handler() prototype.
+ (make_roff_command, format_display_and_save): Prototype
+ old_handler fully.
+ (open_cat_stream, display_catman): Cast to cleanup_fun rather than
+ to an incomplete prototype.
+ * src/manp.c (guess_manpath): Add static.
+ * src/security.c (gripe_set_euid): Prototype fully.
+ * src/ult_src.c (realpath): Move prototype to the non-STDC_HEADERS
+ case.
+
+ * src/lexgrog.l: Add '%option warn'.
+
+Thu May 1 17:39:55 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (CFLAGS): Add -W for gcc.
+
+ * lib/hashtable.c (hash): Change array index type to size_t.
+ * src/globbing.c (dirent_hash_free, match_in_directory): Likewise.
+
+ * src/check_mandirs.c (purge_pointers): Remove unused manpath
+ argument.
+ * src/check_mandirs.h (purge_pointers): Update prototype.
+ * src/mandb.c (update_one_file): Update call to purge_pointers().
+
+ * src/catman.c (catman): Remove unused arg_no argument.
+ (do_catman): Update call to catman().
+ * src/man.c (make_roff_command): dir is unused except #ifdef
+ ALT_EXT_FORMAT.
+ * src/mandb.c (cleanup): dummy is unused.
+ * src/ult_src.c (ult_hardlink): Change type of inode to ino_t.
+ (ult_softlink): mantree is unused.
+ (ult_src): Update call to ult_softlink().
+ * src/whatis.c (apropos): lowpage is unused except #ifdef APROPOS.
+ * src/wrapper.c (main): argc is unused.
+
+Thu May 1 16:52:44 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Remove all assumptions that string literals have type 'char *'
+ rather than 'const char *'.
+
+ * configure.in (CFLAGS): Add -Wwrite-strings for gcc.
+
+ * lib/tempfile.c (xstrdup): First argument is const.
+ (path_search): Return 'const char *'.
+ (create_tempfile, create_tempdir): Copy return value of
+ path_search() right away rather than after checking for NULL.
+
+ * libdb/db_ver.c (dbver): Take a private copy of VER_KEY.
+ (dbver_wr): Take private copies of VER_KEY and VER_ID.
+
+ * src/accessdb.c (cat_root): Add const.
+ * src/catman.c (parse_for_sec): Remove __inline__; add const to both
+ arguments. Take private copies of "man" and the basic options.
+ (main): Copy "C" for locale. Make sections etc. 'const char **',
+ since STD_SECTIONS is an array of 'const char *'.
+ * src/check_mandirs.c (update_db_time, reset_db_time, update_db):
+ Take a private copy of KEY.
+ * src/filenames.c (make_filename): Make type const.
+ * src/filenames.h (make_filename): Update prototype.
+ * src/globbing.c (extension, mandir_layout): Add const.
+ * src/lexgrog.l (fname): Add const.
+ (find_name): Make filename const.
+ (main): Set program_name here from argv[0] rather than from a
+ string literal.
+ * include/manconfig.h.in (find_name): Update prototype.
+ * src/man.c (lang_dir): Add static. Copy string literals into ld.
+ Use xstrndup() rather than copying and then inserting '\0'.
+ (extension, alt_system_name, section_list, preprocessors, pager,
+ locale, std_sections, external, gxditview, html_pager): Add const.
+ (add_roff_line_length): First argument is const. Return a copy of
+ it if necessary.
+ (gripe_no_man): Copy external before passing it to basename().
+ (main): Copy "C" for internal_locale. Reorganize locale
+ reinitialization slightly so that locale can be const.
+ (man_getopt): Set 'const char *' and 'char *' variables to NULL
+ separately.
+ (is_section, compare_candidates, man): Use a 'const char **' to
+ iterate through section_list.
+ (make_roff_command): Remove __inline__. Take a copy of "" for dev
+ so that dev is always allocated memory. Handle filter in a more
+ const-safe way (although there's still a memory leak).
+ (get_section_list): Remove __inline__. Return 'const char **'.
+ * src/man.h (get_section_list): Update prototype.
+ * src/manp.c (get_from_list): Make return value and first argument
+ const.
+ (get_def): Make return value and both arguments const.
+ (get_sections): Return const.
+ (cat_manpath): Make path and catdir const.
+ * src/manp.h (get_def, get_sections): Update prototypes.
+ * src/manpath.c (main): Make alt_system const.
+ * src/whatis.c (use_grep): Make flags and anchor const.
+ (main): Make manp and alt_systems const. Copy "C" for locale.
+ * zsoelim/zsoelim.l (main): Copy argv[0] basename for program_name,
+ as basename()'s return value may not be long-lived. Copy "-" for
+ so_name[0].
+
+ * src/mandb.c (main): Don't bother remembering the return value of
+ setlocale().
+ * src/manpath.c (main): Likewise.
+
+Mon Apr 28 15:11:28 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (main): Don't guard xstrdup() from NULL input, as it
+ checks itself.
+ * src/check_mandirs.c (test_manfile): Likewise.
+ * src/descriptions.c (parse_descriptions): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+
+Mon Apr 28 09:06:28 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Introduce a readdir() cache, which substantially speeds up mandb's
+ purging functions (from 2 minutes to under 45 seconds on my laptop,
+ and from about 280000 to about 13500 system calls).
+
+ * src/globbing.c (dirent_hash_free, update_directory_cache): New
+ functions.
+ (match_in_directory): Use update_directory_cache() rather than
+ reading the directory on every call.
+ * docs/NEWS: Document this.
+
+Mon Apr 28 00:51:11 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (hash_lookup): Return the definition rather than
+ the hash entry structure. This turns out to be a lot more useful.
+ * lib/hashtable.h (hash_lookup): Update prototype.
+ * src/man.c (try_db): Simplify; in_cache is no longer needed. Just
+ assign to the target variable directly.
+ * src/check_mandirs.c (test_manfile): Likewise. xstrdup() already
+ checks for NULL input, so don't bother checking here.
+
+Tue Apr 22 19:56:13 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/HACKING: New prototypical document for developers.
+
+Tue Apr 22 19:48:46 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (parse_layout, look_for_file): Add a BSD layout in
+ which cat pages have the extension .0 (Jeremy C. Reed). More work
+ is needed elsewhere so that man can write such cat pages, though.
+ * configure.in (--enable-mandirs): Add BSD layout.
+ * manual/intro.me (Arguments to configure): Document
+ --enable-mandirs=BSD.
+ * README: Sync with manual/intro.me.
+
+Tue Apr 22 19:38:03 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * libdb/COPYING.LIB: Remove (obsoleted in favour of
+ docs/COPYING.LIB).
+ * GNUmakefile.in (_docs, _libdb): Include COPYING.LIB from docs/
+ rather than libdb/.
+
+Tue Apr 22 19:34:30 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * tools/mandb_[nt]fmt-script: Correct "# !" to "#! " on the shebang
+ line.
+
+Tue Apr 15 18:16:30 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in (LFLAGS): Provide -8 and -B as separate arguments.
+ flex 2.5.31 is stricter about this.
+ * zsoelim/Makefile.in (LFLAGS): Likewise.
+
+Sun Apr 13 14:36:29 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/encodings.c (directory_table): Add Hungarian -> ISO-8859-2.
+
+Sun Apr 13 13:39:38 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Return 0 if the source file doesn't exist, so
+ that the caller can go on and silently create a non-existent
+ database rather than bailing out.
+
+Sun Apr 13 12:49:33 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c: Remove DO_CHOWN define and simply use SECURE_MAN_UID.
+
+Thu Apr 10 23:51:43 BST 2003 Byrial Ole Jensen <byrial@image.dk>
+
+ * po/da.po: Update from Translation Project.
+
+Mon Apr 7 09:12:27 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man): Call local_man_loop() straight away if name
+ contains a slash. Make the number of pages found an output
+ argument rather than the return value, so that we can include
+ local_man_loop()'s return behaviour.
+ (main): Update throughout for new man() signature. Don't call
+ local_man_loop() if man() returns an error, as man() now sorts
+ that out for itself.
+ * src/man.h (man): Update prototype.
+
+Mon Apr 7 08:09:08 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * include/Defines.in: Generate dependencies in .depend rather than
+ the current directory. Suppress echoing of dependency generation
+ commands.
+ * libdb/Makefile.in: Remove .depend directory on distclean. Always
+ use dependencies (except on clean), not just when --enable-debug
+ was passed to configure.
+ * src/Makefile.in: Likewise. Set up $(DEFS_*) variables so that the
+ correct flags are used when generating dependencies.
+ * libdb/.cvsignore, src/.cvsignore: Ignore .depend.
+
+ * configure.in: Remove now-redundant --enable-debug option. Remove
+ search for libefence if --enable-debug is used; using it with
+ LD_PRELOAD is generally more convenient anyway.
+ * README, manual/intro.me (Arguments to configure): Remove
+ documentation for --enable-debug.
+ * docs/NEWS: Document the removal.
+
+Mon Apr 7 01:02:27 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/ja_JP.eucJP/man1/man.man1: Replace "%date%" with the Japanese
+ "ima", meaning "now" or "the present time" (thanks, Liyang Hu).
+
+Mon Apr 7 00:04:30 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Don't generate language-specific date variants for
+ man pages, as that requires all the relevant locales to be
+ installed on the build machine. Use the ISO 8601 date format
+ instead.
+ * include/Defines.in: Remove obsolete substitutions of date_it,
+ date_es, date_de, and date_fr.
+ * man/Makefile.in: Likewise.
+ * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5,
+ man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1,
+ man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8,
+ man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5,
+ man/it_IT.88591/man8/*.man8 (.TH): Replace "%date_de%",
+ "%date_es%", and "%date_it%" substitutions by plain "%date%".
+ * man/man1/man.man1 (HISTORY): "%date%" -> "present day".
+ * man/it_IT.88591/man1/man.man1 (STORIA): Similarly, "%date_it%" ->
+ "presente" (present day).
+
+Sun Apr 6 21:39:36 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Ignore LANGUAGE if a locale is explicitly
+ specified using the -L/--locale option.
+
+Sun Apr 6 20:28:57 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ Revamp locale encoding support. The old code made the incorrect
+ assumption that the source encoding of manual pages is dependent on
+ the locale.
+
+ If MULTIBYTE_GROFF is defined then man will assume that it is using
+ a version of groff with the multibyte patch applied, which supports
+ some additional locales.
+
+ * src/man.c (lang_table, determine_lang_table): Remove.
+ (lang_dir): Return "C" if there is no language directory element.
+ (make_roff_command): Find out the source encoding for the
+ requested man page and the default device for the current locale,
+ and use these to select a device more intelligently. Insert an
+ iconv pipe if the source encoding differs from the input *roff
+ encoding for the current device.
+ * src/encodings.c: New file. There are three tables replacing the
+ old lang_table: directory_table, charset_table, and device_table.
+ (get_source_encoding): New function, returning the assumed source
+ encoding for the current page from directory_table.
+ (get_default_device): New function, returning the default *roff
+ output device based on the current locale from charset_table.
+ (get_roff_encoding): New function, returning the input encoding
+ expected by *roff from device_table. This is always ISO-8859-1
+ unless MULTIBYTE_GROFF is defined (this is still a subject of some
+ debate, and will be UTF-8 for all devices in groff 2).
+ * src/encodings.h: Prototype new functions.
+ * src/Makefile.in (man): Add encodings.o.
+ * docs/NEWS: Document the above.
+
+Sun Mar 30 23:14:47 BST 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (SYNOPSIS): Both -H and -T take optional
+ arguments. The fact that they're optional means that no space is
+ allowed between the option and its argument (thanks to Peter Muir
+ for that observation).
+ (OPTIONS): Likewise. Document the 'browser' argument to -H.
+ Correct a couple of hyphens to dashes.
+
+Fri Mar 28 09:23:19 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Protect ruid/euid debugging statement with
+ #ifdef SECURE_MAN_UID.
+ (commit_tmp_cat): Likewise for temporary cat ownership code.
+ * src/security.c (drop_effective_privs, regain_effective_privs):
+ priv_drop_count is only declared #ifdef SECURE_MAN_UID. Move the
+ corresponding directives so that these functions are no-ops if
+ that symbol isn't defined.
+ * docs/NEWS: Document this.
+
+Wed Mar 26 15:04:00 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * manual/format.me: Correct location of example external formatter
+ script.
+
+Tue Mar 25 04:15:41 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Use AC_MSG_NOTICE throughout rather than MAN_ECHO.
+ Move the definition of MAN_ECHO_VAR to just above its only uses.
+
+Tue Mar 25 03:44:06 GMT 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * po/it.po: Update.
+
+Tue Mar 25 03:41:13 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (parse_name): Free lowdbname before returning.
+
+Tue Mar 25 03:38:39 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: Remove unused
+ definitions of VOID.
+
+Sun Mar 16 00:51:12 GMT 2003 Jeremy C. Reed <reed@reedmedia.net>
+
+ * configure.in (--enable-mandirs): Use 'mandirs' rather than
+ 'mandir', as the latter clashes with an autoconf variable.
+
+Wed Mar 12 13:17:45 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (gripe_bad_multi_key): This function has been
+ unused since 24 June 2002 (noticed by Giuseppe Sacco). Remove.
+ * libdb/db_storage.h (gripe_bad_multi_key): Remove prototype.
+
+Tue Mar 11 21:17:56 GMT 2003 Giuseppe Sacco <eppesuig@debian.org>
+
+ * po/it.po: Update.
+
+Mon Mar 10 17:20:46 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c, libdb/db_delete.c, libdb/db_gdbm.c,
+ libdb/db_lookup.c, libdb/db_ndbm.c, libdb/db_storage.h,
+ libdb/db_store.c, libdb/db_ver.c: Style cleanup (as with src/* on
+ 28 May 2001). No functional changes.
+
+Mon Mar 10 15:55:34 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (EVERYTHING, ALL): Move intl ahead of libdb. (Not
+ 'make -j'-clean, though ...)
+ * libdb/Makefile.in: Use '$(top_srcdir)' rather than '..'
+ throughout. Add $(top_srcdir)/intl to the include path if USE_NLS
+ is set.
+
+Mon Mar 10 15:24:04 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (AC_CONFIG_HEADER): Generate config.h rather than
+ include/config.h. intl/Makefile.in is insistent on config.h being
+ in the top-level directory.
+ * GNUmakefile.in, manual/comp.me: Replace 'include/config.h' with
+ 'config.h' throughout.
+ * .cvsignore, include/.cvsignore: Update for new config.h and
+ config.h.in locations.
+
+Mon Mar 10 15:00:32 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/mkdtemp.c: Define __GT_DIR if necessary.
+ * lib/tempfile.c: Prototype mkstemp() and mkdtemp().
+
+Mon Mar 10 14:46:39 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/tempname.c: Include "config.h" rather than <config.h>.
+
+Mon Mar 3 22:00:03 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Remove silly calls to fclose() on null
+ pointers.
+
+Sun Mar 2 20:37:08 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Save errno before performing operations that
+ might change it. Close ifp as well if an error occurs while
+ opening ofp.
+
+Fri Feb 28 01:50:21 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (find_in_path): path needs to be preserved in order to
+ be freed safely, or else we segfault. Use a temporary variable for
+ strsep() instead.
+
+Mon Feb 24 17:05:25 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (OPTIONS): Only use the \[shc] character if it's
+ available, which is the case on groff's latin1 and utf8 devices
+ but not on others. Otherwise, use \(hy.
+
+Mon Feb 24 00:17:39 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example (OPTIONS): Move the note about '\-' versus
+ '-' from a comment into displayed text.
+
+Sun Feb 23 00:34:12 GMT 2003 Alexandre Folle de Menezes <afmenez@terra.com.br>
+
+ * po/pt_BR.po: Update from Translation Project.
+
+Sat Feb 22 18:32:58 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_CHECK_BDB): Remove some extra calls to
+ AC_MSG_RESULT, since AC_CACHE_CHECK already calls that.
+
+Sat Feb 22 18:10:14 GMT 2003 Morten Brix Pedersen <morten@wtf.dk>
+
+ * po/da.po: Translate a few more strings.
+
+Sat Feb 22 18:06:09 GMT 2003 Alexandre Folle de Menezes <afmenez@terra.com.br>
+
+ * po/pt_BR.po: Update from Translation Project.
+
+Sat Feb 22 17:50:55 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in: Fix typo ("developement" -> "development").
+ * src/manp.c (add_to_dirlist): Fix typo ("mach" -> "match").
+
+Sat Feb 22 17:41:07 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (read_config_file): If user_config_file is non-NULL,
+ use it instead of ~/.manpath. Programs can now set the user
+ configuration file to be used.
+
+ * src/catman.c, src/mandb.c, src/manpath.c, src/whatis.c
+ (long_options): Add -C/--config-file option.
+ (usage): Document it.
+ (main): Handle it.
+ * src/man.c (long_options): Add -C/--config-file option.
+ (usage): Document it, along with adding -i and -I to the synopsis.
+ (man_getopt): Handle it.
+ * man/man1/apropos.man1, man/man1/man.man1, man/man1/manpath.man1,
+ man/man1/whatis.man1, man/man8/catman.man8, man/man8/mandb.man8
+ (SYNOPSIS): Add -C.
+ (OPTIONS): Describe -C/--config-file.
+
+ * docs/NEWS: Document this addition.
+
+Fri Feb 21 18:32:21 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in (man): lexgrog.o is no longer needed. Removing it
+ takes 24K off the size of a stripped man binary on Linux/i386.
+
+Fri Feb 21 18:12:45 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Improve error handling.
+ (mandb): Since xcopy() now returns int, handle its return value.
+
+Fri Feb 21 16:40:26 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (find_in_path): New function to look for executables on
+ the $PATH.
+ (gripe_no_man): Only emit the "undocumented" message if a
+ corresponding executable is found on the $PATH.
+ * docs/NEWS: Document this.
+
+Fri Feb 21 16:26:00 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Preliminary entries for 2.4.2.
+
+Fri Feb 21 15:49:08 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * zsoelim/zsoelim.l: Internationalize usage and error messages.
+
+Fri Feb 21 15:46:04 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (gripe_bogus_manpage, make_filename,
+ filename_info): Move to ...
+ * src/filenames.c: ... here.
+ * src/check_mandirs.h: Move corresponding prototypes to ...
+ * src/filenames.h: ... here.
+
+ * src/check_mandirs.c (purge_pointers): New function to purge any
+ entries whose pointers refer to a given name.
+ * src/check_mandirs.h (purge_pointers): Add prototype.
+ * src/mandb.c (long_options): Add -f/--filename option.
+ (usage): Document it, along with -t/--test.
+ (update_one_file): New function to update a single file in an
+ existing database.
+ (update_db_wrapper): Call update_one_file() if using --filename.
+ (main): Handle --filename option. If using --filename, only call
+ mandb() if the manpath prefix matches.
+ * man/man8/mandb.man8 (SYNOPSIS): Improve *roff style and document
+ -p. Add separate call summary for when -f is used.
+ (OPTIONS): Document -f.
+
+ * lib/hashtable.c (hash_remove): New function to remove an entry
+ from a hash table.
+ * lib/hashtable.h (hash_remove): Add prototype.
+
+ * libdb/db_store.c (replace_if_necessary): Replace entries with ids
+ other than ULT_MAN too, so that their timestamps can be updated.
+ Add more debugging output.
+ * src/man.c (need_to_rerun): Remove.
+ (display_database): Remove code to check whether pages found in
+ databases are up to date. This is done elsewhere now.
+ (run_mandb): New function, used instead of updating databases
+ directly.
+ (main): Call run_mandb() instead of need_to_rerun().
+ (maybe_update_file): New function to check whether a page found in
+ a database is up to date. If not, use run_mandb() to recache it.
+ (try_db): Use run_mandb() rather than create_db(). Use #defines
+ for special return values rather than magic numbers. Check whether
+ pages are up to date as they're found.
+ (locate_page): If try_db() returns TRY_DATABASE_UPDATED (i.e.
+ mandb was called to update some pages), call it again.
+ (display_pages): Use a switch with named candidate types instead
+ of an if.
+
+ * src/Makefile.in (DEFS_man.o): Add definition for MANDB.
+ (man): Database code is no longer needed. Add filenames.o.
+ (mandb): Add filenames.o.
+
+Mon Feb 17 23:28:55 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/manpath.c: Remove unused prototypes.
+
+Tue Jan 21 01:42:16 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy, main): Minor whitespace cleanups.
+ * src/ult_src.c: Fix typo (loosing -> losing).
+
+Mon Jan 6 03:25:16 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display_pages): Drop privileges if candp->path is a
+ user manpath. Inner code generally dropped privileges anyway,
+ certainly when running external commands, but the absence of this
+ drop meant that pages in non-world-readable user manpaths could
+ not be read.
+
+Mon Jan 6 03:19:57 GMT 2003 Colin Watson <cjwatson@debian.org>
+
+ * lib/error.c (error): Print a backtrace if the BACKTRACE_ON_ERROR
+ symbol is defined. This undoubtedly isn't portable and is not
+ intended for production use; it's just a last-resort way to get a
+ backtrace when the usual methods fail, chiefly when running
+ setuid.
+
+Tue Dec 31 04:39:03 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man): If update is set, need_to_rerun() will always
+ have been called already by now. Remove this redundant code.
+
+Tue Dec 31 04:26:50 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/apropos.man1, man/man1/lexgrog.man1,
+ man/man1/manpath.man1, man/man1/whatis.man1,
+ man/man1/zsoelim.man1: --version no longer displays author
+ information.
+
+Sun Dec 29 19:57:55 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c, src/check_mandirs.h: Move page_description
+ interface functions to ...
+ * src/descriptions.c, src/descriptions.h: ... here (new files).
+ * src/Makefile.in (man, mandb): Link descriptions.o.
+
+ * libdb/db_storage.h: Include libdb/mydbm.h for the datum type.
+
+Sun Dec 29 19:51:11 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Add commas between short and long options in usage
+ output.
+
+ * src/accessdb.c (main): Support -h/--help and -v/--version options.
+ (usage): Document them. Move MAN_DB outside translatable string.
+ * man/man8/accessdb.man8 (SYNOPSIS, OPTIONS): Document new options.
+ (AUTHOR): Add myself.
+ * src/globbing.c (long_options, args, main): Support -h/--help and
+ -v/--version options.
+ (usage): New function.
+ * zsoelim/zsoelim.l: Support long option forms of -C (--compatible),
+ -h (--help), and -V (--verbose).
+ * man/man1/zsoelim.man1: Document long options.
+
+ * src/Makefile.in: Link $(TOOLS) as well as $(PROGS) with version.o.
+
+Sun Dec 29 19:40:46 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ Patch partly by Werner Fink <werner@suse.de>.
+
+ * src/whatis.c (args, long_options): Add -v/--verbose option.
+ (usage): Document it.
+ (get_whatis): Print pointer loop warnings only if --verbose.
+ (main): Handle --verbose option.
+ * man/man1/apropos.man1 (OPTIONS): Document --verbose.
+ * man/man1/whatis.man1 (OPTIONS): Likewise.
+
+Sun Dec 22 23:30:12 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (test_manfile): Initialize the mandata struct
+ on the stack to zero.
+ (count_glob_matches): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/man.c (try_section): Use infoalloc() (which initializes the
+ mandata struct to zero) rather than malloc(). This had caused
+ several uses of uninitialized memory (Debian bug #168584).
+
+ * src/check_mandirs (purge_whatis): Compare info->pointer against
+ "-", not just its first character.
+
+Sun Dec 22 19:29:38 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.1.
+ * docs/NEWS, man-db.gnu, man-db.lsm: Update.
+
+Sun Dec 22 18:19:09 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c (btree_findkey): Cast key.dsize to int when using
+ it as an fprintf() field width.
+
+Sun Dec 22 18:15:51 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ Patch inspired by part of SuSE's diff, although not identical.
+
+ * GNUmakefile.in: Export DESTDIR.
+ * man/Makefile.in, src/Makefile.in, zsoelim/Makefile.in: Honour
+ DESTDIR when installing and uninstalling files.
+
+Sun Dec 22 14:14:37 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Don't update .po files automatically, since
+ they're kept under revision control.
+
+Sun Dec 22 13:59:23 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
+
+Sun Dec 22 13:44:20 GMT 2002 Alexandre Folle de Menezes <afmenez@terra.com.br>
+
+ * po/pt_BR.po: Update from Translation Project.
+
+Sat Dec 21 13:30:43 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (count_glob_matches): Exclude file names which
+ fail stat(), such as dangling symlinks.
+
+Sat Dec 21 03:01:34 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (count_glob_matches): New function,
+ sanity-checking results from look_for_file(). This should probably
+ be done in look_for_file() itself eventually, but that requires
+ more widespread changes.
+ (purge_normal, purge_whatis): Use it.
+
+ * src/check_mandirs.c (gripe_bogus_manpage, gripe_rwopen_failed,
+ filename_info, purge_normal, purge_whatis): Constify arguments.
+ * src/check_mandirs.h (filename_info): Update prototype.
+
+ * docs/NEWS: Document --enable-mandirs guesswork.
+ * src/.cvsignore: Add the globbing test executable.
+
+Fri Dec 20 15:38:48 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (main): Make the test program compile again, and
+ add full argument parsing.
+ * src/Makefile.in (globbing): Link with util.o.
+
+Fri Dec 20 15:34:51 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Guess the --enable-mandirs setting where possible if
+ it isn't specified explicitly.
+
+Fri Dec 20 02:28:15 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (purge_missing): Match database entries
+ against real filenames using the name field where available, not
+ the lowercased field.
+
+Fri Dec 20 02:15:21 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (mandb): If force_rescan is set, delete the database
+ and recreate it from scratch.
+ * src/check_mandirs.c (testmandirs): force_rescan is handled
+ elsewhere now.
+ (purge_normal, purge_whatis): Remove inline qualifier.
+ (check_multi_key): New function to check for broken multi keys
+ such as those generated by 2.4.0.
+ (purge_missing): Call check_multi_key() where necessary.
+
+ * src/lexgrog.l (find_name): Revert change of 27 November 2002, as
+ calling ult_src() inside find_name() breaks mandb (which already
+ calls ult_src() itself). Instead:
+ (main): Do the ult_src() resolution here for each element of argv.
+
+ * src/ult_src.c (ult_src): 'name' argument is const.
+ * src/lexgrog.l (find_name): 'file' argument is const.
+ * include/manconfig.h.in, src/ult_src.h: Update prototypes.
+
+Mon Dec 16 05:28:34 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ From SuSE's diff:
+
+ * lib/error.c: Add 'extern' to prototypes.
+ * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: #include
+ "manconfig.h" rather than using an explicit prototype.
+ * lib/xstrdup.c (xstrdup): 'string' should be const.
+
+ * po/cs.po: Fix a format string.
+
+ * src/lexgrog.l: Add Japanese translation of NAME.
+ * src/man.c: 'wd', 'cwd', and local_man_loop() are static.
+
+Mon Dec 16 04:30:39 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: 'test "$foo"' => 'test -n "$foo"' throughout. Taken
+ from SuSE's diff.
+
+Wed Dec 4 21:02:48 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/lexgrog.man1: Replace `, ', and - (for literal dash
+ rather than hyphen) with \(oq, \(cq, and \- respectively.
+ (NOTES): lexgrog attempts to handle .so requests now.
+
+Tue Dec 3 01:39:54 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Only set multiple_locale if it's going to be
+ used. Look at multiple_locale rather than internal_locale when
+ performing special $LANGUAGE handling.
+
+Mon Dec 2 14:08:08 GMT 2002 Michael Piefel <piefel@informatik.hu-berlin.de>
+
+ * po/de.po: Fix a missing newline.
+
+Mon Dec 2 13:58:55 GMT 2002 Michael Piefel <piefel@informatik.hu-berlin.de>
+
+ * po/de.po: Update from Translation Project.
+
+Fri Nov 29 15:40:21 GMT 2002 Jordi Mallach <jordi@sindominio.net>
+
+ * po/ca.po: Update from Translation Project.
+
+Wed Nov 27 20:27:59 GMT 2002 Christian Rose <menthos@menthos.com>
+
+ * po/sv.po: Update from Translation Project.
+
+Wed Nov 27 02:43:03 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.1-pre1 (for translators).
+ * docs/NEWS: Update.
+
+Wed Nov 27 02:29:42 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (find_name): Call ult_src() to resolve .so links.
+ * src/Makefile.in: Link ult_src.o into lexgrog.
+
+Wed Nov 27 01:49:18 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * release.sh: Don't pass --copy to autogen.sh, as it's a no-op now.
+ * po/.cvsignore, tools/.cvsignore: More ignored files.
+
+Wed Nov 27 01:46:27 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * tools/mkinstalldirs: Remove. It's more trouble than it's worth to
+ store something in CVS that autopoint thinks it controls.
+
+Wed Nov 27 01:25:52 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/da.po: Correct some minor typographical mistakes (mostly
+ missing spaces or newlines at the end of one piece of a string
+ concatenation).
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
+
+Wed Nov 27 00:51:47 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1,
+ man/man1/manpath.man1, man/man1/whatis.man1,
+ man/man1/zsoelim.man1, man/man5/manpath.man5,
+ man/man8/accessdb.man8, man/man8/catman.man8, man/man8/mandb.man8:
+ Add a .pc request so that the % characters we use for
+ substitutions don't get translated into page numbers when
+ formatting the unsubstituted pages.
+
+Wed Nov 27 00:37:29 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/lexgrog.man1 (WHATIS PARSING): Add an example of how NAME
+ sections should be written in mdoc.
+
+Tue Nov 26 22:57:27 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * .cvsignore: Ignore the m4 directory, created by autopoint.
+ * GNUmakefile.in (_subdirs, _m4): Add m4/*.m4 to the distribution.
+ (_root): There are no *.h files left in the top-level directory.
+ (nls_man): de_DE.ascii is gone.
+ (dist): Use 'cp -p' rather than 'ln', since ln notes that making a
+ hard link to a symbolic link is not portable.
+
+Tue Nov 26 03:43:15 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/pt_BR.po: New from Translation Project.
+ * po/LINGUAS: Add pt_BR.
+
+Fri Nov 22 22:06:01 GMT 2002 Morten Brix Pedersen <morten@wtf.dk>
+
+ * po/da.po: Further updates.
+
+Sat Nov 16 12:54:29 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example: Clarify that dashes in options should be
+ written using '\-', not '-'.
+
+Thu Nov 14 23:29:14 GMT 2002 Morten Brix Pedersen <morten@wtf.dk>
+
+ * po/da.po: Update.
+
+Thu Nov 14 23:26:58 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Implement --enable-undoc=COMMAND.
+ * src/man.c (gripe_no_man): If --enable-undoc=COMMAND was set, print
+ an additional message referring users to COMMAND. This is mostly
+ here to support Debian's undocumented(7) page in a nicer way, but
+ perhaps others will find it useful too.
+
+Thu Nov 14 04:21:09 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in: Use @LIBINTL@ rather than @INTLLIBS@. The latter
+ is deprecated.
+
+Thu Nov 14 04:17:49 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po, po/sv.po: Update with msgmerge.
+
+Thu Nov 14 04:10:44 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4, configure.in: Include documentation in all calls to
+ AC_DEFINE and AC_DEFINE_UNQUOTED. Look for acinclude.m4 in
+ AC_CONFIG_SRCDIR rather than acconfig.h.
+ * acconfig.h: Remove; the above makes it unnecessary.
+ * GNUmakefile.in: Remove acconfig.h from stamp-h.in's dependencies.
+
+ * autogen.sh: Run autopoint, not gettextize. autogen.sh no longer
+ takes an optional --copy argument.
+
+Thu Nov 14 04:06:41 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/.cvsignore: Add messages.mo and remove-potcdate.sed.
+ * po/it.po: Add missing '=' in charset.
+
+Thu Nov 14 03:53:22 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/cs.po: Fix an incorrect C format string.
+ * po/da.po: Fix some out-of-sync C format strings and default PO
+ file headers. I've contacted the translator about these.
+
+Thu Nov 14 01:57:42 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man-db.gnu, man-db.lsm: Document the switch from SourceForge to
+ Savannah.
+
+Mon Nov 11 01:50:28 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man): Update the count of found pages with the return
+ value of display_pages(). This should fix the situation where man
+ finds a matching entry in the database, discovers that it's
+ actually a dangling symlink, but fails to print an error message
+ to say that no page was found.
+
+Mon Nov 11 00:47:38 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (OPTIONS): Change \[char173] to \[shc]. The
+ former doesn't appear to display as anything useful these days.
+ * man/es_ES.88591/man1/man.man1, man/it_IT.88591/man1/man.man1,
+ man/ja_JP.eucJP/man1/man.man1: Likewise.
+
+Thu Nov 7 02:18:44 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (display): Don't do access() checks on an empty man_file
+ in the display_to_stdout branch, to avoid problems when running
+ 'man -X -l -'. Similar code is already in the other branch. Patch
+ from Peter Muir <iyhi@yahoo.com>.
+
+Thu Nov 7 01:42:52 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Further updates for 2.4.1.
+ * docs/ToDo: I think the new-style database is OK now.
+
+Thu Nov 7 01:32:29 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (match_in_directory): Don't use FNM_NOESCAPE flag
+ to fnmatch().
+ (look_for_file): Escape paths and names before passing them to
+ match_in_directory().
+ * src/globbing.h: Update variable names in prototype.
+
+Wed Oct 23 02:12:43 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * tools/README: Remove reference to install-manpage.
+
+Wed Oct 23 02:10:15 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * tools/install-manpage: Remove. It doesn't work at all as far as I
+ can see, and at least as far as Debian is concerned dh_installman
+ does a better job.
+ * GNUmakefile.in: Remove reference to install-manpage.
+
+Wed Oct 23 02:03:18 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ Apply proper copyright and licence notices to all source files.
+ There are no functional changes here, either to the code or to the
+ applicable licences, merely clarifications.
+
+ * docs/COPYING.LIB: New file, containing version 2.1 of the GNU
+ LGPL.
+
+Wed Oct 23 01:56:38 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * tools/install-sh: Update to the version in automake 1.4-p4, which
+ includes a full (MIT) licence notice.
+
+Sat Oct 12 20:16:48 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ A much-needed complete rewrite of splitline(). The previous version
+ was extremely difficult to debug (see http://bugs.debian.org/123130)
+ and got info->pointer and info->whatis wrong quite frequently. This
+ version is much simpler and I hope more correct.
+
+ * src/util.c (trim_spaces): New function.
+ * include/manconfig.h.in: Prototype trim_spaces().
+
+ * src/check_mandirs.c (gripe_bad_store): New function.
+ (splitline): Remove.
+ (parse_descriptions, store_descriptions, free_descriptions): New
+ functions, implementing the whatis parsing that used to be in
+ splitline() and test_manfile().
+ (test_manfile): Reduce the complicated loop over splitline() to
+ calls to the above three functions. Adjust the parsing failure
+ case to require less deeply nested indentation.
+ * src/check_mandirs.h: New page_description struct, used to
+ implement the above. Prototype new functions.
+ * src/straycats.c: Use the new page_description-based interface.
+
+Wed Sep 25 00:39:16 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (DESCRIPTION): Clarify the purpose of section 7
+ as "Miscellaneous".
+
+Tue Sep 24 00:22:36 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * lib/strnlen.c: Don't try to define a weak alias. We aren't libc.
+
+Mon Sep 16 21:14:26 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/mydbm.h: datum.dsize must be size_t, not int.
+
+Mon Sep 16 01:07:16 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): If the decompressor fails, print
+ an error message and return NULL rather than exit()ing
+ immediately. This allows callers to behave more intelligently.
+ * src/lexgrog.l (find_name): Cope with decompress() returning NULL.
+ * src/man.c (local_man_loop): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+
+Mon Sep 16 00:25:17 BST 2002 Clint Adams <schizo@debian.org>
+
+ * configure.in: Detect bzip2.
+ * include/comp_src.h.in (comp_list): Include bunzip2 support if
+ available.
+ * include/manconfig.h.in: Add BUNZIP2 definition.
+
+Sun Sep 15 23:53:28 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ Upgrade to gettext 0.11.5.
+
+ * configure.in: Remove ALL_LINGUAS. Add AM_GNU_GETTEXT_VERSION.
+ * po/LINGUAS: New file. Adds sv to the value of the old ALL_LINGUAS.
+ * po/Makevars: New file.
+ * po/POTFILES.in: Add src/fakesecurity.c. Change src/lexgrog.c to
+ src/lexgrog.l.
+ * tools/mkinstalldirs: Upgrade to current version.
+
+Fri Sep 6 23:58:10 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (xcopy): Don't print the error from fopen() if it's
+ just ENOENT.
+
+Tue Sep 3 21:53:56 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (list_extensions): Prevent a theoretical buffer
+ overflow by allocating names and ext as necessary rather than
+ using a fixed-length array.
+ (dblookup): Update callers.
+ * libdb/db_delete.c (dbdelete): Likewise.
+ * libdb/db_storage.h: Update prototypes. ENTRIES definition is now
+ redundant.
+
+Tue Sep 3 20:26:22 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_delete.c (dbdelete): Construct new multi_content
+ correctly (names as well as extensions) when deleting some of its
+ elements.
+
+Fri Aug 30 03:11:42 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (make_roff_command): Restore the fix from 13 July 2001
+ that got lost while implementing -E. We need to look up the
+ correct character set each time a page is displayed, but still
+ honour any device explicitly set by -E, so test different_encoding
+ rather than roff_device.
+
+Thu Aug 29 01:14:19 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (setenv_less): Export the value of $MAN_PN for the
+ benefit of other pagers (suggestion from Jeff Sheinberg).
+
+Thu Aug 29 00:50:54 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c: dbfilters is no longer a global variable.
+ (get_preprocessors, make_roff_command, display): Take an extra
+ dbfilters argument.
+ (local_man_loop, make_roff_command, display, display_filesystem):
+ Adjust callers.
+ (display_database): Likewise. Pass in->filter as the dbfilters
+ argument to display() rather than setting it globally (and
+ forgetting to set it back to NULL later).
+ * src/man.h: Update prototypes.
+
+Sat Aug 17 21:53:38 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (check_for_stray): Initialize info.name and
+ info.filter. Remove unhelpful __inline__.
+
+Tue Aug 13 18:25:13 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (usage): Document new option -W, --where-cat,
+ --location-cat.
+ (man_getopt): Accept -W.
+ (display): -w now just prints man_file, while -W prints cat_file.
+ If both are given, the two filenames are printed separated by a
+ space, as -w used to do.
+ * man/man1/man.man1, docs/NEWS: Document this.
+
+Sat Aug 10 13:19:34 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Preliminary entries for 2.4.1.
+
+Sat Aug 10 13:15:49 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c (plain_hash_free, hash_install, hash_free): Remove
+ the type argument and nlist element. All current users can just
+ use separate hashtables instead.
+ * lib/hashtable.h: Update prototypes and nlist declaration.
+ * libdb/db_btree.c: Don't pass dummy type argument to
+ hash_install().
+
+ * src/check_mandirs.c, src/man.c: Include "lib/hashtable.h" rather
+ than "hashtable.h".
+ * src/check_mandirs.c (test_manfile): Use hashtable functions on the
+ new static whatis_hash directly rather than the old functions
+ which implicitly operated on the global man_hash.
+ (testmandirs): Since we use full paths as hash keys, there's no
+ need to clear whatis_hash between hierarchies.
+ * src/man.c (db_hash_free): New function.
+ (main, try_db): Use hashtable functions on the new static db_hash
+ directly rather than the old functions which implicitly operated
+ on the global man_hash.
+ (try_db, man): Don't clear hashtables before creating a new
+ database. This used to segfault in some circumstances.
+
+ * src/hashtable.c, src/hashtable.h: Remove.
+ * src/Makefile.in: Remove mentions of hashtable.o.
+
+Thu Aug 8 02:05:34 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/sv.po: New from Translation Project.
+
+Mon Jul 22 01:20:28 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (splitline): Check for pointer underflow when
+ trimming leading spaces.
+
+Mon Jul 22 01:18:18 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_ver.c: Include <string.h> for strcmp().
+
+Wed Jul 17 20:30:30 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/wrapper.c: Include <locale.h> even under --disable-nls.
+
+Mon Jul 15 14:18:56 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Allow EOF to terminate MAN_NAME cleanly.
+
+Thu Jul 11 20:45:36 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * manual/man_db.me: Version 0.7. Remove version number from \*M
+ string. Set a default page width of 78 ens for nroff output. Add
+ myself as an author.
+ * manual/intro.me (man-db): Mention lexgrog.
+ (The format of manual pages): Ted and Werner now maintain groff.
+ * manual/sec.me (Specifying a section): Extensions don't have to be
+ listed unless a special ordering is desired.
+ * manual/files.me (Other OS's manual pages): --systems, not
+ --system.
+ (NLS manual pages): Likewise. Update Daniel Quinlan's e-mail
+ address. Correct "/usr/man/man" to "/usr/man" in example manpath
+ output.
+ (Displaying latin1 characters on a Linux virtual terminal): Set
+ sample script in a constant-width font.
+ (Local cat page directory caches): Modification times are now
+ compared for equality rather than for the cat file being more
+ recent.
+ * manual/format.me (GROFF): tools/nroff-script is no longer
+ provided.
+ (Pre-format processors (pre-processors)): Mention the lexgrog scan
+ for preprocessor hints.
+ * manual/db.me (Contents of an index database): Clarify where the
+ true case of a name is stored.
+ (Accessdb): accessdb is compiled by default now.
+ * manual/misc.me (NLS message catalogues): Point to the Translation
+ Project.
+ * manual/*.me: Minor wording improvements. Apply better *roff style
+ (newline at each sentence break).
+
+ * man/THANKS: Update Jordi Mallach's e-mail address.
+
+Sun Jul 7 22:19:41 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * tools/config.guess: Update to 2002-05-29.
+ * tools/config.sub: Update to 2002-06-21.
+ * tools/README: Describe config.guess and config.sub.
+
+ * tools/nroff-script: Remove. groff has had this since 1992, and its
+ version is considerably more up-to-date.
+ * GNUmakefile.in, tools/README: Remove references to nroff-script.
+
+ * zsoelim/zsoelim.l: -Wall cleanup. Set the nounput option, since we
+ don't need yyunput().
+ (open_file): Make sure the compiler knows that compfile and comp
+ are always initialized.
+
+Sat Jul 6 21:30:07 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_roff_line_length): Widen to match groff 1.18's
+ defaults.
+ (add_roff_line_length, make_roff_command): Simplify by using en
+ units rather than inches.
+
+ * src/man.c (main): Slight improvement in the error message for a
+ missing page. If the name doesn't begin with a digit, never use
+ gripe_no_name(): having the 'n' section shouldn't mean that 'man
+ nonexistent' says "What manual page do you want from section
+ nonexistent?".
+
+ * src/man.c (try_section): Check for ult_src() returning NULL.
+
+Wed Jul 3 23:46:31 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_system_manpath): Make sure the loop that scans for
+ per-system manpaths always makes progress.
+
+Wed Jul 3 23:14:42 BST 2002 David Martinez Moreno <ender@debian.org>
+
+ * man/THANKS: Update e-mail address.
+ * po/es.po: Update.
+
+Sat Jun 29 14:58:08 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): If a section is given but the lookup fails,
+ check to see if the section is actually a page name. This allows
+ man page names that begin with a digit to work much more sanely.
+ (is_section): If a single-character entry in section_list is a
+ prefix of the requested section name, return successfully. This
+ means that e.g. '3tcl' is treated as a valid section even if only
+ '3' is in section_list.
+
+ * src/man.c (is_section), src/man.h (is_section): Constify argument
+ and return type.
+
+ * src/globbing.c (match_in_directory, look_for_file): Reduce
+ debugging chatter.
+
+Wed Jun 26 20:07:56 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (get_whatis): "(unknown)" => "(unknown subject)",
+ mainly so that translators know the number and gender.
+
+Wed Jun 26 19:49:49 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/catman.c (usage), src/man.c (usage), src/mandb.c (usage),
+ src/manpath.c (usage): Make --help output more consistent.
+ * src/whatis.c (usage): Likewise. "alternate systems" => "alternate
+ systems'".
+
+Wed Jun 26 14:47:01 UTC 2002 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.4.0.
+ * README: Update or remove references to "man-db-2.3" and similar.
+ * man-db.gnu: Update and sync with GNU.
+ * man-db.lsm: Update.
+ * manual/man_db.me: Replace "2.3.x" with "2.4.x".
+ * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
+ po/it.po, po/ja.po: Update with msgmerge.
+
+Wed Jun 26 14:09:25 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (name_sec): Allow whitespace before any closing
+ double quote. (rman(1) uses '.SH "NAME "'.)
+
+Tue Jun 25 00:29:22 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Translation credits are in man/THANKS.
+ * man/THANKS: Update.
+
+ * manual/.cvsignore: New file.
+
+Mon Jun 24 02:53:00 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (dbstore): Use \t instead of . to separate
+ case-variant-names and extensions in multi keys.
+ * libdb/db_lookup.c (list_extensions): Take an extra 'names' array
+ argument, and split alternately into that and 'ext'.
+ (dblookup): Update and simplify accordingly; we don't need the
+ awkward '.' handling any more.
+ * libdb/db_delete.c (dbdelete): Likewise.
+ * libdb/db_storage.h (list_extensions): Update prototype.
+
+ * include/manconfig.h.in: Database format version 2.4.1.
+
+ * manual/db.me (Contents of an index database): Document
+ case-insensitive name storage format. Bring the documentation of
+ the database entry format up to date.
+ * manual/sec.me (Specifying a section): Mention the SECTION
+ configuration directive.
+
+Fri Jun 21 10:50:40 UTC 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (make_filename): in->comp may be NULL.
+
+ * po/fr.po: Update from Translation Project.
+
+Mon Jun 17 09:56:15 UTC 2002 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (ALL_LINGUAS): Add ca.
+ * src/man.c: Update some comments.
+ * src/lexgrog.l: Treat \~ as a space. Treat \# as a comment. Treat
+ .ig as ending the whatis.
+
+Thu Jun 13 18:16:46 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/ca.po: Some updates after review.
+
+Wed Jun 12 18:29:18 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * docs/ToDo: Updates.
+ * po/ca.po: New from Translation Project.
+
+Wed Jun 5 14:23:13 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * po/de.po: Update from Translation Project.
+
+Tue Jun 4 13:15:09 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Return 0 when asked to compare two
+ candidates we can't distinguish, not -1. The latter broke
+ multilingual support.
+
+Tue Jun 4 01:33:31 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.3.90 (for translators).
+ * docs/NEWS: More updates.
+ * po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, po/it.po,
+ po/ja.po: Update with msgmerge.
+
+Tue May 28 00:36:55 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (dblookup): Check the MATCH_CASE flag in the
+ case of a single entry as well as multiple entries.
+
+Mon May 27 23:57:26 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * lib/hashtable.c, lib/hashtable.h: New files, containing the
+ generic parts of src/hashtable.{c,h}.
+ * lib/Makefile.in: Add hashtable.c.
+ * src/hashtable.c (hash, lookup, install): Remove. These functions
+ have been renamed and moved to lib/hashtable.c.
+ (free_defn): Rename to man_hash_free and update for new hashtable
+ API.
+ (free_hashtab): Update for new hashtable API.
+ * src/hashtable.h: Update prototypes.
+
+ * libdb/db_btree.c (btree_findkey): Check for entries we've seen
+ before in the current run. These indicate a corrupt database
+ containing a loop.
+
+Thu May 23 01:50:53 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * lib/cleanup.h: #endif must not be followed by a token on the same
+ line.
+
+Thu May 23 00:29:24 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/fake_security.c (get_man_owner): New fake function to match
+ the real one in src/security.c.
+ * src/manp.c (mkcatdirs): Chown newly created cat directories to the
+ MAN_OWNER when running as root.
+
+ * .cvsignore, intl/.cvsignore, po/.cvsignore: Ignore a few more
+ files.
+ * src/man_db.conf.in: Correct the heading.
+
+Wed May 22 00:06:18 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (compare_ids): New function, replacing the
+ FAVOUR() macro. Without this, the last-but-one commit won't
+ compile ...
+ (replace_if_necessary): Use it.
+ * libdb/db_storage.h: Prototype it.
+
+Mon May 20 03:07:24 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (setenv_less): New function to set up $LESS. This
+ honours the new environment variable $MANLESS, which overrides the
+ usual processing and is copied directly into $LESS.
+ (make_display_command): Use it.
+ * man/man1/man.man1 (OPTIONS): Mention $MANLESS alongside the
+ --prompt option.
+ (ENVIRONMENT): Document $MANLESS.
+
+Mon May 20 02:16:43 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Compare id fields as a last
+ resort, so that, for example, real pages sort ahead of whatis-only
+ names.
+ (try_section): Set the id field based on the output of ult_src().
+
+ * src/man.c (man): When locating pages, don't stop when one is found
+ in a particular directory and -a wasn't given. That's now the job
+ of the display code.
+
+Mon May 20 01:16:02 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (free_mandata_elements): New function, to be
+ used rather than freeing the addr field directly. This frees name
+ as well.
+ (free_mandata_struct): Use it.
+ * libdb/db_btree.c (dbstore, dblookup): Likewise.
+ * libdb/db_store.c (dbstore): Likewise.
+ * src/whatis.c (whatis): Likewise.
+ * libdb/db_storage.h: Prototype it.
+
+ * libdb/db_store.c (replace_if_necessary): Rename in and info to
+ newdata and olddata, which are more comprehensible. Don't check
+ that the name fields match here - the caller should do that.
+ (dbstore): Make sure in->name isn't set on entry, and instead set
+ it to the basename where necessary. Don't set the name field in
+ multi keys, which use the proper case.
+
+ * src/check_mandirs.c (filename_info): We don't need to examine the
+ case of base_name here.
+
+Thu May 16 00:47:05 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_btree.c (btree_flopen): If O_CREAT isn't set, check
+ whether we're trying to open a zero-length database and, if so,
+ return immediately. This works around some pathological behaviour
+ in Berkeley DB.
+
+Mon May 6 03:48:17 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c (FAVOUR): Parenthesize macro arguments.
+ (dbstore): In situation (3), use the old lookup key for the name
+ of the corresponding multi key, not the basename (which may be in
+ the wrong case).
+
+Sun May 5 17:49:21 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Accept DOS line-ending conventions.
+
+Sun May 5 15:38:34 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_delete.c (dbdelete): Don't scribble over the list
+ returned by list_extensions(). We need it shortly afterwards to
+ construct the new multi key.
+
+Fri May 3 19:43:52 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in (LESS_OPTS): Add the -R flag, which helps
+ with displaying the ANSI colour escapes generated by groff 1.18.
+
+Fri May 3 19:27:40 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (add_roff_line_length): New function, adding -rLL and
+ -rLT to the groff command line (supported in groff >= 1.18).
+ (make_roff_command): Call add_roff_line_length(). The old code to
+ set .ll and .lt remains for compatibility purposes.
+
+Wed May 1 02:16:11 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (testmandirs): Include the subdirectory name
+ in the "Updating index cache" message.
+
+Wed May 1 02:05:02 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c: Make sure the check for whether a replace is
+ necessary in situation (3) behaves as it did before the multi key
+ format changes.
+
+ * libdb/db_lookup.c (copy_if_set, dash_if_unset): Constify
+ arguments.
+ * libdb/db_storage.h: Likewise for prototypes.
+ * src/convert_name.c (gripe_converting_name): name should be const.
+ * src/manp.c (get_catpath): suffix should be const.
+
+Wed May 1 00:14:20 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (match_in_directory): Close the directory after
+ reading through it.
+
+Wed May 1 00:02:53 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ Case-(in)sensitivity in database lookups should work properly now.
+
+ * libdb/db_lookup.c (gripe_bad_multi_key): New function.
+ (make_multi_key): Don't lowercase page any more - that happens
+ elsewhere.
+ (list_extensions): We now return names/extensions, not just
+ extensions.
+ (dblookup): Multi keys are now formed as "RealCase.1" rather than
+ just "1". Add a new MATCH_CASE flag which, if set, makes sure the
+ RealCase part matches. Otherwise the database lookup is
+ case-insensitive.
+ (dblookup_exact, dblookup_all): Pass through a match_case flag for
+ the above.
+ * libdb/db_delete.c (dbdelete): Cope with new multi key format.
+ * libdb/db_store.c (dbstore): Construct the multi key from the
+ original case of the name rather than the lowercased version. Add
+ the basename to the multi keys created here, as above.
+ * src/man.c (display_database): Pass match_case flag through to the
+ database lookup.
+ (try_db): Likewise.
+ * src/check_mandirs.c (test_manfile): Make sure lookups are
+ case-sensitive.
+ * src/straycats.c (check_for_stray): Likewise.
+ * src/whatis.c (get_whatis): Likewise.
+ (whatis): Use a case-insensitive lookup.
+
+ * libdb/db_storage.h (struct mandata): name is no longer const; it
+ should always be freeable if non-NULL. We no longer use "-" to
+ indicate it being the same as the requested name, except in the
+ database itself.
+ * libdb/db_lookup.c (copy_if_set, dash_if_unset): New functions.
+ (infoalloc): Zero the newly allocated structure.
+ (free_mandata_struct): Free name if it's set.
+ (dbprintf, split_content, make_content, dblookup): Cope with the
+ new convention for info->name.
+ * libdb/db_store.c (replace_if_necessary): Likewise.
+ * src/check_mandirs.c (filename_info): Likewise.
+ * src/man.c (compare_candidates, add_candidate, display_database):
+ Likewise.
+ * src/whatis.c (display): Likewise.
+
+ * libdb/db_storage.h: Update prototypes.
+
+Mon Apr 29 00:13:58 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (display): Display page names in the correct case
+ using the new info->name field.
+
+Mon Apr 29 00:00:38 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (use_grep): Put a space in the grep command before
+ the flags!
+
+Sun Apr 28 23:50:22 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ Pass through much of the code adding 'const' where appropriate. This
+ should help me avoid various memory management bugs.
+
+ Noteworthy changes from this:
+
+ * include/manconfig.h.in (struct compression): prog and ext
+ generally shouldn't be modified directly.
+ * libdb/db_lookup.c (make_content): dash really has to stay
+ constant, or the various things that point to it statically will
+ break other things badly.
+ * libdb/db_storage.h (struct mandata): The only pointers here that
+ should generally be modified directly are next and addr.
+ * libdb/db_store.c (dbstore): Remove debugging code left from
+ previous checkin.
+ * src/check_mandirs.c (splitline): Note that we're deliberately
+ modifying info->whatis here.
+ (filename_info): Modify to be more const-friendly.
+ * src/compression.c (comp_file): Add TODO for comp->file.
+ * src/man.c (find_cat_file): Drop unused sec argument, and update
+ callers.
+
+ * include/manconfig.h.in, libdb/db_storage.h, src/hashtable.h,
+ src/man.h, src/manp.h: Update prototypes for all of the above.
+
+Fri Apr 26 01:59:46 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ Add case-insensitivity support to the database.
+
+ * libdb/db_storage.h (struct mandata): Add 'name' element.
+ * libdb/db_lookup.c (dbprintf): Print name.
+ (split_content): Read name from start of data.
+ (make_content): Prepend name to each data element.
+ (name_to_key): New function, converting a name to lowercase for
+ use in database keys.
+ (make_multi_key): Use name_to_key().
+ (dblookup): Use name_to_key(). If info->name is "-", set it to the
+ requested key instead.
+ * libdb/db_delete.c (dbdelete): Use name_to_key().
+ * libdb/db_store.c (dbstore): Likewise.
+
+ * src/check_mandirs.c (make_filename): Use in->name if name is NULL.
+ (filename_info): Fill in info->name with either a new req_name
+ argument or the supplied base_name.
+ (test_manfile): Update calls to make_filename() and
+ filename_info().
+ * src/check_mandirs.h: Update prototype.
+
+ * src/man.c (struct candidate): Rename 'name' to 'req_name'.
+ (display_filesystem, display_database_check): Update accordingly.
+ (compare_candidates): Sort exact-case matches to the front.
+ (add_candidate): Update calls to compare_candidate() and
+ filename_info(). When comparing duplicates, check the name field
+ in the mandata rather than the requested name.
+ (try_section): The hack to get the name from info_buffer is no
+ longer required now that filename_info() fills that in.
+ (display_filesystem): Update calls to make_filename(). Use the
+ mandata name for the displayed title rather than the requested
+ name. Sanity-check in->name != "-".
+
+ * include/manconfig.h.in: Bump the database version to 2.4.0.
+
+ * lib/xstrndup.c: Prototype strnlen().
+
+Mon Apr 22 00:00:08 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/globbing.c (match_in_directory): New function, implementing a
+ limited glob() with optional case-insensitivity.
+ (look_for_file): Use match_in_directory() rather than glob().
+ Accept new match_case argument.
+ * src/globbing.h: Update prototype.
+ * src/check_mandirs.c (purge_whatis, purge_missing): Update calls to
+ look_for_file().
+ * src/man.c (usage, man_getopt): Add --ignore-case and --match-case
+ arguments.
+ (try_section): Update calls to look_for_file().
+ (try_section, display_filesystem, display_database,
+ display_database_check, display_pages, man): Make sure to use the
+ candidate name rather than the requested name, so that
+ case-insensitive lookups work.
+ * man/man1/man.man1 (OPTIONS): Document --ignore-case and
+ --match-case.
+
+ * po/.cvsignore: Ignore man-db.pot rather than man_db.pot.
+
+Thu Apr 18 11:15:11 BST 2002 Matej Vela <vela@debian.org>
+
+ * docs/manpage.example: Use .BR for links to other man pages.
+
+Wed Apr 3 19:54:03 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * Rename package from man_db to man-db.
+
+ * docs/NEWS: Start updating for 2.4.0.
+
+Wed Apr 3 18:44:04 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (distclean): Remove autom4te.cache.
+
+Wed Apr 3 18:40:19 BST 2002 Colin Watson <cjwatson@debian.org>
+
+ * .cvsignore: Add autom4te.cache.
+ * configure.in: Use AC_LIBOBJ rather than setting LIBOBJS directly.
+ (--enable-setuid): Use quadrigraphs to get [ and ].
+ (--with-config-file): New option.
+ * include/Defines.in (config_file): Honour --with-config-file
+ setting.
+
+Fri Mar 29 21:08:37 GMT 2002 dann frazier <dannf@dannf.org>
+
+ * docs/manpage.example.sgml: Update copyright year.
+
+Thu Mar 21 16:22:58 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (main): Save the value of $LESS at startup to
+ $MAN_ORIG_LESS, and use that saved value in preference to $LESS.
+ This lets recursive invocations of man give less the correct page
+ titles.
+
+Wed Mar 20 09:37:11 GMT 2002 Eirik Fuller <eirik@hackrat.com>
+
+ * src/check_mandirs.c (splitline): Don't create a copy of base_name
+ as pointer_name.
+ (test_manfile): Be more careful about pointer reuse across calls
+ to splitline().
+
+Mon Feb 11 13:01:07 GMT 2002 Michael Piefel <piefel@debian.org>
+
+ * po/de.po: Corrections and updates; convert to UTF-8.
+ * man/THANKS: Add credit (the contributor of the previous de.po is
+ unidentified).
+
+Sun Jan 27 03:31:11 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (ALL_LINGUAS): Add da. Reorder alphabetically.
+
+Sat Jan 12 17:55:12 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Match a line at a time rather than a character at a
+ time after the end of the NAME section.
+
+ * src/check_mandirs.c (testmandirs): More --debug information.
+
+ * include/manconfig.h.in (LESS_OPTS): Prune duplicate -Pm option.
+ Set -PM too so it works even when $LESS contains -M.
+ * src/man.c (make_display_command): Substitute prompt_string into
+ LESS_OPTS twice to accommodate the above.
+
+Mon Jan 7 16:16:02 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Another {blank_eol} fix, thanks to Peter Clay.
+
+Sun Jan 6 19:05:46 GMT 2002 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Use {blank_eol}, not [blank_eol]. The latter
+ matches in entirely inappropriate places.
+
+Sun Dec 23 06:17:47 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (long_options, usage, man_getopt): Add a new
+ -E/--encoding option. It behaves a little like -T, except that it
+ uses nroff instead of troff and outputs to a pager.
+ (make_roff_command): Only call determine_lang_table() if
+ roff_device isn't already set.
+ (display, try_section, display_filesystem, display_database):
+ Check for different_encoding.
+ * man/man1/man.man1 (DEFAULTS, OPTIONS): Document -E.
+
+Sun Dec 23 05:23:05 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (compare_candidates): Compare sections according to
+ section_list before comparing them lexicographically.
+ (add_candidate): Do a better job of inserting each entry at the
+ right place in the list.
+
+Sun Dec 23 04:47:02 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (determine_lang_table): Format man pages in UTF-8 if
+ that's the current locale's character set.
+
+Sun Dec 23 02:35:24 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (popen, pclose): Move to a separate library file ...
+ * lib/popen.c: ... here.
+ * acinclude.m4 (MAN_FUNC_PCLOSE): Use AC_LIBOBJ to conditionally
+ compile this.
+ * acconfig.h: Remove BROKEN_PCLOSE definition.
+
+ Major rewrite of man's searching code to make it maintainable and to
+ prepare for better sorting of displayed man pages.
+
+ * src/man.c (add_candidate): New function to add an item to a list
+ of candidate pages.
+ (compare_candidates): New helper function.
+ (compare_names, compare_mandata_ext): Remove.
+ (try_section): Use add_candidate() rather than displaying the page
+ immediately.
+ (try_db): Likewise.
+ (display_filesystem): New function to display pages found by
+ try_section().
+ (try_db_section): Rename to display_database(), and use the
+ candidate structures.
+ (exist_check): Rename to display_database_check(); use candidates.
+ (locate_page): Pass the candidate list through to try_section()
+ and try_db().
+ (display_pages): New function to iterate through a candidate list
+ and display each entry.
+ (man): Create a candidate list and pass it to locate_page().
+ Display pages only after building the full list.
+
+Mon Dec 17 03:40:48 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (EXIT STATUS): Document mandb's exit codes.
+
+Mon Dec 17 03:20:15 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (long_options): Remove duplicate for --exact.
+ (word_fnmatch): New function.
+ (parse_whatis): Match using word_fnmatch() if --wildcard but not
+ --exact was given.
+ * man/man1/apropos.man1 (OPTIONS): Document this.
+ (DESCRIPTION): Fix typographical glitch.
+
+Mon Dec 17 00:53:20 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (OPTIONS): Mention groff 1.17 and the ps and
+ utf8 devices.
+ * man/*/man1/man.man1: Likewise.
+
+Sun Dec 9 03:31:54 GMT 2001 Morten Brix Pedersen <morten@wtf.dk>
+
+ * po/da.po: New file.
+ * man/THANKS: Add credit.
+
+Sun Dec 9 03:19:57 GMT 2001 Jose Rodriguez <boriel@airtel.net>
+
+ * src/man.c (main): Initialize program_name before calling error().
+
+Fri Dec 7 01:35:31 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Detect libdb3, although man-db hasn't been well
+ tested with it yet.
+
+Fri Dec 7 00:35:53 GMT 2001 Paul Slootman <paul@wurtel.net>
+
+ * src/man.c (main): Delete spurious backslashes in prompt_string.
+
+Wed Nov 21 20:59:14 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * po/fr.po: Update from Laurent Pelecq.
+ * po/.cvsignore: Ignore ChangeLog.
+
+Wed Nov 21 00:48:50 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ Keeping generated files like the output of gettextize in CVS is bad.
+
+ * intl/*, po/ChangeLog, po/Makefile.in.in: Remove.
+ * autogen.sh: Run gettextize.
+ * release.sh: When releasing, pass --copy to gettextize.
+
+Wed Nov 21 00:29:26 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): Free esc_file and esc_filename
+ once we're finished with them.
+
+ * src/man.c (local_man_loop): If argv is a directory, display a
+ useful error message rather than letting zsoelim get confused.
+
+Mon Nov 19 00:53:03 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_lookup.c (copy_datum): Explicitly null-terminate
+ dat.dptr, since C string-manipulation functions are used on it.
+
+Fri Nov 16 04:28:31 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_nls_manpath): Concatenate strings more safely.
+
+ Changes adapted from a patch by OGAWA Hirofumi
+ <hirofumi@mail.parknet.co.jp>:
+
+ * acinclude.m4 (MAN_CHECK_BDB): $LIBS, not LIBS, and quote it while
+ we're here.
+ * src/manp.c (pathappend): Use strsep() rather than strtok().
+ (cat_manpath): Likewise.
+ (add_nls_manpath): Likewise.
+
+Thu Nov 8 11:27:32 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_preprocessors_from_file): Drop privileges to access
+ temporary file.
+
+Wed Nov 7 13:34:38 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): Drop privileges throughout. Don't free
+ command until after it could have been used for an error message.
+
+Sun Oct 14 05:23:20 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/version.c: Include <stdlib.h> for exit().
+ * include/manconfig.h.in: Remove spurious orphaned #ifdef. Oops.
+
+ Spanish translation updates from David Martínez <ender@adi.uam.es>:
+
+ * po/es.po, man/es_ES.88591/man1/apropos.man1: Bring up to date.
+ * man/man1/lexgrog.man1: Fix thinko - s/problems/programs/.
+
+Tue Sep 25 22:46:45 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (get_whatis): Suppress wrong report of a pointer loop
+ when the second or subsequent element in a pointer chain points to
+ itself and has a usable whatis.
+
+Wed Sep 19 00:47:55 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (local_man_loop): Drop privileges throughout.
+
+ Documentation corrections thanks to Andreas Dilger
+ <adilger@turbolabs.com>:
+
+ * man/man1/man.man1 and translations (SEE ALSO): Refer to man(7).
+ * docs/manpage.example, docs/manpage.example.pod,
+ docs/manpage.example.sgml (SEE ALSO): Move to the end.
+ (SYNOPSIS, DESCRIPTION, OPTIONS): Add more advice.
+ * docs/manpage.example (FILES): Restore tabs that had been turned
+ into spaces.
+
+Tue Sep 18 03:46:00 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * lib/xstrndup.c: New file.
+ * lib/Makefile.in: Build it.
+ * include/manconfig.h.in: Prototype xstrndup().
+
+ * src/man.c (compare_names, compare_mandata_ext): New functions.
+ (try_section): Build title more locally, displaying extensions
+ correctly. Sort the results of look_for_file().
+ (try_db_section): Build title even if NROFF_MISSING is defined.
+ (try_db): Sort data returned from the database.
+ (locate_page): Look in the filesystem first and then the database,
+ rather than the other way round.
+
+ * src/manp.c (checkpath): Remove; it used to resolve symlinks, but
+ it doesn't do that any more and I don't think it should.
+ * src/manp.c: Constify arguments to many functions by either being
+ more careful not to alter them or by duplicating them.
+ * src/util.c (is_directory): Likewise.
+ * src/catman.c, src/man.c, src/mandb.c, src/whatis.c (main):
+ Simplify calls.
+ * src/manp.h, include/manconfig.h.in: Update prototypes.
+ * src/manp.h: add_system_manpath() is static now.
+
+ * include/manconfig.h.in: Provide stupid getcwd() emulation with
+ getwd() if the former isn't available.
+ * src/man.c (main, format_display): Assume getcwd() is available.
+ * src/mandb.c (main): Likewise.
+ * src/manp.c (add_dir_to_path_list): Likewise.
+
+ * src/manp.c (add_dir_to_path_list): The checks that manpaths end in
+ /man or /MAN were overly anal and never compiled in; remove them.
+
+ * acinclude.m4 (MAN_PROG_GNU_NROFF): More portable shell for ash.
+
+ * src/man.c (lang_table): We use the latin1 alias rather than
+ iso8859 for all other languages, so do so for Korean too.
+
+ * src/lexgrog.l: Prevent the no-op request '.' from eating text on
+ the next line.
+ (find_name): Remove trailing spaces as well as leading ones.
+
+Fri Sep 7 19:28:12 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.3.20.
+ * docs/NEWS: Update.
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
+ Update.
+
+Fri Sep 7 00:55:53 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Include other manpage.example formats.
+
+ * lib/tempfile.c (create_tempfile): Create with mode 0600.
+ * src/check_mandirs.c (test_manfile): Drop privileges for temporary
+ file operations.
+ * src/lexgrog.l (find_name): Likewise.
+ * src/man.c (make_roff_command): Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+ (straycats): Likewise.
+ * src/ult_src.c (ult_src): Likewise.
+
+Thu Sep 6 21:54:05 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * include/Defines.in: Add lexgrog to list of transformed program
+ names. Adjust sysconfdir detection.
+ * src/Makefile.in (install): Really install lexgrog by default.
+ Create the directory config_file is in rather than sysconfdir.
+
+Wed Sep 5 19:55:01 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Generate a .tar.gz, not a .tgz.
+ * src/man.c: Korean: roff_device is ascii8, LESSCHARSET is iso8859.
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
+ Update.
+
+Wed Sep 5 03:42:18 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/compression.c (decompress): Constify arguments.
+ * include/manconfig.h.in: Likewise.
+
+ * src/lexgrog.l (find_name): Deal with '-' and compressed files.
+ * man/man1/lexgrog.man1 (DESCRIPTION): Document this.
+ (BUGS): Remove (optimism ...).
+ (NOTES): New section. lexgrog can't parse .so requests.
+ * src/Makefile.in: Really build lexgrog by default, and add some
+ objects.
+
+Wed Sep 5 02:02:20 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Describe recent changes.
+
+ * man/man1/man.man1 (OPTIONS): Document --html.
+ (ENVIRONMENT): Document $BROWSER.
+ * man/man8/mandb.man8 (OPTIONS): Explain that --create implies
+ --no-purge.
+
+Tue Sep 4 18:38:23 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): If $BROWSER contains several elements
+ separated by colons, try each in turn until one succeeds.
+
+Tue Sep 4 02:09:07 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (format_display): Actually change to the temporary
+ directory for HTML output.
+ * src/mandb.c (main): --create implies --no-purge.
+
+Sat Sep 1 17:40:06 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * lib/mkdtemp.c, lib/mkstemp.c, lib/tempname.c: New files, taken
+ from glibc 2.2.4.
+ * lib/Makefile.in, lib/README: Add them.
+ * configure.in: Check for mkdtemp() and mkstemp().
+ * lib/tempfile.c (path_search): New function, split from
+ create_tempfile(). Now checks $TMP as well as $TMPDIR, and ensures
+ that neither is checked when privileges are raised.
+ (create_tempfile): Use it. Fix the umask around the call to
+ mkstemp() rather than calling fchmod() after the fact.
+ (create_tempdir): New function.
+ * include/manconfig.h.in: Prototype create_tempdir().
+
+ * src/man.c: --html code needs to be guarded by TROFF_IS_GROFF.
+ (man_getopt): If -H is given, set troff to 1. Add -H to the
+ "incompatible options" error message.
+ (make_roff_command): Revert determine_lang_table() special case.
+ (format_display): Use a temporary directory for HTML output (groff
+ tends to output several files, including images). Take an extra
+ argument, used to set the name of the main output file.
+ (display): Pass man_file to format_display().
+ * src/util.c (remove_directory): New function.
+ * include/manconfig.h.in: Prototype it.
+
+Fri Aug 31 22:20:08 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ Initial support for ESR's $BROWSER variable. Not complete yet.
+
+ * src/man.c: Remove ENABLE_HTML guards around all the --html code.
+ Too many #ifdefs clutter the code, and it should at least be
+ usable to some extent now.
+ (main): Check $BROWSER before other ways of finding html_pager.
+ (man_getopt): If -H is given, set roff_device to "html". Reset
+ htmlout and html_pager with -D.
+ (make_roff_command): Don't call determine_lang_table() if htmlout
+ is set.
+ (make_browser): New function.
+ (make_display_command): Add case for htmlout being set.
+ (format_display_and_save): Rename roff_cmd to format_cmd.
+ (display_catman): Likewise.
+ (display): Likewise. Add some cases for htmlout being set (always
+ format, never save a cat page). Split some code out into
+ format_display().
+ (format_display): New function.
+
+ * src/man.c (main): Save the value of $LESS for later.
+ (make_display_command): Use setenv() to change $LESS in the
+ environment rather than nasty shell code.
+
+ * src/man.c (main): Don't loop if $LANGUAGE is set but empty.
+ (display_catman): Fix segfaults due to strappend() misuse.
+ * src/manp.c (read_config_file): Print dotmanpath, not home (which
+ might point to freed memory).
+
+ * src/man.c (main): Tidy up error message.
+ (store_line_length): Remove duplicate 'int width' declaration.
+
+Wed Aug 29 20:44:27 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man8/mandb.man8 (WHATIS PARSING): Move to ...
+ * man/man1/lexgrog.man1: ... here.
+
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Run
+ msgmerge.
+
+Wed Aug 29 01:48:53 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/apropos.man1 (ENVIRONMENT): Fix grammar error.
+
+Wed Aug 29 01:34:33 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l (usage): New function.
+ (main): Rewrite. Add command-line options, and make the output
+ more easily parseable by other programs. By default, the lexgrog
+ program now only attempts to parse its input as a man page and
+ only displays the whatis line, although this can be changed on the
+ command line.
+ * src/Makefile.in: Include lexgrog in $(PROGS), so that it gets
+ built by default and linked against version.o.
+ * man/man1/lexgrog.man1: New man page. Still needs some work.
+ * man/Makefile.in: Install it. Tolerate it being missing in some
+ languages (ugly hack).
+
+Tue Aug 21 01:57:44 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in: Link non-setuid programs against fake_security.o
+ rather than security.o.
+ * src/fake_security.c: Add a few stub variables to match recent
+ security.c changes.
+
+Tue Aug 21 01:34:49 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/Makefile.in (install): Don't depend on all, so that the
+ package isn't recompiled when running 'make install' on a machine
+ with a skewed clock.
+ Don't install the wrapper. Install man and mandb in $(bindir)
+ rather than $(libdir)/man-db.
+ If lexgrog and globbing have been built, install them in
+ $(libdir)/man-db rather than $(sbindir).
+ Ensure $(sbindir) and $(libdir)/man-db exist.
+
+Tue Aug 21 00:40:47 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (escape_special): Rename to escape_less(). Constify
+ argument.
+ (determine_lang_table): Constify argument. Unify some common code.
+ (make_display_common): Use escape_less() rather than
+ escape_special().
+ * docs/NEWS: Document shell escaping.
+
+Sun Aug 19 23:56:36 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Compile with -Wall by default.
+ * src/compression.c: Include "security.h".
+ * src/manp.c: Likewise.
+ * src/check_mandirs.c (purge_whatis): Correct return value when
+ purging a WHATIS_MAN entry with a missing target.
+ * src/whatis.c (get_whatis): Remove unused variables 'pointer' and
+ 'ext'.
+ * src/man.c: Include <time.h> for time().
+ (local_man_loop): Remove unused variable 'dir'.
+ (make_roff_command): Remove unused variable 'tmpfile'.
+ (exist_check): Print 'loc' in pointer format rather than string
+ format (it's a struct mandata *).
+ * src/wrapper.c: Include <grp.h> for initgroups().
+
+Sun Aug 19 13:16:01 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (iterate_over_list): New function (get_from_list() can
+ only get the first matching element).
+ (get_manpath): Use iterate_over_list() to get multiple matching
+ MANPATH_MAP entries.
+
+Sun Aug 19 13:02:01 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (popen, pclose): Rely on the BROKEN_PCLOSE check in
+ configure rather than checking architectures here.
+ (man_getopt): Wrap the remaining code related to --html in '#ifdef
+ ENABLE_HTML'.
+ (make_roff_command): Remove HAS_TROFF and NROFF_MISSING asserts; I
+ think they're unnecessarily unwieldy here.
+ (tmp_cat_filename): Constify argument.
+ (commit_tmp_cat): Constify arguments.
+ (display_catman): New function, split from display().
+ (display): Use display_catman(). Don't shadow status from an outer
+ scope.
+ (try_section): Simplify cat page case.
+
+ * src/util.c (escape_shell): New function.
+ * include/manconfig.h.in: strappend() is no longer in util.c.
+ Prototype escape_shell().
+ * src/man.c (make_roff_command): Use escape_shell() liberally to
+ protect against strange characters.
+ (make_display_command): Likewise. Add special handling for $MAN_PN
+ in the less prompt string, since the environment variable is no
+ longer parsed by the shell.
+ (display_catman): Likewise.
+ (display): Likewise.
+ * src/whatis.c (use_grep): Likewise.
+
+ * src/catman.c (main): Print a warning if setlocale() fails.
+ * src/man.c (main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/manpath.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+ * src/wrapper.c (main): Explain why this doesn't need to warn if
+ setlocale() fails.
+
+Thu Aug 9 15:10:26 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Require autoconf 2.50a (for AS_VAR_*).
+ * src/wrapper.c: If DEBUG is defined, allow _man and _mandb as
+ argv[0] names as well as man and mandb, rather than instead of
+ them.
+ * docs/NEWS: Document lexgrog improvement. The mkstemp() work was
+ more an improvement than a fix, as I don't think it was
+ exploitable.
+
+Mon Aug 6 02:22:38 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: groff requests aren't case-sensitive, so stop the
+ preprocessor detection thinking they are.
+
+Mon Aug 6 01:26:26 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * lib/tempfile.c (create_tempfile): Use mode 0644 rather than mode
+ 0600 so that it can be read with different privilege levels.
+
+Thu Aug 2 00:12:41 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * lib/tempfile.c: New file. create_tempfile() does sane
+ mkstemp()-like temporary file creation, while searching through
+ $TMPDIR, P_tmpdir, and /tmp in the style of tempnam().
+ * include/manconfig.h.in: Prototype create_tempfile().
+ * lib/tempnam.c: Remove, as we no longer use it.
+ * lib/Makefile.in, lib/README: Remove mentions of tempnam.c, and use
+ tempfile.c instead.
+ * configure.in: Don't replace tempnam().
+
+ * src/compression.c (create_ztemp): Use create_tempfile() rather
+ than tempnam().
+ * src/man.c (create_stdintmp): Likewise.
+ * zsoelim/zsoelim.l (open_file): Likewise.
+ * src/straycats.c (straycats): Use create_tempfile() rather than
+ mkstemp().
+
+ * src/compression.c (decompress): Call remove_ztemp() rather than
+ duplicating code.
+ (remove_ztemp): Only close the fd if it looks valid.
+ * src/man.c (remove_stdintmp): Remember to free stdin_tmpfile.
+
+ * acinclude.m4: Correct AC_VAR_* to AS_VAR_*.
+ * src/util.c (is_changed): Fix comment.
+
+ * docs/NEWS: Preliminary entries for 2.3.20.
+
+Tue Jul 24 02:17:53 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example: Some cleanups. Use more conventional
+ formatting for references to other man pages.
+ * docs/manpage.example.pod, docs/manpage.example.sgml: New files.
+
+Mon Jul 16 16:42:46 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Restore fr_name to the NAME regex.
+
+Fri Jul 13 11:51:40 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/de_DE.ascii: Remove (Latin-1 variant still exists).
+
+Fri Jul 13 02:35:39 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * */.cvsignore: New files.
+
+ * src/man.c (make_roff_command): Look up the correct character set
+ each time a page is displayed, not just the first time.
+
+Thu Jul 12 01:11:41 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Split out NAME-matching regex into one regex per
+ language. Add support for cs, fi, hu, nl, and pl, not forgetting
+ Latin (for Lingua::Romana::Perligata(3pm), of course).
+ (add_separator_to_whatis): New function, to allow trimming the
+ first space from the " - " separator.
+ (main): Rewrite; find_name()'s prototype changed long ago.
+
+Tue Jul 10 14:37:51 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/util.c (is_newer): Rename to ...
+ (is_changed): ... this. We now check whether the cat page has a
+ different timestamp from the man page, rather than simply whether
+ it is newer.
+ Remove hack for archivers that preserve timestamps: it's no longer
+ needed.
+ * include/manconfig.h.in: Rename is_newer() prototype to
+ is_changed().
+
+ * src/man.c (commit_tmp_cat): Set the modification time of a created
+ cat page to be the same as the corresponding man page.
+ (display): stat() the man page so that commit_tmp_cat() can get
+ its modification time.
+ Use is_changed() rather than is_newer().
+
+Sun Jul 8 16:06:43 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (get_whatis): Allow an entry to point to itself if it
+ contains a non-empty whatis field. This occasionally happens when
+ multiple names and descriptions are present, and it's easier to
+ tolerate this.
+ (display): If an entry points to itself, don't display the pointer
+ in square brackets.
+
+ * include/sections.list: Remove; it's no longer needed.
+ * GNUmakefile.in (dist): Don't install it.
+ * include/Defines.in: Don't reference it. Also remove definition of
+ message_catalogue (obsoleted by gettext).
+
+ * include/manconfig.h.in (LESS_OPTS): Don't include $LESS.
+ * src/man.c (make_display_command): Include $LESS here instead. Put
+ it after prompt_string rather than before, so that long options in
+ $LESS work.
+
+Sat Jul 7 16:32:24 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (determine_lang_table): Fix silly bracketing typo that
+ caused none of the lang_table entries to match.
+
+Thu Jul 5 15:48:42 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.3.19.
+
+ * docs/NEWS: Update.
+ * man-db.gnu: Update. Change formatting to something closer to that
+ currently in the Free Software Directory CVS repository.
+ * man-db.lsm: Update.
+
+Thu Jul 5 14:27:17 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man5/manpath.man5 (FORMAT): MANDB_MAP now only affects
+ setuidness when in the system configuration file.
+ * src/man_db.conf.in: Likewise.
+
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
+ Update.
+
+Wed Jul 4 13:39:40 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ The product of some hacking at the Debian Conference. Enjoy.
+
+ * docs/NEWS: Describe recent changes.
+
+ * include/manconfig.h.in: Add SYSTEM_CAT and USER_CAT defines.
+ Move includes from security.c to ...
+ * src/security.h: ... here (new file).
+ * src/man.c: Include security.h.
+ * src/mandb.c: Likewise.
+ * src/security.c: Likewise.
+
+ * src/manp.c (add_mandb_map): Take an additional parameter, user.
+ Use the new MANDB_MAP_USER flag instead of MANDB_MAP if it is set.
+ (cat_manpath): Look at user catpaths before system catpaths.
+ (add_to_dirlist): Take user parameter, passed through to
+ add_mandb_map().
+ (read_config_file): Call add_to_dirlist() with user set for
+ ~/.manpath, and reset for /etc/manpath.config (security fix).
+ (get_mandb_manpath): Allow user manpaths.
+ (global_catpath): Rename to get_catpath(), and only allow it to
+ handle user catpaths (from ~/.manpath) as well if explicitly
+ requested.
+ (is_global_mandir): Note that this is trusted.
+ * src/manp.h: Reflect renaming of global_catpath() to get_catpath().
+
+ * src/man.c (need_to_rerun): Use get_catpath() instead of
+ global_catpath().
+ (make_roff_command): Likewise.
+ (display): Likewise.
+ (find_cat_file): Likewise.
+ (try_db_section): Likewise.
+ (try_db): Likewise.
+ * src/catman.c (main): Likewise (check only user mandirs).
+ * src/mandb.c (main): Likewise (check only user mandirs).
+ * src/straycats.c (straycats): Likewise (check only with user
+ mandirs).
+ * src/whatis.c (search): Likewise (check only with user mandirs).
+
+ * src/man.c (need_to_rerun): Use is_global_mandir() rather than
+ global_catpath() to decide whether to drop privileges.
+ * src/mandb.c (main): Likewise. Unify common code for system and
+ user catpaths.
+
+ * src/man.c (make_roff_command): Check catpath even if
+ global_manpath is false.
+ (locate_page): Simplify slightly.
+
+ * src/security.c (get_man_owner): New function: gets and caches the
+ password entry structure for MAN_OWNER.
+ * src/man.c (commit_tmp_cat): If running as root, chown created cat
+ pages to MAN_OWNER.
+
+Sun Jul 1 01:58:33 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (splitline): Don't initialize the pointer
+ field here; instead, control it from ...
+ (test_manfile): ... here.
+ Change the logic for multiple name/description blocks again.
+ Remove misguided special-casing of the first name in a block. Set
+ the id field more carefully, depending on string equality instead
+ of ordering. Avoid scribbling over lg.whatis when a later
+ splitline() needs it. Don't call splitline() if whatis parsing
+ failed.
+
+ * src/check_mandirs.c (purge_normal): New function, factored out
+ from purge_missing().
+ (purge_whatis): New function to decide whether to purge a
+ WHATIS_MAN entry.
+ (purge_missing): Use both of these.
+ (testmandirs): purge_whatis() sometimes needs to ensure a
+ hierarchy is rescanned. Honour this.
+ Improve indentation levels.
+ * src/mandb.c (main): Reset force_rescan before each purge.
+
+ * src/lexgrog.l: Treat '..' as a no-op request.
+
+Sun Jul 1 01:38:13 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * manual/misc.me (Modes of operation): Mention new requirement to
+ use --update to update databases.
+ mandb knows how to delete old entries now, so remove a sentence
+ saying it can't.
+
+ * src/man.c: More in the quest for sane indentation levels.
+
+ * man/man1/apropos.man1: Textual cleanups.
+ * man/man1/man.man1: Likewise.
+ * man/man1/manpath.man1: Likewise.
+ * man/man1/whatis.man1: Likewise.
+ * man/man1/zsoelim.man1: Likewise.
+ * man/man5/manpath.man5: Likewise.
+ * man/man8/accessdb.man8: Likewise.
+ * man/man8/catman.man8: Likewise.
+
+ * man-db.lsm: Reformatted as per the LSM.README.
+
+Thu Jun 28 22:52:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (try_db_section): Downgrade whatis refs warning to a
+ debugging message, as it's rather noisy for a stable release.
+
+Thu Jun 28 22:38:41 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (gripe_rwopen_failed): New function.
+ (testmandirs): Use it.
+ (purge_missing): New function to purge database entries whose
+ associated manual pages have been deleted.
+ * src/check_mandirs.h: Prototype purge_missing().
+
+ * src/mandb.c (main): New --no-purge option. Unless it is used,
+ purge_missing() is called on each database before calling mandb().
+ Don't call straycats() until after the temporary database has been
+ moved to its permanent location. Make sure all cleanup code is
+ called with dropped privileges.
+ Add statistics message for purged entries, and separate messages
+ for the benefit of translations.
+ When --test is given, only assume --quiet if --debug wasn't given.
+ (usage): Describe --no-purge.
+
+ * src/man.c: Move extension's storage to ...
+ * src/globbing.c: ... here.
+ (look_for_file): Constify string arguments.
+ * src/man.h: Move prototype of look_for_file() to ...
+ * src/globbing.h: ... here (new file).
+
+ * src/manp.c (pathappend): Only append the new element(s) if any
+ were left after removing duplicates.
+ (read_config_file): Make sure what we free was actually allocated.
+
+ * src/Makefile.in (mandb): Link with globbing.o.
+
+ * man/man8/mandb.man8 (OPTIONS): Document --no-purge.
+ General textual cleanup.
+
+ * src/accessdb.c (main): Move content into a tighter scope.
+
+ * src/security.c (drop_effective_privs): Style nit.
+
+Thu Jun 28 13:28:13 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/man1/man.man1 (ENVIRONMENT): Document $MANWIDTH.
+
+Thu Jun 28 13:15:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (store_line_length, get_roff_line_length): New
+ functions, adapted from Andries Brouwer's man.
+ (main): Outside catman mode, find out and store the line length.
+ (make_roff_command): Outside catman mode, retrieve the stored line
+ length and feed a .ll request into the pipeline if it's
+ non-standard. We let recent groff handle the page length.
+ (display): Don't even consider saving the cat page if save_cat is
+ already false.
+ (get_preprocessors): If the database says no preprocessors are to
+ be used, it's OK to save the cat page.
+
+Thu Jun 28 01:44:02 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man_db.conf.in (SECTION): Remove guarantee that ties will be
+ broken in lexical order within sections. It's rather complicated
+ to be sure of that right now, and it should rarely matter.
+
+ * docs/ToDo: lexgrog learnt how to detect preprocessors ages ago.
+
+Thu Jun 28 01:02:32 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (gripe_stat_file): Downgrade the warning if a manpath
+ element doesn't exist to a debugging message (affects people
+ without a /usr/local/share/man, for example).
+ (read_config_file): Additional debugging message. Free home if it
+ gets allocated.
+
+Thu Jun 28 00:35:09 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ The caching cleanup I've been promising for weeks. Here be dragons.
+
+ * src/man.c (man): Only update database caches if --update is given.
+ (main): --all no longer implies a database update (you can always
+ use --all --update if you need that).
+
+ * man/man1/man.man1 (OVERVIEW): It's no longer necessarily man's job
+ to keep the caches up to date; use --update to get that.
+ (DEFAULTS): Likewise. Some rationale. Mention globbing fallback.
+ (OPTIONS/--local-file): Fix typo.
+ (OPTIONS/--update): New description. Only useful with setuid man.
+ * manual/misc.me (Modes of operation): man will only update database
+ entries if the --update flag is used.
+
+Tue Jun 26 22:10:07 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: More cleanup. No substantive changes.
+ * include/manconfig.h.in: Likewise. Also bring xrealloc() prototype
+ into sync.
+
+ * src/mandb.c (main): Allow root as well as MAN_OWNER to work on
+ system manpaths.
+
+Tue Jun 26 03:45:01 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man_db.conf.in (SECTION): Add a little more advice about where
+ to list sections with extensions.
+
+ * src/manp.c (add_to_dirlist): Add SECTIONS as an alias for SECTION,
+ since I keep getting it wrong and I came up with it in the first
+ place. Both make sense in different situations.
+
+ * src/check_mandirs.c (splitline): Trim trailing spaces off names
+ and descriptions. If the given base_name contains a comma, only
+ use the part of the name before it as the target for pointers.
+
+ * src/whatis.c (get_whatis): Unroll recursion into a finite loop to
+ avoid infinite recursion if the database contains a pointer loop.
+ Add the page name as an argument so that a warning can be printed.
+ (display): Pass the new argument to get_whatis().
+ (apropos): Recommend 'mandb --create' rather than plain 'mandb' if
+ the database gets corrupted.
+
+ * src/lexgrog.l: Ignore no-op groff requests (e.g. '.').
+ New variable, fill_mode. Reset it when .nf is encountered, set it
+ when .fi is encountered.
+ (newline_found): If fill_mode is set, add 0x11 instead of a space.
+
+Mon Jun 25 02:55:36 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Describe recent changes. Add dates of old releases.
+
+ * include/manconfig.h.in: Move check_mandirs.c prototypes to ...
+ * src/check_mandirs.h: ... here (new file).
+ * src/man.c: Include check_mandirs.h.
+ * src/mandb.c: Likewise.
+ * src/man.h (make_filename): Move prototype to check_mandirs.h.
+
+ * src/check_mandirs.c (test_manfile): Split parsing of file names
+ into mandata structures into a new function ...
+ (filename_info): ... this.
+ (test_manfile): Calculate length of file name minus compression
+ extension separately from the parsing, and do so whether COMP_SRC
+ is defined or not.
+
+ * src/man.c (try_section): Use filename_info() to find out if the
+ section of a glob-located file is different from the current
+ section and is mentioned elsewhere in the configuration file. If
+ so, ignore that file in the current section.
+
+Mon Jun 25 01:30:24 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man_getopt): Conditionalize gxditview initialization on
+ TROFF_IS_GROFF. As a bonus, this squashes a compiler warning.
+ (man): Remove some unreferenced cruft, while I'm in the process of
+ fixing up multi-character sections.
+
+ * src/Makefile.in: Build intermediate man.o and mandb.o objects, so
+ that changing other objects just requires a relink.
+
+ * src/globbing.c (look_for_file): Print the layout in debugging mode
+ only when it's first parsed.
+
+Sun Jun 24 18:47:20 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in (--with-db): Improve help output formatting.
+
+ * manual/intro.me (Arguments to configure): Document
+ --enable-mandirs.
+ * README: Update.
+
+ * manual/Makefile ($(manual).html): Improve grohtml invocation.
+ (realclean): Remove generated .png files.
+
+Sun Jun 24 17:22:53 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (try_section): Break if a page has been found and --all
+ wasn't given.
+ (try_db): Print extension in debug mode. Compare against requested
+ section if the extension is a section in its own right, to avoid
+ duplication.
+ * src/man_db.conf.in: It's SECTION, not SECTIONS.
+
+ * configure.in: --enable-mandirs=OS defines how the manual page
+ hierarchy is laid out (GNU, HPUX, Solaris, IRIX). If unset,
+ globbing behaves as before.
+ * acconfig.h: Add MANDIR_LAYOUT.
+ * src/globbing.c (parse_layout): New function.
+ (look_for_file): Associate each glob with a layout.
+
+ * configure.in: Don't check for off_t (only used by gettext).
+
+Sat Jun 23 15:23:14 BST 2001 Colin Phipps <cph@cph.demon.co.uk>
+
+ * zsoelim/zsoelim.l (open_file): Supply a format string to error().
+
+Sat Jun 23 15:15:41 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * ult_src.c (ult_src): Restore the original mantree to the start of
+ basename before calling test_for_include(), in case ult_softlink()
+ went outside the mantree.
+ (ult_softlink): Make debugging message print the absolute path.
+
+Tue Jun 19 02:33:40 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (man): Allow sections to be more than one character, and
+ trim them for use in directory names.
+ * src/manp.c (read_config_file): Read ~/.manpath first, as entries
+ are added the other way around now.
+
+Mon Jun 18 18:55:39 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (add_sections, get_sections): New functions.
+ (add_to_dirlist): Recognize new SECTIONS directive.
+ * src/manp.h (iterate_catlist, start_iterator): Remove (not used).
+ (get_sections): New prototype.
+ * src/man.c (get_section_list): Use get_sections() instead of
+ std_sections if it returns a non-empty list.
+ * src/man_db.conf.in: Add documentation of SECTIONS, and a default
+ line. The documentation is still inaccurate (extensions don't work
+ well yet).
+ * include/manconfig.h.in (STD_SECTIONS): Reduce to only
+ single-character sections; the rest will be set in the
+ configuration file.
+
+ * src/manp.c (add_to_list): Add to the tail rather than the head
+ (needed for SECTIONS, probably makes other things more intuitive).
+ (read_config_file): Restore print_list() in debug mode.
+
+ * src/check_mandirs.c: Add copyright notice and change information.
+ * src/lexgrog.l: Likewise.
+ * src/man.c: Likewise.
+ * src/mandb.c: Likewise.
+
+ * src/compression.c (get_ztemp): Remove redundant test.
+
+ * src/man.c (get_preprocessors_from_file): Change an = to ==.
+
+ * src/wrapper.c (main): Cosmetic improvements.
+
+Sat Jun 16 19:22:51 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/straycats.c (check_for_stray): Check that
+ canonicalize_file_name() succeeded, not that it failed. (I'm
+ pretty sure that this is the last instance of this now.)
+
+Sat Jun 16 18:30:09 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * libdb/db_store.c: Move id-favouring logic to a macro. If
+ FAVOUR_STRAYCATS is set, make sure a WHATIS_MAN entry won't
+ inadvertently replace a STRAY_CAT.
+
+ * configure.in: Don't strip binaries in LDFLAGS (GNU standards).
+
+ * src/check_mandirs.c (testmandirs): Check that opendir() succeeded,
+ not that it failed!
+ (testmandirs): Instead of initializing info.pointer here,
+ initialize it ...
+ (splitline): ... here.
+ (testmandirs): Shuffle whatis logic some more, to make sure pages
+ that really are in the filesystem don't end up as WHATIS_MAN. This
+ reverts part of the change of 26 May 2001.
+
+ * man/man8/mandb.man8: Document the expected format of NAME sections
+ for whatis parsing, and some common reasons why parsing fails.
+
+Tue Jun 12 22:20:17 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: More 2.3.19 stuff.
+
+Sun Jun 10 14:05:10 BST 2001 Gordon Sadler <gbsadler1@lcisp.com>
+
+ * man/man1/manpath.man1 (ENVIRONMENT): Replace 'semicolon' with
+ 'colon' throughout.
+
+Sun Jun 10 13:59:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c (pathappend): Fix infinite loop when adding a manpath
+ entry which is a substring of an existing entry.
+
+Sun Jun 10 13:49:02 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/check_mandirs.c (testmandirs): Treat EROFS like EACCES while
+ opening a database read-write (i.e. only print debug messages).
+ (create_db): Likewise.
+ src/man.c (open_cat_stream): Likewise.
+ (try_db_section): Likewise.
+
+ * src/straycats.c (check_for_stray): Carry on gracefully rather than
+ exiting if a straycat filter fails.
+
+ * src/manp.c (pathappend): Remove duplicate entries.
+
+ * src/lexgrog.l: Allow .LP, .PP, and .P as well as .br between
+ whatis definitions.
+
+Sat Jun 2 14:34:59 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Give our English man pages the same date format as
+ the other locales.
+
+ * src/straycats.c: Use 'col -bx' rather than 'col-bx'.
+
+Mon May 28 14:56:35 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Since it isn't sensible to define debug
+ (-d options at run-time do just as well), remove the commented
+ definition.
+ * include/manconfig.h.in, src/catman.c, src/check_mandirs.c,
+ src/compression.c, src/man.c, src/mandb.c, src/manpath.c,
+ src/whatis.c: Remove instances of '#ifndef debug'.
+ * src/util.c: debug is already declared extern in manconfig.h.
+
+Mon May 28 14:30:38 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * tools/README: Describe chconfig and install-manpage.
+ * man/man5/manpath.man5, docs/ToDo: Document the DEFINE directive.
+
+ * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c,
+ src/whatis.c: Remove redundant strtok() declaration.
+ * src/check_mandirs.c: Declare strpbrk().
+
+ * src/*: Global style cleanup. Sorry about the large diff, but it
+ had to happen sometime: I can't stick with the prevailing coding
+ style when there are several to choose from! No meaningful code
+ change, although I disentangled a few assignments from if
+ conditions and rearranged a few other sections.
+ * po/*: Update accordingly.
+
+Sun May 27 18:32:41 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4 (MAN_CHECK_BDB): New macro to check for Berkeley DB.
+ * configure.in: Use it.
+
+ * src/check_mandirs.c (test_manfile): Be more accurate about finding
+ the " - " at the end of a series of whatis names, and make sure to
+ skip commas between them. Add more commentary.
+
+ * src/man.c (open_cat_stream): Return NULL if the cat page is
+ unwriteable, rather than wasting time compressing to /dev/null.
+ (format_display_and_save): Give up if both outing and saving
+ become false.
+
+Sun May 27 18:00:00 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/NEWS: Preliminary entries for 2.3.19. Add current version
+ number throughout as well as just "Major changes since ...".
+ * manual/misc.me (Modes of operation): mandb doesn't necessarily
+ have to be rerun any more, as the filesystem will be checked if
+ the database doesn't return anything. man and mandb can be built
+ for setuid operation but installed non-setuid now.
+
+Sat May 26 15:33:37 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * manual/README: Note that HTML output is disabled by default. I
+ don't currently provide a pre-built PostScript manual anywhere.
+ * manual/misc.me (Credits): Add Fabrizio.
+ * manual/*: FHS updates. Various boring typo/syntax/whitespace
+ fixes.
+
+Sat May 26 15:14:29 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in, autogen.sh: Put 'timestamp' in stamp-h and
+ stamp-h.in rather than the date.
+
+ * src/man.c (open_cat_stream): Open the cat file before forking in
+ order to deal with errors better. Open to /dev/null without
+ complaining if the cat file is unwriteable.
+ (close_cat_stream): Only commit the temporary cat if it was
+ created.
+ (locate_page): Fall back to the filesystem if nothing was found in
+ the database (since it might be out of date).
+
+ * src/man.c (try_db_section): If the database can't be opened
+ read-write due to EACCES, only print a message in debug mode.
+ * src/check_mandirs.c (testmandirs): Likewise.
+ (create_db): Likewise.
+
+ * src/check_mandirs.c (test_manfile): Make sure separate whatis keys
+ each get their own whatis entry.
+
+Wed May 23 17:06:31 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Fix PACKAGE and VERSION substitutions.
+
+Wed May 23 15:51:06 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Updates for autoconf 2.50.
+ (AC_PREREQ): Require version 2.1.2.
+ (AC_INIT): Avoid deprecated use with one argument.
+ (man_ac_version): Don't work out the autoconf version any more;
+ inline syntax is all that needed it, and any autoconf since 2.1.2
+ will do.
+ (AC_STDC_HEADERS): Now AC_HEADER_STDC.
+ (AC_LINK_FILES): No longer needed with newer gettext.
+ (AC_OUTPUT): Avoid deprecated use with arguments.
+ Fix instances of underquoting throughout, as the new autoconf is
+ less tolerant of this.
+ * include/manconfig.h.in: Remove compatibility code for pre-1995
+ autoconf versions.
+
+Thu May 17 19:11:37 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man_db.conf.in: Improve documentation of MANDB_MAP.
+
+Wed May 16 00:09:13 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * tools/config.sub: Update to today's CVS.
+
+Wed May 16 00:07:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * A number of minor fixes from SuSE's diff:
+
+ * GNUmakefile.in: Don't prepend ../ to prefix before passing it to
+ subdirs.
+ * lib/cleanup.c: HUP and TERM signal handling was mistakenly acting
+ on INT instead.
+ * src/lexgrog.l: Replace a few instances of " \t\n" with
+ "blank_eol".
+ * src/man.c: Drop privileges before changing back to the original
+ directory just before exiting (only matters for profiling).
+ * src/util.c: Undefine MAX before redefining it.
+ * po/POTFILES.in: Read src/lexgrog.c rather than src/lexgrog.l
+ (gettext understands C better than lex).
+ * po/de.po, po/es.po, po/fr.po: Remove a few stray '\r's.
+
+ * I'll look at the zlib bits of the patch soon. From a preliminary
+ look I'll probably end up rewriting it - I'd prefer more of the
+ compression stuff actually to go in src/compression.c.
+
+Tue May 15 22:01:59 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/man.c (get_section_list): Return std_sections if argument to
+ -S was an empty string or if that or $MANSECT contained only
+ colons. Previously, man would behave wrongly in the former case
+ and segfault in the latter. Also remove a redundant xstrdup().
+
+Mon May 14 23:46:25 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.3.18.
+
+ * README: Add contact details.
+
+ * libdb/stamp-h: Removed.
+ * GNUmakefile.in, libdb/Makefile.in: Updated accordingly.
+
+ * src/man_db.conf.in: FHS 2.1 has /usr/local/share/man as the
+ location of locally installed man pages rather than
+ /usr/local/man. Accordingly, the MANDB_MAP for /usr/local/man is
+ now /var/cache/man/oldlocal, and /usr/local/share/man takes over
+ /var/cache/man/local.
+
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update
+ with msgmerge.
+
+Mon May 14 22:18:32 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/security.c: Count how many times drop_effective_privs() has
+ been called, and don't actually regain privileges until
+ regain_effective_privs() has been called an equal number of times.
+ This should flush out several subtle bugs.
+
+ * src/mandb.c: Call manpath() rather than read_config_file() (this
+ was changed while merging 2.3b12). Otherwise 'mandb --user-db'
+ segfaults as manp never gets set.
+
+Sun May 13 18:34:33 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Don't install po/Makefile.in.
+
+ * src/stamp-h: Removed.
+ * GNUmakefile.in, src/Makefile.in: Updated accordingly.
+
+ * GNUmakefile.in (distclean): Don't clean configure, src/lexgrog.c,
+ zsoelim/zsoelim.c.
+ (realclean): Clean configure here instead. realclean targets in
+ subdirs already remove the other two.
+ * zsoelim/Makefile.in (clean): Let realclean remove zsoelim.c.
+
+Sun May 13 17:17:32 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.in: Another try to get NLS installation working
+ properly. The last change was wrong when LINGUAS was unset.
+
+ * GNUmakefile.in (dist): Install docs/manpage.example.
+
+Sun May 13 16:54:01 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man/Makefile.in: Exclude NLS directories without man pages, as CVS
+ can't delete directories quite as fully as I'd like.
+
+ * configure.in: No subdirectory Makefiles need ALL_LINGUAS any more.
+
+ * manual/Makefile: Make the location of soelim variable so that
+ distributions can e.g. use the version in the build directory.
+
+ * manual/Makefile, manual/README: Add an HTML target. Disabled by
+ default as groff's HTML driver doesn't produce very good output
+ yet (as of 1.16).
+
+ * include/Defines.in: Only remove /usr from the default sysconfdir
+ if the prefix is exactly /usr, not something that happens to
+ contain /usr (like the default /usr/local).
+
+Sun May 13 13:39:17 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * man-db.gnu, man-db.lsm: Mention move to SourceForge and the new
+ URLs for the Debian package pool.
+
+ * man-db.gnu: New architectures (successful Debian ports as of
+ today). New mailing list for announcements.
+
+Sun May 13 13:18:56 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * README: Document FHS changes; correct pointer to
+ docs/INSTALL.autoconf.
+
+ * docs/INSTALL.autoconf: Update to instructions from automake 1.4.
+
+ * docs/COPYING: Minor fixes from GNU (FSF address, Y2K).
+
+Sun May 13 13:00:17 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Add include/sections.list.
+
+ * GNUmakefile.in, man/Makefile.in: Cause USE_NLS to be substituted
+ properly from configure.
+
+ * include/Defines.in: Remove some old gencat definitions.
+
+ * docs/NEWS: Update in preparation for 2.3.18 release. Correct a few
+ it's -> its typos in earlier entries.
+
+Sun May 13 02:18:00 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * autogen.sh: Create stamp-h.in.
+
+ * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update
+ with msgmerge.
+
+Sun May 13 02:03:05 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/ToDo: Most of Wilf's beta code is in now; mention SuSE.
+
+Sun May 13 01:22:29 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * docs/manpage.example: New file.
+
+Sun May 13 01:19:47 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * include/manconfig.h.in: Bump database version from 2.3.1 to 2.3.2.
+ * libdb/db_ver.c (dbver_wr): Reformat.
+ (dbver_rd): Downgrade warnings about wrong version numbers to
+ debugging messages.
+ * libdb/db_lookup.c (split_data): Fix fencepost error that would
+ overlook a missing whatis field.
+
+ * src/man.c (try_db_section): Display warning if whatis refs are
+ relied upon to find a page.
+ * libdb/db_storage.h: Note that WHATIS_MAN and WHATIS_CAT are
+ deprecated.
+
+ * src/accessdb.c (main): Give FHS_CAT_ROOT priority over CAT_ROOT.
+ * man/man8/accessdb.man8 (DESCRIPTION): Document this.
+ * man/de_DE.85591/man8/accessdb.man8 (DESCRIPTION): Likewise.
+ * man/de_DE.ascii/man8/accessdb.man8 (DESCRIPTION): Likewise.
+ * man/es_ES.88591/man8/accessdb.man8 (DESCRIPTION): Likewise.
+ * man/it_IT.88591/man8/accessdb.man8 (DESCRIZIONE): Likewise.
+
+ * src/check_mandirs.c (testmandirs): Tidy up database opening code.
+
+ * src/mandb.c (mandb): Don't create a new database if opt_test is
+ set.
+ (main): If opt_test is set, just delete the temporary database
+ rather than moving it into place.
+ * man/man8/mandb.man8 (OPTIONS): Document --test.
+ (FILES): Document FHS compliant database locations.
+ (AUTHOR): Add myself.
+
+ * src/ult_src.c (ult_softlink): Remove overly-cautious check for
+ non-local symlinks in mantrees.
+
+ * src/whatis.c (apropos): Remove a now redundant test that cont.dptr
+ is non-NULL.
+
+Sun May 13 01:00:47 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/whatis.c (apropos): Complain and exit if a data pointer is
+ NULL. For this, locally undefine BTREE to avoid using optimized
+ functions, as they don't appear to provide enough error checking
+ yet.
+
+Fri May 4 03:59:08 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in: Change PACKAGE from man-db to man_db.
+
+ * po/*.po: Update with msgmerge.
+
+ * release.sh: New file (quick release script).
+
+Fri May 4 03:44:49 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * acconfig.h: Remove Debian-specific entries.
+
+ * aclocal.m4: Remove, as it's another autogenerated file.
+
+ * autogen.sh: New file (very simple for now).
+
+Fri May 4 03:34:54 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in (dist): Update set of installed files somewhat. No
+ need to build man_db-nls.h any more.
+
+ * man/Makefile.in: Declare ALL_LINGUAS and LINGUAS.
+
+ * src/man.sh: Remove (obsoleted by src/wrapper.c).
+
+Fri May 4 02:56:30 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * README: Update for new NLS configuration methods. Reflect renaming
+ of configuration file from man_db.config to man_db.conf.
+
+Fri May 4 00:18:23 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * stamp-h.in: Remove (generated by GNUmakefile).
+
+Fri May 4 00:17:50 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in, configure.in, include/Defines.in,
+ libdb/Makefile.in, libdb/db_delete.c, libdb/db_lookup.c,
+ libdb/db_store.c, libdb/db_ver.c, man/Makefile.in,
+ src/Makefile.in, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
+ src/wrapper.c: Dispose of all the old catgets stuff. Replace with
+ gettext idioms where appropriate.
+
+ * libdb/man_db-nls.h, src/man_db-nls.h: Remove (obsolete with
+ gettext).
+
+ * include/config.h.in: Remove (generated by autoheader).
+
+Thu May 3 01:17:08 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * GNUmakefile.in: Strip .po from language names; fix it's -> its
+ typo.
+
+ * configure.in: Stop trying to guess the package name and version
+ number from the current directory name.
+
+Wed May 2 18:38:49 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/manp.c: Remove #include of security.h (now merged elsewhere).
+ (pathappend): Constify second argument.
+ (mkcatdirs): Eliminate DIRLIST; now takes mandir and catdir as
+ arguments.
+ (add_2_dirlist): Rename to add_to_dirlist(); return void, and
+ otherwise eliminate use of DIRLIST. As mentioned below, we now use
+ a linked list instead.
+ (read_config_file): Update accordingly.
+
+ * src/security.c: *uid no longer static for now, as other objects
+ use them.
+ * src/man.c: Declare ruid and euid extern here now that security.h
+ is gone.
+
+ * src/check_mandirs.c (update_db): Close dbf rather than database.
+
+Wed May 2 17:27:22 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * acinclude.m4: New file. Restore definitions inadvertently removed
+ from aclocal.m4 a few changes ago.
+ * aclocal.m4: Update accordingly with 'aclocal'.
+
+ * config.guess, config.sub: Move to tools directory.
+
+ * configure.in: Move gettext macros below AC_PROG_CC etc.
+
+ * configure.in: Remove Debian-specific code; build dependencies
+ handle this now.
+
+Wed May 2 16:41:28 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * acconfig.h: Removed some definitions gettext used to need.
+
+ * Makefile.in (_root): Added ABOUT-NLS to the distribution.
+
+Wed May 2 16:31:21 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * config.guess, config.sub: New files, synced from today's CVS.
+
+Wed May 2 16:28:02 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * configure.in, include/Defines.in, man/Makefile.in: Remove use of
+ curdate.
+
+ * man/it_IT.88591/man1/man.man1, man/ja_JP.eucJP/man1/man.man1,
+ man/man1/man.man1: s/curdate/date/g.
+
+Wed May 2 16:15:00 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * po/POTFILES.in: Added src/accessdb.c and src/wrapper.c.
+
+Wed May 2 15:53:45 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * ABOUT-NLS, aclocal.m4, intl/*, po/ChangeLog, po/Makefile.in.in:
+ Update to gettext 0.10.37 (from 0.10.32). Various additions and
+ removals.
+
+ * GNUmakefile.in, libdb/Makefile.in, src/Makefile.in: Remove old
+ gencat/xcat targets.
+
+Wed May 2 01:33:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/mandb.c (main): Initialize security properly, since we may be
+ setuid, and drop privileges when creating temporary databases in
+ user-supplied hierarchies. Thanks to Ethan Benson for reporting
+ this vulnerability.
+
+ * man-db.gnu, man-db.lsm: Add myself as a developer; change
+ maintainer.
+
+ * libdb/db_lookup.c, src/man.c: Cosmetic fixes.
+ * src/accessdb.c (usage): Remove spurious space in output.
+
+Wed May 2 01:02:19 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Merging in changes from Wilf's 2.3b12 beta release.
+ * docs/ChangeLog: Folded in changelog comments.
+
+ * GNUmakefile.in, configure.in: Build configuration file.
+ * */Makefile.in: Rearrange code for CPPFLAGS and similar.
+
+ * configure.in: Look for grep, seteuid(), setresuid().
+ * include/config.h.in: Add HAVE_SETEUID and HAVE_SETRESUID.
+ * include/manconfig.h.in: Add GREP and various grep flags.
+ * src/whatis.c: Use GREP rather than "grep".
+
+ * src/man_db.config: Renamed to src/man_db.conf.in.
+ * src/man_db.conf.in: Add commented out DEFINE directives.
+ * docs/ToDo: Need to document DEFINE directive. (Also, I (cjwatson)
+ checked in two other todo items by mistake earlier: inline
+ pipelines and merging work done by Wilf and Andries.)
+ * include/Defines.in: CPPFLAGS tweaks; rename config file; %.i rule.
+ * include/comp_src.h.in: paths.h -> ./manconfig.h.
+
+ * src/security.c, src/man.c: Rewrite seteuid() handling; remove
+ special "running as root" case.
+ * src/security.h: Remove; combine previous contents with security.c.
+ * src/man_db-nls.h: No longer need man_CHOWN.
+ * include/manconfig.h.in: Add init_security() prototype.
+
+ * src/manp.c: Major rewrite. Replace static storage with linked
+ list. Improve configuration file handling, replacing get_dirlist()
+ with read_config_file(). Move some of the more deeply nested bits
+ of read_config_file() into separate functions like
+ add_mandb_map(). (cjwatson: This won't compile yet. Fabrizio also
+ hacked on this heavily, including splitting part of get_dirlist()
+ out into add_2_dirlist() and adding mkcatdirs(). I've merged these
+ as best I can for now, but it's still unfinished.)
+ * src/manp.h: Remove get_dirlist() prototype, add prototypes for
+ read_config_file() and get_def().
+ * src/man.c, src/mandb.c, src/straycats.c, src/whatis.c: Use new
+ get_defs() functions to pull paths from config file rather than
+ hard-coding them.
+
+Fri Apr 27 22:39:34 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Merging in changes from Wilf's 2.3.11 release.
+ * docs/ChangeLog, docs/NEWS: Folded in changelog comments.
+
+ * GNUmakefile.in: Added deroff and manual targets.
+ * README: Added comment about manual; added notes on configure
+ flags.
+ * configure.in: Minor improvement for non-GNU makes.
+
+ * src/lexgrog.l, src/lexgrog.l-2.4a: Allow comments other than at
+ the beginning of a line.
+
+ * src/manp.c: Replace has_subdirs() with has_mandir(): for $PATH
+ components not in config, check for ../man as well as man subdirs.
+
+ * zsoelim/zsoelim.l: Use #defines for exit codes.
+
+ * GNUmakefile.in, README, docs/INSTALL.quick, src/man.c: Cosmetic
+ rearrangements (whitespace, typos, etc.).
+
+Fri Apr 27 21:36:11 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * manual/*: Add the source code for the man_db manual from Wilf's
+ FTP site.
+
+Fri Apr 27 18:33:17 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/accessdb.c (main): Close the database and set dbf to NULL if
+ dbver_rd() fails.
+ * src/check_mandirs.c (update_db): Likewise.
+ * src/man.c (try_db): Likewise.
+ * src/straycats.c (straycats): Likewise.
+ * src/whatis.c (search): Likewise.
+
+Fri Apr 27 18:10:47 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * src/lexgrog.l: Detect grap (.G1) and vgrind (.vS).
+ * include/manconfig.h.in: Add GRAP_FILTER and VGRIND_FILTER to
+ filter enum.
+
+Fri Apr 27 18:00:04 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * New maintainer.
+
+ * man/man1/man.man1 (HISTORY): Update some dates, add myself.
+ * man/it_IT.88591/man1/man.man1 (HISTORY): Likewise.
+ * man/ja_JP.eucJP/man1/man.man1 (HISTORY): Likewise.
+
+ * man/de_DE.88591/man1/man.man1 (HISTORY): Update some dates.
+ * man/de_DE.ascii/man1/man.man1 (HISTORY): Likewise.
+ * man/es_ES.88591/man1/man.man1 (HISTORY): Likewise.
+
+ * ja_JP.ujis/man1/apropos.man1: Remove (superseded by ja_JP.eucJP).
+ * ja_JP.ujis/man1/man.man1: Likewise.
+ * ja_JP.ujis/man1/manpath.man1: Likewise.
+ * ja_JP.ujis/man1/whatis.man1: Likewise.
+ * ja_JP.ujis/man1/zsoelim.man1: Likewise.
+ * ja_JP.ujis/man5/manpath.man5: Likewise.
+ * ja_JP.ujis/man8/accessdb.man8: Likewise.
+ * ja_JP.ujis/man8/catman.man8: Likewise.
+ * ja_JP.ujis/man8/mandb.man8: Likewise.
+
+Tue Apr 17 15:23:30 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * End of the Great CVS Sync.
+ * Debian release 2.3.17.1-3.
+
+ * src/ult_src.c (ult_src): Return an error when ult_softlink()
+ fails.
+
+ * src/man.c: Use latin1 character set for C and POSIX locales.
+
+ * po/ja.po: Update Japanese translation.
+ * man/ja_JP.eucJP/man1/apropos.man1: New file, updating Japanese
+ translation in new character set.
+ * man/ja_JP.eucJP/man1/man.man1: Likewise.
+ * man/ja_JP.eucJP/man1/manpath.man1: Likewise.
+ * man/ja_JP.eucJP/man1/whatis.man1: Likewise.
+ * man/ja_JP.eucJP/man1/zsoelim.man1: Likewise.
+ * man/ja_JP.eucJP/man5/manpath.man5: Likewise.
+ * man/ja_JP.eucJP/man8/accessdb.man8: Likewise.
+ * man/ja_JP.eucJP/man8/catman.man8: Likewise.
+ * man/ja_JP.eucJP/man8/mandb.man8: Likewise.
+
+ * man/THANKS: Updated (new Japanese eucJP translation).
+
+ * src/man.c (main): Support LC_MESSAGES being set differently from
+ other locale categories (internal_locale).
+
+ * src/man.c (main): Multiple locale preferences can be set with
+ $LANGUAGE.
+
+ * src/version.c (ver): Remove previous maintainer address.
+
+ * configure.in: Find version number correctly.
+
+Sun Apr 1 14:37:28 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Debian release 2.3.17.1-2.
+
+ * src/whatis.c (main): Disable regex searches if -w (wildcard)
+ option is given.
+
+ * docs/ToDo: Using zlib rather than gzip would be good.
+
+Sat Mar 31 18:07:46 BST 2001 Colin Watson <cjwatson@debian.org>
+
+ * Debian release 2.3.17.1-1.
+
+ * src/check_mandirs.c (test_manfile): Check if the result of symlink
+ and hard link resolution is in the cache before looking for .so
+ links. This provides a substantial speedup when many symlinks
+ exist in the mantree.
+
+ * src/catman.c (main): Initialize full locale by calling setlocale()
+ with LC_ALL rather than LC_MESSAGES (GOTO Masanori). Remove manual
+ getenv() calls accordingly.
+ * src/man.c (main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/manpath.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+
+ * include/manconfig.h.in: Add 3perl to section names, following 3pm;
+ Debian is using this to allow other packages to shadow pages from
+ core Perl packages.
+
+Wed Feb 28 21:02:41 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * Debian release 2.3.17-3.2.
+
+ * configure.in: More fixes for Debian troff and /dev/null input
+ files. This restores detection of -mandoc macros.
+
+ * man/man1/man.man1 (OPTIONS): Typo: "It's" -> "Its".
+ * man/man1/zsoelim.man1 (OPTIONS): Likewise.
+
+ * man/man1/man.man1 (OPTIONS): Mention that argument to -M must be
+ the root of a mantree.
+ (SEE ALSO): Add reference to man-db manual to explain the above.
+
+Wed Feb 21 00:54:47 GMT 2001 Colin Watson <cjwatson@debian.org>
+
+ * Debian release 2.3.17-3.1.
+
+ * src/man.c (local_man_loop): Fix format string vulnerability in
+ printing of error message.
+
+ * src/whatis.c (get_whatis): Fix segfault if whatis reference is
+ NULL.
+
+ * src/man.c (local_man_loop): chdir() to original working directory
+ so that 'man -l' works again on relative paths to compressed
+ pages.
+
+ * src/compression.c (decompress): free() file if the decompressor
+ failed so that atexit() doesn't try to remove it again.
+
+ * src/mandb.c (main): Reverse sense of -s option to agree with the
+ documented intent.
+
+ * configure.in: Work around change in the behaviour of Debian nroff,
+ which no longer accepts /dev/null as an input file.
+
+ * GNUmakefile.in: Restore full clean rules.
+
+Fri Apr 7 10:50:45 EET 2000 fab (fpolacco@debian.org)
+
+ * Checked in by Colin Watson during SourceForge CVS sync.
+
+ * Upstream changes from Debian changelog (2.3.17-2):
+ - Commented away call to distclean_root in GNUmakefile: need to
+ leave the Makefile and configure in the tarball.
+ - Found and fixed subtle bug which made wrapper uselessly linked
+ with -ldb2. When invoked by root on a system which enables
+ group.db, then the call to initgroups() segfaults due to the
+ libc link to libdb!
+
+ * Other changes not mentioned in Debian changelog:
+ - man-db.gnu: Update date and prerequisites (libdb2 becomes weak
+ prerequisite).
+ - man-db.lsm: New file.
+ - src/lexgrog.l: Cosmetic changes.
+ - src/wrapper.c: Add debugging code.
+
+Fri Apr 7 10:50:45 EET 2000 fab (fpolacco@debian.org)
+
+ * Checked in by Colin Watson during SourceForge CVS sync.
+ * Version: 2.3.17.
+ * Upstream changes from Debian changelog:
+ - Corrected apparent disappearing of option -e in apropos.
+ - Corrected wrong usage of undocumented option -X which produced
+ error when passed to filters. This is now parametrized as
+ optional argument, defaulting to use devX75. Documented in
+ usage : -X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12.
+ - Applyed patch submitted by Tomohiro KUBOTA:
+ - roff_device and LESSCHARSET are determined by user environment
+ rather than language of manpage for English manpage.
+ - roff_device "ascii8" is used for non-English/non-ISO-8859-1
+ languages.
+ - Added new check for libdb in configure.in
+ - Added /usr/local/{share/}man to config file, due to bug in FHS,
+ thanx to Gregor Hoffleit.
+ - Added new message catalog po file for cs (czech) (4 new
+ messages), thanx to Vladimir Michl.
+ - tired of people continously complaining that man behaves
+ differently than in RedHat (which is "The Reference Linux", you
+ all know that), I'll add tbl as default filter for man. This
+ will fix those three or four manpages that do not take the
+ burden to declare their dependency on the tbl formatter (usually
+ because upstream uses RedHat and so ...). Now what would I do if
+ someone fill a bug against this because of wasting of CPU cicles
+ for un-necessary filtering on the hundreds of pages that do not
+ need tbl? I would certainly agree with them. Therefore I will
+ fix this introducing scanning of manpages a la grog in mandb,
+ and storing the result in the database. ...[noise of hacking
+ and debugging]... Well, I did it (use accessdb to see it!). It
+ took 4 weekend (stolen to the implementation of man 2.4) to
+ complete and debug. Now you can announce the world that man-db
+ 2.3.17 knows in advance which filters to run when processing a
+ manpage which is in the database.
+
+Wed Mar 22 16:00:16 EET 2000 fab (fpolacco@debian.org)
+
+ * Checked in by Colin Watson during SourceForge CVS sync.
+ * Version: 2.3.16.
+ * Upstream changes from Debian changelog:
+ - Applyed patch submitted by Javier Fernandez-Sanguino Pena to
+ permit search of trnlated manpages before giving the first
+ english one found.
+
+Mon Feb 28 22:09:09 EET 2000 fab (fpolacco@debian.org)
+
+ * Checked in by Colin Watson during SourceForge CVS sync.
+ * Version: 2.3.13.
+ * Upstream changes from Debian changelog:
+ - Applied patch to avoid disappearing of index file during
+ regeneration. Thanx to Colin Phipps.
+ - Applied patch to generate secure temporary file in straycat.
+ Thanx to Colin Phipps.
+
+Wed Feb 23 22:34:54 EET 2000 fab (fpolacco@debian.org)
+
+ * Version: 2.3.12
+
+ * New maintainer.
+
+ * find the huge list of changes (in three years) in file
+ debian/changelog.
+
+Wed Sep 27 23:59:05 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3b12
+
+ * src/manp.c: replace static storage with linked list
+
+ * src/security.h: removed/combined with security.c
+
+ * src/security.c, src/man.c: re-write seteuid() handling:
+ remove special "running as root" case
+
+ * src/whatis.c: use GREP rather than "grep"
+
+ * include/manconfig.h: many #DEFINE additions
+
+ * configure.in: look for grep, seteuid(), setresuid()
+
+ * GNUmakefile.in, */Makefile.in: minor modifications
+
+ * include/Defines.in: modifications
+
+ * src/man_db.config: renamed as src/man_db.conf.in
+
+ * src/man_db.conf.in: add commented out DEFINE directives.
+
+Thu Sep 21 19:33:58 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.11
+
+ * manual/*: bundle the source code of the man_db manual
+
+Wed Sep 20 16:17:19 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/manp.c: replace has_subdirs() with has_mandir(): for $PATH
+ components not in config, check for ../man as well as man subdirs.
+
+ * various: small bug-fixes from Markus,
+ Joey (joey@infodrom.north.de), Lionel (cons@dxcern.cern.ch)
+
+ * src/util.c: when checking man/cat timestamps, compare mod time of
+ cat with latest of mod or create time of man: If untar new man
+ page with old timestamp, still reformat.
+
+Thu Jul 13 11:29:32 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.10
+
+ * src/apropos.c: fix for #undef REGEX regarding int regex
+
+ * src/lexgrog.l: default to new version.
+
+ * src/README.lexgrog: new.
+
+ * configure.in: all echo's through MAN_ECHO() for --quiet.
+
+ * various: apply patch from Carl Edman (cedman@princeton.edu),
+ port to NeXTstep and misc small fixes.
+
+Fri Jun 16 11:12:08 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.9
+
+Wed Jun 14 17:08:41 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (make_display_command): fix command when ascii==1
+
+ * src/man.c (display): don't return 1 on skip if local_man_file==1
+
+ * man/Makefile.in: force make to resolve the program name strings
+ (which are sed commands) once only.
+
+ * configure.in: don't exec pager (too many side effects)
+
+Sun Jun 4 13:51:22 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.8
+
+ * various: apply patch from CERN to allow globbed support for
+ HPUX, OSF and SOLARIS system manual page hierarchies.
+
+ * GNUmakefile.in: add hook for `make check'
+
+Mon May 29 18:57:24 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/whatis.c (main): if $POSIXLY_CORRECT is in effect,
+ default to case-less extended regex searches for apropos
+ as specified by POSIX 1
+
+ * man/man1/apropos.man1: document above change.
+
+ * src/whatis.c (apropos, parse_name): ensure case-less
+ matching on manual page name aswell as it's whatis for apropos.
+
+ * all manual pages: replace instances of program with %program%
+ and arrange to do a sed replacement with the actual name of the
+ program, chosen by the installer.
+
+ * zsoelim/zsoelim.l: fix recursion detector.
+
+ * src/lexgrog.l (newline_found): new.
+
+Mon May 22 20:07:17 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * nls/de_DE.88591/*.m: from Lars Fenneberg (li@gimli.comlink.de)
+
+ * src/Makefile, libdb/Makefile: fix -DNLS
+
+ * src/man.c (LESS_PROMPT): Make " Manual page" a translatable
+ message.
+
+ * man/de_DE.ISO_8859-1: rename as man/de_DE.88591
+
+ * nls/THANKS, man/THANKS: new.
+
+ * src/whatis.c: If $POSIXLY_CORRECT, force apropos to do extended
+ regex matching.
+
+Sat May 20 12:27:47 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c: if -f or -k, simply execv() the program, passing
+ the entire argv[] to it.
+
+ * man/man1/man.man1: document change.
+
+ * src/whatis.c: ignore -f, --whatis, -k and --apropos
+
+Sat May 13 18:10:50 BST 1995 Markus Armbruster
+
+ * Version: 2.3.7
+
+ * lib/cleanup.c (pop_all_cleanups): new
+ * src/man.c, src/security.c: use pop_all_cleanups() in children.
+
+ * general: use fork() instead of vfork() in situations where
+ vfork() could cause problems.
+
+Tue May 9 23:30:58 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * manual pages: aesthetic/grammer changes.
+
+ * flex files: process with flex-2.5.2
+
+Mon May 8 11:15:07 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * include/manconfig.h.in: #define some exit codes.
+ * all sources: use the codes.
+ * English manual pages: add EXIT STATUS section where
+ appropriate
+
+ * src/man.c (make_display_command): back out execing the pager
+ as PAGER does not have to be a simple program name.
+
+ * configure.in: prepend "exec " to the default pager.
+
+ * src/mandb.c: fix stupid bug where global databases remain
+ owned by the creator in all circumstances. Clean up.
+
+ * src/straycats.c, src/check_mandirs.c: homogenized and
+ re-worded messages emitted by mandb.
+
+Mon May 8 11:15:07 BST 1995 Markus Armbruster
+
+ * lib/cleanup.c, lib/cleanup.h: new functions. Install
+ sighandler, initialise and operate a stack of cleanup funcs
+ callable on exit().
+
+ * src/mandb.c, src/man.c: modify to use cleanup functions.
+
+Tue Apr 25 20:21:51 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.6
+
+ * src/whatis.c: new, replaced with edited version from 2.4 alpha
+ source tree. Apropos now does _real_ word matches.
+
+ * man/man1/apropos.man1: remove description of option -e.
+
+Mon Apr 24 17:26:54 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (get_section_list): Ignore empty $MANSECT.
+ * src/man.c (main): if (!*pager) pager = CAT;
+
+ * libdb/db_storage.h, include/manconfig.h.in, src/check_mandirs.c,
+ src/straycats.c: small modifications to fix broken
+ FAVOUR_STRAYCATS behaviour and properly handle situation when
+ STRAYCAT and WHATIS_CAT share namespace. Move definition of
+ FAVOUR_STRAYCATS to include/manconfig.h.in. From Zoltan.
+
+ * zsoelim/zsoelim.c: exit 1 on command line file open failure.
+
+ * src/man.c (man_getopt): consolidate incompatible option parsing.
+ * src/man.c (usage): update wrt. option parsing.
+
+ * src/man.c (display): only prompt/attempt display if found==1.
+
+ * src/man.c (make_display_command): exec the pager.
+
+Fri Apr 21 15:16:59 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.5 (public release)
+
+ * src/whatis.c: fix a couple of problems caused by whatis/apropos
+ split.
+
+ * configure.in: remove determination of viable gencat program,
+ always use our own.
+
+Wed Apr 19 09:53:27 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * GNUmakefile.in: renamed Makefile to differentiate between
+ GNU make and others.
+
+ * configure.in: create bogus ./makefile to catch non GNU make
+ programs.
+
+Mon Apr 17 11:06:32 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.4
+
+ * src/man.c (format_display_and_save): don't save cat if
+ formatting process fails and/or produces nothing.
+
+Sat Apr 8 18:02:52 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/mandb.c: change #ifdef SECURE_MAN_UID to
+ #if defined(SECURE_MAN_UID) && defined(MAN_DB_UPDATES) as the
+ databases should be owned by their creators if man is not
+ responsible for updating them.
+
+ * src/man.c: minor changes regarding MAN_DB_UPDATES
+
+ * include/manconfig.h.in: update CATMODE and DBMODE w.r.t.
+ recent MAN_DB_UPDATES/MAN_CATS definitions.
+
+ * src/mandb.c: changes to operation. Work on a temporary copy of
+ the database, then rename() to actual database. Catch SIGINT,
+ SIGTERM and remove the temp copy if necessary.
+
+ * src/compression.c (decompress): kill(getpid(), SIGINT) instead of
+ exit(0) if child (decompressing man page) fails.
+
+ * src/straycats.c (check_for_stray): kill(getpid(), SIGINT) instead of
+ exit(0) if child (decompressing cat page) fails.
+
+ * libdb/db_lookup.c (make_content): ndbm limit is 4k not 1k.
+
+Mon Apr 3 20:52:06 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * docs/NEWS: new
+
+ * README: more Linux-system information.
+
+ * configure.in, acconfig.h: #define NDEBUG if !--enable-debug
+
+ * include/Defines.in: comment out @LEXLIB@, not required in link
+ stage.
+
+Sun Apr 2 17:42:02 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3.3
+
+ * README: add sections referring to default preprocessors and
+ system specific notes.
+
+ * xcat/xcat.l, zsoelim,zsoelim.l, src/lexgrog.l: process with
+ flex-2.5.1
+
+Fri Mar 31 17:12:44 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/whatis.c (display): add free(string)
+
+ * src/whatis.c, src/Makefile.in: produce separate object files for
+ apropos and whatis so that the programs know which one they are
+ regardless of actual program-filename.
+
+ * All Makefile.in, include/Defines.in: append CPPFLAGS supplied to
+ ./configure or make to the standard $(CPPFLAGS) variable.
+ Allows configuring with unusual #include directories, eg.
+ CPPFLAGS=-I/usr/src/gdbm LDFLAGS=-L/usr/src/gdbm ./configure
+
+ * configure.in (--with-db=LIBRARY): override the default database
+ interface library on systems having a choice. Options={db,gdbm,ndbm}
+
+ * configure.in: Re: sec 5.6 of the autoconf manual, replace
+ (if test a=b -o a=c) with
+ (if test a=b || test a=c)
+
+Tue Mar 28 16:44:46 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.3b2
+
+ * lib/flock.c, lib/flock.h: New. flock() wrapper to fcntl() for
+ systems that lack flock().
+
+ * xcat/xcat.l: #include "manconfig.h". For systems not supporting
+ __inline__
+
+ * include/Defines.in (%.d : %.c): modify rule to account for C
+ compilers other than gcc
+
+ * All Makefiles.in (cd $dir && $(MAKE)): change to $(MAKE) -C $dir
+ * nls/Makefile.sub.in: merge into nls/Makefile.in
+
+Mon Mar 27 22:42:53 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/globbing.c (look_for_file): don't rely on GLOB_NOMATCH as
+ AIX doesn't have it.
+
+ * configure.in, include/manconfig.h.in (man_ac_version): new,
+ replaces ac_version and is more robust
+ * configure.in, aclocal.m4: rename non-autoconf macros so that
+ future versions of autoconf won't clash
+
+ * gencat/gencat.c, gencat/genlib.c: tidy up header includes and
+ remove unused variable definitions
+
+ * configure.in: check for gencat
+
+Mon Mar 27 12:51:47 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.3b1
+
+ * src/man.c: small HAS_TROFF/NROFF_MISSING changes from Markus.
+
+Thu Mar 23 18:09:46 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c: man will only _create_ user db's if
+ MAN_DB_CREATES is #defined (It is not defined by default)
+
+ * add ability to install programs/man pages with transformed names.
+ ie --program-prefix=PREFIX,
+ --program-suffix=SUFFIX and
+ --program-transform-name=EXP
+ arguments to configure are now observed.
+
+ * src/man.c (try_db): store an info->addr==NULL entry in the
+ hashtable if we fail to access this db. Only try to open the
+ db once. If the db access succeeds, but the lookup fails to find
+ anything, store info==NULL in the hashtable.
+
+ * libdb/db_ver.c (dbver_rd): don't die if wrong version. Issue a
+ message, return 1 and let the caller decide what to do.
+
+Mon Mar 20 16:13:23 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/whatis.c (get_whatis): new. Use the pointer member of mandata
+ structure to access the whatis string.
+ (display): modify to use get_whatis().
+
+ * src/checkmandirs.c (splitline): don't store whatis referenced
+ `whatis' lines in the db.
+
+ * libdb/db_lookup.c (make_content): store a NULL whatis as "" rather
+ than "-".
+
+Sun Mar 19 16:37:58 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/lexgrog.l: wipe out roff comment lines (again).
+
+ * src/whatis.c: use BSD style regex if POSIX unavailable. Ignore
+ --regex if neither available. Fix failed-regex-compilation error
+ message.
+
+ * lib/regex.c, lib/regex.h: remove
+
+ * configure.in: account for regex changes.
+
+ * libdb/db_delete.c (dbdelete): don't barf on delete request of a
+ multi-key that is not listed in the main key, return NO_ENTRY.
+
+ * src/man.c (try_section): don't try to delete db entry for missing
+ straycat. Return 0 and leave that to the caller.
+
+Sat Mar 18 12:31:48 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Replaced strncasecmp() calls with strncmp(). Removed partial
+ support for man dirs named .../MAN.
+
+ * lib/{alloca.c,putenv.c,memcmp.c}: new
+ lib/{getopt.c,getopt1.c,getopt.h,error.c,xstrdup.c,xmalloc.c}:
+ newer replacements
+
+ * All Makefile.in, include/Defines.in, include/manconfig.h.in:
+ use standard (GNU coding) installation variables:
+ bindir, sysconfdir, man?ext, man?dir, localedir, manroot.
+ These variables, along with prefix and exec_prefix may be specified
+ on the `make' command line.
+
+ * configure.in: move definition of BINDIR and config_prefix to
+ include/Defines.in to allow dynamic evaluation. Rename config_prefix
+ to sysconfdir.
+
+ * libdb/db_lookup.c (list_extensions): fix return count.
+
+ * libdb/db_delete.c (dbdelete): take account of situation
+ where there were multiple name entries and they are subsequently
+ deleted. When deleting the last one (which still has a multi-key
+ entry), delete the standard key too, rather than recomputing it's
+ content (which would be nothing and cause a "corrupt db" message).
+
+Fri Mar 17 23:36:44 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (glob_for_file, make_names): remove
+ src/globbing.c: new file
+ lib/glob.c, lib/glob.h, lib/fnmatch.c, lib/fnmatch.h: replacements
+ from GNU glob.tar.gz
+ configure.in: glob changes.
+ Use POSIX glob replacement.
+ Allow --extension to be used in globbing environment. Don't search
+ for cats in alternate cat directory if no index.
+
+ * All Makefile.in: add standard (GNU coding) targets: all, clean,
+ mostlyclean, distclean, realclean, install, uninstall, TAGS, dist
+ Other configuration/goal modifications
+
+ * Makefile.in: force config.status to do selective re-creation
+
+ * src/zsoelim.l: cater for ".SH \f?NAME\f?"
+
+ * acconfig.m4 (AC_FUNC_PCLOSE), src/man.c (display): small changes
+ from Markus
+
+ * Makefile.in, README: change `make all' to equal `make nls=off'
+ rather than `make nls=all'
+
+ * include/Defines.in: move -DDEFAULT_MANROFFSEQ to
+ include/manconfig.h
+
+ * include/manconfig.h: change inline parsing. Use autoconf-2.2
+
+Thu Mar 16 12:38:15 GMT 1995 Markus Armbruster (armbru@pond.sub.org)
+
+ * Version: 2.2a20
+
+ * zsoelim/zsoelim.l: general fixes
+
+ * configure.in: don't add -lc as library containing db routines.
+
+ * lib/glob.c: ultrix fixes
+
+ * lib/rename.c: replacement
+
+ * lib/strappend.c: small fix and copyright notice
+
+Wed Mar 15 11:17:58 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/lexgrog.l: modifications to whatis parser, mainly for
+ stray cats.
+
+ * src/man.c (main): add drop_effective_privs() and
+ regain_effective_privs() around manpath configuration so that
+ users' `hidden' manpaths are found and used.
+
+ * substantial configuration changes regarding all Makefiles to
+ allow `alternate build directory' support. man_db may be built
+ in *any* directory. Aids multi-architecture builds and testing
+ of various configuration options.
+
+ * rationalised source files to #include "local_header" and
+ #include <system_header>. CPPFLAGS uses -I- to limit -I paths
+ to "" resolving only. Other alternate build directory mods.
+
+ * src/comp_src.h.in: moved to ./comp_src.h.in
+ src/manconfig.h, src/path.h.in: combined into ./manconfig.h.in
+
+ * *ensure* that lib/{regex,fnmatch,getopt}.h are only #included
+ if the replacement c source is used. Otherwise use system routines
+ and system headers.
+
+ * ./configure.in, acconfig.h, aclocal.m4 (AC_FUNC_PCLOSE,
+ BROKEN_PCLOSE): new autoconf macro
+
+ * gencat is not installed by default. (cd gencat && make install)
+
+ * tools/mkcatdirs: re-written
+ tools/checkman: new utility to check for duplicate manual pages
+ across manual page hierarchies.
+
+ * docs/INSTALL, README: new
+
+ * src/man.c (display): attempt to open tmp_cat_filename(), if
+ unable, don't try to save cat.
+
+Sun Mar 12 18:12:13 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a19
+
+ * all source (main): replace mkprogname(%s) with
+ xstrdup(basename(%s))
+
+ * src/util.c (strappend): remove
+ * lib/strappend.c: new
+
+Mon Mar 6 20:05:27 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (--local): re-enable support for compressed local
+ files. eg `man -l foo.1.gz'
+
+ * src/man.c (make_roff_command): Check in alternate catdir then
+ mandir for external format script if ALT_EXT_FORMAT #defined.
+
+ * zsoelim/zsoelim.l: partial rewrite to mimick GNU soelim
+ `bad roff request' error behaviour.
+
+Mon Mar 6 13:51:32 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c: fix SEGV if arg --local used
+
+ * src/man.c (gripe_system): exit with errorcode of failed command
+
+Sun Mar 5 20:54:13 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a18
+
+ * src/catman.c (main): check individual cat directories for
+ existence and perms.
+
+ * src/man.c (commit_tmp_cat): fix SEGV
+
+ * src/man.c: NO_MAN_UPDATES & NO_MAN_CATS #defined code
+ regions for experimental CERN use, untested and incomplete.
+
+ * configure.in, src/Makefile, src/paths.h.in: undo bogus dependance
+ on NLS for output device=latin1.
+
+ * configure.in (--with-device=<device>): new option to select
+ default nroff output device. Test that nroff can handle selected
+ output device (if any).
+
+Thu Mar 2 19:30:45 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/lexgrog.l (too_big), (add_str_to_whatis),
+ (add_char_to_whatis): new functions
+ (find_name): add extra argument.
+ add string bounds checking, add new condition to terminate NAME
+ section: <man_name>\n{W}*\n+.+
+
+ * src/check_mandirs.c, src/straycats.c, src/manconfig.h: change
+ callers of find_name().
+
+ * src/man.c (try_db_section): warn of re-cache failure, but don't
+ exit.
+ lots of changes/simplifications w.r.t. global/user hierarchies.
+ global_manpath == 1 for global hierarchy, global_manpath == 0 for
+ user. global_manpath is set once we know which hierarchy we are
+ displaying from.
+
+Tue Feb 28 13:34:15 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (display): fix SEGV.
+
+ * src/util.c (strappend): allow realloc of NULL string.
+
+ * src/man.c: replace strappend(xstrdup("string"), ...) with
+ strappend(NULL, string, ...)
+
+ * src/straycats.c (check_for_stray): allow any supported
+ straycat compression extension if COMP_SRC is #defined.
+ Replace static buffers with dynamic.
+
+ * src/check_mandirs.c, src/whatis.c: replace static buffers
+ with dynamic.
+
+ * src/util.c: (mkdbname): new function.
+ src/*.c: replace static database[PATH_MAX] with mkdbname() calls.
+
+Sun Feb 26 20:58:59 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a17
+
+ * src/whatis.c: warn if no index or whatis db's available.
+
+ * src/man.c: Fixes to setuid/privs code regarding user manual
+ trees and ruid==0 from Markus.
+
+ * configure.in: add checks for AIX, USG, stdlib.h, MINIX, ISC_POSIX
+
+ * lib/glob.c: ensure that _POSIX_VERSION can be defined
+
+Sun Feb 19 12:38:10 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a16
+
+ * Various portability fixes provided by Philippe Defert
+ (defert@cern.ch)
+
+ * FSSTND changes regarding /usr, /var/catman searching
+
+ * Some header file re-arrangement to aid user configuration.
+
+Sun Feb 12 15:00:44 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a15
+
+Sat Feb 4 10:54:21 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * man(1), manpath(5): revisions.
+
+Thu Feb 2 23:36:20 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/catman.c (do_access): new
+
+ * src/man.c (do_chown): new
+ catman changes, don't do_prompt() if print_where==1
+
+ * src/manp.c: changed an !is_directory() to is_directory() != 1
+
+Sat Jan 28 09:39:07 1995 Markus Armbruster (armbru@pond.sub.org)
+
+ * man.c: **changes** ??
+
+Sun Jan 22 16:15:04 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a14+
+
+ * configure.in, libdb/mydbm.h libdb/db_gdbm.c: if using gdbm,
+ explicitly test for gdbm_exists() rather than use header #defines.
+
+ * man/man1/mandb.man1, man/man1/catman.man1: moved to man/man8 and
+ renamed.
+
+ * apropos(1), whatis(1), manpath(1), zsoelim(1), catman(8),
+ mandb(8) manual pages: significant revisions.
+
+Sat Jan 21 14:33:28 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * incorporate Markus' changes with my post 2.2a13 changes.
+
+ * src/version.c (ver): fix, use fprintf() instead of error().
+
+Thu 22 Dec 1994 15:12:38 +0100 1994 Markus Armbruster (armbru@pond.sub.org)
+
+ * src/man.c (make_roff_command, make_display_command,
+ open_cat_stream, close_cat_stream, display,
+ find_cat_file, checked_system,
+ get_preprocessors): new functions
+
+ * src/man.c (format_and_display, format_and_display_file,
+ display_cat_file, parse_roff_directive,
+ add_directive): removed functions
+
+ * src/man.c (glob_for_file, make_name): made consistent.
+
+ * src/util.c (strappend): new function.
+ (do_system_command): changed/renamed to do_system().
+
+ * src/manp.c (global_catpath): replaced/fixed
+
+ * src/security, src/fake_security (do_system_command_drop_privs):
+ renamed to do_system_dropped_privs().
+
+ * lib/rename.c: new file
+
+Mon Jan 9 20:42:38 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * nls/Makefile, man/Makefile: allow for bogus or non existent
+ native languages passed in $nls.
+
+ * src/man.c (do_prompt): replaced with less friendly but more
+ portable version.
+
+ * inline directives replaced with __inline__ to be more ansi.
+
+Mon Dec 19 12:59:28 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a14
+
+ * aclocal.m4, configure.in: don't define variable nroff_device
+
+ * src/Makefile, src/paths.h.in: define GNU_NROFF_DEVICE.
+ If nls != off, GNU_NROFF_DEVICE=" -Tlatin1"
+ else, GNU_NROFF_DEVICE=" -Tascii"
+
+ * src/man.c, src/catman.c, src/security.c: #include <vfork.h> if
+ available. _exit() from child rather than exit().
+
+Sun Dec 18 17:54:22 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/util.c (basename): removed
+ lib/basename.c: extracted from src/util.c
+ configure.in: check for/replace basename function if necessary.
+
+ * src/catman.c (add_arg): replace strdup() with xstrdup().
+
+ * soelim/soelim.*: renamed zsoelim/zsoelim.*
+
+ * manual pages: reflect soelim - zsoelim name change.
+
+Fri Dec 16 12:17:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * configure.in: correctly determine db header and required library
+
+ * src/man.c (main, do_extern): pass manpath to whatis / apropos in
+ case man was called with -M or -m.
+
+ * src/catman.c (main): interrogate $MANSECT for manual sections.
+
+ * man/man1/catman.man1, man/man1/man.man1 ($MANSEC): replace with
+ the correct variable - $MANSECT.
+
+ * src/man.c: new option (-7 or --ascii) passes page through minimal
+ latin1 to ascii translator. Only useful for nroff written in ascii
+ and formatted with -Tlatin1.
+
+ * man/man1/man.man1: document it.
+
+ * src/man.c (make_command): new routine to piece together man's
+ system() call.
+
+Thu Dec 15 13:52:42 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a13
+
+ * src/catman.c (parse_for_sec): only supply man with -L locale
+ arguments if locale!=0x0
+
+ * src/Makefile: fix libmandb.a rule
+
+Wed Dec 14 22:49:59 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version 2.2a12
+
+ * major package restructure with creation of new subdirectories
+ for xcat and the db routines. Allowed split up of single db source
+ file into some constituent function parts.
+
+ * some Makefile restructuring to allow arbitrary ordering of
+ subdirectory builds.
+
+ * ./dblib/*, ./xcat/*: new or moved from src/.
+
+ * src/db_storage.c: moved and split up into ./dblib/*.c
+ src/mydbm.h, db_storage.h: moved into ./dblib
+ src/nls.h: moved to ./nls.h
+ src/xcat.c, src/xcat.l, src/Register: moved into ./xcat
+
+Wed Dec 14 00:17:11 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/manconfig.h: #include <stddef.h> for size_t declaration.
+
+ * src/checkmandirs.c (reset_db_time): remove use of strerror() in
+ debug line for systems without it.
+
+ * src/manp.c: ensure no warnings given if quiet==1
+
+Tue Dec 12 22:10:07 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/xcat.l: allow duplicate message id's to exist in single C
+ source file, do not duplicate in the relative message file or
+ src/man_db-nls.h. Warn of such duplications as they may be in error.
+
+Tue Dec 12 19:05:21 GMT 1994 Markus Armbruster (armbru@pond.sub.org)
+
+ * configure.in: fix definition of BINDIR when --prefix not used
+
+ * src/man.c: replace "export foo=bar" with "foo=bar; export foo" in
+ system() command
+
+ * soelim/Makefile: do not backup old soelim before install
+
+ * lib/error.h: new
+
+ * convert all error message to the form
+ error(int exitcode, int errno, char *message)
+ where exitcode!=0 causes exit(exitcode) after message and errno!=0
+ causes the error text to be appended to the message. All messages
+ have "<program_name>: " prepended.
+
+ * all C source: #include "../lib/error.h" and replace prognam with
+ program_name.
+
+ * src/db_storage.c (ndbm_flopen, btree_flopen): generalised
+ (ndbm_trun_open, btree_trunc_open): removed
+ (ndbm_flclose): new
+
+ * src/gripes.c: functions copied to relevant caller.
+ src/gripes.c, src/gripes.h: removed
+
+Sun Dec 11 15:16:42 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a11 (not released)
+
+ * src/man.c (main): putenv("LESSCHARSET=latin1"), remove from
+ less_options[]
+
+ * src/lexgrog.l: translate \\[ ] (escaped space) to space,
+ accept '\" as *roff comment,
+ add a space at *roff end-of-line if necessary.
+
+Sat Dec 10 21:37:41 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * man/man1/catman.man1: new
+
+ * soelim/soelim.man1: new
+
+ * src/man.c (display_cat_file): if (COMP_SRC), support straycats
+ with any supported compression extension or none at all.
+ src/man.c (make_cat_file): replace execle() with execve().
+
+ * src/catman.c: added ARG_MAX support and use execve() instead of
+ system(). This should now behave on systems with small execve()
+ argument capacity by batching more, but smaller, man jobs.
+
+ * Makefile: `make all' now equates to `make nls=all'
+
+Thu Dec 8 00:03:12 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a10
+
+ * src/catman.c: new utility.
+ src/man.c (main): minor changes wrt --catman flag.
+
+ * src/paths.h.in (MAN_BIN): add definition for catman.
+
+ * dvi/: provide dvi files of the packages' manual pages.
+
+Tue Dec 6 20:58:19 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * man/man.man1: addition of EXAMPLES section.
+
+ * src/man.c (do_prompt): change message.
+ src/man.c (need_to_rerun): make -u really force an update.
+ src/checkmandirs.c (reset_db_time): new function.
+
+ * src/mydbm.h, src/db_storage.c (ndbm_flopen, ndbm_trunc_flopen):
+ provide file locking mechanism for ndbm.
+ src/db_storage.c (btree_trunc_flopen): renamed (btree_trunc_open),
+ add mode argument to open() call.
+
+ * src/db_storage.c (make_content): add `static' to declaration of
+ (dash).
+
+ * src/man.c (try_db_section): ensure db found file entry is
+ consistent with the physical file, if not, update the db entry
+ before proceeding. Cache consistency should be getting much better
+ in a wide variety of circumstances now. This check is not performed
+ for straycats.
+
+Tue Dec 6 12:05:57 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * man/man.man1, man/mandb.man1: large changes.
+
+ * aclocal.m4, configure.in (AC_PROG_GNU_ROFF): test for GNU nroff
+ src/man.c: Do not use col with GNU nroff -Tlatin1 as (a) it is not
+ needed: see grotty(1) and (b) it is not 8 bit clean. continuation
+ dashes should now reappear.
+
+Wed Nov 23 16:49:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/check_mandirs.c (test_manfile): Provide better checking for
+ the existence of both foo.1 and foo.1.gz type problems. This should
+ catch any problems earlier and relieve the db interface code of the
+ job of identifying such problems.
+
+ * src/man.c (manopt_to_env): cater for $MANOPT option arguments
+ that contain spaces (for -r).
+ src/man.c (man_getopt): revise, change duplicate option behaviour,
+ modify -[tTZ] handling and add option -D.
+ src/man/man1/man.man1: document.
+
+ * src/man.c: create LESS_OPTS and LESS_PROMPT and move their
+ definitions to src/paths.h[.in].
+
+ * configure.in: append -s by default to whatever pager is found.
+ favour db.h and -ldb above gdbm.h and -lgdbm.
+ N.B.
+ db creates index.bt
+ gdbm creates index.db
+ ndbm creates index.dir and index.pag
+
+Wed Nov 23 16:46:59 GMT 1994 Zoltan Hidvegi (hzoli@cs.elte.hu)
+
+ * src/man.c: changes relating to (less_options) and (prompt). Add
+ command line support for less' prompt: option -r.
+
+ * man/man1/man.man1: document it.
+
+Sat Nov 19 20:19:39 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a9
+
+ * src/mydbm.h, src/db_storage.c: incorporate completely new
+ database type: a binary tree method using the Berkeley db-1.85.1
+ library. Currently experimental and is not used by default, it has
+ the potential of enhanced speed and easy maintenance as it allows
+ storage of identical keys, thus reducing the amount of work necessary
+ to store and lookup multi sectional manual pages such as manpath.1
+ and manpath.5. During initial tests, the `walk through' algorithm,
+ used in apropos searches was 65% faster and the general database
+ open function is 100% faster when compared with gdbm-1.7.3.
+
+ * src/whatis.c (apropos): #define-optimised for btree database type.
+
+ * src/convert_name.c (convert_name): reorder actions to stop certain
+ catfiles ending up with a double compression extension, for
+ instance: foo.1.gz.gz.
+
+ * src/Makefile, src/man.c: enable -DNO_DEFAULT_TBL_OR_COL as an
+ experiment.
+
+Fri Nov 18 21:00:47 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a8 (not released)
+
+ * configure.in (config_file, config_prefix): Fix behaviour.
+
+ * src/*.[cl], soelim/soelim.l:
+ s,malloc,xmalloc,g
+ s,realloc,xrealloc,g
+ s,strdup,xstrdup,g
+ src/manconfig.h: remove redefinitions of malloc, realloc and strdup.
+
+Thu Nov 17 22:01:11 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/lexgrog.l: changed catfile whatis extraction rules to be a
+ little more forgiving. Increased char array size from 1024 to 2048.
+
+ * mkcatdirs: shell script to create relative cat dirs.
+
+ * src/$PROGS: replaced all occurances of `optional_argument' with
+ `required_argument' in (long_options).
+
+ * src/man.c, src/compression.c, src/straycats.c: ensure that a
+ failed child process is recognised and dealt with (normally exit(0)).
+
+ * src/man.c (make_cat_file): removed need to filter-then-copy if not
+ setuid. [untested]
+
+ * src/man.c, src/mandb.c (main): optional profiling support if
+ __profile__ defined.
+
+ * configure.in (config_file, config_prefix): don't work unless
+ --prefix=<something> is a command line option, temporarily setting
+ them to /etc/man_db.config and /etc respectively.
+
+Wed Nov 16 20:34:54 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a7
+
+ * src/man.c (format_and_display_file): Fix bug which caused
+ `man -l -' to fail. Produce sensible error message when -l file
+ is inaccessable. Allow compressed manual pages to be specified when
+ using -l (must have correct extension)
+
+ * soelim/soelim.l (main): ensure (progname) is the basename of
+ argv[0] .
+
+ * src/manpath.c (main): remove local declaration of (quiet).
+ add `--global' option.
+
+Wed Nov 16 20:29:20 GMT 1994 Markus Armbruster (armbru@pond.sub.org)
+
+ * configure.in: if $prefix=/usr, put config file in /etc else
+ put it in $prefix/etc
+ src/manconfig.h (CONFIG_FILE): move to paths.h.in
+
+ * src/nls.h (LC_MESSAGES): define as (LC_ALL) in all cases where
+ (LC_MESSAGES) is not defined in <locale.h>
+
+ * src/lexgrog.l: #include "manconfig.h" to redefine strdup() to
+ xstrdup()
+
+Tue Nov 15 21:38:19 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/manp.c (is_global_mandir): new
+ src/man.c (locate_page): use it instead of (global_catpath)
+
+ * src/*.h: add suitable predicates to function prototype
+ declarations
+ moved all function declarations to header files
+ src/compression.h.in: renamed to comp_src.h.in
+
+Mon Nov 14 18:17:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a6
+
+ * src/hashtable.c, src/hashtable.h (struct nlist): replaced
+ (union) member with (void *) and simplified. Modified users.
+
+ * src/man.c (make_cat_file): fixed NULL ptr reference in call to
+ (execle)
+ src/man.c: determined and fixed memory leaks using Checker.
+
+Mon Nov 14 03:33:37 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/db_storage.c (replace_if_necessary, split_data,
+ list_extensions): new
+ src/db_storage.c (free_content): replaced with (free_mandata_struct)
+ all callers changed
+ src/db_storage.c (split_content_keep, split_content_temp): replaced
+ with (split_content)
+
+Sun Nov 13 13:50:46 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/nls.h: change of macros, add (NLS_INIT, EXIT_FUNC)
+ src/*.c: removed (NLS_CLOSE) macros, adjustments due to above
+ src/version.c (close_catalogue): new
+ configure.in (AC_HAVE_FUNCS): (atexit, on_exit)
+
+ * getmandbver.c: removed
+
+Sat Nov 12 14:18:02 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/security.h: new, contains security macros from src/manconfig.h
+ src/manconfig.h: removed security macros
+ src/security.c, src/security.h: replaced (SYSV_SAVED_IDS) with
+ (BROKEN_LINUX_SAVED_IDS)
+
+ * src/paths.h.in, src/compression.h.in, configure.in: changed
+ compression defines
+ src/paths.h.in: defined (STD_SECTIONS), got rid of (MANPATH_MAIN)
+ src/*.c: removed all (MANPATH_MAIN) defines
+ configure.in: added (COMP_CAT) and (COMP_SRC) definitions
+ src/manconfig.h: removed (COMP_SRC) definition
+
+ * All manual pages: Fixed to be compatible with native *roff
+ implementations having a request argument limit of 6
+
+ * src/db_storage.c (gripe_extract_data, gripe_corrupt_data):
+ new routines
+
+ * All Makefiles: add (exec_prefix, mandir, bindir) where necessary
+
+Sat Nov 12 13:38:59 GMT 1994 Markus Armbruster (armbru@pond.sub.org)
+
+ * soelim/Makefile (install): made more portable
+
+ * src/manconfig.h: changes to (POSIX_SAVED_IDS) definition
+
+ * src/man.c (main): removed unnecessary #ifdef conditions regading
+ (SECURE_MANUID)
+
+Sat Nov 12 13:24:17 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/ult_src.c (ult_src): no longer follow an absolute .so include
+ src/ult_src.c (test_for_include): new
+
+Fri Nov 11 10:16:32 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/man.c (manopt_to_env): generalised
+
+ * src/man.c (do_extern): removed (gripe_alloc) call,
+ modified callers
+ src/manp.c: removed (gripe_alloc) calls, general tidy
+ src/gripes.c (gripe_alloc): removed
+
+ * src/ult_src.c (ult_src): fixed loop when (buf) != NULL
+ changed absolute .so include actions
+ configure.in (AC_HAVE_FUNCS): removed (memmove)
+
+ * src/mydbm.h (copy_datum): added references
+ src/db_storage.c (copy_datum): added function
+ Fixes for `native ndbm' data corruption by Markus Armbruster
+
+ * src/Makefile: removed dbver.o as dependency of manpath
+
+ * aclocal.m4 (AC_FUNC_SPRINTF_COUNT): new file and macro
+ configure.in: use it
+ acconfig.h: add (SPRINTF_CHARCOUNT)
+ src/check_mandirs (add_dir_entries): use it
+ src/whatis.c (display): use it
+
+ * src/check_mandirs.c (test_mandirs): added a (free(exists))
+
+ * src/straycats.c (check_for_stray): Fixes regarding straycats
+ with no compression extension
+
+Fri Nov 11 00:29:15 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * lib/xmalloc.c, lib/xstrdup.c, lib/error.c: replaced
+ lib/strdup.c: removed
+ lib/strstr.c: replaced
+ lib/strsep.c, lib/strspn.c, lib/strcspn.c, lib/ansidecl.h: new
+ configure.in (AC_REPLACE_FUNCS): with respect to above
+
+ * src/check_mandirs.c (testmandirs): (free_hashtab) only if
+ necessary
+
+Thu Nov 10 11:07:52 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * Version: 2.2a5
+
+ * src/man.c (usage, man_getopt, parse_roff_directive, ditroff):
+ add `-Z' option
+ man/man1/man.man1: document it
+
+Wed Nov 9 20:16:35 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * configure.in (prefix, nroff, neqn, groff, soelim, CFLAGS,
+ LDFLAGS): portability changes.
+ Suggestions from Markus Armbruster <armbru@pond.sub.org>
+ gencat/Makefile (CFLAGS, LDFLAGS): definitions removed
+
+ * soelim/Makefile (install): procedural changes
+
+ * src/ult_src.c (ult_softlink): changes regarding S_ISLNK
+
+ * src/manconfig.h: #define __inline
+
+ * src/man.c, src/whatis.c, src/nls.c (LC_MESSAGES): define
+ as LC_ALL if necessary
+
+Tue Nov 8 23:17:22 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
+
+ * src/version.c (ver): aesthetic changes
+ * src/man.c, src/whatis.c, src/manpath.c, src/mandb.c (usage, ver):
+ calling changes
+
+ * src/version.h, src/update_db: removed
+
+ * src/convert_name.c (conver_name): argument changes
+ src/man.c (format_and_display): caller of above changed
+ (need_to_rerun, locate_page): new functions to split (man)
+ (format_and_display_nosave): renamed to format_and_display_file
+
+ * soelim/soelim.l (usage, ver): new functions
+ removal of NLS dependence
+
+ * Version: 2.2a4