resetting manifest requested domain to floor
[platform/upstream/man-db.git] / ChangeLog
1 Mon Sep 17 23:22:48 BST 2012  Colin Watson  <cjwatson@debian.org>
2
3         * Version: 2.6.3.
4
5 Mon Sep 17 23:20:19 BST 2012  Colin Watson  <cjwatson@debian.org>
6
7         Stop distributing .tar.gz, as promised in the release notes for
8         2.6.2.
9
10         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
11         * docs/man-db.lsm (Primary-site): Drop .tar.gz size.
12
13 Mon Sep 17 22:53:40 BST 2012  Colin Watson  <cjwatson@debian.org>
14
15         * autogen.sh, release.sh: Use 'set -e' rather than '#! /bin/sh -e',
16           to avoid accidents when debugging with 'sh -x'.
17
18 Mon Sep 17 22:53:14 BST 2012  Colin Watson  <cjwatson@debian.org>
19
20         * Makefile.am (EXTRA_DIST): Add gnulib/gets.patch.
21
22 Mon Sep 17 22:33:41 BST 2012  Colin Watson  <cjwatson@debian.org>
23
24         * configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility
25           with Automake 1.12.
26         * NEWS: Document this.
27
28 Mon Sep 17 22:28:27 BST 2012  Colin Watson  <cjwatson@debian.org>
29
30         Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to
31         stop assuming gets (Savannah bug #37255).
32
33         * gnulib/gets.patch: New file.
34         * autogen.sh: Apply gnulib/gets.patch.
35         * NEWS: Document this.
36
37 Mon Sep 17 22:07:02 BST 2012  Colin Watson  <cjwatson@debian.org>
38
39         Upgrade to Automake 1.11.6.
40
41 Thu Aug 16 12:08:48 BST 2012  Trần Ngọc Quân  <vnwildman@gmail.com>
42
43         * po/vi.po: Update from Translation Project.
44         * man/THANKS: Update.
45
46 Mon Jun 18 13:37:45 BST 2012  Colin Watson  <cjwatson@debian.org>
47
48         * Version: 2.6.2.
49         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
50
51 Mon Jun 18 13:34:31 BST 2012  Ville Skyttä  <ville.skytta@iki.fi>
52
53         * configure.ac: Add elinks and w3m to list of HTML browsers to
54           search for.
55
56 Mon Jun 18 13:02:06 BST 2012  Colin Watson  <cjwatson@debian.org>
57
58         * configure.ac: Adjust indentation.  Set unlzma to empty if xz is
59           found.
60
61 Mon Jun 18 12:56:56 BST 2012  Ville Skyttä  <ville.skytta@iki.fi>
62
63         * configure.ac: Only check for lzma if xz is not found.
64         * include/comp_src.h.in (comp_list): Likewise.
65
66 Mon Jun 18 11:40:27 BST 2012  Colin Watson  <cjwatson@debian.org>
67
68         * configure.ac (AM_INIT_AUTOMAKE): Distribute tarballs compressed
69           using xz as well as gzip.
70
71 Mon Jun 18 11:24:30 BST 2012  Colin Watson  <cjwatson@debian.org>
72
73         * src/whatis.c (main): Make the global configuration file optional
74           if a user configuration file was supplied.  Fixes test suite.
75
76 Mon Jun 18 10:59:41 BST 2012  Colin Watson  <cjwatson@debian.org>
77
78         * README (Copyright and licensing): Update FSF copyright years.
79
80 Mon Jun 18 10:55:53 BST 2012  Colin Watson  <cjwatson@debian.org>
81
82         Upgrade to Autoconf 2.69, Automake 1.11.5, and Gnulib
83         20120404-stable.
84
85 Mon Jun 18 04:20:41 BST 2012  Colin Watson  <cjwatson@debian.org>
86
87         Avoid fatal errors when opening a 64-bit GDBM database from a 32-bit
88         process (Ubuntu bug #1001189).
89
90         * libdb/db_gdbm.c (trap_error): New function.
91           (man_gdbm_open_wrapper): Rearrange interface to call gdbm_open
92           rather than taking its return value as an argument.  Fetch a test
93           value from the database after opening it, inside a setjmp/longjmp
94           guard to prevent GDBM from exiting.
95         * include/mydbm.h (man_gdbm_open_wrapper): Update prototype.
96           (MYDBM_CTRWOPEN, MYDBM_CRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN):
97           Update man_gdbm_open_wrapper calls, since it now calls gdbm_open
98           itself.
99         * NEWS: Document this.
100
101 Mon May 14 16:40:00 PDT 2012  Colin Watson  <cjwatson@debian.org>
102
103         * NEWS: The fix for Ubuntu bug #927028 also fixed Debian bug #672661
104           along the way.  Document this.
105
106 Fri May  4 15:36:58 BST 2012  Martin Eberhard Schauer  <Martin.E.Schauer@gmx.de>
107
108         * man/po4a/po/de.po: Update from Translation Project.
109
110 Thu Apr 26 09:28:44 BST 2012  Arun Persaud  <arun@nubati.net>
111
112         * po/de.po: Update from Translation Project.
113
114 Thu Apr 19 11:19:19 BST 2012  Arun Persaud  <arun@nubati.net>
115
116         * po/de.po: Update from Translation Project.
117         * man/THANKS: Update.
118
119 Sun Apr  8 09:43:11 BST 2012  Marek Černocký  <marek@manet.cz>
120
121         * po/cs.po: Update from Translation Project.
122
123 Mon Mar 19 10:57:16 GMT 2012  Joe Hansen  <joedalton2@yahoo.dk>
124
125         * po/da.po: Update from Translation Project.
126
127 Mon Feb 27 13:26:47 GMT 2012  Colin Watson  <cjwatson@debian.org>
128
129         * src/whatis.c (main): Move locale manpath expansion to ...
130           (locale_manpath): ... here (new function).
131           (suitable_manpath): New function.
132           (do_whatis): If a page contains a slash and is a path to an
133           executable on $PATH, then look up its base name only in
134           appropriate manual hierarchies.
135           (search): Pass current manpath entry to do_whatis.
136         * src/tests/whatis-1: New file.
137         * src/tests/Makefile.am (ALL_TESTS): Add whatis-1.
138         * NEWS: Document this.
139
140 Wed Feb 22 03:04:45 GMT 2012  Colin Watson  <cjwatson@debian.org>
141
142         Optimise apropos when given many arguments (Ubuntu bug #927028).
143
144         * src/whatis.c (use_grep, do_whatis, parse_name, parse_whatis,
145           do_apropos, search): Operate on multiple pages.
146           (use_grep, do_whatis, do_apropos): Update an output array rather
147           than returning an int.
148           (parse_name, parse_whatis): Update an output array as well as
149           returning an int.
150           (display, do_whatis_section): Constify page argument.
151           (match): Constify lowpage and whatis arguments.
152           (main): Process all arguments using a single call to search.
153         * NEWS: Document this.
154
155 Wed Feb 22 02:46:22 GMT 2012  Colin Watson  <cjwatson@debian.org>
156
157         * lib/encodings.c (fallback_source_encoding, fallback_roff_encoding,
158           fallback_less_charset): Save memory by declaring as const char[]
159           rather than const char * (see http://glandium.org/blog/?p=2361).
160           (find_charset_locale): Likewise for supported_path.
161         * src/man.c (default_roff_warnings): Likewise.
162
163 Sat Feb 18 09:34:42 GMT 2012  Colin Watson  <cjwatson@debian.org>
164
165         * lib/hashtable.c (hashtable_lookup_structure): Make return type
166           more precise.
167         * lib/hashtable.h (hashtable_lookup_structure): Update prototype.
168
169 Thu Feb 16 10:55:05 GMT 2012  Colin Watson  <cjwatson@debian.org>
170
171         * Makefile.am (EXTRA_DIST): Add gnulib/m4/math_h.m4.
172
173 Tue Feb 14 12:18:50 GMT 2012  Colin Watson  <cjwatson@debian.org>
174
175         * Version: 2.6.1.
176         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
177
178 Thu Feb  9 08:44:09 GMT 2012  Colin Watson  <cjwatson@debian.org>
179
180         Upgrade to Automake 1.11.3.
181
182 Thu Feb  9 08:16:12 GMT 2012  Colin Watson  <cjwatson@debian.org>
183
184         * src/lexgrog.l, src/zsoelim.l: Ensure that config.h is included at
185           the very top of the scanner, before any other headers.  This
186           should fix a compilation problem on Solaris reported by Clark J.
187           Wang.
188
189 Wed Feb  8 14:07:41 GMT 2012  Joe Hansen  <joedalton2@yahoo.dk>
190
191         * po/da.po: Update from Translation Project.
192
193 Tue Feb  7 00:20:51 GMT 2012  Colin Watson  <cjwatson@debian.org>
194
195         * docs/INSTALL.quick: Document requirement for libiconv >= 1.8 on
196           non-glibc systems.
197
198 Mon Feb  6 23:00:33 GMT 2012  David Prévot  <david@tilapin.org>
199
200         * man/po4a/po/fr.po, po/fr.po: Update from Translation Project.
201
202 Mon Feb  6 22:57:12 GMT 2012  Yuri Kozlov  <yuray@komyakino.ru>
203
204         * man/po4a/po/ru.po, po/ru.po: Update from Translation Project.
205
206 Mon Feb  6 10:45:22 GMT 2012  Colin Watson  <cjwatson@debian.org>
207
208         * FAQ: New file.
209         * Makefile.am (dist_noinst_DATA): Add FAQ.
210
211 Sun Feb  5 21:59:39 GMT 2012  Colin Watson  <cjwatson@debian.org>
212
213         * README (Notice to users of man-db version 2.2 or 2.2.1): Remove
214           this section.  The chances of anyone still running man-db versions
215           from 1995 seem remote in the extreme.
216
217 Sun Feb  5 21:57:49 GMT 2012  Colin Watson  <cjwatson@debian.org>
218
219         * release.sh: Make sure that src/lexgrog.c and src/zsoelim.c are
220           fresh.
221
222 Sun Feb  5 15:36:52 GMT 2012  Colin Watson  <cjwatson@debian.org>
223
224         * README (Copyright and licensing): New year.
225
226 Sun Feb  5 13:14:42 GMT 2012  Colin Watson  <cjwatson@debian.org>
227
228         * manual/README: Fix spelling mistake.
229
230 Sun Feb  5 02:11:04 GMT 2012  Colin Watson  <cjwatson@debian.org>
231
232         * Version: 2.6.1-pre1.
233         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
234
235 Sun Feb  5 01:34:14 GMT 2012  Colin Watson  <cjwatson@debian.org>
236
237         Fix 'make distcheck' to pass with Automake 1.11.2.
238
239         * Makefile.am (distuninstallcheck_listfiles): Ignore the
240           configuration file, which is deliberately left in place on
241           uninstall.
242         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
243         * src/Makefile.am (EXTRA_DIST): Force distribution of lexgrog.c and
244           zsoelim.c.
245
246 Sun Feb  5 00:53:23 GMT 2012  Colin Watson  <cjwatson@debian.org>
247
248         * docs/HACKING (Revision control): Recommend 'bzr branch' rather
249           than 'bzr get'; the latter is apparently deprecated in bzr 2.4.
250
251 Sat Feb  4 23:38:15 GMT 2012  David Prévot  <taffit@debian.org>
252
253         * man/man1/apropos.man1 (SEE ALSO), man/man1/lexgrog.man1 (SEE
254           ALSO), man/man1/man.man1 (SEE ALSO), man/man1/manconv.man1 (SEE
255           ALSO), man/man1/manpath.man1 (SEE ALSO), man/man1/whatis.man1 (SEE
256           ALSO), man/man1/zsoelim.man1 (SEE ALSO), man/man8/catman.man8 (SEE
257           ALSO), man/man8/mandb.man8 (SEE ALSO): Alphabetise references and
258           remove trailing full stops, per man-pages(7) (Debian bug #651482).
259         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
260
261 Sat Feb  4 23:27:39 GMT 2012  Marek Černocký  <marek@manet.cz>
262
263         * po/cs.po: Update from Translation Project.
264         * man/THANKS: Update.
265
266 Sat Feb  4 23:10:58 GMT 2012  Colin Watson  <cjwatson@debian.org>
267
268         * libdb/db_lookup.c (split_data): Use ngettext to translate strings
269           containing plural forms (Savannah bug #34968).
270         * src/lexgrog.l (too_big): Likewise.
271         * src/mandb.c (main): Likewise.
272         * po/man-db.pot, po/*.po: Update.
273
274 Sat Feb  4 21:44:47 GMT 2012  Colin Watson  <cjwatson@debian.org>
275
276         * src/man.c (options): Add --path as an alias for -w.
277           (main): Running 'man -w' (etc.) without a name now prints the
278           manpath, for compatibility with other man implementations.
279         * NEWS: Document this.
280
281 Thu Feb  2 18:05:16 GMT 2012  Colin Watson  <cjwatson@debian.org>
282
283         * include/comp_src.h.in (comp_list): Don't handle .lzma files using
284           lzip.  Requested by Matias A. Fonzo.
285
286 Thu Feb  2 01:51:18 GMT 2012  Colin Watson  <cjwatson@debian.org>
287
288         Fix some errors spotted by the clang static analyser.  Some just
289         needed to be suppressed, but there were two real bugs.
290
291         * src/manconv.c (try_iconv): Make sure outptr is always initialised,
292           even in the corner case where we convert some input text but don't
293           get any UTF-8 text in return.
294         * src/manp.c (get_catpath): Handle manpaths not containing a slash.
295
296         * src/convert_name.c: Mark as non-returning, and add an abort after
297           error (FATAL) to help the compiler prove this.
298         * src/man.c (format_display): Add an assert to help clang prove that
299           old_cwd is always non-NULL when used.
300         * src/ult_src.c: Add asserts to help clang prove that buf is always
301           non-NULL when used.
302
303 Thu Feb  2 00:02:07 GMT 2012  Matias A. Fonzo  <selk@dragora.org>
304
305         Add support for Lzip-compressed manual pages.
306
307         * configure.ac: Check for lzip.  Don't test for lzma if lzip is
308           present, as was already the case for xz.
309         * include/comp_src.h.in (comp_list): Add lzip.
310         * include/manconfig.h.in: Define UNLZIP.
311         * NEWS: Document this.
312
313 Wed Feb  1 23:25:03 GMT 2012  Colin Watson  <cjwatson@debian.org>
314
315         Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.
316
317         * gnulib: Import closedir, fstat, and opendir modules.
318
319 Wed Nov  2 14:33:18 GMT 2011  Robert Luberda  <robert@debian.org>
320
321         * man/po4a/po/pl.po: Update from Translation Project.
322
323 Sun Oct  9 23:32:41 BST 2011  Colin Watson  <cjwatson@debian.org>
324
325         * lib/hashtable.c (null_hashtable_free): Use ATTRIBUTE_UNUSED to
326           appease compiler warnings rather than assigning an argument to
327           itself.
328         * src/mandb.c (cleanup_sigsafe, cleanup): Likewise.
329
330 Sun Oct  9 23:14:11 BST 2011  Colin Watson  <cjwatson@debian.org>
331
332         * src/man.c (get_roff_line_length, add_roff_line_length): Only
333           compile if either TROFF_IS_GROFF or HEIRLOOM_NROFF is defined.
334           Spotted by cppcheck.
335
336 Sun Oct  9 22:50:36 BST 2011  Colin Watson  <cjwatson@debian.org>
337
338         * src/manp.c (add_to_dirlist): Read lines from configuration file
339           using getline rather than fgets with a fixed-size buffer.
340
341 Sun Oct  9 22:42:00 BST 2011  Colin Watson  <cjwatson@debian.org>
342
343         * gnulib: Import getline module (used in lib/encodings.c).
344
345 Sun Oct  9 22:26:15 BST 2011  Colin Watson  <cjwatson@debian.org>
346
347         * man/es/man8/accessdb.man8: Remove; this is simply an out-of-date
348           copy of the English page.  Reported by Křištof Želechovski.
349         * man/es/Makefile.am (man8_MANS): Remove man8/accessdb.8.
350
351 Sun Oct  9 22:21:19 BST 2011  Colin Watson  <cjwatson@debian.org>
352
353         Upgrade to Gnulib 20110908-stable.
354
355 Sun Oct  9 00:24:22 BST 2011  Peter Schiffer  <pschiffe@redhat.com>
356
357         * src/filenames.c (filename_info): Zero-initialise the contents of
358           info to avoid a double-free in store_descriptions (Fedora bug
359           #702904).
360         * src/tests/mandb-6: New file.
361         * src/tests/Makefile.am (ALL_TESTS): Add mandb-6.
362         * NEWS: Document this.
363
364 Sun Oct  9 00:16:25 BST 2011  Colin Watson  <cjwatson@debian.org>
365
366         * NEWS: Update.
367
368 Sat Oct  8 23:34:26 BST 2011  Colin Watson  <cjwatson@debian.org>
369
370         Convert the German manual pages translation to po4a.
371
372         * man/po4a/po/de.po: New from Translation Project (thanks, Martin
373           Eberhard Schauer).
374         * man/LINGUAS: Remove de.
375         * man/LINGUAS.po4a: Add de.
376         * man/de/man1, man/de/man5, man/de/man8: Remove.
377         * man/de/Makefile.am (PO4A_LINGUA): Set to yes.
378           (EXTRA_DIST): Add translator.add.
379           (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1.
380         * man/po4a/Makefile.am (POFILES): Add po/de.po.
381         * man/po4a/po4a.cfg (po4a_langs): Add de.
382         * man/THANKS: Credit Martin Schauer with man/de as well as de.po.
383         * .bzrignore: Add man/de/man1, man/de/man5, and man/de/man8.
384
385 Sat Oct  8 17:11:08 BST 2011  Yasuaki Taniguchi  <yasuakit@gmail.com>
386
387         * po/ja.po: Update from Translation Project.
388
389 Sat Oct  8 17:09:41 BST 2011  Colin Watson  <cjwatson@debian.org>
390
391         * man/THANKS: Consolidate duplicated credit.
392
393 Sat Oct  8 17:07:17 BST 2011  Colin Watson  <cjwatson@debian.org>
394
395         Convert the Japanese manual pages translation to po4a.
396
397         * man/po4a/po/ja.po: New from Translation Project (thanks, Yasuaki
398           Taniguchi).
399         * man/LINGUAS: Remove ja.
400         * man/LINGUAS.po4a: Add ja.
401         * man/ja/man1, man/ja/man5, man/ja/man8: Remove.
402         * man/ja/Makefile.am (PO4A_LINGUA): Set to yes.
403           (EXTRA_DIST): Add translator.add.
404           (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1.
405         * man/po4a/Makefile.am (POFILES): Add po/ja.po.
406         * man/po4a/po4a.cfg (po4a_langs): Add ja.
407         * man/THANKS: Add Yasuaki Taniguchi.
408         * .bzrignore: Add man/ja/man1, man/ja/man5, and man/ja/man8.
409
410 Sun Sep 18 18:28:37 BST 2011  Colin Watson  <cjwatson@debian.org>
411
412         * src/tests/mandb-5: Make executable.
413
414 Sat Sep 17 13:28:33 BST 2011  Colin Watson  <cjwatson@debian.org>
415
416         * docs/HACKING (Revision control): man-db's Bazaar repository now
417           requires bzr 1.16 or later.
418
419 Mon Sep  5 11:29:53 BST 2011  Colin Watson  <cjwatson@debian.org>
420
421         * src/mandb.c: Include "xvasprintf.h" for xasprintf.
422
423 Mon Aug  8 14:00:32 BST 2011  Colin Watson  <cjwatson@debian.org>
424
425         * src/mandb.c (mandb): Create a cache directory tag, per
426           http://www.brynosaurus.com/cachedir/ ("Cache Directory Tagging
427           Standard").  Suggested by Josh Triplett (Debian bug #637046).
428
429 Fri Jul  8 13:27:41 BST 2011  Colin Watson  <cjwatson@debian.org>
430
431         * src/mandb.c (xcopy): Use a 32KiB buffer when copying files, rather
432           than a 1KiB buffer.  This seems somewhat faster (although it's
433           hard to tell on an SSD!).
434
435 Fri Jul  8 12:49:46 BST 2011  Colin Watson  <cjwatson@debian.org>
436
437         Upgrade to Gnulib 20110609-stable.
438
439 Thu Jun 16 12:18:08 BST 2011  Colin Watson  <cjwatson@debian.org>
440
441         * libdb/db_btree.c, libdb/db_ndbm.c: Stop including "flock.h",
442           removed in 2.6.0.  Reported by Maciej Mrozowski.  Include
443           <sys/file.h> unconditionally, since Gnulib now provides it.
444         * NEWS: Document this.
445
446 Mon Jun  6 11:25:28 BST 2011  Colin Watson  <cjwatson@debian.org>
447
448         * man/po4a/Locale/Po4a/Manext.pm (translate): Exclude a number of
449           untranslatable table entries from translation.
450
451 Mon Jun  6 10:36:01 BST 2011  David Prévot  <david@tilapin.org>
452
453         * man/po4a/po/fr.po: Update from Translation Project.
454
455 Mon Jun  6 10:34:26 BST 2011  Colin Watson  <cjwatson@debian.org>
456
457         * man/man8/accessdb.man8 (NAME): Remove trailing full stop
458           (suggested by David Prévot).  Unfuzzy all translations.
459
460 Mon Jun  6 10:06:09 BST 2011  Colin Watson  <cjwatson@debian.org>
461
462         * src/straycats.c (check_for_stray): Pass mandir_base as base
463           argument to store_descriptions, not mandir.  Regression introduced
464           in man-db 2.6.0 (r1309).
465
466 Sat Jun  4 07:33:36 BST 2011  Colin Watson  <cjwatson@debian.org>
467
468         * src/straycats.c (check_for_stray): When invoking col, try to
469           ensure that LC_CTYPE is set to a UTF-8 locale (Arch Linux bug
470           #18722).
471
472 Fri Jun  3 10:05:45 BST 2011  David Prévot  <david@tilapin.org>
473
474         * man/po4a/po/fr.po: Update from Translation Project.
475
476 Tue May 31 01:04:26 BST 2011  Colin Watson  <cjwatson@debian.org>
477
478         * lib/encodings.c (get_locale_charset): Eliminate ctype variable,
479           which was set but not used.
480         * src/man.c (make_roff_command): Preprocess out code to set
481           using_tbl if GNU_NROFF is defined, since that code is only used if
482           it is not defined.
483
484 Tue May 31 00:59:01 BST 2011  Colin Watson  <cjwatson@debian.org>
485
486         * src/man.c (locale_macros): Add a backslash to the end of the .if
487           line, to avoid adding a blank line to the output (Debian bug
488           #628639).
489
490 Fri May 20 16:35:02 BST 2011  Yasuaki Taniguchi  <yasuakit@gmail.com>
491
492         * po/ja.po: Update from Translation Project.
493
494 Wed May 18 17:25:46 BST 2011  Yasuaki Taniguchi  <yasuakit@gmail.com>
495
496         * po/ja.po: Update from Translation Project.
497         * man/THANKS: Update.
498
499 Fri May 13 16:11:07 BST 2011  Martin Eberhard Schauer  <Martin.E.Schauer@gmx.de>
500
501         * po/de.po: Update from Translation Project.
502
503 Sat Apr 23 18:54:06 BST 2011  Colin Watson  <cjwatson@debian.org>
504
505         * src/Makefile.am (SUBDIRS): Build this directory before tests/, so
506           that 'make check' works even if 'make' has not been run.
507
508 Sat Apr 23 18:00:34 BST 2011  Colin Watson  <cjwatson@debian.org>
509
510         Upgrade to Autoconf 2.68 and Gnulib 20110412-stable.
511
512 Wed Apr 13 11:22:39 BST 2011  Colin Watson  <cjwatson@debian.org>
513
514         * Version: 2.6.0.2.
515         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
516
517 Wed Apr 13 10:26:07 BST 2011  Colin Watson  <cjwatson@debian.org>
518
519         * src/descriptions.c (parse_descriptions): Once we've seen at least
520           one record, ignore any further records that don't include a whatis
521           description, as they tend to be noise (Arch Linux bug #22866).
522         * NEWS: Document this.
523
524 Tue Apr 12 14:10:17 BST 2011  Jordi Mallach  <jordi@gnu.org>
525
526         * po/ca.po: Update from Translation Project.
527
528 Tue Apr 12 14:03:38 BST 2011  Colin Watson  <cjwatson@debian.org>
529
530         * src/check_mandirs.c (test_manfile): whatis->whatis may be NULL in
531           the case of an empty page.  Guard against this (Debian bug
532           #622104).
533         * src/tests/mandb-5: New file.
534         * src/tests/Makefile.am (ALL_TESTS): Add mandb-5.
535         * NEWS: Document this.
536
537 Sun Apr 10 22:09:10 BST 2011  Colin Watson  <cjwatson@debian.org>
538
539         * Version: 2.6.0.1.
540         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
541
542 Sun Apr 10 14:45:52 BST 2011  Colin Watson  <cjwatson@debian.org>
543
544         * src/manp.c (read_config_file): Read a user-specified configuration
545           file even if HOME is unset.
546         * NEWS: Document this.
547
548 Sun Apr 10 02:10:56 BST 2011  Colin Watson  <cjwatson@debian.org>
549
550         * src/descriptions_store.c (store_descriptions): Ensure that the
551           target of a symlink or .so chain is always recorded as a real
552           page.  Fixes mandb-2 test failures.
553         * NEWS: Document this.
554
555 Sun Apr 10 01:55:28 BST 2011  Colin Watson  <cjwatson@debian.org>
556
557         * src/tests/mandb-2: Test the case where a manual page changes from
558           a symbolic link to a regular file, as well as vice versa.
559
560 Sat Apr  9 13:30:16 BST 2011  Colin Watson  <cjwatson@debian.org>
561
562         * Version: 2.6.0.
563         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot,
564           po/*.po: Update.
565
566 Sat Apr  9 13:21:08 BST 2011  Colin Watson  <cjwatson@debian.org>
567
568         Upgrade to Libtool 2.4.
569
570 Sat Apr  9 12:56:02 BST 2011  Colin Watson  <cjwatson@debian.org>
571
572         * man/man1/man.man1 (Controlling formatted output): Wrap first cell
573           in --ascii translation table.
574         * man/man8/mandb.man8 (DATABASE CACHES): Wrap second cell in
575           database type table.
576         * man/po4a/Locale/Po4a/Manext.pm (shiftline): Fix T} detection.
577         * man/po4a/po/ru.po: Don't translate "\\*[softhyphen]".
578
579 Sat Apr  9 11:52:20 BST 2011  Colin Watson  <cjwatson@debian.org>
580
581         * man/man1/man.man1 (DESCRIPTION): Typeset ellipses in roman rather
582           than bold (thanks, David Prévot).
583         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
584           Manually unfuzzy translations.
585
586 Sat Apr  9 11:42:51 BST 2011  Robert Luberda  <robert@debian.org>
587
588         * man/po4a/po/pl.po: Update from Translation Project.
589         * po/pl.po: Likewise.
590
591 Sat Apr  9 11:38:52 BST 2011  Yuri Kozlov  <yuray@komyakino.ru>
592
593         * man/po4a/po/ru.po: Update from Translation Project.
594
595 Thu Apr  7 12:46:34 BST 2011  Colin Watson  <cjwatson@debian.org>
596
597         * lib/cleanup.c (do_cleanups): Set tos and nslots to 0 before
598           freeing stack, in case do_cleanups_sigsafe is called again from a
599           signal handler (Fedora bug #694332).
600         * NEWS: Document this.
601
602 Sat Apr  2 12:20:30 BST 2011  David Prévot  <david@tilapin.org>
603
604         * po/fr.po: Update from Translation Project.
605
606 Mon Mar 28 17:59:45 BST 2011  Yuri Kozlov  <yuray@komyakino.ru>
607
608         * po/ru.po: Update from Translation Project.
609
610 Mon Mar 28 17:40:36 BST 2011  Colin Watson  <cjwatson@debian.org>
611
612         * gnulib: Import flock module.
613         * lib/Makefile.am (libman_la_SOURCES): Remove flock.h.
614         * lib/README: Remove flock.*.
615         * lib/flock.c, lib/flock.h: Remove.
616
617 Mon Mar 28 13:07:50 BST 2011  Colin Watson  <cjwatson@debian.org>
618
619         * libdb/mydbm.h (btree_close, btree_exists, btree_fetch,
620           btree_firstkey, btree_nextkey, btree_replace, btree_nextkeydata):
621           Drop inline specifier; these functions are typically used from
622           different translation units from their definitions.
623
624 Mon Mar 28 12:59:54 BST 2011  Colin Watson  <cjwatson@debian.org>
625
626         * configure.ac: Add support for db5.
627         * NEWS: Document this.
628
629 Mon Mar 28 12:26:54 BST 2011  Colin Watson  <cjwatson@debian.org>
630
631         * configure.ac: Apply correct M4 quotation throughout.
632         * m4/man-bdb.m4: Likewise.
633         * m4/man-gnu-nroff.m4: Likewise.
634         * m4/man-linguas.m4: Likewise.
635         * m4/man-trans-subst.m4: Likewise.
636
637         * m4/man-bdb.m4: Use AS_VAR_IF rather than AS_IF plus AS_VAR_GET.
638
639 Mon Mar 28 11:15:16 BST 2011  Joe Hansen  <joedalton2@yahoo.dk>
640
641         * po/da.po: Update from Translation Project.
642
643 Mon Mar 28 11:12:38 BST 2011  David Prévot  <david@tilapin.org>
644
645         * man/po4a/po/fr.po: Update from Translation Project.
646         * man/THANKS: Update.
647
648 Mon Mar 28 11:09:19 BST 2011  David Prévot  <david@tilapin.org>
649
650         * po/fr.po: Update from Translation Project.
651
652 Mon Mar 28 11:06:04 BST 2011  Colin Watson  <cjwatson@debian.org>
653
654         * m4/man-gcc-warning.m4: Remove.
655         * gnulib: Import warnings module.
656         * configure.ac: Replace MAN_GCC_WARNING with gl_WARN_ADD.
657
658 Sun Mar 27 18:25:25 BST 2011  Colin Watson  <cjwatson@debian.org>
659
660         * Version: 2.6.0-pre1.
661         * po/man-db.pot, po/*.po: Update.
662         * man/po4a/po/man-db-manpages.pot: Update.
663
664 Thu Mar 24 12:46:38 GMT 2011  Colin Watson  <cjwatson@debian.org>
665
666         * lib/security.c (do_system_drop_privs_child): Remove unused
667           variable.
668
669 Thu Mar 24 12:43:51 GMT 2011  Colin Watson  <cjwatson@debian.org>
670
671         * src/man.c (lang): Make non-const.
672           (local_man_loop): Free lang after calling display.
673           (display_filesystem): Likewise.
674           (display_database): Likewise.
675           (do_global_apropos_section): Ensure lang is set while calling
676           display.
677         * NEWS: Document this.
678
679 Thu Mar 24 01:22:00 GMT 2011  Colin Watson  <cjwatson@debian.org>
680
681         Help novices find their way around.  See
682         http://brainstorm.ubuntu.com/idea/25975.
683
684         * src/man.c (main): Add "(press h for help or q to quit)" to the
685           default less prompt string.
686         * man/man1/man.man1 (Controlling formatted output): Update
687           documentation.
688         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
689         * NEWS: Document this.
690
691 Thu Mar 24 01:03:13 GMT 2011  Colin Watson  <cjwatson@debian.org>
692
693         Rewrite all remaining subprocess handling in terms of libpipeline.
694
695         * lib/security.c (do_system_drop_privs_child): New function.
696           (do_system_drop_privs): Rewrite using libpipeline.
697         * src/catman.c (post_fork): New function.
698           (catman): Rewrite using libpipeline.
699           (add_arg): Rewrite as a wrapper around pipecmd_arg.
700           (do_catman): Remove.
701           (reset_cursor): Remove.
702           (parse_for_sec): Use libpipeline for subprocess handling.
703           (main): Install custom post-fork handler.
704         * src/man.c (gripe_no_man) [_AIX || __sgi]: Rewrite vendor fallback
705           using libpipeline.
706         * src/Makefile.am (catman_LDADD): Add $(libpipeline_LIBS).
707
708         * src/catman.c (main): Duplicate the output of setlocale if
709           non-NULL.
710
711         * configure.ac (AC_FUNC_VFORK): Remove.
712           (AC_REPLACE_FUNCS): Remove waitpid.
713         * gnulib: Remove waitpid module.
714         * lib/README: Remove waitpid.c.
715         * lib/waitpid.c: Remove.
716
717 Sun Mar 20 12:58:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
718
719         Remove the need for our patched version of xstrdup.
720
721         * lib/encodings.c (get_locale_charset): Check return value of
722           setlocale before passing to xstrdup.
723           (find_charset_locale): Likewise.
724         * lib/pathsearch.c (pathsearch): Check return value of getenv before
725           passing to xstrdup.
726           (pathsearch_executable): Likewise.
727         * lib/tempfile.c (create_tempdir): Adjust appendstr call to avoid
728           needing to pass return value of path_search to xstrdup.
729         * src/check_mandirs.c (test_manfile): Don't pass NULL lg.whatis to
730           xstrdup.
731         * src/descriptions.c (parse_descriptions): Don't pass NULL
732           head->whatis to xstrdup.
733         * src/man.c (main): Check return value of setlocale before passing
734           to xstrdup.
735           (add_col): Only call find_charset_locale if locale_charset is
736           non-NULL.
737           (add_candidate): Don't pass NULL ult to xstrdup.
738         * src/manp.c (read_config_file): Adjust appendstr call to avoid
739           needing to pass return value of getenv to xstrdup.
740         * src/whatis.c (do_apropos): Don't pass NULL info.whatis to xstrdup.
741           (main): Check return value of setlocale before passing to xstrdup.
742         * src/zsoelim.l (zsoelim_stdin_data_new): Don't pass NULL path to
743           xstrdup.
744
745         * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and
746           gnulib/lib/xmalloc.patch.
747         * autogen.sh: Stop applying gnulib/lib/xmalloc.patch.
748         * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.
749
750 Sun Mar 20 01:39:41 GMT 2011  Colin Watson  <cjwatson@debian.org>
751
752         * gnulib: Import waitpid module.
753
754 Sun Mar 20 01:31:33 GMT 2011  Colin Watson  <cjwatson@debian.org>
755
756         Upgrade to Gnulib 20110216-stable.
757
758 Tue Mar 15 10:55:52 GMT 2011  Colin Watson  <cjwatson@debian.org>
759
760         * include/manconfig.h.in (STD_SECTIONS): Add section 0 between 3 and
761           2, matching a change in man-db 2.5.6.
762
763 Tue Mar 15 10:52:58 GMT 2011  Colin Watson  <cjwatson@debian.org>
764
765         * src/man.c (compare_candidates): If the user asked for an explicit
766           section, sort exact matches first (Fedora bug #684977).
767         * src/tests/man-3: New file.
768         * src/tests/Makefile.am (ALL_TESTS): Add man-3.
769         * NEWS: Document this.
770
771 Tue Mar 15 10:48:19 GMT 2011  Colin Watson  <cjwatson@debian.org>
772
773         * src/manp.c (add_sections): Put user entries in a separate list.
774           (get_sections): If any user entries are present, use them rather
775           than system entries.
776           (add_to_dirlist): Pass user to add_sections.
777         * NEWS: Document this.
778
779 Mon Mar 14 10:55:39 GMT 2011  Joe Hansen  <joedalton2@yahoo.dk>
780
781         * po/da.po: Update from Translation Project.
782         * man/THANKS: Update.
783
784 Wed Mar  2 11:12:13 GMT 2011  Colin Watson  <cjwatson@debian.org>
785
786         * src/mandb.c (main): Reset SIGPIPE to SIG_DFL on startup, to avoid
787           noisy output in the event that mandb was started from a context
788           where SIGPIPE was ignored (e.g. Fedora bug #649674).
789         * NEWS: Document this.
790
791 Tue Jan 25 00:20:29 GMT 2011  Colin Watson  <cjwatson@debian.org>
792
793         * src/lexgrog.l (MAN_NAME): Consider .PD requests as paragraph
794           breaks, to work around poor lexical analysis that causes them to
795           be matched as .P and emit a stray trailing "D" (Debian bug
796           #611012).
797
798 Sun Jan 23 23:50:38 GMT 2011  Colin Watson  <cjwatson@debian.org>
799
800         * Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was
801           removed along with the internal copy of libpipeline.
802         * man/po4a/Makefile.am (EXTRA_DIST): Add Locale/Po4a/Manext.pm.
803           (PO4A_ENVIRONMENT): Set PERL5LIB to $(srcdir), not `pwd`.
804
805 Sun Jan 23 17:01:51 GMT 2011  Colin Watson  <cjwatson@debian.org>
806
807         * man/man1/apropos.man1 (OPTIONS), man/man1/lexgrog.man1 (OPTIONS),
808           man/man1/man.man1 (OPTIONS), man/man1/manconv.man1 (OPTIONS),
809           man/man1/manpath.man1 (OPTIONS), man/man1/whatis.man1 (OPTIONS),
810           man/man1/zsoelim.man1 (OPTIONS), man/man8/accessdb.man8 (OPTIONS),
811           man/man8/catman.man8 (OPTIONS), man/man8/mandb.man8 (OPTIONS):
812           Print commas in roman rather than bold.  Based on a patch from
813           David Prévot (Debian bug #600002).
814         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
815           Manually unfuzzy translations.
816
817 Mon Jan 10 20:08:03 GMT 2011  Colin Watson  <cjwatson@debian.org>
818
819         If mandb sees that A is a symlink to B, it should never store a
820         whatis reference for B (Debian bug #204249).
821
822         * src/check_mandirs.c (whatis_hashtable_free): New function.
823           (test_manfile): Change whatis_hash free function to
824           whatis_hashtable_free.  Fetch an ult_trace structure from ult_src,
825           record it in whatis_hash in the case of a cache miss, and pass it
826           to store_descriptions.
827         * src/descriptions_store.c (is_prefix): New function.
828           (store_descriptions): Add path and trace parameters.  Update all
829           callers.
830         * src/descriptions.h (store_descriptions): Update prototype.  Count
831           a match for any name in the provided ult_trace structure as
832           indicating that we shouldn't create a whatis reference.  If a name
833           matches a trace entry outside the current manual hierarchy, skip
834           that name entirely.
835         * src/ult_src.c (ult_trace, free_ult_trace): New functions.
836           (ult_src): Add trace parameter.  Record each file name we
837           encounter in the trace.  Update all callers.
838         * src/ult_src.h (ult_src): Update prototype.
839           (free_ult_trace): Add prototype.
840         * src/Makefile.am (lexgrog_SOURCES): Add filenames.c and
841           filenames.h.
842
843         * src/tests/mandb-2: Test two-level symlinks.
844         * src/tests/mandb-4: New file.
845         * src/tests/Makefile.am (ALL_TESTS): Add mandb-4.
846
847 Mon Jan 10 16:20:22 GMT 2011  Colin Watson  <cjwatson@debian.org>
848
849         * man/man1/man.man1 (DESCRIPTION), man/de/man1/man.man1
850           (BESCHREIBUNG), man/es/man1/man.man1 (DESCRIPCIÓN),
851           man/it/man1/man.man1 (DESCRIZIONE), man/ja/man1/man.man1 (説明):
852           Enclose long table cells in T{ T}.
853         * man/po4a/Locale/Po4a/Manext.pm: New file, to let us translate
854           individual table cells separately.
855         * man/po4a/Makefile.am: Run po4a with PERL5LIB=`pwd`.
856         * man/po4a/po4a.cfg: Change type to manext.
857         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
858         * man/check-man: Stop ignoring "table wider than line width"
859           warnings.
860         * NEWS: Document this.
861
862 Sat Jan  8 18:21:07 GMT 2011  Colin Watson  <cjwatson@debian.org>
863
864         * po/POTFILES.in: Remove lib/pipeline.c (file removed) and
865           src/descriptions.c (no translatable strings).
866         * po/man-db.pot, po/*.po: Update.
867
868 Sat Jan  8 18:14:18 GMT 2011  Colin Watson  <cjwatson@debian.org>
869
870         Remove obsolete cat* subdirectories as well as NLS subdirectories.
871
872         * src/mandb.c (process_manpath): Store the manpath in tried_catdirs
873           along with whether it has been seen.
874           (tried_catdirs_free): New function.
875           (purge_catdir): Improve message.
876           (purge_catsubdirs): New function.
877           (purge_catdirs): Adjust tried_catdirs handling.  Call
878           purge_catsubdirs for both top-level catdirs and NLS catdirs.
879           (main): Set tried_catdirs free function to tried_catdirs_free.
880         * NEWS: Document this.
881
882 Sat Jan  8 11:42:13 GMT 2011  Colin Watson  <cjwatson@debian.org>
883
884         Remove obsolete NLS subdirectories of cat directories (Debian bug
885         #558804).
886
887         * lib/hashtable.c (hashtable_iterate): New function.
888         * lib/hashtable.h (hashtable_iterate): Add prototype.
889
890         * lib/util.c (remove_directory): Add recurse parameter.  Add missing
891           closedir calls.
892         * include/manconfig.h.in (remove_directory): Update prototype.
893         * src/man.c (format_display): Update remove_directory callers.
894
895         * src/mandb.c (process_manpath): Add catpath to tried_catpath hash.
896           Check that manpath exists and is a directory here rather than in
897           the caller.
898           (is_lang_dir, purge_catdir, purge_catdirs): New functions.
899           (main): Create and free tried_catdirs.  Move manpath stat checks
900           to process_manpath.  Call purge_catdirs after all manpath entries
901           have been processed.
902
903         * NEWS: Document this.
904
905 Fri Jan  7 23:49:55 GMT 2011  Colin Watson  <cjwatson@debian.org>
906
907         * src/man.c (format_display_and_save): Drop SIGPIPE handling.
908           pipeline_pump handles this itself, and doing it here means that
909           SIGPIPE is incorrectly ignored in subprocesses (Debian bug
910           #597756).
911
912 Fri Jan  7 23:25:39 GMT 2011  Colin Watson  <cjwatson@debian.org>
913
914         * src/man.c (make_roff_command): Use running_setuid.
915         * src/manp.c (get_def): Likewise.
916
917 Tue Jan  4 11:09:00 GMT 2011  Colin Watson  <cjwatson@debian.org>
918
919         * lib/security.c (running_setuid): New function.
920         * lib/security.h (running_setuid): Add prototype.
921         * src/manconv_client.c (manconv_stdin): If running setuid, exec
922           manconv as an external process, since iconv_open is not guaranteed
923           to work correctly in setuid processes.
924
925         * configure.ac: Require libpipeline >= 1.1.0.
926         * docs/INSTALL.quick: Document increased version requirement.
927
928         * NEWS: Document this.
929
930 Mon Jan  3 03:02:50 GMT 2011  Colin Watson  <cjwatson@debian.org>
931
932         Add basic support for the Heirloom Documentation Tools.
933
934         * m4/man-heirloom-nroff.m4: New file.
935         * configure.ac: Call MAN_PROG_HEIRLOOM_NROFF.  If successful and an
936           nroff macro was found, prepend -mg -msafe -mpadj to the nroff and
937           troff options.
938         * lib/encodings.c (charset_table) [HEIRLOOM_NROFF]: Disable latin1
939           and nippon devices.
940           (device_table) [HEIRLOOM_NROFF]: Add locale device.
941         * src/man.c (heirloom_line_length) [HEIRLOOM_NROFF]: New function.
942           (add_roff_line_length): Optionally return a command, which should
943           be inserted before troff.
944           (add_roff_line_length) [HEIRLOOM_NROFF]: Support Heirloom, which
945           needs text inserted at the start of the input.
946           (make_roff_command) [HEIRLOOM_NROFF]: Use locale device instead of
947           utf8 in UTF-8 locales.  Handle add_roff_line_length return value.
948           Unset TROFFMACS if running setuid.
949           (make_browser): Compile only if TROFF_IS_GROFF.
950           (format_display): Only declare variables related to HTML output if
951           TROFF_IS_GROFF.
952         * src/tests/zsoelim-1: Ignore .ll and .lt lines inserted by
953           heirloom_line_length.
954         * NEWS: Document this.
955
956 Mon Jan  3 00:56:55 GMT 2011  Colin Watson  <cjwatson@debian.org>
957
958         * src/manp.c (get_manpath_from_path): Return an empty string rather
959           than asserting if no path elements with corresponding manpaths
960           were found (Debian bug #608490).
961         * src/man.c (local_man_loop): Skip executable processing if no
962           useful manpath was returned.
963         * src/tests/man-2: New test for this bug.
964         * src/tests/Makefile.am (ALL_TESTS): Add man-2.
965
966         * README (Copyright and licensing): New year.
967
968 Thu Dec 23 16:00:06 GMT 2010  Colin Watson  <cjwatson@debian.org>
969
970         * src/check_mandirs.c (testmandirs): Make output neater when stderr
971           is not a tty.  Suggested by C W Rose.
972         * NEWS: Document this.
973
974 Thu Dec 23 15:50:39 GMT 2010  Colin Watson  <cjwatson@debian.org>
975
976         * src/lexgrog.l (glyphs, perldocs): Remove terminating NULL entries;
977           these arrays are handled using bsearch with an explicit length,
978           and NULL-terminating them causes crashes.
979
980 Mon Dec 20 00:41:04 GMT 2010  Colin Watson  <cjwatson@debian.org>
981
982         * src/catman.c (main): Initialise locale using the LC_MESSAGES
983           category rather than LC_ALL.  glibc returns a composite name for
984           the latter.
985         * lib/util.c (init_locale): Return void instead of returning the
986           result of setlocale.
987         * include/manconfig.h.in (init_locale): Update prototype.
988
989 Sun Dec 19 16:10:35 GMT 2010  Colin Watson  <cjwatson@debian.org>
990
991         * gnulib: Import idpriv-drop and idpriv-droptemp modules.
992         * configure.ac: Stop checking for seteuid, setreuid, and setresuid.
993         * lib/security.c (POSIX_SAVED_IDS, SET_EUID, SWAP_UIDS): Remove in
994           favour of idpriv.h.
995           (drop_effective_privs): Use idpriv_temp_drop.
996           (regain_effective_privs): Use idpriv_temp_restore.
997           (do_system_drop_privs): Use idpriv_drop.  Drop saved-IDs case;
998           avoiding a fork doesn't justify having two code paths.
999
1000 Sun Dec  5 20:58:10 GMT 2010  Colin Watson  <cjwatson@debian.org>
1001
1002         Provide byte positions in manconv errors (Debian bug #562789).
1003
1004         * src/manconv.c (locate_error): New function.
1005           (try_iconv): Skip over processed input data after handling errors.
1006           Use locate_error to produce exact byte positions for conversion
1007           errors.
1008
1009 Thu Dec  2 23:54:03 GMT 2010  Colin Watson  <cjwatson@debian.org>
1010
1011         Allow passing multiple sections to whatis and apropos (Debian bug
1012         #571285).
1013
1014         * src/whatis.c (options): Allow spelling --section as --sections;
1015           this is now the preferred long spelling.  Document that the
1016           argument may be colon-separated.
1017           (split_sections): New function.
1018           (parse_opt): Pass -s argument through split_sections.
1019           (do_whatis): Move most logic to ...
1020           (do_whatis_section): ... here.
1021           (do_whatis): Iterate over sections, calling do_whatis_section for
1022           each.
1023           (do_apropos): Test all requested sections.
1024         * man/man1/apropos.man1 (SYNOPSIS, OPTIONS), man/man1/whatis.man1
1025           (SYNOPSIS, OPTIONS): Document new semantics.
1026         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
1027         * NEWS: Document this.
1028
1029 Thu Dec  2 23:32:07 GMT 2010  Colin Watson  <cjwatson@debian.org>
1030
1031         * src/whatis.c (parse_opt): Make -f and -k force program identity to
1032           whatis and apropos respectively.  This is useful when running
1033           directly from the build tree, since libtool makes it hard to
1034           detect the program name correctly.
1035
1036 Thu Dec  2 19:28:06 GMT 2010  Colin Watson  <cjwatson@debian.org>
1037
1038         * src/catman.c (parse_for_sec): Format ARG_MAX - arg_size using %zd.
1039         * src/manp.c (has_mandir): Cast printf field precisions to int.
1040           (create_pathlist): Use %td to format pointer differences.
1041
1042 Thu Dec  2 19:23:36 GMT 2010  Colin Watson  <cjwatson@debian.org>
1043
1044         * src/man.c (make_display_command): Make sure the returned pipeline
1045           is never NULL; this causes crashes later.
1046
1047 Thu Dec  2 12:33:43 GMT 2010  Colin Watson  <cjwatson@debian.org>
1048
1049         * src/man.c (make_display_command): Don't start a pager if standard
1050           output is not a tty (Fedora bug #658132).
1051         * NEWS: Document this.
1052
1053 Thu Dec  2 00:31:31 GMT 2010  Colin Watson  <cjwatson@debian.org>
1054
1055         Handle roff named glyphs and perldoc strings in NAME sections
1056         (Debian bug #601025).
1057
1058         * src/lexgrog.l (glyphs, perldocs): New arrays.
1059           (MAN_NAME): Call newline_found on encountering \& at the start of
1060           a line.  Call add_glyph_to_whatis on roff named glyphs, and
1061           add_perldoc_to_whatis on perldoc strings.
1062           (compare_macro, add_macro_to_whatis, add_glyph_to_whatis,
1063           add_perldoc_to_whatis): New functions.
1064         * NEWS: Document this.
1065
1066 Wed Dec  1 22:24:51 GMT 2010  Colin Watson  <cjwatson@debian.org>
1067
1068         Improve .so searching (Debian bug #503472).
1069
1070         * src/Makefile.am (zsoelim_SOURCES): Add manp.c and manp.h.
1071         * src/zsoelim.l (zsoelim_parse_file): Take manpathlist and
1072           parent_path arguments, and save those to pass on to
1073           zsoelim_open_file.
1074           (try_compressed): New function, split out from zsoelim_open_file.
1075           (zsoelim_open_file): Take manpathlist and parent_path arguments.
1076           Rearrange search logic as follows: (1) if there is no parent_path,
1077           try opening directly; (2) look up filename within each manpath
1078           entry, treating filenames without directory parts as full manual
1079           page lookups; (3) if there is a parent_path, try opening directly.
1080           (zsoelim_stdin): Pass path and manpathlist from input data to
1081           zsoelim_open_file and zsoelim_parse_file.
1082           (zsoelim_stdin_data_new, zsoelim_stdin_data_free): New functions.
1083         * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file): Update
1084           prototypes.
1085           (zsoelim_stdin_data_new, zsoelim_stdin_data_free): Add prototypes.
1086         * src/zsoelim_main.c (main): Initialise locale and manpath.  Pass
1087           manpath to zsoelim_open_file and zsoelim_parse_file.
1088         * src/man.c (main): Calculate manpath before handling -l option.
1089           (make_roff_command): Pass dir and manpathlist to zsoelim_stdin.
1090         * src/tests/zsoelim-1: New test.
1091         * src/tests/Makefile.am (ALL_TESTS): Add zsoelim-1.
1092         * NEWS: Document this.
1093
1094         * src/manp.c (get_def): If not setuid, make this identical to
1095           get_def_user.
1096         * src/manp.h (get_def): Likewise.
1097
1098 Wed Dec  1 14:15:34 GMT 2010  Colin Watson  <cjwatson@debian.org>
1099
1100         * lib/security.c (do_system_drop_privs): Copy-edit header comment,
1101           and update it for libpipeline.
1102
1103 Mon Nov 29 17:48:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
1104
1105         Remove obsolete versions of lexgrog.  They're still available in
1106         revision control if people want them.
1107
1108         * src/Makefile.am (EXTRA_DIST): Remove.
1109         * src/README.lexgrog, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
1110           src/lexgrog.l.new: Remove.
1111
1112 Sun Nov 28 15:01:21 GMT 2010  Colin Watson  <cjwatson@debian.org>
1113
1114         Remove internal copy of libpipeline.
1115
1116         * configure.ac: Remove --enable-socketpair-pipe and
1117           --with-external-pipeline options.  Remove INTERNAL_PIPELINE
1118           Automake conditional.  Check for libpipeline unconditionally.
1119         * docs/INSTALL.quick: Mention the need to install libpipeline.
1120         * gnulib: Remove strsignal and sys_select modules.
1121         * lib/Makefile.am (libman_la_SOURCES): Never add pipeline.c or
1122           pipeline.h.
1123         * lib/pipeline.c, lib/pipeline.h: Remove.
1124         * m4/man-socketpair.m4: Remove.
1125         * NEWS: Document this.  Bump to 2.6.0.
1126
1127 Thu Nov 18 13:46:04 GMT 2010  Colin Watson  <cjwatson@debian.org>
1128
1129         Reducing linkage when we switched to libtool caused build failures
1130         with versions of GNU ld that default to --no-copy-dt-needed-entries.
1131         Partially revert these changes, this time taking care to directly
1132         link programs against libraries if and only if they use symbols from
1133         those libraries directly (otherwise, the linkage from libman.la and
1134         libmandb.la should be sufficient).
1135
1136         * src/Makefile.am (LIBMAN): Add $(top_builddir)/gnulib/lib/libgnu.la
1137           and @LTLIBINTL@.
1138           (LIBMANDB): Add $(LIBMAN) and $(DBLIBS).
1139           (lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD): Add
1140           $(libpipeline_LIBS) and $(LTLIBICONV).
1141           (whatis_LDADD, zsoelim_LDADD): Add $(libpipeline_LIBS).
1142         * NEWS: Document this.
1143
1144 Wed Nov 17 11:43:30 GMT 2010  Colin Watson  <cjwatson@debian.org>
1145
1146         * Version: 2.5.9.
1147         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
1148
1149 Wed Nov 17 11:34:36 GMT 2010  Colin Watson  <cjwatson@debian.org>
1150
1151         * lib/util.c (init_locale): Avoid warnings if configured with
1152           --disable-nls.  Remove arguments, since this was only ever called
1153           as 'init_locale (LC_ALL, "")' anyway, and that required callers to
1154           explicitly include <locale.h>.  Update all callers.
1155         * include/manconfig.h.in (init_locale): Update prototype.
1156
1157 Wed Nov 17 11:22:28 GMT 2010  Colin Watson  <cjwatson@debian.org>
1158
1159         * src/check_mandirs.c (test_manfile): Revert changes to this
1160           function from 2010-11-14.  Explicitly deleting bad links from the
1161           database was overly sensitive to directory ordering, and caused
1162           test failures on some systems.
1163         * NEWS: Document this.
1164
1165 Mon Nov 15 22:34:57 GMT 2010  Colin Watson  <cjwatson@debian.org>
1166
1167         * Version: 2.5.8.
1168         * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update.
1169
1170 Mon Nov 15 22:22:47 GMT 2010  Colin Watson  <cjwatson@debian.org>
1171
1172         * man/Rules.man (distclean-hook): Rename to ...
1173           (distclean-local): ... this, and fix syntax so that it actually
1174           works.
1175
1176 Mon Nov 15 21:38:04 GMT 2010  Colin Watson  <cjwatson@debian.org>
1177
1178         * src/man.c (local_man_loop): Simplify and improve code to make a
1179           temporary copy of manpathlist, in order that it can't free
1180           unallocated memory (may fix Savannah bug #31633).
1181
1182 Mon Nov 15 13:48:26 GMT 2010  Colin Watson  <cjwatson@debian.org>
1183
1184         * man/po4a/Makefile.am (clean-local): Remove; distclean-hook in
1185           man/Rules.man already takes care of this (thanks, Denis Barbier).
1186
1187 Sun Nov 14 22:12:21 GMT 2010  Colin Watson  <cjwatson@debian.org>
1188
1189         Prevent repeated rescans when a link is broken.  Thanks to Daniel
1190         Isenmann for debugging information.
1191
1192         * src/check_mandirs.c (test_manfile): Explicitly delete bad links
1193           from the database.
1194           (count_glob_matches, purge_whatis, purge_missing): Extract the
1195           database mtime, and ignore any pages at least as old as that for
1196           the purposes of deciding whether a whatis entry has been replaced
1197           by a real page.
1198         * src/tests/mandb-3: New test.
1199         * src/tests/Makefile.am (ALL_TESTS): Add mandb-3.
1200         * NEWS: Document this.
1201
1202 Wed Nov  3 23:40:25 GMT 2010  Jordi Mallach  <jordi@gnu.org>
1203
1204         * po/ca.po: Update from Translation Project.
1205
1206 Wed Nov  3 20:27:46 GMT 2010  Colin Watson  <cjwatson@debian.org>
1207
1208         * src/catman.c (parse_for_sec): Explicitly pass -S before section
1209           number, to reduce ambiguity.
1210         * src/man.c (main): In catman mode, never try to guess whether a
1211           page argument is a section, as it's too easy to get this wrong
1212           (Ubuntu bug #664211).
1213
1214 Fri Oct 29 07:25:44 BST 2010  Colin Watson  <cjwatson@debian.org>
1215
1216         * lib/pipeline.h (pipeline_install_post_fork): Clarify that this is
1217           run in the child process.
1218           (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent
1219           to exiting zero.
1220
1221 Fri Oct 29 06:18:31 BST 2010  Colin Watson  <cjwatson@debian.org>
1222
1223         * lib/pipeline.c (pipecmd_new_sequencev): New function.
1224           (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence.
1225           (pipeline_new_command_argv): New function.
1226           (pipeline_new_command_args): Rewrite in terms of
1227           pipeline_new_command_argv.
1228           (pipeline_command_argv): New function.
1229           (pipeline_command_args): Rewrite in terms of
1230           pipeline_command_argv.
1231         * lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv,
1232           pipeline_command_argv): Add prototypes.
1233
1234 Fri Oct 29 05:28:33 BST 2010  Colin Watson  <cjwatson@debian.org>
1235
1236         * lib/pipeline.c (pipeline_wait): Rename to ...
1237           (pipeline_wait_all): ... this.  Return 127 rather than 1 if
1238           closing the pipeline output fails.  Return 127 if a command other
1239           than the last one fails.  Return the statuses and the number of
1240           statuses in new output parameters if they are non-NULL.
1241           (pipeline_wait): Add new wrapper function.
1242         * lib/pipeline.h (pipeline_wait_all): Add prototype.
1243
1244 Fri Oct 29 03:50:16 BST 2010  Colin Watson  <cjwatson@debian.org>
1245
1246         * lib/pipeline.c (pipeline_new): Default ignore_signals to 0.
1247         * lib/decompress.c (decompress_open, decompress_fdopen): Remove
1248           redundant calls to pipeline_ignore_signals.
1249         * src/man.c (make_browser): Explicitly ignore SIGINT and SIGQUIT
1250           when running the browser.
1251           (make_display_command): Explicitly ignore SIGINT and SIGQUIT when
1252           running the pager.
1253
1254 Fri Oct 29 03:28:57 BST 2010  Colin Watson  <cjwatson@debian.org>
1255
1256         * lib/pipeline.c, lib/pipeline.h: Rename command to pipecmd,
1257           command_* to pipecmd_*, and COMMAND_* to PIPECMD_*.  Update all
1258           callers.
1259
1260 Fri Oct 29 03:24:10 BST 2010  Colin Watson  <cjwatson@debian.org>
1261
1262         * man/po4a/po/nl.po: Use I<> rather than U<>.
1263
1264 Tue Oct 26 12:43:45 BST 2010  Erwin Poeze  <erwin.poeze@gmail.com>
1265
1266         * man/po4a/po/nl.po: Update from Translation Project.
1267
1268 Tue Oct 26 12:40:12 BST 2010  Martin Schauer  <Martin.E.Schauer@gmx.de>
1269
1270         * po/de.po: Update from Translation Project.
1271         * man/THANKS: Update.
1272
1273 Mon Oct 25 17:59:01 BST 2010  Colin Watson  <cjwatson@debian.org>
1274
1275         * lib/pipeline.c (pipeline_install_post_fork): New function.
1276           (pipeline_start): Call post-fork handler rather than hardcoding
1277           pop_all_cleanups.
1278         * lib/pipeline.h (pipeline_install_post_fork): Add prototype.
1279
1280         * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
1281           (main), src/mandb.c (main), src/whatis.c (main),
1282           src/zsoelim_main.c (main): Install pop_all_cleanups as a post-fork
1283           handler.
1284
1285 Mon Oct 25 16:18:08 BST 2010  Colin Watson  <cjwatson@debian.org>
1286
1287         * lib/pipeline.c (command_unsetenv): New function.
1288           (command_dup, command_dump, command_tostring): Check for NULL
1289           cmd->env[i].value.
1290           (command_start_child): If cmd->env[i].value is NULL, call unsetenv
1291           rather than setenv.
1292         * lib/pipeline.h (command_unsetenv): Add prototype.
1293
1294 Sun Oct 24 23:37:08 BST 2010  Colin Watson  <cjwatson@debian.org>
1295
1296         Allow building with an external libpipeline.
1297
1298         * configure.ac: Add --with-external-pipeline option.
1299         * lib/Makefile.am (libman_la_CPPFLAGS): Add $(libpipeline_CFLAGS).
1300           (libman_la_SOURCES): Include pipeline.c and pipeline.h only
1301           conditionally.
1302           (libman_la_LDFLAGS): Add $(libpipeline_LIBS).
1303         * src/Makefile.am (AM_CPPFLAGS): Add $(libpipeline_CFLAGS).
1304         * NEWS: Document this.
1305
1306 Sun Oct 24 21:15:07 BST 2010  Colin Watson  <cjwatson@debian.org>
1307
1308         * lib/pipeline.c (command_start_child): Add trailing newline to
1309           "nice failed" debug message.
1310
1311 Sun Oct 24 21:10:20 BST 2010  Colin Watson  <cjwatson@debian.org>
1312
1313         Make command and pipeline opaque types.
1314
1315         * lib/pipeline.c (command_nice, command_discard_err,
1316           pipeline_get_ncommands, pipeline_get_command,
1317           pipeline_set_command, pipeline_want_in, pipeline_want_out,
1318           pipeline_want_infile, pipeline_want_outfile,
1319           pipeline_ignore_signals): New functions.
1320         * lib/pipeline.h (command_nice, command_discard_err,
1321           pipeline_get_ncommands, pipeline_get_command,
1322           pipeline_set_command, pipeline_want_in, pipeline_want_out,
1323           pipeline_want_infile, pipeline_want_outfile,
1324           pipeline_ignore_signals): Add prototypes.
1325
1326         * lib/pipeline.h (enum command_tag, struct command_env, struct
1327           command, struct pipeline): Move to ...
1328         * lib/pipeline.c (enum command_tag, struct command_env, struct
1329           command, struct pipeline): ... here.
1330
1331         Redirections are now handled slightly differently internally,
1332         allowing redirection from/to fd 0.
1333
1334         * lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and
1335           redirect_out.
1336           (pipeline_connect): Use pipeline_want_in and pipeline_want_out.
1337           Check source->redirect_out.
1338           (pipeline_start): Handle new redirection semantics.
1339
1340         * lib/decompress.c (decompress_open, decompress_fdopen): Use new
1341           accessor functions rather than accessing pipeline fields directly.
1342         * src/man.c (make_display_command, discard_stderr, open_cat_stream,
1343           format_display, display_catman, display): Likewise.
1344
1345 Sun Oct 24 21:04:45 BST 2010  Colin Watson  <cjwatson@debian.org>
1346
1347         * lib/pipeline.c (pipeline_run): This would be a more convenient
1348           wrapper for the common case if it freed the pipeline as well, so
1349           do that.  (Callers that don't want this should call pipeline_start
1350           and pipeline_wait separately.)
1351         * lib/pipeline.h (pipeline_run): Update comment.
1352         * lib/security.c (do_system_drop_privs): Consistently free the
1353           supplied pipeline, and document doing so.
1354         * src/man.c (format_display): Remove pipeline_free after
1355           do_system_drop_privs.
1356         * src/whatis.c (use_grep): Remove pipeline_free after pipeline_run.
1357
1358 Sun Oct 24 21:03:25 BST 2010  Colin Watson  <cjwatson@debian.org>
1359
1360         * lib/pipeline.c (pipeline_new_command_args): New function.
1361         * lib/pipeline.h (pipeline_new_command_args): Add prototype.
1362         * src/man.c (make_browser): Use it.
1363
1364 Sun Oct 24 20:59:27 BST 2010  Colin Watson  <cjwatson@debian.org>
1365
1366         * lib/pipeline.c (pipeline_run): New function.
1367         * lib/pipeline.h (pipeline_run): Add prototype.
1368         * lib/security.c (do_system_drop_privs): Use it.
1369         * src/man.c (do_extern, run_mandb): Likewise.
1370         * src/whatis.c (use_grep): Likewise.
1371
1372 Sun Oct 24 20:56:00 BST 2010  Colin Watson  <cjwatson@debian.org>
1373
1374         * lib/pipeline.h (pipeline_pump): Mention in comment that arguments
1375           must be NULL-terminated.
1376
1377 Sun Oct 24 20:55:10 BST 2010  Colin Watson  <cjwatson@debian.org>
1378
1379         * lib/pipeline.h (pipeline_new_commandv): Fix comment.
1380
1381 Sat Oct 23 20:52:24 BST 2010  Colin Watson  <cjwatson@debian.org>
1382
1383         * configure.ac (AC_TYPE_SIGNAL): Remove (unused).
1384
1385 Tue Oct 12 11:16:31 BST 2010  Colin Watson  <cjwatson@debian.org>
1386
1387         * lib/util.c (init_locale): New function.
1388         * include/manconfig.h.in (init_locale): Add prototype.
1389         * src/Makefile.am (AM_CPPFLAGS): Move -DLOCALEDIR to ...
1390         * lib/Makefile.am (libman_la_CPPFLAGS): ... here.
1391
1392         * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
1393           (main), src/lexgrog_test.c (main), src/man.c (main),
1394           src/manconv_main.c (main), src/mandb.c (main), src/manpath.c
1395           (main), src/whatis.c (main), src/zsoelim.c (main): Use
1396           init_locale.
1397
1398         * lib/util.c (init_locale): Suppress warning message if
1399           DPKG_RUNNING_VERSION is set in the environment.
1400         * NEWS: Document this.
1401
1402 Mon Oct 11 09:38:03 BST 2010  Colin Watson  <cjwatson@debian.org>
1403
1404         * docs/HACKING (Revision control): Update for restored bzr+ssh
1405           access.
1406
1407 Mon Oct 11 09:36:55 BST 2010  Colin Watson  <cjwatson@debian.org>
1408
1409         * .bzrignore: Remove tools/config.rpath.*, which hasn't been needed
1410           here since 2009-04-14.
1411
1412 Tue Oct  5 11:48:57 BST 2010  Colin Watson  <cjwatson@debian.org>
1413
1414         * man/po4a/Makefile.am (clean-local): Don't use 'po4a
1415           --rm-translations', since it sometimes updates PO/POT files and
1416           the obvious workaround for that breaks 'make distcheck'.
1417           Reimplement it by hand instead.
1418
1419 Tue Oct  5 10:59:02 BST 2010  Colin Watson  <cjwatson@debian.org>
1420
1421         * man/check-man: Use libtool to run man from the build tree.
1422
1423 Tue Oct  5 10:36:35 BST 2010  Colin Watson  <cjwatson@debian.org>
1424
1425         It turns out that AM_GNU_GETTEXT([use-libtool]) is unsupported.
1426         Switch to external libintl instead.
1427
1428         * configure.ac (AM_GNU_GETTEXT): Set external.
1429           (AC_CONFIG_FILES): Remove intl/Makefile.
1430         * Makefile.am (SUBDIRS): Remove intl.
1431           (EXTRA_DIST): Add gnulib/m4/glibc2.m4, gnulib/m4/intdiv0.m4,
1432           gnulib/m4/intl.m4, gnulib/m4/intmax.m4, gnulib/m4/inttypes-pri.m4,
1433           gnulib/m4/lcmessage.m4, gnulib/m4/printf-posix.m4,
1434           gnulib/m4/uintmax_t.m4, and gnulib/m4/visibility.m4.
1435         * intl: Remove.
1436         * lib/Makefile.am (libman_la_CPPFLAGS): Remove
1437           -I$(top_builddir)/intl.
1438         * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise.
1439         * src/Makefile.am (AM_CPPFLAGS): Likewise.
1440         * .bzrignore: Remove intl/Makefile, intl/charset.alias,
1441           intl/libgnuintl.h, intl/libintl.h, intl/ref-add.sed, and
1442           intl/ref-del.sed.
1443         * NEWS: Document this.
1444
1445 Tue Oct  5 01:05:24 BST 2010  Colin Watson  <cjwatson@debian.org>
1446
1447         * configure.ac (AM_GNU_GETTEXT): Set use-libtool.
1448
1449 Tue Oct  5 00:11:23 BST 2010  Colin Watson  <cjwatson@debian.org>
1450
1451         * lib/Makefile.am (libman_la_LIBADD): Include @LTLIBINTL@ rather
1452           than @LIBINTL@.
1453         * src/Makefile.am (whatis_LDADD): Include $(LTLIBICONV) rather than
1454           $(LIBICONV).
1455
1456 Mon Oct  4 23:56:36 BST 2010  Colin Watson  <cjwatson@debian.org>
1457
1458         * po/POTFILES.in: Add lib/security.c.  Remove src/fake_security.c
1459           and src/security.c.
1460         * po/man-db.pot, po/*.po: Update.
1461         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
1462
1463 Sun Oct  3 23:57:45 BST 2010  Colin Watson  <cjwatson@debian.org>
1464
1465         * lib/pipeline.c (command_argf): New function.
1466         * lib/pipeline.h (command_argf): Add prototype.
1467         * src/man.c (add_roff_line_length): Use it, reducing need for
1468           temporary local variables.
1469           (make_roff_command): Likewise.
1470
1471 Sun Oct  3 23:30:06 BST 2010  Colin Watson  <cjwatson@debian.org>
1472
1473         * src/man.c (setenv_less): Take a command argument.  Set environment
1474           variables only for that command, not globally.
1475           (make_display_command): Call setenv_less on the command
1476           constructed from pager.
1477
1478 Sun Oct  3 22:34:13 BST 2010  Colin Watson  <cjwatson@debian.org>
1479
1480         * lib/pipeline.c (reap_children, pipeline_sigchld,
1481           pipeline_install_sigchld): Move above pipeline_start.
1482           (pipeline_install_sigchld): Make static.  Return immediately if
1483           already installed.
1484           (pipeline_start): Call pipeline_install_sigchld.
1485         * lib/pipeline.h (pipeline_start): Document that this installs a
1486           SIGCHLD handler.
1487           (pipeline_install_sigchld): Remove prototype.
1488         * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
1489           (main), src/mandb.c (main), src/whatis.c (main),
1490           src/zsoelim_main.c (main): Stop calling pipeline_install_sigchld.
1491
1492 Thu Sep 30 16:01:22 BST 2010  Colin Watson  <cjwatson@debian.org>
1493
1494         Convert the French manual pages translation to po4a.
1495
1496         * man/LINGUAS: Remove fr.
1497         * man/LINGUAS.po4a: Add fr.
1498         * man/fr/man1, man/fr/man5, man/fr/man8: Remove.
1499         * man/fr/Makefile.am (PO4A_LINGUA): Set to yes.
1500           (EXTRA_DIST): Add translator.add.
1501           (man1_MANS): Add man1/manconv.1.
1502         * man/po4a/Makefile.am (POFILES): Add po/fr.po.
1503         * man/po4a/po4a.cfg (po4a_langs): Add fr.
1504         * man/THANKS: Add David Prévot.
1505         * .bzrignore: Add man/fr/man1, man/fr/man5, and man/fr/man8.
1506
1507 Thu Sep 30 15:44:46 BST 2010  David Prévot  <david@tilapin.org>
1508
1509         * po/fr.po: Update from Translation Project.
1510         * man/po4a/po/fr.po: New from Translation Project.
1511         * man/fr/translator.add: New file.
1512
1513 Mon Sep 27 19:06:10 BST 2010  Colin Watson  <cjwatson@debian.org>
1514
1515         Move util to libman.
1516
1517         * src/util.c: Move to ...
1518         * lib/util.c: ... here.
1519         * lib/Makefile.am (libman_la_SOURCES): Add util.c.
1520         * src/Makefile.am (accessdb_SOURCES, catman_SOURCES,
1521           globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, mandb_SOURCES,
1522           manpath_SOURCES, whatis_SOURCES, zsoelim_SOURCES): Remove util.c.
1523         * lib/README: Add util.c.
1524
1525 Mon Sep 27 00:50:37 BST 2010  Colin Watson  <cjwatson@debian.org>
1526
1527         * gnulib/m4/gnulib-cache.m4: Remove obsolete modules atexit, memcmp,
1528           and strcspn.
1529
1530 Mon Sep 27 00:24:50 BST 2010  Colin Watson  <cjwatson@debian.org>
1531
1532         Move security to libman.
1533
1534         * src/security.c: Move to ...
1535         * lib/security.c: ... here.
1536         * src/security.h: Move to ...
1537         * lib/security.h: ... here.
1538         * lib/Makefile.am (libman_la_SOURCES): Add security.c and
1539           security.h.
1540         * src/Makefile.am (lexgrog_SOURCES): Remove fake_security.c and
1541           security.h.
1542           (man_SOURCES, mandb_SOURCES): Remove security.c and security.h.
1543         * lib/README: Add security.*.
1544         * src/lexgrog_test.c: Call init_security, so that we can use generic
1545           security functions rather than fake_security.
1546         * src/fake_security.c: Remove.
1547
1548         * lib/security.c (do_system_drop_privs): Unroll calls to do_system
1549           into calls to pipeline_start and pipeline_wait.
1550         * src/whatis.c (use_grep): Likewise.
1551         * src/util.c (do_system): Remove.
1552         * include/manconfig.h.in (do_system): Remove.
1553
1554         * src/*.c: Update #include grouping for movements to libman.
1555
1556 Sun Sep 26 23:53:08 BST 2010  Colin Watson  <cjwatson@debian.org>
1557
1558         Get the tests working again following the switch to libtool.
1559
1560         * src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove CLEANPATH.
1561         * src/tests/man-1, src/tests/mandb-1, src/tests/mandb-2: Set MANPATH
1562           rather than using run_clean_path; running with a stripped-down
1563           PATH is risky in general and breaks libtool in particular.
1564         * src/tests/testlib.sh (run_clean_path): Remove.
1565
1566         * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add top_builddir.
1567         * src/tests/testlib.sh (run): New function.
1568         * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1,
1569           src/tests/manconv-2, src/tests/manconv-3, src/tests/mandb-1,
1570           src/tests/mandb-2, src/tests/testlib.sh (accessdb_filter): Use run
1571           when running programs from the build tree.
1572
1573 Sun Sep 26 23:25:31 BST 2010  Colin Watson  <cjwatson@debian.org>
1574
1575         Move encodings to libman.
1576
1577         * src/encodings.c: Move to ...
1578         * lib/encodings.c: ... here.
1579         * src/encodings.h: Move to ...
1580         * lib/encodings.h: ... here.
1581         * lib/Makefile.am (libman_la_SOURCES): Add encodings.c and
1582           encodings.h.
1583         * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, manconv_SOURCES,
1584           mandb_SOURCES, manpath_SOURCES): Remove encodings.c and
1585           encodings.h.
1586         * lib/README: Add encodings.*.
1587
1588 Sun Sep 26 23:15:00 BST 2010  Colin Watson  <cjwatson@debian.org>
1589
1590         * src/encodings.c (struct manconv_codes, manconv_stdin,
1591           free_manconv_codes, add_manconv): Move to ...
1592         * src/manconv_client.c: ... here (new file).
1593         * src/encodings.h (add_manconv): Move to ...
1594         * src/manconv_client.h: ... here (new file).
1595         * src/lexgrog.l, src/man.c, src/straycats.c: Include
1596           manconv_client.h.
1597         * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES): Add
1598           manconv_client.c and manconv_client.h.
1599
1600         * src/manp.c: Remove unnecessary inclusion of encodings.h.
1601
1602 Sun Sep 26 22:59:54 BST 2010  Colin Watson  <cjwatson@debian.org>
1603
1604         * src/compression.c: Remove unnecessary inclusion of security.h.
1605         * src/ult_src.c: Likewise.
1606
1607 Sun Sep 26 22:47:02 BST 2010  Colin Watson  <cjwatson@debian.org>
1608
1609         * src/manp.c (mkcatdirs): Move to ...
1610         * src/check_mandirs.c (mkcatdirs): ... here, as it's only used by
1611           testmandirs.  Removes dependency of manp.c on security.h.
1612         * src/manp.h (mkcatdirs): Remove prototype.
1613         * src/Makefile.am (catman_SOURCES, manpath_SOURCES, whatis_SOURCES):
1614           Remove fake_security.c.
1615
1616 Sun Sep 26 22:34:17 BST 2010  Colin Watson  <cjwatson@debian.org>
1617
1618         * src/security.c (remove_with_dropped_privs): Remove; no longer
1619           used.
1620         * src/fake_security.c (remove_with_dropped_privs): Likewise.
1621         * src/security.h (remove_with_dropped_privs): Likewise.
1622
1623 Sun Sep 26 22:23:26 BST 2010  Colin Watson  <cjwatson@debian.org>
1624
1625         * lib/Makefile.am (libman_la_LIBADD): Use $(LTLIBOBJS) rather than
1626           $(LIBOBJS).
1627
1628 Sun Sep 26 22:08:39 BST 2010  Colin Watson  <cjwatson@debian.org>
1629
1630         Build libman and libmandb as shared libraries, reducing our
1631         installed footprint by about 200K.
1632
1633         * configure.ac: Add LT_INIT.  Move AC_GNU_SOURCE up to above it.
1634           Remove redundant AC_PROG_RANLIB.
1635         * gnulib/m4/gnulib-cache.m4: Enable libtool support.
1636         * gnulib/m4/libtool.m4, gnulib/m4/ltoptions.m4,
1637           gnulib/m4/ltsugar.m4, gnulib/m4/ltversion.m4,
1638           gnulib/m4/lt~obsolete.m4, tools/ltmain.sh: New files, created by
1639           libtoolize.
1640         * autogen.sh: Export LIBTOOLIZE_OPTIONS=--quiet.
1641         * lib/Makefile.am: Switch to libtool.  Add ../gnulib/lib/libgnu.la,
1642           $(LIBCOMPRESS), and @LIBINTL@ to LIBADD.  Install the library in
1643           $(pkglibdir), and instruct libtool to set an RPATH on binaries
1644           built against this library.
1645         * libdb/Makefile.am: Switch to libtool.  Add ../lib/libman.la to
1646           LIBADD.  Install the library in $(pkglibdir), and instruct libtool
1647           to set an RPATH on binaries built against this library.
1648         * src/Makefile.am (LIBMAN): Reduce to libman.
1649           (LIBMANDB): Reduce to libmandb.
1650           (accessdb_LDADD, catman_LDADD, globbing_LDADD, lexgrog_LDADD,
1651           man_LDADD, manconv_LDADD, mandb_LDADD, manpath_LDADD,
1652           whatis_LDADD, zsoelim_LDADD): Remove dependencies of libman and
1653           libmandb.
1654         * .bzrignore: Add **/*.la, **/*.lo, **/.libs, and ./libtool.
1655         * NEWS: Document this.
1656
1657         Avoid symbol clashes between libgnu and libman.
1658
1659         * lib/hashtable.c (null_hash_free, plain_hash_free, hash_create,
1660           hash_lookup_structure, hash_lookup, hash_install, hash_remove,
1661           hash_free): Rename to ...
1662           (null_hashtable_free, plain_hashtable_free, hashtable_create,
1663           hashtable_lookup_structure, hashtable_lookup, hashtable_install,
1664           hashtable_remove, hashtable_free): ... these.  Update all callers
1665           and prototypes.
1666         * lib/hashtable.h (hash_free_ptr): Rename to ...
1667           (hashtable_free_ptr): ... this.  Update all users.
1668
1669 Thu Sep 16 13:53:11 BST 2010  Robert Luberda  <robert@debian.org>
1670
1671         * man/po4a/po/pl.po: Update from Translation Project.
1672
1673 Tue Aug 17 15:31:38 BST 2010  Colin Watson  <cjwatson@debian.org>
1674
1675         * man/po4a/Makefile.am (clean-local): Make sure not to change PO or
1676           POT files when removing generated translations.
1677
1678 Tue Aug 17 15:26:12 BST 2010  Colin Watson  <cjwatson@debian.org>
1679
1680         Upgrade to Autoconf 2.67.
1681
1682 Tue Aug 17 14:29:53 BST 2010  Colin Watson  <cjwatson@debian.org>
1683
1684         * src/man.c (display_catman): Add iconv to format_cmd before adding
1685           a compressor.
1686         * NEWS: Document this.
1687
1688 Tue Aug 17 14:22:06 BST 2010  Colin Watson  <cjwatson@debian.org>
1689
1690         * src/man.c (add_output_iconv): Make static.
1691
1692 Tue Jul 20 08:18:41 BST 2010  Colin Watson  <cjwatson@debian.org>
1693
1694         Upgrade to Gnulib 20100704.
1695
1696         * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.18.1.
1697
1698 Wed May 19 12:38:31 BST 2010  Colin Watson  <cjwatson@debian.org>
1699
1700         * src/descriptions.c (parse_descriptions): Free record.
1701         * src/encodings.c (check_preprocessor_encoding): Free directive.
1702           (manconv_stdin): Free p.
1703         * src/lexgrog_test.c (main): Free lg.filters and lg.whatis.
1704
1705 Thu May 13 11:45:02 CEST 2010  Clytie Siddall  <clytie@riverland.net.au>
1706
1707         * po/vi.po: Update from Translation Project.
1708
1709 Mon May 10 09:42:41 CEST 2010  Yuri Kozlov  <yuray@komyakino.ru>
1710
1711         * man/po4a/po/ru.po: Update from Translation Project.
1712
1713 Sun May  9 07:37:14 BST 2010  Colin Watson  <cjwatson@debian.org>
1714
1715         * Version: 2.5.8-pre1.
1716         * release.sh: Remove man/po4a/po/man-db-manpages.pot before running
1717           'make distcheck', to force it to be regenerated with the current
1718           version number.
1719         * man/po4a/Makefile.am: Make po/man-db-manpages.pot depend on
1720           update-po, rather than using dist-hook which is too late.
1721         * po/man-db.pot, po/*.po: Update.
1722         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
1723
1724 Sat May  8 15:39:49 BST 2010  Colin Watson  <cjwatson@debian.org>
1725
1726         * src/filenames.c (filename_info): Explicitly fail if the extension
1727           is zero-length.
1728
1729 Sat May  8 15:35:17 BST 2010  Colin Watson  <cjwatson@debian.org>
1730
1731         * src/filenames.c (filename_info): Allow section and extension to
1732           differ as long as the first character is the same.  (This is my
1733           understanding of what the code was originally meant to do, but it
1734           only worked if the section was exactly one character long.)
1735
1736 Tue Apr 27 11:02:48 BST 2010  Colin Watson  <cjwatson@debian.org>
1737
1738         Upgrade to Gnulib 20100424.
1739
1740 Fri Apr  2 20:44:11 BST 2010  Ville Skyttä  <ville.skytta@iki.fi>
1741
1742         * configure.ac: Only test for lzma if xz is missing.  Add xz to list
1743           of compressors checked when deciding whether to define COMP_CAT or
1744           COMP_SRC.
1745         * include/comp_src.h.in (comp_list): If xz is available, use it for
1746           .lzma files in preference.
1747
1748 Fri Apr  2 20:26:41 BST 2010  Ville Skyttä  <ville.skytta@iki.fi>
1749
1750         * include/comp_src.h.in (comp_list): If compress is not available,
1751           use gzip to handle .Z files.
1752
1753 Mon Mar 29 09:36:00 BST 2010  Clytie Siddall  <clytie@riverland.net.au>
1754
1755         * po/vi.po: Update from Translation Project.
1756
1757 Wed Mar 24 11:04:46 GMT 2010  Colin Watson  <cjwatson@debian.org>
1758
1759         Fix build regression when GNU_NROFF is undefined (Savannah bug
1760         #29318).
1761
1762         * src/man.c (add_col): New function, split out from
1763           make_display_command.
1764           (make_roff_command): Reinstate tbl/col logic here, as by the time
1765           we get to make_display_command we've forgotten whether tbl was
1766           used.
1767           (make_display_command): Remove tbl/col logic, useless here.  Use
1768           add_col.
1769
1770 Sun Mar 21 21:59:54 GMT 2010  Tanguy Ortolo  <tanguy+debian@ortolo.eu>
1771
1772         * src/man.c (main): Try underscore-separated subpages as well as
1773           hyphen-separated ones (Debian bug #574641).
1774         * man/man1/man.man1 (Finding manual pages): Document this.
1775         * NEWS: Document this.
1776
1777 Wed Mar 17 10:26:44 GMT 2010  Colin Watson  <cjwatson@debian.org>
1778
1779         * gnulib: Import localcharset module.
1780         * src/encodings.c (struct charset_entry): Rename locale_charset to
1781           charset_from_locale.  Update all users.
1782           (struct less_charset_entry): Likewise.
1783           (get_locale_charset): Use locale_charset function from Gnulib,
1784           rather than dealing with nl_langinfo and the fallback ourselves.
1785           (get_default_device): Rename locale_charset parameter to
1786           charset_from_locale.
1787           (get_less_charset): Likewise.
1788           (get_jless_charset): Likewise.
1789         * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add
1790           @LOCALCHARSET_TESTS_ENVIRONMENT@.
1791
1792 Sat Mar 13 22:15:54 GMT 2010  Colin Watson  <cjwatson@debian.org>
1793
1794         * man/check-man: Ignore "table wider than line width" warnings for
1795           Dutch too.
1796
1797 Sat Mar 13 21:33:48 GMT 2010  Colin Watson  <cjwatson@debian.org>
1798
1799         Upgrade to Gnulib 20100308.
1800
1801 Thu Mar 11 01:26:56 GMT 2010  Colin Watson  <cjwatson@debian.org>
1802
1803         * configure.ac: Add AM_MAINTAINER_MODE.  In the modern world,
1804           timestamps are often just too fragile for those make targets to
1805           work well; use ./autogen.sh instead.
1806
1807 Tue Mar  2 19:11:44 GMT 2010  Darren Salt  <linux@youmustbejoking.demon.co.uk>
1808
1809         Add support for XZ-compressed manual pages (Debian bug #572233).
1810
1811         * configure.ac: Check for xz.
1812         * include/comp_src.h.in (comp_list): Add xz.
1813         * include/manconfig.h.in: Define UNXZ.
1814         * NEWS: Document this.
1815
1816 Tue Mar  2 10:04:54 GMT 2010  Colin Watson  <cjwatson@debian.org>
1817
1818         Fix assertion failure on 'man -l' with an uncompressed page and
1819         prefixed input (no-hyphenation, no-justification, or a non-English
1820         page).
1821
1822         * lib/pipeline.c (command_new_passthrough): New function.
1823         * lib/pipeline.h (command_new_passthrough): Add prototype.
1824         * src/man.c (display): Allow zero-command decompression pipelines
1825           with prefix sequences.  In that case, append a passthrough command
1826           to the prefix sequence, and append the prefix sequence to the
1827           decompression pipeline rather than replacing its first command.
1828         * NEWS: Document this.
1829
1830 Tue Mar  2 09:31:36 GMT 2010  Colin Watson  <cjwatson@debian.org>
1831
1832         * man/po4a/po/nl.po: New from Translation Project (thanks, Erwin
1833           Poeze).
1834         * configure.ac (AC_CONFIG_FILES): Add man/nl/Makefile.
1835         * man/LINGUAS.po4a: Add nl.
1836         * man/Makefile.am (DIST_SUBDIRS): Add nl.
1837         * man/nl/Makefile.am, man/nl/translator.add: New files.
1838         * man/po4a/Makefile.am (POFILES): Add po/nl.po.
1839         * man/po4a/po4a.cfg (po4a_langs): Add nl.
1840         * man/THANKS: Credit Erwin Poeze with man/nl as well as nl.po.
1841         * .bzrignore: Add man/nl/man1, man/nl/man5, and man/nl/man8.
1842
1843 Thu Feb 18 01:38:04 GMT 2010  Colin Watson  <cjwatson@debian.org>
1844
1845         * src/man.c (locale_macros): Explicitly set groff's hyphenation
1846           language, to ensure that it only hyphenates languages it knows
1847           about (Debian bug #570247).
1848
1849 Tue Feb 16 23:11:58 GMT 2010  Colin Watson  <cjwatson@debian.org>
1850
1851         * Version: 2.5.7.
1852         * po/man-db.pot, po/*.po: Update.
1853
1854 Tue Feb 16 23:09:11 GMT 2010  Colin Watson  <cjwatson@debian.org>
1855
1856         * src/manp.c (get_catpath): Fix handling of non-translated cat
1857           paths.
1858
1859 Sun Feb 14 00:19:47 GMT 2010  Colin Watson  <cjwatson@debian.org>
1860
1861         Always save cat pages in UTF-8 (Debian bug #446741).
1862
1863         * src/encodings.c (struct directory_entry): Remove
1864           standard_output_encoding member.
1865           (directory_table): Likewise.
1866           (get_standard_output_encoding): Remove.
1867         * src/encodings.h (get_standard_output_encoding): Remove prototype.
1868         * src/man.c (my_locale_charset): New function, with code moved from
1869           make_roff_command.
1870           (make_roff_command): Return pipeline output encoding in a new
1871           output parameter.  Remove enforcement that cat pages could only be
1872           saved for the manual hierarchy's default character set.  Move
1873           post-cat-page pipeline elements to ...
1874           (add_output_iconv, make_display_command): ... here.
1875           (make_display_command): Remove code for handling a named input
1876           file, which has been unused for some time.  New encoding argument.
1877           (open_cat_stream): New encoding argument.  Convert from it to
1878           UTF-8 while saving the cat page.
1879           (format_display_and_save): New encoding argument, passed to
1880           open_cat_stream.
1881           (display_catman): New encoding argument.  Convert from it to UTF-8
1882           while saving the cat page.
1883           (display): Get formatted encoding from make_roff_command and pass
1884           it to display_catman, make_display_command, and
1885           format_display_and_save.  Assume UTF-8 when displaying an existing
1886           cat page.
1887         * NEWS: Document this.
1888
1889 Sat Feb 13 14:25:42 GMT 2010  Vincent Lefèvre  <vincent@vinc17.net>
1890
1891         * lib/decompress.c (decompress_open): Fix sense of directory check
1892           (Debian bug #537434).
1893
1894 Mon Feb  8 07:01:35 GMT 2010  Colin Watson  <cjwatson@debian.org>
1895
1896         * src/manp.c (get_catpath): Handle man -> cat substitution correctly
1897           for translated cat pages.
1898
1899 Mon Feb  8 04:57:09 GMT 2010  Colin Watson  <cjwatson@debian.org>
1900
1901         * src/man.c (format_display_and_save): Use sigaction, not signal.
1902
1903 Mon Feb  8 04:29:42 GMT 2010  Colin Watson  <cjwatson@debian.org>
1904
1905         * gnulib: Import getopt-gnu module rather than the obsolete getopt.
1906
1907 Mon Feb  1 12:18:36 PST 2010  Colin Watson  <cjwatson@debian.org>
1908
1909         * lib/pipeline.c (pipeline_wait): Don't bother printing error
1910           messages for SIGINT and SIGQUIT, since these correspond to
1911           explicit user actions (Debian bug #568000).
1912
1913 Sun Jan 31 03:44:59 GMT 2010  Colin Watson  <cjwatson@debian.org>
1914
1915         * src/manconv.c (try_iconv): Don't lose iconv errors from converting
1916           to UTF-8 when the target encoding is not UTF-8.
1917
1918 Sun Jan 31 03:33:33 GMT 2010  Colin Watson  <cjwatson@debian.org>
1919
1920         Upgrade to Automake 1.11.1 and Gnulib 20100109.
1921
1922 Thu Jan 14 11:51:59 GMT 2010  Colin Watson  <cjwatson@debian.org>
1923
1924         * src/whatis.c (search): "%s: nothing appropriate." is an error;
1925           write it to stderr, not stdout (Debian bug #565255).
1926
1927 Wed Jan 13 23:42:00 GMT 2010  Werner Fink  <werner@suse.de>
1928
1929         Add support for using socketpair(2) as a replacement for pipe(2),
1930         which is faster on some systems (Savannah patch #6741).
1931
1932         * configure.ac: Add --enable-socketpair-pipe option.
1933         * m4/man-socketpair.m4: New file.
1934         * lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a
1935           construction based on socketpair().
1936         * NEWS: Document this.
1937
1938 Wed Jan 13 22:04:23 GMT 2010  Colin Watson  <cjwatson@debian.org>
1939
1940         Upgrade to Autoconf 2.65 and Gnulib 20091120.
1941
1942 Wed Jan 13 18:26:47 GMT 2010  Diego Pettenò  <flameeyes@gentoo.org>
1943
1944         Add support for heirloom-doctools (Savannah patch #6933).
1945
1946         * configure.ac: Substitute TROFF.
1947         * manual/Makefile.am (.pp.dvi, .pp.ps, .pp.tdvi, .pp.html): Use
1948           $(TROFF) rather than groff or troff.
1949         * src/man.c (options, parse_opt): Just ignore the --warnings option
1950           when troff is not groff, rather than compiling it out entirely.
1951           (make_roff_command): Only use gxditview variable when troff is
1952           groff.
1953         * NEWS: Document this.
1954
1955 Tue Jan 12 13:33:51 GMT 2010  Samuel Thibault  <sthibault@debian.org>
1956
1957         * lib/pipeline.c (pipeline_pump): Fix off-by-one error when write
1958           returns EAGAIN (Debian bug #564818).
1959
1960 Fri Jan  1 17:03:18 GMT 2010  Colin Watson  <cjwatson@debian.org>
1961
1962         * README (Copyright and licensing): Update copyright years.
1963
1964 Fri Jan  1 13:26:21 GMT 2010  Colin Watson  <cjwatson@debian.org>
1965
1966         * src/manconv.c (try_iconv): Only handle iconv errors when iconv
1967           returned -1.
1968
1969 Fri Jan  1 11:37:13 GMT 2010  Colin Watson  <cjwatson@debian.org>
1970
1971         * src/manconv.c (try_iconv): Handle iconv errors when attempting to
1972           convert the last input encoding to UTF-8 (Debian bug #562503).
1973         * src/tests/manconv-3: Add test for this.
1974         * src/tests/Makefile.am (TESTS): Add manconv-3.
1975
1976 Tue Dec 15 14:10:19 GMT 2009  Colin Watson  <cjwatson@debian.org>
1977
1978         * src/mandb.c (main): Fix possible crash when MAN_MUST_CREATE is
1979           unset.
1980         * NEWS: Document this.
1981
1982 Tue Dec 15 13:47:50 GMT 2009  Colin Watson  <cjwatson@debian.org>
1983
1984         * lib/debug.c (init_debug): New function: check for MAN_DEBUG=1 in
1985           the environment.
1986         * include/manconfig.h.in (init_debug): Add prototype.
1987         * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
1988           (main), src/lexgrog_test.c (main), src/man.c (main),
1989           src/manconv_main.c (main), src/mandb.c (main), src/manpath.c
1990           (main), src/whatis.c (main), src/zsoelim_main.c (main): Call
1991           init_debug.
1992         * NEWS: Document this.
1993
1994 Sat Dec 12 00:36:14 GMT 2009  Robert Luberda  <robert@debian.org>
1995
1996         * man/po4a/po/pl.po: Update from Translation Project.
1997
1998 Tue Dec  1 17:01:19 GMT 2009  Colin Watson  <cjwatson@debian.org>
1999
2000         * src/man.c (do_extern): Pass section through to external program
2001           (Savannah bug #28145). Fix passing of alternate system name to use
2002           -m rather than -s.
2003
2004 Tue Nov 24 18:27:59 GMT 2009  Robert Luberda  <robert@debian.org>
2005
2006         * po/pl.po: Update from Translation Project.
2007
2008 Wed Nov 18 14:58:52 GMT 2009  Yuri Kozlov  <yuray@komyakino.ru>
2009
2010         * man/po4a/po/ru.po: Update from Translation Project.
2011
2012 Wed Nov 18 14:55:31 GMT 2009  Yuri Kozlov  <yuray@komyakino.ru>
2013
2014         * po/ru.po: Update from Translation Project.
2015
2016 Wed Nov 18 14:52:43 GMT 2009  Erwin Poeze  <erwin.poeze@gmail.com>
2017
2018         * po/nl.po: Update from Translation Project.
2019
2020 Sun Nov 15 22:49:35 GMT 2009  Colin Watson  <cjwatson@debian.org>
2021
2022         * README (Non-generic arguments to configure): Use more readable
2023           formatting.
2024         * manual/options-only.me, manual/print-options: New file.
2025         * manual/intro.me (Arguments to configure): Add hooks for
2026           options-only.me.
2027         * manual/Makefile.am (dist_noinst_DATA): Add options-only.me and
2028           print-options.
2029
2030 Sun Nov 15 16:15:56 GMT 2009  Colin Watson  <cjwatson@debian.org>
2031
2032         * docs/HACKING (Revision control): Savannah has disabled bzr+ssh for
2033           the time being; update push URL.
2034
2035 Sun Nov 15 16:05:26 GMT 2009  Colin Watson  <cjwatson@debian.org>
2036
2037         * Version: 2.5.7-pre1.
2038         * po/man-db.pot, po/*.po: Update.
2039
2040 Sun Nov 15 14:30:27 GMT 2009  Colin Watson  <cjwatson@debian.org>
2041
2042         * NEWS: Document previous change.
2043
2044 Sun Nov 15 14:18:35 GMT 2009  Colin Watson  <cjwatson@debian.org>
2045
2046         * src/man.c (compare_candidates): Prefer getting a page from the
2047           best manual section over getting a page in the correct language; I
2048           have my reservations about this, but it seems to be what people
2049           are requesting (Debian bug #519547).
2050
2051 Sun Nov 15 14:02:11 GMT 2009  Colin Watson  <cjwatson@debian.org>
2052
2053         Search man<sec><ext> directories in the GNU layout (Debian bug
2054         #519807, Arch Linux bug #13734).
2055
2056         * src/globbing.c (match_in_directory): Optionally take allocated
2057           count from caller. If it's non-zero, don't clear the glob.
2058           (look_for_file): In the GNU layout, search all subdirectories of
2059           hier that begin with the first character of the section.
2060         * NEWS: Document this.
2061
2062 Sun Nov 15 13:32:58 GMT 2009  Colin Watson  <cjwatson@debian.org>
2063
2064         * src/globbing.c (match_in_directory): Make this void; checking
2065           whether any glob matches were returned is sufficient. Move
2066           glob-clearing code to ...
2067           (clear_glob): ... here (new function).
2068           (look_for_file): Simplify since we now only need to check
2069           gbuf.gl_pathc == 0, not the return value of match_in_directory as
2070           well. Clear gbuf on entry.
2071
2072 Sun Nov 15 13:18:38 GMT 2009  Colin Watson  <cjwatson@debian.org>
2073
2074         * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1,
2075           src/tests/manconv-2, src/tests/mandb-1, src/tests/mandb-2: Use
2076           'diff -u', which produces more helpful output on failures.
2077
2078 Sat Nov 14 20:10:57 GMT 2009  Colin Watson  <cjwatson@debian.org>
2079
2080         * README (System specific notes): Remove entirely. The notes about
2081           Linux here only pertain to thoroughly obsolete systems.
2082
2083 Sat Nov 14 20:08:40 GMT 2009  Colin Watson  <cjwatson@debian.org>
2084
2085         * configure.ac: Handle Ultrix-4.3a -YPOSIX requirement
2086           automatically.
2087         * README (System specific notes): Remove note about Ultrix-4.3a.
2088
2089 Sat Nov 14 19:14:02 GMT 2009  Colin Watson  <cjwatson@debian.org>
2090
2091         * lib/README: Copyright is not the same as licensing; fix confusion.
2092
2093 Sat Nov 14 18:57:42 GMT 2009  Colin Watson  <cjwatson@debian.org>
2094
2095         * src/man.c (options): Add --nh and --nj aliases for
2096           --no-hyphenation and --no-justification respectively.
2097         * man/man1/man.man1 (Controlling formatted output): Document new
2098           aliases.
2099
2100 Sat Nov 14 18:52:15 GMT 2009  Colin Watson  <cjwatson@debian.org>
2101
2102         * lib/pipeline.c (argstr_get_word): Fix a small memory leak.
2103
2104 Sat Nov 14 18:51:37 GMT 2009  Colin Watson  <cjwatson@debian.org>
2105
2106         Do what the user probably means when the full path to an executable
2107         is given as an argument (Debian bug #505465).
2108
2109         * lib/pathsearch.c (directory_on_path): New function.
2110         * lib/pathsearch.h (directory_on_path): Add prototype.
2111         * src/manp.c (get_manpath_from_path): Make external. Add 'mandatory'
2112           argument to control the addition of MANDATORY_MANPATH entries.
2113           (guess_manpath): Update caller.
2114         * src/manp.h (get_manpath_from_path): Add prototype.
2115         * src/man.c (main): Move locale manpath expansion to ...
2116           (locale_manpath): ... here (new function).
2117           (local_man_loop): If the argument is an executable, try looking up
2118           the corresponding manual page in the appropriate part of the
2119           manpath, rather than just trying to format the text of the
2120           executable as a manual page.
2121         * NEWS: Document this.
2122
2123 Sat Nov 14 10:28:29 GMT 2009  Colin Watson  <cjwatson@debian.org>
2124
2125         Add option to disable justification (Debian bug #440047).
2126
2127         * src/man.c (options, parse_opt): Accept --no-justification. Reset
2128           corresponding variable with -D.
2129           (disable_justification): New function.
2130           (display): Append disable_justification to the decompressor
2131           pipeline if --no-justification is used.
2132         * man/man1/man.man1 (SYNOPSIS, Controlling formatted output):
2133           Document --no-justification.
2134         * NEWS: Document this.
2135
2136 Sat Nov 14 10:23:28 GMT 2009  Colin Watson  <cjwatson@debian.org>
2137
2138         * include/manconfig.h.in (ATTRIBUTE_NORETURN): Define to an
2139           attribute marking a function as non-returning if using GCC 2.5 or
2140           newer.
2141         * lib/pipeline.c (command_new_sequence, command_sequence_command):
2142           New functions.
2143           (command_dup, command_dump, command_tostring, command_free):
2144           Handle commands of type COMMAND_SEQUENCE.
2145           (pipeline_start): Move command execution to ...
2146           (command_start_child): ... here (new function). Handle commands of
2147           type COMMAND_SEQUENCE.
2148         * lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE.
2149           (struct command): Add support for commands that consist of a
2150           sequence of commands.
2151           (command_new_sequence, command_sequence_command): Add prototypes.
2152         * src/man.c (disable_hyphenation, locale_macros): Drop passthrough
2153           code.
2154           (display): Create a command sequence for hyphenation and
2155           locale-macro decompressor prefixes if necessary.
2156
2157 Mon Nov  9 16:59:47 GMT 2009  Colin Watson  <cjwatson@debian.org>
2158
2159         * configure.ac: Define a CROSS_COMPILING conditional if
2160           cross-compiling.
2161         * man/Rules.man, src/tests/Makefile.am: Don't run tests if
2162           cross-compiling.
2163         * NEWS: Document this.
2164
2165 Mon Nov  9 16:53:10 GMT 2009  Colin Watson  <cjwatson@debian.org>
2166
2167         Upgrade to Gnulib 20090915.
2168
2169 Mon Nov  9 16:27:44 GMT 2009  Colin Watson  <cjwatson@debian.org>
2170
2171         * src/encodings.c (find_charset_locale): New function.
2172         * src/encodings.h (find_charset_locale): Add prototype.
2173         * src/man.c (make_roff_command): When invoking col, ensure that
2174           LC_CTYPE is set to an appropriate locale for the selected
2175           character set (Debian bug #555331).
2176         * NEWS: Document this.
2177
2178 Thu Oct  8 23:22:57 BST 2009  Colin Watson  <cjwatson@debian.org>
2179
2180         * src/encodings.c: Include <unistd.h> for dup and STDIN_FILENO.
2181
2182 Thu Oct  1 01:08:40 BST 2009  Colin Watson  <cjwatson@debian.org>
2183
2184         * src/accessdb.c (parse_opt), src/lexgrog_test.c (parse_opt),
2185           src/whatis.c (parse_opt): Turn off ARGP_HELP_PRE_DOC to avoid
2186           problems with translations of documentation strings beginning with
2187           a vertical tab separator (i.e. no pre-option documentation).
2188
2189 Thu Sep 24 12:32:48 BST 2009  Colin Watson  <cjwatson@debian.org>
2190
2191         * lib/pipeline.c (pipeline_pump): When a source pipeline dies, make
2192           sure to drain its output before discarding its output file
2193           descriptor (Debian bug #548153). We still record the death to
2194           avoid duplicate debugging messages.
2195         * NEWS: Document this.
2196
2197 Tue Sep 22 00:53:42 BST 2009  Colin Watson  <cjwatson@debian.org>
2198
2199         * src/encodings.c (get_default_device): If the locale encoding is
2200           ASCII, then use the ascii device even if preconv is available; it
2201           will do a better job than producing UTF-8 output and then recoding
2202           that to ASCII (Debian bug #547695).
2203
2204 Sat Sep 19 15:02:20 BST 2009  Clytie Siddall  <clytie@riverland.net.au>
2205
2206         * po/vi.po: Update from Translation Project.
2207
2208 Fri Sep 11 01:19:41 BST 2009  Colin Watson  <cjwatson@debian.org>
2209
2210         * man/po4a/po/id.po: Fix syntax error.
2211
2212 Wed Sep  9 14:42:18 BST 2009  Colin Watson  <cjwatson@debian.org>
2213
2214         * man/man1/man.man1 (General options): Refer to the "Warnings" node
2215           in 'info groff' for a list of available warning names (Debian bug
2216           #545805).
2217
2218 Wed Sep  9 14:36:39 BST 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
2219
2220         * man/po4a/po/id.po: Update from Translation Project.
2221
2222 Tue Sep  8 19:14:23 BST 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
2223
2224         * po/id.po: Update from Translation Project.
2225
2226 Wed Aug 26 01:12:20 BST 2009  Colin Watson  <cjwatson@debian.org>
2227
2228         * Version: 2.5.6.
2229         * po/man-db.pot, po/*.po: Update.
2230
2231 Wed Aug 26 01:07:16 BST 2009  Colin Watson  <cjwatson@debian.org>
2232
2233         * src/whatis.c (display): Include the section in the hash key used
2234           to determine whether a page has already been displayed.
2235
2236 Wed Aug 26 00:20:45 BST 2009  Colin Watson  <cjwatson@debian.org>
2237
2238         * libdb/db_store.c (compare_ids): Fix documentation of return
2239           values.
2240           (replace_if_necessary): Don't replace ULT_MAN or SO_MAN with
2241           lesser ids just because the mtime is newer. (This still satisfies
2242           Debian bug #490582, but doesn't cause the database to be rebuilt
2243           every time mandb runs on hierarchies with both symlinks and whatis
2244           entries for the same name.)
2245
2246 Tue Aug 25 17:07:05 BST 2009  Colin Watson  <cjwatson@debian.org>
2247
2248         * src/lexgrog.l (zh_CN_name, zh_TW_name): Add alternative
2249           translation "名字", seen in testprns(1).
2250
2251 Tue Aug 25 17:05:51 BST 2009  Colin Watson  <cjwatson@debian.org>
2252
2253         * src/tests/man-1: Restrict manpath to test directories.
2254
2255 Tue Aug 25 10:30:58 BST 2009  Colin Watson  <cjwatson@debian.org>
2256
2257         * Makefile.am (EXTRA_DIST): Add .bzrignore,
2258           gnulib/lib/xmalloc.c.orig, gnulib/m4/intldir.m4,
2259           gnulib/m4/sockpfaf.m4, and release.sh, for consistency between
2260           revision control and the distribution.
2261
2262 Tue Aug 25 09:48:39 BST 2009  Colin Watson  <cjwatson@debian.org>
2263
2264         * po/POTFILES.in: Remove src/wrapper.c.
2265
2266 Sun Aug 23 15:49:45 BST 2009  Colin Watson  <cjwatson@debian.org>
2267
2268         * lib/pipeline.c (command_dup): Fix newcmd->nenv assertion.
2269
2270 Sun Aug 23 15:41:32 BST 2009  Colin Watson  <cjwatson@debian.org>
2271
2272         * lib/pipeline.c (command_dup, command_setenv): cmd->env does not
2273           need to be { NULL, NULL }-terminated.
2274
2275 Sun Aug 23 11:25:50 BST 2009  Colin Watson  <cjwatson@debian.org>
2276
2277         * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-tool.m4.
2278
2279 Sun Aug 23 11:21:40 BST 2009  Colin Watson  <cjwatson@debian.org>
2280
2281         * Makefile.am (EXTRA_DIST): Distribute gnulib/lib/xmalloc.patch.
2282
2283 Sun Aug 23 11:15:53 BST 2009  Colin Watson  <cjwatson@debian.org>
2284
2285         * docs/man-db.lsm (Keywords): Add accessdb and lexgrog.
2286
2287 Sun Aug 23 11:14:04 BST 2009  Colin Watson  <cjwatson@debian.org>
2288
2289         * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.64.
2290
2291 Sun Aug 23 11:11:02 BST 2009  Colin Watson  <cjwatson@debian.org>
2292
2293         * m4/man-bdb.m4: Bump serial, forgotten in most recent change.
2294
2295 Sun Aug 23 11:07:26 BST 2009  Colin Watson  <cjwatson@debian.org>
2296
2297         * lib/README: Update.
2298
2299 Sun Aug 23 10:56:50 BST 2009  Colin Watson  <cjwatson@debian.org>
2300
2301         * docs/TODO: Remove entry about the other 'man' package; 'man -K'
2302           was the last major missing feature relative to it.
2303         * docs/HACKING (Testing): Document new test suite.
2304
2305 Sun Aug 23 10:51:33 BST 2009  Colin Watson  <cjwatson@debian.org>
2306
2307         * tools/README: Don't bother describing files installed here by the
2308           autotools.
2309
2310 Sun Aug 23 10:47:16 BST 2009  Colin Watson  <cjwatson@debian.org>
2311
2312         * src/README.zsoelim: Remove, merging text into ...
2313         * src/zsoelim.l: ... here.
2314         * src/Makefile.am (EXTRA_DIST): Remove README.zsoelim.
2315
2316 Sun Aug 23 10:36:28 BST 2009  Colin Watson  <cjwatson@debian.org>
2317
2318         Remove the old set-id wrapper, which hasn't been recommended for
2319         several years now.
2320
2321         * src/wrapper.c: Remove.
2322         * src/Makefile.am (noinst_PROGRAMS, wrapper_LDADD, wrapper_SOURCES):
2323           Remove.
2324
2325 Sun Aug 23 10:26:32 BST 2009  Colin Watson  <cjwatson@debian.org>
2326
2327         * README: Various minor updates.
2328
2329 Sun Aug 23 00:13:56 BST 2009  Colin Watson  <cjwatson@debian.org>
2330
2331         * manual/Makefile.am (noinst_DATA): Move $(MANUAL).dvi to ...
2332           (CLEANFILES): ... here.
2333           (install-data-hook): Stop installing the DVI version of the manual
2334           by default.
2335
2336 Sun Aug 23 00:07:03 BST 2009  Colin Watson  <cjwatson@debian.org>
2337
2338         * configure.ac: Add --enable-automatic-create,
2339           --disable-automatic-update, and --disable-cats options.
2340         * include/manconfig.h.in (MAN_DB_CREATES, MAN_DB_UPDATES, MAN_CATS):
2341           Remove.
2342         * manual/intro.me (Arguments to configure): Document new options.
2343         * manual/misc.me (Modes of operation): Adjust configuration advice
2344           to use new configure options.
2345         * README (Non-generic arguments to configure): Update.
2346         * NEWS: Document this.
2347
2348 Sun Aug 23 00:04:56 BST 2009  Colin Watson  <cjwatson@debian.org>
2349
2350         * lib/pipeline.c (command_setenv): New function, allowing
2351           application code to ask for environment variables to be set when a
2352           command is executed.
2353           (command_new, command_new_function, command_dup, command_dump,
2354           command_tostring, command_free): Handle new nenv, env_max, and env
2355           members of 'struct command'.
2356           (argstr_get_word): Add TODO comment for environment variable
2357           support.
2358           (pipeline_start): Set environment variables as requested.
2359         * lib/pipeline.h (struct command_env): New structure.
2360           (struct command): Add nenv, env_max, and env members.
2361           (command_setenv): Add prototype.
2362         * src/man.c (run_mandb): Set MAN_MUST_CREATE=1 environment variable
2363           if create is true.
2364         * src/mandb.c (main): If --create was passed and no databases were
2365           created, only exit non-zero if MAN_MUST_CREATE=1.
2366
2367 Sat Aug 22 15:34:15 BST 2009  Colin Watson  <cjwatson@debian.org>
2368
2369         Cope with some more cases of database corruption (Debian bug
2370         #187750).
2371
2372         * libdb/db_store.c (dbstore): Always replace existing keys once
2373           we've decided we ought to. If the key already exists in the
2374           database, then that probably indicates some kind of database
2375           corruption, but our new key is almost certainly better.
2376         * src/check_mandirs.c (sanity_check_db): New function, checking
2377           dbver_rd and ensuring that all keys have non-NULL content.
2378           (update_db): Use sanity_check_db to decide whether an existing
2379           database is OK.
2380
2381         * src/accessdb.c (main): If we encounter a key with no content,
2382           print a debugging message and continue as far as we can before
2383           exiting non-zero, rather than just silently exiting non-zero
2384           immediately.
2385
2386 Sat Aug 22 14:58:39 BST 2009  Colin Watson  <cjwatson@debian.org>
2387
2388         * src/tests/mandb-2: Run mandb with a clean path, and only on the
2389           test manual page hierarchy (already done for the second instance,
2390           but not the first).
2391
2392 Sat Aug 22 14:51:25 BST 2009  Yuri Kozlov  <yuray@komyakino.ru>
2393
2394         * po/ru.po: Update from Translation Project.
2395
2396 Sat Aug 22 14:42:49 BST 2009  Colin Watson  <cjwatson@debian.org>
2397
2398         * src/manconv.c (try_iconv): When trying the last source encoding in
2399           the list, ignore characters not representable in UTF-8 (which
2400           almost certainly means codepoints that do not exist in the source
2401           encoding).
2402         * src/tests/manconv-2: Add test for this.
2403
2404 Thu Aug 20 23:52:28 BST 2009  Yuri Kozlov  <yuray@komyakino.ru>
2405
2406         * man/po4a/po/ru.po: Update from Translation Project.
2407
2408 Thu Aug 20 15:17:54 BST 2009  Colin Watson  <cjwatson@debian.org>
2409
2410         * src/lexgrog.l (MAX_NAME): Increase from 2048 to 8192, since some
2411           manual pages with NAME sections exceeding 2048 bytes have been
2412           observed in the wild (Debian bug #489907).
2413
2414 Thu Aug 20 15:05:38 BST 2009  Colin Watson  <cjwatson@debian.org>
2415
2416         * src/encodings.c (check_preprocessor_encoding): Break coding tag
2417           search loop if pp_search is NULL, fixing a segfault (introduced by
2418           the fix for Debian bug #496604) if there is a preprocessor comment
2419           line with no coding tag.
2420         * src/tests/manconv-1: Add a test for this bug.
2421
2422 Thu Aug 20 09:52:23 BST 2009  Colin Watson  <cjwatson@debian.org>
2423
2424         * libdb/db_store.c (replace_if_necessary): Always replace if the
2425           mtime of the new data is newer than that of the old data,
2426           regardless of the id (Debian bug #490582).
2427
2428         * src/tests/testlib.sh (next_second): New function.
2429         * src/tests/mandb-2: New test for this bug.
2430         * src/tests/Makefile.am (TESTS): Add mandb-2.
2431
2432         * src/tests/mandb-1: Run mandb with a clean path, and only on the
2433           test manual page hierarchy.
2434
2435 Thu Aug 20 07:47:02 BST 2009  Colin Watson  <cjwatson@debian.org>
2436
2437         * src/man.c (run_mandb): If -C was given, pass it through to mandb.
2438           (main): Treat the main configuration file as optional if -C was
2439           given.
2440
2441         * src/tests/testlib.sh (fake_config): Take the manual page
2442           hierarchies to use as arguments.
2443           (run_clean_path): New function.
2444         * src/tests/man-1: New test, for Debian bug #163347 (apparently
2445           fixed some time back).
2446         * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set CLEANPATH, so that
2447           run_clean_path can run commands with a reduced PATH.
2448           (TESTS): Add man-1.
2449
2450 Wed Aug 19 20:23:00 BST 2009  Colin Watson  <cjwatson@debian.org>
2451
2452         * src/mandb.c (main): Treat the main configuration file as optional
2453           if we're only producing user databases. This makes testing easier.
2454
2455         * configure.ac, m4/man-bdb.m4 (MAN_CHECK_BDB): Define DBTYPE to
2456           gdbm, ndbm, or btree, indicating the database type in use.
2457
2458         * src/tests/testlib.sh (fake_config, db_ext, accessdb_filter): New
2459           functions.
2460         * src/tests/mandb-1: New test.
2461         * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set DBTYPE
2462           appropriately in the test environment.
2463           (TESTS): Add mandb-1.
2464
2465 Wed Aug 19 12:17:25 BST 2009  Colin Watson  <cjwatson@debian.org>
2466
2467         * src/tests/testlib.sh (write_page): New function.
2468         * src/tests/lexgrog-1: New (fairly trivial) test.
2469         * src/tests/Makefile.am (TESTS): Add lexgrog-1.
2470
2471 Wed Aug 19 00:10:58 BST 2009  Colin Watson  <cjwatson@debian.org>
2472
2473         * Version: 2.5.6-pre1.
2474         * po/man-db.pot, po/*.po: Update.
2475
2476 Tue Aug 18 23:53:50 BST 2009  Colin Watson  <cjwatson@debian.org>
2477
2478         * src/tests/Makefile.am (dist_check_SCRIPTS): Distribute test files.
2479
2480 Tue Aug 18 23:39:28 BST 2009  Colin Watson  <cjwatson@debian.org>
2481
2482         * src/tests/Makefile: Remove; accidentally added to revision
2483           control.
2484         * .bzrignore: Ignore src/tests/Makefile.
2485
2486 Tue Aug 18 09:47:50 BST 2009  Colin Watson  <cjwatson@debian.org>
2487
2488         * src/manconv.c (try_iconv): Convert text to UTF-8 and then (if
2489           necessary) to the target encoding. This allows us to distinguish
2490           between "text not in input encoding" and "characters not
2491           representable in output encoding" (Debian bug #514963).
2492         * src/tests/manconv-2: Add test for this and some other possible
2493           encoding-handling bugs in manconv.
2494         * src/tests/Makefile.am (TESTS): Add manconv-2.
2495         * NEWS: Document this.
2496
2497 Mon Aug 17 18:32:04 BST 2009  Colin Watson  <cjwatson@debian.org>
2498
2499         * src/tests/testlib.sh (init): New function.
2500           (finish): Honour TEST_FAILURE_KEEP environment variable.
2501         * src/tests/manconv-1: Use init function. Reverse diff arguments so
2502           that failure output makes more sense.
2503
2504 Mon Aug 17 00:56:20 BST 2009  Colin Watson  <cjwatson@debian.org>
2505
2506         * NEWS: Update.
2507
2508 Mon Aug 17 00:38:12 BST 2009  Colin Watson  <cjwatson@debian.org>
2509
2510         * src/encodings.c (conversion_table): New table, with contents
2511           mostly borrowed from groff's preconv.
2512           (convert_encoding): New function.
2513           (check_preprocessor_encoding): Loop through semicolon-separated
2514           tags, and convert Emacs coding tags to ones that libiconv
2515           understands (Debian bug #496604).
2516         * src/tests/manconv-1: Test multiple tags. Test coding aliases.
2517
2518 Sun Aug 16 23:52:38 BST 2009  Colin Watson  <cjwatson@debian.org>
2519
2520         * src/tests/testlib.sh: Add a simple test library, to be extended as
2521           necessary.
2522         * src/tests/manconv-1: Use it.
2523
2524 Sun Aug 16 23:37:11 BST 2009  Colin Watson  <cjwatson@debian.org>
2525
2526         * src/tests/manconv-1: Simple test for manconv's handling of
2527           Emacs-style coding: tags.
2528         * src/tests/Makefile.am: New file.
2529         * src/Makefile.am (SUBDIRS): Add tests.
2530         * configure.ac (AC_CONFIG_FILES): Add src/tests/Makefile.
2531         * .bzrignore: Ignore src/tests/tmp-*.
2532
2533 Fri Aug 14 16:09:56 BST 2009  Colin Watson  <cjwatson@debian.org>
2534
2535         * tools/chconfig: Make executable.
2536
2537 Fri Aug 14 12:20:16 BST 2009  Colin Watson  <cjwatson@debian.org>
2538
2539         * manual/Makefile.am (install-data-hook, uninstall-hook):
2540           Install/uninstall the manual into/from $(docdir).
2541
2542 Fri Aug 14 12:18:43 BST 2009  Colin Watson  <cjwatson@debian.org>
2543
2544         * docs/Makefile.am (dist_noinst_DATA): Move NEWS to ...
2545         * Makefile.am (dist_noinst_DATA): ... here.
2546
2547 Fri Aug 14 11:50:27 BST 2009  Colin Watson  <cjwatson@debian.org>
2548
2549         Move ChangeLog and NEWS to their more conventional location at the
2550         top level.
2551
2552         * docs/ChangeLog: Move to ...
2553         * ChangeLog: ... here.
2554         * docs/NEWS: Move to ...
2555         * NEWS: ... here.
2556         * README, docs/HACKING (Revision control, Release process),
2557           src/check_mandirs.c: Update references.
2558
2559 Fri Aug 14 11:43:41 BST 2009  Colin Watson  <cjwatson@debian.org>
2560
2561         * configure.ac: Use silent rules by default if Automake 1.11 is
2562           available.
2563         * man/Rules.man (replace.sed, .man1.1, .man5.5, .man8.8): Be quieter
2564           in silent mode.
2565
2566         Upgrade to Autoconf 2.64, Automake 1.11, and Gnulib 20090801.
2567
2568 Mon Aug  3 17:13:19 BST 2009  Colin Watson  <cjwatson@debian.org>
2569
2570         * src/encodings.c (less_charset_table): Add CP1251 -> windows, per
2571           less(1) (Debian bug #539690).
2572
2573 Wed Jul 22 10:48:10 BST 2009  Colin Watson  <cjwatson@debian.org>
2574
2575         Make whatis/apropos only display any given manual page, or pointers
2576         to it, once (Ubuntu bug #27113).
2577
2578         * lib/hashtable.c (hash_lookup_structure): Make external.
2579         * lib/hashtable.h (hash_lookup_structure): Add prototype.
2580         * src/whatis.c (get_whatis): Split pointer resolution out to ...
2581           (resolve_pointers): ... here. Only accept info->pointer == page if
2582           info->name == page too.
2583           (display): Use resolve_pointers so that we have the resolved name
2584           to hand. Only display any given resolved name once.
2585           (main): Initialise display_seen hash table.
2586         * docs/NEWS: Document this.
2587
2588 Tue Jul 21 22:05:01 BST 2009  Colin Watson  <cjwatson@debian.org>
2589
2590         * docs/NEWS: Fix typo.
2591
2592 Tue Jul 21 15:17:49 BST 2009  Colin Watson  <cjwatson@debian.org>
2593
2594         * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT):
2595           Explicitly state that -P/$PAGER/$MANPAGER identifies a single
2596           command with no pipes (Debian bug #363250).
2597
2598 Mon Jul 20 10:59:00 BST 2009  Colin Watson  <cjwatson@debian.org>
2599
2600         * src/man.c (locale_macros): Fix groff version test not to think
2601           that 1.20.1 >= 1.20.2.
2602
2603 Tue Jul 14 22:48:56 BST 2009  Colin Watson  <cjwatson@debian.org>
2604
2605         * configure.ac: Add -Wredundant-decls to CFLAGS.
2606         * lib/tempfile.c: Remove redundant declarations of mkstemp and
2607           mkdtemp.
2608         * src/manp.c: Remove redundant and unused declaration of
2609           program_name.
2610         * src/zsoelim.l: Add never-interactive option, partly because that's
2611           reasonably accurate anyway and partly to suppress flex's redundant
2612           declaration of isatty.
2613
2614 Mon Jul 13 13:40:17 BST 2009  Colin Watson  <cjwatson@debian.org>
2615
2616         * src/man.c (options, parse_opt): New --no-subpages option.
2617           (main): Try pairing up manual page names with hyphens unless
2618           --no-subpages was given.
2619         * ma/man1/man.man1 (SYNOPSIS, Finding manual pages): Document
2620           --no-subpages.
2621         * docs/NEWS: Document this.
2622
2623 Mon Jul 13 01:17:41 BST 2009  Colin Watson  <cjwatson@debian.org>
2624
2625         * README (Copyright and licensing): Update copyright years.
2626
2627 Mon Jul 13 00:48:32 BST 2009  Colin Watson  <cjwatson@debian.org>
2628
2629         * src/encodings.c (get_less_charset, get_jless_charset): Cope with
2630           locale_charset being NULL; loosely based on a patch posted to
2631           mingw-msys by Mark Junker
2632           (http://osdir.com/ml/gnu.mingw.msys/2005-06/msg00012.html).
2633
2634 Sun Jun 28 17:56:49 BST 2009  Colin Watson  <cjwatson@debian.org>
2635
2636         Don't create unnecessary database directories (Debian bug #472919).
2637
2638         * src/check_mandirs.c (testmandirs): Add catpath and create
2639           arguments. Create the database when it first seems to be needed.
2640           Use mkcatdirs rather than make_database_directory.
2641           (make_database_directory): Remove.
2642           (create_db): Add catpath argument. Don't create the database here;
2643           let testmandirs do it when needed instead.
2644           (update_db): Add catpath argument. Don't create the database
2645           directory; either it exists already in which case there's nothing
2646           to do, or it's missing in which case there'll be no database to
2647           update anyway.
2648         * src/check_mandirs.h (create_db, update_db): Update prototypes.
2649         * src/mandb.c (update_db_wrapper): Add catpath argument.
2650           (mandb): Update calls to functions that now take the catpath too.
2651         * src/manp.c (add_mandb_map): Don't create the cat hierarchy here;
2652           testmandirs will do it on demand.
2653           (mkcatdirs): Make external for use by check_mandirs.c.
2654         * src/manp.h (mkcatdirs): Add prototype.
2655         * docs/NEWS: Document this.
2656
2657 Sun Jun 28 16:33:24 BST 2009  Colin Watson  <cjwatson@debian.org>
2658
2659         * man/man1/man.man1 (DESCRIPTION): Note that the exact rendering of
2660           (e.g.) italic text may vary depending on the output device (Debian
2661           bug #516808).
2662
2663 Sun Jun 28 16:21:34 BST 2009  Colin Watson  <cjwatson@debian.org>
2664
2665         Implement 'man -K', which was the last major remaining missing
2666         feature when comparing man-db with the man package (Debian bug
2667         #135926, Ubuntu bug #390575).
2668
2669         * src/man.c (options, parse_opt): New -K/--global-apropos option.
2670           (main): Handle --global-apropos.
2671           (locate_page): Skip database lookups in --global-apropos mode.
2672           (grep, do_global_apropos_section, do_global_apropos): New
2673           functions.
2674         * src/man.h (do_global_apropos): Add prototype.
2675         * man/man1/man.man1 (SYNOPSIS, Main modes of operation): Document
2676           -K/--global-apropos.
2677         * docs/NEWS: Document this.
2678
2679 Sun Jun 28 10:31:16 BST 2009  Colin Watson  <cjwatson@debian.org>
2680
2681         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: po4a 0.36 tags
2682           "type:" comments as extracted comments rather than translator
2683           comments. Upgrade our .pot and .po files to match.
2684
2685 Sun Jun 28 02:04:55 BST 2009  Colin Watson  <cjwatson@debian.org>
2686
2687         * src/manp.c (get_nls_manpath): Close mandir, fixing a memory leak.
2688
2689 Sun Jun 28 01:47:51 BST 2009  Colin Watson  <cjwatson@debian.org>
2690
2691         * lib/pipeline.c (pipeline_free): Free buffer and line_cache.
2692
2693 Sun Jun 28 01:40:24 BST 2009  Colin Watson  <cjwatson@debian.org>
2694
2695         * lib/pipeline.c (get_line): Limit newline search to the data length
2696           returned by get_block, fixing an assertion failure.
2697         * docs/NEWS: Document this.
2698
2699 Mon Jun 22 08:02:55 BST 2009  Colin Watson  <cjwatson@debian.org>
2700
2701         * src/descriptions.c (parse_descriptions): Strip leading and
2702           trailing whitespace from name tokens before checking whether they
2703           contain whitespace.
2704         * docs/NEWS: Document this.
2705
2706 Sun Jun 21 02:55:56 BST 2009  Colin Watson  <cjwatson@debian.org>
2707
2708         * docs/NEWS: Document previous change.
2709
2710 Sun Jun 21 02:20:22 BST 2009  Colin Watson  <cjwatson@debian.org>
2711
2712         * libdb/db_lookup.c (dblookup): In exact mode, make sure extensions
2713           match exactly, rather than merely that the extension found is a
2714           prefix of that which was requested (Arch Linux bug #14467).
2715
2716 Sun Jun 21 02:00:31 BST 2009  Colin Watson  <cjwatson@debian.org>
2717
2718         * src/ult_src.c (ult_src): Keep a copy of base before passing it to
2719           decompress_open, as that function doesn't keep its own copy and we
2720           may change base later.
2721
2722 Sat Jun 20 21:26:02 BST 2009  Colin Watson  <cjwatson@debian.org>
2723
2724         * libdb/db_store.c (replace_if_necessary): Prevent misleading
2725           debugging message: don't say "ignoring differing ids" if the new
2726           id was preferred and we attempted a replacement.
2727
2728 Sat May 30 12:50:44 BST 2009  Colin Watson  <cjwatson@debian.org>
2729
2730         * lib/pipeline.c (pipeline_start): Check the return value of nice.
2731
2732         * include/manconfig.h.in (create_tempdir): Warn if the result is not
2733           used.
2734         * lib/tempfile.c (create_tempdir): Check the return value of
2735           mkdtemp.
2736         * src/man.c (format_display): Check the return value of
2737           create_tempdir.
2738
2739 Sat May 30 13:37:58 CEST 2009  Colin Watson  <cjwatson@debian.org>
2740
2741         * src/man.c (make_roff_command): Initialise page_encoding.
2742
2743 Wed May 13 18:28:44 BST 2009  Colin Watson  <cjwatson@debian.org>
2744
2745         * gnulib: Upgrade to 20090501.
2746         * tools/config.guess, tools/config.sub: Update.
2747
2748 Wed Apr 22 15:50:51 BST 2009  Colin Watson  <cjwatson@debian.org>
2749
2750         * src/lexgrog.l (lt_name): Add.
2751
2752 Wed Apr 15 00:34:06 BST 2009  Colin Watson  <cjwatson@debian.org>
2753
2754         * man/it/man1/whatis.man1 (STATI D'USCITA): Fix section heading
2755           (formerly "STATI D?USCITA") to match man(1) and apropos(1).
2756           Reported by Ken Moffat.
2757
2758 Wed Apr 15 00:33:16 BST 2009  Colin Watson  <cjwatson@debian.org>
2759
2760         * man/check-man: Set MAN_KEEP_FORMATTING=1, since a UTF-8-aware col
2761           (such as that in util-linux-ng) will object to being asked to
2762           process non-ASCII text under LC_ALL=C. Reported by Ken Moffat.
2763         * docs/NEWS: Document this.
2764
2765 Wed Apr 15 00:31:00 BST 2009  Colin Watson  <cjwatson@debian.org>
2766
2767         * docs/NEWS: Start 2.5.6.
2768
2769 Wed Apr 15 00:22:54 BST 2009  Colin Watson  <cjwatson@debian.org>
2770
2771         * .bzrignore: Ignore gnulib/lib/glthread/.deps and
2772           gnulib/lib/glthread/.dirstamp.
2773
2774 Wed Apr 15 00:20:45 BST 2009  Colin Watson  <cjwatson@debian.org>
2775
2776         Upgrade to Autoconf 2.63, Automake 1.10.2, and Gnulib 20090401.
2777
2778 Tue Apr 14 23:59:40 BST 2009  Colin Watson  <cjwatson@debian.org>
2779
2780         Call gnulib-tool after autopoint, and only use the gettext macros
2781         supplied via gnulib. This is required to work properly with current
2782         versions of gettext and gnulib; see
2783         http://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html
2784         and thread.
2785
2786         * autogen.sh: If gnulib-tool is installed, call autopoint first and
2787           prevent autoreconf from calling it later. Remove special handling
2788           of tools/config.rpath, which is not necessary with this approach.
2789         * Makefile.am (ACLOCAL_AMFLAGS): Put gnulib/m4 before m4, so that
2790           autopoint puts its macros in gnulib/m4 (later overwritten by
2791           gnulib-tool).
2792
2793 Mon Mar 23 14:32:25 GMT 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
2794
2795         * po/id.po, man/po4a/po/id.po: Update from Translation Project.
2796
2797 Wed Mar 18 01:10:50 GMT 2009  Colin Watson  <cjwatson@debian.org>
2798
2799         * docs/HACKING (Revision control): Moved bzr archive to Savannah;
2800           update URLs and note that this now allows access to other members
2801           of the man-db group on Savannah.
2802
2803 Mon Mar 16 11:42:35 GMT 2009  Colin Watson  <cjwatson@debian.org>
2804
2805         * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-cache.m4.
2806
2807 Mon Mar 16 10:39:40 GMT 2009  Yuri Kozlov  <yuray@komyakino.ru>
2808
2809         * man/po4a/po/ru.po: Update from Translation Project.
2810
2811 Sun Mar 15 13:13:40 GMT 2009  Colin Watson  <cjwatson@debian.org>
2812
2813         Apparently some packages ship section 0 manual pages documenting C
2814         library header files. See http://bugs.archlinux.org/task/13734 and
2815         http://en.wikipedia.org/wiki/Manual_page_(Unix).
2816
2817         * configure.ac (--with-sections): Add section 0 between 3 and 2.
2818         * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION.
2819         * src/man_db.conf.in (SECTION): Update documentation.
2820
2821 Sun Mar 15 01:08:16 GMT 2009  Colin Watson  <cjwatson@debian.org>
2822
2823         * gnulib: Import the sigaction, signal, and sigprocmask modules.
2824
2825 Sat Mar 14 22:44:33 GMT 2009  Colin Watson  <cjwatson@debian.org>
2826
2827         * Version: 2.5.5.
2828
2829 Sat Mar 14 22:42:39 GMT 2009  Colin Watson  <cjwatson@debian.org>
2830
2831         * man/check-man: Ignore "cannot adjust line" and "can't break line"
2832           groff warnings for all languages, not just CJK; long
2833           %manpath_config_file% values during 'make distcheck' cause
2834           problems here at the moment.
2835
2836 Sat Mar 14 18:51:22 GMT 2009  Colin Watson  <cjwatson@debian.org>
2837
2838         * man/check-man: Force MANWIDTH to 80. Ignore "table wider than line
2839           width" warnings from groff >= 1.20 for now.
2840
2841 Sat Mar 14 18:34:26 GMT 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
2842
2843         * man/po4a/po/id.po: Update from Translation Project.
2844
2845 Sat Mar 14 13:54:13 GMT 2009  Colin Watson  <cjwatson@debian.org>
2846
2847         * man/Makefile.am (EXTRA_DIST): Distribute check-man.
2848
2849         * src/manp.c (read_config_file): Add argument to control whether the
2850           main configuration file is optional. Use a static variable to
2851           track whether we've been called already.
2852           (get_manpath): read_config_file will keep track of whether it's
2853           been called already for itself. Pass new argument.
2854         * src/manp.h (read_config_file): Update prototype.
2855         * src/man.c (main): Treat the main configuration file as optional if
2856           -l was given, since in that case we can get by well enough without
2857           it. This makes it easier to run 'make check' without first running
2858           'make install'.
2859
2860 Sat Mar 14 12:07:58 GMT 2009  Colin Watson  <cjwatson@debian.org>
2861
2862         * docs/NEWS: Start 2.5.5.
2863
2864 Sat Mar 14 00:29:51 GMT 2009  Dustin Marquess  <dmarquess@gmail.com>
2865
2866         * src/man.c (sort_candidates): Initialise count (Debian bug
2867           #519647).
2868
2869 Tue Mar 10 23:46:08 GMT 2009  Will Day  <wd+debianbugs@hpgx.net>
2870
2871         * man/man1/man.man1 (Controlling formatted output): Fix missing
2872           backslash in -r default (Debian bug #519162).
2873         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
2874
2875 Tue Mar 10 23:24:27 GMT 2009  Colin Watson  <cjwatson@debian.org>
2876
2877         Fix handling of pages that declare a non-default encoding in their
2878         preprocessor lines. Thanks to Hugo Herbelin for some of the ideas
2879         here (Debian bug #519095).
2880
2881         * src/encodings.c (get_source_encoding): Note that this function
2882           should only be called if the page encoding is UTF-8. Add another
2883           example.
2884         * src/manconv.c (check_preprocessor_encoding): Move to ...
2885         * src/encodings.c (check_preprocessor_encoding): ... here.
2886         * src/encodings.h (check_preprocessor_encoding): Add prototype.
2887         * src/man.c (make_roff_command): Use preprocessor-declared encoding
2888           as page_encoding if known. Set source_encoding to page_encoding
2889           unless the latter is UTF-8.
2890         * src/Makefile.am (manconv_SOURCES): Add encodings.c.
2891
2892         * src/encodings.c (charset_table): Use ISO-8859-15 -> latin1 entry
2893           only in the !MULTIBYTE_GROFF case; true ISO-8859-15 pages are
2894           better handled using ascii8 or preconv if possible.
2895
2896 Tue Mar 10 14:11:14 GMT 2009  Colin Watson  <cjwatson@debian.org>
2897
2898         * src/zsoelim.l (zsoelim_parse_file): Put the initial .lf request
2899           after any initial comment line, so that manconv can find encoding
2900           instructions more easily.
2901
2902 Mon Mar  9 11:32:19 GMT 2009  Colin Watson  <cjwatson@debian.org>
2903
2904         * man/check-man: Check that a manual page formats without errors;
2905           inspired by Lintian.
2906         * man/Rules.man: Run check-man over all manual pages during 'make
2907           check'.
2908
2909 Mon Mar  9 10:47:08 GMT 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
2910
2911         * man/po4a/po/id.po: Update from Translation Project.
2912
2913 Tue Feb 24 01:06:46 GMT 2009  Colin Watson  <cjwatson@debian.org>
2914
2915         * Version: 2.5.4.
2916         * po/man-db.pot, po/*.po: Update.
2917
2918 Tue Feb 24 01:00:56 GMT 2009  Colin Watson  <cjwatson@debian.org>
2919
2920         * man/po4a/po/id.po: Fix groff syntax error.
2921
2922 Mon Feb 23 22:37:36 GMT 2009  Colin Watson  <cjwatson@debian.org>
2923
2924         * docs/HACKING (Sending patches): Refer to new man-db-devel mailing
2925           list.
2926
2927 Mon Feb 23 22:29:43 GMT 2009  Colin Watson  <cjwatson@debian.org>
2928
2929         * docs/HACKING (Things to do): Improve bug tracking system link.
2930
2931 Mon Feb 23 22:17:50 GMT 2009  Colin Watson  <cjwatson@debian.org>
2932
2933         * src/man.c (locale_macros, display): Only load per-locale groff
2934           macros if preconv is available, since those macros may change the
2935           assumed input encoding.
2936
2937 Mon Feb 23 22:11:56 GMT 2009  Colin Watson  <cjwatson@debian.org>
2938
2939         * docs/NEWS: Update.
2940
2941 Sat Feb 21 12:01:55 GMT 2009  Colin Watson  <cjwatson@debian.org>
2942
2943         Load per-locale groff macros if possible. This only works with groff
2944         1.20.2 (as yet unreleased) or better, since that introduces
2945         facilities to allow us to avoid an error message if there is no
2946         macro file for the relevant locale.
2947
2948         * src/man.c (locale_macros): New function.
2949           (display): Check the page language, and add locale_macros to the
2950           formatting pipeline provided that the language is not empty or
2951           "C".
2952
2953 Fri Feb 20 09:58:13 GMT 2009  Colin Watson  <cjwatson@debian.org>
2954
2955         Partially rewrite building of manpath according to locale. The
2956         previous code was completely wrong: as well as handling duplicates
2957         rather oddly, it effectively handled LANGUAGE in reverse order
2958         (Debian bug #516133).
2959
2960         * src/manp.c (add_nls_manpath): Rename to ...
2961           (get_nls_manpath): ... this. Some minor adjustments. Make
2962           manpathlist argument const and always return a freshly-allocated
2963           string. Explicitly add the top-level directory to the string in
2964           the case of English locales (although we still look for
2965           subdirectories in case of things like en_GB.UTF-8); C and POSIX
2966           already just return a copy of manpathlist.
2967           (add_nls_manpaths): New function to iterate over a colon-separated
2968           list of locales, concatenating the result of get_nls_manpath for
2969           each. Stop worrying about deduplication at this point as we used
2970           to; instead, we let create_pathlist sort that out.
2971           (create_pathlist): Keep the first of any set of duplicates rather
2972           than the last, in order to keep item order stable.
2973         * src/manp.h (add_nls_manpath): Remove prototype.
2974           (add_nls_manpaths): Add prototype.
2975         * src/man.c (main), src/whatis.c (main): Call add_nls_manpaths
2976           rather than add_nls_manpath, with appropriate adjustments.
2977
2978         * src/man.c (main), src/whatis.c (main): Don't set internal_locale
2979           to the first component of multiple_locale. We will account for
2980           this in search paths, but shouldn't forget about internal_locale
2981           entirely.
2982
2983 Thu Feb 19 21:50:44 GMT 2009  Colin Watson  <cjwatson@debian.org>
2984
2985         * src/manp.c (add_to_manpath): Remove; this just called pathappend
2986           with the same arguments and so is pointless cruft.
2987           (add_nls_manpath): Update all callers.
2988
2989 Tue Feb 17 00:49:28 GMT 2009  Colin Watson  <cjwatson@debian.org>
2990
2991         * configure.ac: Check for gpreconv/preconv properly, i.e. by using
2992           AC_CHECK_PROGS rather than by using 'which'.
2993
2994 Mon Feb 16 01:45:59 GMT 2009  Colin Watson  <cjwatson@debian.org>
2995
2996         * docs/NEWS: Update.
2997
2998 Mon Feb 16 00:49:47 GMT 2009  Colin Watson  <cjwatson@debian.org>
2999
3000         * src/man.c (make_roff_command): If we have preconv, it's silly to
3001           recode to the assumed page encoding and risk problems with
3002           characters unrepresentable in that encoding; we might as well just
3003           recode to UTF-8 and feed that to preconv.
3004
3005 Mon Feb 16 00:39:22 GMT 2009  Colin Watson  <cjwatson@debian.org>
3006
3007         * src/man.c (make_roff_command): Append //TRANSLIT to iconv -t
3008           argument (specifically, so that hyphens get properly
3009           transliterated when using preconv and groff -Tutf8 in a non-UTF-8
3010           locale; thanks, Matthew Burgess and Alexander Patrakov).
3011
3012 Mon Feb 16 00:20:07 GMT 2009  Colin Watson  <cjwatson@debian.org>
3013
3014         * configure.ac: Check for gpreconv/preconv, which is evidence of a
3015           version of groff supporting Unicode input, and therefore good
3016           enough to assume --enable-mb-groff (thanks, Matthew Burgess).
3017
3018 Sun Feb 15 23:48:51 GMT 2009  Colin Watson  <cjwatson@debian.org>
3019
3020         * src/man.c (compare_candidates): Remove obsolete first-pass
3021           language code comparison. Language codes are already handled by
3022           later code here, and this comparison caused English pages to be
3023           preferred over pages for languages whose names sort later than
3024           "man".
3025
3026 Thu Feb 12 11:23:19 GMT 2009  Colin Watson  <cjwatson@debian.org>
3027
3028         * src/manconv_main.c (main): Correct error message if the given
3029           filename cannot be opened.
3030
3031 Wed Feb  4 13:53:47 CET 2009  Yuri Kozlov  <yuray@komyakino.ru>
3032
3033         * man/po4a/po/ru.po: Update from Translation Project (trivial).
3034
3035 Sun Feb  1 16:40:16 GMT 2009  Colin Watson  <cjwatson@debian.org>
3036
3037         * docs/HACKING (Directory layout): Mention gnulib.
3038
3039 Sun Feb  1 16:36:01 GMT 2009  Colin Watson  <cjwatson@debian.org>
3040
3041         * lib/linelength.c (get_line_length): Use line length from standard
3042           input, but only if standard output is not a terminal; this allows
3043           commands such as 'MAN_KEEP_STDERR=1 man foo >/dev/null' to report
3044           errors based on the current line length.
3045
3046 Sat Jan 31 12:20:42 GMT 2009  Colin Watson  <cjwatson@debian.org>
3047
3048         * docs/NEWS: Update.
3049
3050 Sat Jan 31 12:14:10 GMT 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
3051
3052         * po/id.po: Update from Translation Project.
3053
3054 Tue Jan 27 09:54:25 GMT 2009  Clytie Siddall  <clytie@riverland.net.au>
3055
3056         * po/vi.po: Update from Translation Project (trivial).
3057
3058 Tue Jan 27 09:52:18 GMT 2009  Erwin Poeze  <erwin.poeze@gmail.com>
3059
3060         * po/nl.po: Update from Translation Project.
3061         * man/THANKS: Update.
3062
3063 Mon Jan 26 13:40:30 GMT 2009  Clytie Siddall  <clytie@riverland.net.au>
3064
3065         * po/vi.po: Update from Translation Project.
3066
3067 Mon Jan 26 13:38:11 GMT 2009  Robert Luberda  <robert@debian.org>
3068
3069         * po/pl.po, man/po4a/po/pl.po: Update from Translation Project.
3070
3071 Sun Jan 18 23:27:11 GMT 2009  Colin Watson  <cjwatson@debian.org>
3072
3073         * lib/linelength.c (get_line_length): Line length is a property of
3074           output, not input, so only check whether standard output is a
3075           terminal, not also standard input (Debian bug #512233).
3076
3077 Thu Jan 15 16:04:01 GMT 2009  Colin Watson  <cjwatson@debian.org>
3078
3079         * po/Makevars (XGETTEXT_OPTIONS): Add --flag=debug:1:c-format
3080           --flag=debug_error:1:c-format.
3081
3082 Thu Jan 15 00:00:05 GMT 2009  Colin Watson  <cjwatson@debian.org>
3083
3084         Update manual page search order to permit FHS-compliant installation
3085         of packages in /opt. Reported by Matt Domsch.
3086
3087         * src/manp.c (has_mandir): Use xasprintf rather than clumsier
3088           xmalloc/strncpy/strcpy combination. Try ../share/man and share/man
3089           subdirectories too.
3090           (get_manpath_from_path): Update header comment and debug output.
3091         * manual/files.me (Determination of the internal manpath): Update
3092           description of directory search order.
3093         * docs/NEWS: Document this.
3094
3095 Mon Jan  5 17:47:55 GMT 2009  Yuri Kozlov  <kozlov.y@gmail.com>
3096
3097         * po/ru.po, man/po4a/po/ru.po: Update from Translation Project.
3098
3099 Mon Jan  5 17:35:02 GMT 2009  Arif E. Nugroho  <arif_endro@yahoo.com>
3100
3101         * man/po4a/po/id.po: Update from Translation Project.
3102
3103 Wed Dec 31 12:28:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
3104
3105         Trust the database if it tells us that a page is ULT_MAN (i.e. not a
3106         hard link, symbolic link, or .so link), and avoid passing the
3107         SO_LINK flag to ult_src which requires it to open the page to look
3108         for .so links. Produces roughly a threefold speed improvement for
3109         searches with thousands of results.
3110
3111         * src/man.c (get_ult_flags): New function.
3112           (add_candidate, display_database): Use it.
3113
3114 Wed Dec 31 11:51:41 GMT 2008  Colin Watson  <cjwatson@debian.org>
3115
3116         Sort manual page candidates in one go just before displaying them,
3117         rather than insertion-sorting them along the way. Produces, very
3118         roughly, a 25% speed improvement for searches with many results
3119         (e.g. with --regex).
3120
3121         * src/man.c (duplicate_candidates, compare_candidates): Simplify
3122           interface by passing 'struct candidate' for both sides.
3123           (compare_candidates): Explicitly stabilise the comparison as a
3124           last resort, using a new add_index member.
3125           (compare_candidates_qsort, free_candidate): New functions.
3126           (add_candidate): Adjust calls to duplicate_candidates and
3127           compare_candidates, requiring us to create the candidate structure
3128           earlier. Note that the search produces quadratic-time behaviour.
3129           Only compare candidates in cases of duplicates; otherwise just add
3130           them to the end of the list and defer sorting until later. Use
3131           free_candidate to free search->ult as well as search when freeing
3132           superseded duplicates.
3133           (sort_candidates): New function.
3134           (man): Sort candidates before displaying them.
3135
3136 Tue Dec 30 13:08:35 GMT 2008  Colin Watson  <cjwatson@debian.org>
3137
3138         * Version: 2.5.4-pre2.
3139         * po/man-db.pot, po/*.po: Update.
3140
3141 Tue Dec 30 12:55:59 GMT 2008  Colin Watson  <cjwatson@debian.org>
3142
3143         * man/man5/manpath.man5 (FORMAT): Add space between
3144           "MINCATWIDTH"/"MAXCATWIDTH"/"CATWIDTH" and "width".
3145         * man/po4a/po/id.po: Unfuzzy translations.
3146
3147 Tue Dec 30 12:52:26 GMT 2008  Arif E. Nugroho  <arif_endro@yahoo.com>
3148
3149         * po/id.po, man/po4a/po/id.po: Update from Translation Project.
3150
3151 Sun Dec 28 00:27:23 GMT 2008  Colin Watson  <cjwatson@debian.org>
3152
3153         * Version: 2.5.4-pre1.
3154         * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot,
3155           po/*.po: Update.
3156
3157 Sun Dec 28 00:17:45 GMT 2008  Colin Watson  <cjwatson@debian.org>
3158
3159         * man/po4a/Makefile.am (PO4A_ARGS): Always generate output files
3160           even if poorly translated, since Automake's generated rules will
3161           get upset otherwise.
3162
3163 Sat Dec 27 23:47:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
3164
3165         * man/po4a/Makefile.am (dist-hook): Update PO and POT files on 'make
3166           dist'.
3167
3168 Sat Dec 27 23:42:53 GMT 2008  Colin Watson  <cjwatson@debian.org>
3169
3170         * man/man1/man.man1 (Controlling formatted output): Hide ".B
3171           \-\-no\-hyphenation" from po4a.
3172
3173 Sat Dec 27 11:38:43 GMT 2008  Colin Watson  <cjwatson@debian.org>
3174
3175         * docs/NEWS: Start 2.5.4.
3176
3177 Sat Dec 27 00:00:01 GMT 2008  Colin Watson  <cjwatson@debian.org>
3178
3179         Add option to disable hyphenation (Debian bug #166701).
3180
3181         * src/man.c (options, parse_opt): Accept --no-hyphenation. Reset
3182           corresponding variable with -D.
3183           (disable_hyphenation): New function.
3184           (display): Append disable_hyphenation to the decompressor pipeline
3185           if --no-hyphenation is used.
3186         * man/man1/man.man1 (SYNOPSIS, Controlling formatted output):
3187           Document --no-hyphenation.
3188
3189 Thu Dec 25 22:09:01 GMT 2008  Colin Watson  <cjwatson@debian.org>
3190
3191         Add regular expression and shell wildcard search facilities to man
3192         (Debian bug #461319).
3193
3194         * src/whatis.c (lower): Move to ...
3195         * lib/lower.c: ... here, with optimisation from name_to_key. New
3196           file.
3197         * lib/lower.h: New file.
3198
3199         * src/whatis.c (word_fnmatch): Move to ...
3200         * lib/wordfnmatch.c: ... here, with more generic argument names. New
3201           file.
3202         * lib/wordfnmatch.h: New file.
3203
3204         * src/whatis.c (main): Factor regcomp error handling out to ...
3205         * lib/xregcomp.c: ... here. New file.
3206         * lib/xregcomp.h: New file.
3207
3208         * lib/Makefile.am (libman_a_SOURCES): Add lower.c, lower.h,
3209           wordfnmatch.c, wordfnmatch.h, xregcomp.c, and xregcomp.h.
3210         * po/POTFILES.in: Add lib/xregcomp.c; remove src/globbing.c.
3211
3212         * libdb/db_lookup.c (name_to_key): Use lower.
3213           (dblookup_pattern): New function.
3214         * libdb/db_storage.h (dblookup_pattern): Add prototype.
3215         * src/globbing.c (end_pattern): Rename to ...
3216           (make_pattern): ... this. Create the whole pattern rather than
3217           merely appending section or extension components. Handle regexes
3218           if the new opts argument has the LFF_REGEX bit set.
3219           (match_in_directory): Take an opts disjunction rather than a
3220           boolean ignore_case argument; ignore_case is replaced by the
3221           LFF_MATCHCASE bit being unset. Handle regexes if opts has the
3222           LFF_REGEX bit set.
3223           (look_for_file): Take an opts disjunction rather than a boolean
3224           match_case argument; match_case is replaced by the LFF_MATCHCASE
3225           bit being set. Handle regexes if opts has the LFF_REGEX bit set.
3226           Handle shell wildcards if opts has the LFF_WILDCARD bit set (which
3227           simply means not shell-escaping unesc_name). Call make_pattern
3228           rather than end_pattern (with appropriate adjustments).
3229         * src/globbing.h (enum look_for_file_opts): New enumeration.
3230           (look_for_file): Update prototype.
3231         * src/globbing_test.c (options, parse_opt): Accept -r/--regex and
3232           -w/--wildcard.
3233           (main): Update look_for_file arguments, including passing
3234           LFF_REGEX or LFF_WILDCARD if the corresponding options are used.
3235         * src/check_mandirs.c (purge_whatis, purge_missing), src/zsoelim.l
3236           (zsoelim_open_file): Update look_for_file arguments.
3237         * src/whatis.c (main): Only free preg if a regular expression was
3238           compiled into it in the first place.
3239
3240         * src/man.c (options, parse_opt): Accept --regex, --wildcard, and
3241           --names-only. Reset corresponding variables with -D. Refuse to
3242           accept both --regex and --wildcard.
3243           (try_section): Update look_for_file arguments, including passing
3244           LFF_REGEX or LFF_WILDCARD if the corresponding options are used.
3245           (try_db): Use dblookup_pattern if --regex or --wildcard is used,
3246           with corresponding options.
3247         * man/man1/man.man1 (SYNOPSIS, Finding manual pages): Document
3248           --regex, --wildcard, and --names-only.
3249
3250 Tue Dec 23 11:17:01 GMT 2008  Colin Watson  <cjwatson@debian.org>
3251
3252         Sync supported language list with Fedora's patch to man
3253         (http://cvs.fedora.redhat.com/viewvc/rpms/man/F-10/man-1.6b-i18n_nroff.patch?view=markup,
3254         with corrections based on /usr/share/i18n/SUPPORTED).
3255
3256         * src/encodings.c (directory_table): Add Estonian -> ISO-8859-1,
3257           Belarusian -> CP1251, Greek -> ISO-8859-7, Lithuanian ->
3258           ISO-8859-13, Latvian -> ISO-8859-13, Macedonian -> ISO-8859-5,
3259           Romanian -> ISO-8859-2, Slovenian -> ISO-8859-2, and Ukrainian ->
3260           KOI8-U.
3261           (charset_alias_table): Map KOI8U to KOI8-U.
3262           (less_charset_table): Map KOI8-U to koi8-r (possibly not quite
3263           right but with any luck good enough).
3264
3265 Mon Dec  8 13:08:22 GMT 2008  Colin Watson  <cjwatson@debian.org>
3266
3267         * libdb/db_store.c (compare_ids): If the promote_links argument is
3268           true, consider SO_MAN equivalent to ULT_MAN.
3269           (replace_if_necessary): Update call to compare_ids.
3270         * libdb/db_storage.h (compare_ids): Update prototype.
3271         * src/man.c (compare_candidates): Consider SO_MAN equivalent to
3272           ULT_MAN for the purposes of sorting candidate pages for display
3273           (Debian bug #384301).
3274
3275 Mon Dec  8 10:08:45 GMT 2008  Colin Watson  <cjwatson@debian.org>
3276
3277         Improve sorting and de-duplication of manual page candidates (Debian
3278         bugs #389762 and #496172).
3279
3280         * src/man.c (struct candidate): Add ult member.
3281           (duplicate_candidates): Pare down to only check for duplication
3282           rather than trying to compare as well; the latter function is now
3283           handled entirely by compare_candidates. Compare the ultimate
3284           source file as the first test.
3285           (compare_candidates): Compare locale elements in candidate paths
3286           before comparing sections.
3287           (add_candidates): Look up the ultimate source file if necessary,
3288           and save it in the candidate structure. Use duplicate_candidates
3289           for duplicate testing only and compare_candidates for comparison.
3290           Insert elements at the latest possible position rather than the
3291           earliest possible.
3292           (try_section): Pass the ultimate source file that was already
3293           looked up here.
3294           (try_db): Adjust for new add_candidate signature.
3295
3296 Sun Dec  7 17:43:21 GMT 2008  Colin Watson  <cjwatson@debian.org>
3297
3298         Make handling of terminal widths for cat pages configurable (Debian
3299         bug #121997).
3300
3301         * src/manp.c (add_to_dirlist): Recognise new MINCATWIDTH,
3302           MAXCATWIDTH, and CATWIDTH directives.
3303         * src/man_db.conf.in: Add MINCATWIDTH, MAXCATWIDTH, and CATWIDTH.
3304         * src/man.c (get_roff_line_length): Use CATWIDTH rather than the
3305           terminal width if the former is non-zero.
3306           (add_roff_line_length): Check the terminal width against
3307           MINCATWIDTH and MAXCATWIDTH rather than checking whether it
3308           differs from groff's default (via get_roff_line_length). Allow cat
3309           page saving regardless in catman mode.
3310           (make_roff_command): Forbid saving cat pages in troff mode here
3311           rather than via add_roff_line_length/get_roff_line_length.
3312         * man/man5/manpath.man5 (FORMAT): Document MINCATWIDTH, MAXCATWIDTH,
3313           and CATWIDTH.
3314
3315 Sun Dec  7 17:17:34 GMT 2008  Colin Watson  <cjwatson@debian.org>
3316
3317         * man/man5/manpath.man5 (FORMAT): Document SECTION.
3318
3319 Sat Dec  6 22:57:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
3320
3321         Reorganise lexgrog to stop on any unrecognised roff request, rather
3322         than continuing and often littering the database with garbage
3323         (Debian bug #271402). This also involved extending lexgrog to
3324         recognise some additional requests.
3325
3326         * src/lexgrog.l (word): New definition.
3327           (typeface): Add .SB and .SM.
3328           (MAN_PRENAME): Go straight to MAN_REST on encountering a section
3329           request or EOF. Go to MAN_NAME on encountering roff requests that
3330           would ordinarily be processed and removed. Skip over any other
3331           roff requests, including spacing and comments.
3332           (MAN_NAME): Process .Tn and .Nm by handling their arguments as
3333           text. Process .At, .Bsx, .Bx, .Fx, .Nx, .Ox, and .Ux by inserting
3334           the appropriate text (introducing several new mini-scanners).
3335           Process .Dq by surrounding its arguments by double quotes. Go to
3336           MAN_REST on encountering any unrecognised roff request.
3337           (add_wordn_to_whatis, add_word_to_whatis, mdoc_text): New
3338           functions to support scanning of .At and friends.
3339
3340 Fri Dec  5 22:27:03 GMT 2008  Colin Watson  <cjwatson@debian.org>
3341
3342         * man/man8/mandb.man8 (FILES): List FHS database cache location
3343           first, and indicate more clearly that the others are old locations
3344           (from a comment in Debian bug #243763).
3345
3346 Fri Dec  5 13:52:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
3347
3348         Make it possible to override man's default of discarding stderr when
3349         stdout is a terminal (Debian bug #480996).
3350
3351         * src/man.c (discard_stderr): Make static.
3352           (maybe_discard_stderr): New function, checking MAN_KEEP_STDERR.
3353           (format_display_and_save, format_display, display_catman): Use
3354           maybe_discard_stderr.
3355         * man/man1/man.man1 (ENVIRONMENT): Document this.
3356
3357 Thu Dec  4 15:03:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
3358
3359         Exit as soon as possible if database writes return ENOSPC (Debian
3360         bug #167159).
3361
3362         * src/check_mandirs.c (testmandirs, create_db, update_db,
3363           purge_normal, purge_whatis, check_multi_key, purge_missing):
3364           Return int rather than short, to make space for -errno.
3365         * src/mandb.c (update_one_file, update_db_wrapper, mandb,
3366           process_manpath): Likewise.
3367         * src/check_mandirs.h (create_db, update_db, purge_missing): Update
3368           prototypes.
3369
3370         * src/check_mandirs.c (create_db): Return -errno for database open
3371           errors other than EACCES and EROFS.
3372         * src/mandb.c (mandb): Return early on errors from create_db and
3373           update_db_wrapper. Propagate errors from xcopy as well as
3374           returning early.
3375           (process_manpath): Return early on errors from mandb.
3376           (main): Exit FATAL on errors from process_manpath.
3377
3378 Wed Dec  3 10:54:53 GMT 2008  Colin Watson  <cjwatson@debian.org>
3379
3380         * libdb/db_lookup.c (make_content): Cast time_t value to long before
3381           trying to print as %ld.
3382
3383         * libdb/db_ndbm.c (ndbm_flclose, ndbm_flopen): Rename dbf to db to
3384           avoid shadowing a global variable.
3385         * libdb/mydbm.h: Update prototypes and gdbm/ndbm macros likewise.
3386
3387 Wed Dec  3 10:45:07 GMT 2008  Colin Watson  <cjwatson@debian.org>
3388
3389         * lib/Makefile.am (libman_a_CPPFLAGS), libdb/Makefile.am
3390           (libmandb_a_CPPFLAGS), src/Makefile.am (AM_CPPFLAGS): Add
3391           -I$(top_builddir)/intl.
3392
3393 Wed Dec  3 10:38:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
3394
3395         * gnulib: Import the gettext module. The practical effect of this is
3396           to get the intl directory included while compiling files in
3397           gnulib/lib.
3398         * autogen.sh: Prefer gnulib's version of tools/config.rpath over
3399           gettext's.
3400
3401 Wed Dec  3 10:17:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
3402
3403         * m4/man-po4a.m4 (MAN_PO4A): Define a PO4A Automake conditional
3404           (again).
3405         * man/po4a/Makefile.am: Define all-local, update-po, and clean-local
3406           rules only if PO4A is set, so that (in particular) distclean works
3407           if po4a isn't installed.
3408
3409 Tue Dec  2 16:25:53 GMT 2008  Arif E. Nugroho  <arif_endro@yahoo.com>
3410
3411         * man/po4a/po/id.po: Update from Translation Project (trivial).
3412
3413 Tue Dec  2 14:50:12 GMT 2008  Colin Watson  <cjwatson@debian.org>
3414
3415         * man/po4a/po/id.po: New from Translation Project (thanks, Arif E.
3416           Nugroho).
3417         * configure.ac (AC_CONFIG_FILES): Add man/id/Makefile.
3418         * man/Makefile.am (DIST_SUBDIRS): Add id.
3419         * man/id/Makefile.am: New file.
3420         * man/po4a/Makefile.am (POFILES): Add po/id.po.
3421         * man/po4a/po4a.cfg (po4a_langs): Add id.
3422         * man/THANKS: Credit Arif E. Nugroho with man/id as well as id.po.
3423         * .bzrignore: Add man/id/man1, man/id/man5, and man/id/man8.
3424
3425 Mon Nov 17 19:26:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
3426
3427         * configure.ac: Now that we use the ISO 8601 date format rather than
3428           language-specific date variants, there's no reason to call out to
3429           date (using options specific to GNU date) to format the date
3430           string, so just hardcode it.
3431         * docs/HACKING (Release process): datemark -> date.
3432
3433 Mon Nov 17 17:55:35 GMT 2008  Colin Watson  <cjwatson@debian.org>
3434
3435         FreeBSD build fixes.
3436
3437         * man/Rules.man (replace.sed): Spell out
3438           $(top_builddir)/man/replace.sin in full since $< is unspecified in
3439           target rules.
3440         * src/Makefile.am (accessdb_LDADD, catman_LDADD, globbing_LDADD,
3441           lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD,
3442           manpath_LDADD, whatis_LDADD, wrapper_LDADD, zsoelim_LDADD): Add
3443           @LIBINTL@.
3444           (apropos$(EXEEXT)): Remove target before creating symlink. Spell
3445           out whatis$(EXEEXT) in full since $< is unspecified in target
3446           rules.
3447
3448         * src/check_mandirs.c (testmandirs): Cast time_t values to long
3449           before trying to print as %ld.
3450         * src/descriptions.c (parse_descriptions): Rename base_name to base
3451           and seen_base_name to seen_base.
3452         * src/descriptions_store.c (store_descriptions): Rename base_name to
3453           base.
3454         * src/descriptions.h (parse_descriptions, store_descriptions):
3455           Update prototypes.
3456
3457 Mon Nov 17 11:44:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
3458
3459         * Version: 2.5.3.
3460         * po/man-db.pot, po/*.po: Update.
3461
3462 Mon Nov 17 11:07:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
3463
3464         * lib/pipeline.c (command_new_function): Initialise discard_err.
3465           (pipeline_start): Zero-initialise pids and statuses arrays on
3466           allocation, and don't unblock SIGCHLD until after doing so.
3467         * src/manconv.c (manconv): Don't free elements of from here, as when
3468           called from manconv_stdin they will be freed by
3469           free_manconv_codes.
3470         * src/manconv_main.c (main): Free elements of from_code here
3471           instead.
3472
3473 Mon Nov 17 10:45:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
3474
3475         * libdb/db_storage.h (infoalloc): Implement as a macro rather than
3476           as an inline function; seems to cause fewer problems when building
3477           without optimisation.
3478
3479 Mon Nov 17 10:18:10 GMT 2008  Colin Watson  <cjwatson@debian.org>
3480
3481         * m4/longdouble.m4: Remove; gettext no longer installs this.
3482         * man/Makefile.am (EXTRA_DIST): Distribute LINGUAS and LINGUAS.po4a.
3483
3484 Mon Nov 17 09:59:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
3485
3486         * release.sh: Use 'make distcheck' rather than 'make dist'.
3487
3488 Mon Nov 17 01:13:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
3489
3490         * po/POTFILES.in: Add src/manconv_main.c and src/zsoelim_main.c.
3491         * po/man-db.pot, po/*.po: Update.
3492
3493 Mon Nov 17 00:53:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
3494
3495         * docs/NEWS: Update.
3496
3497 Mon Nov 17 00:39:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
3498
3499         * lib/pipeline.c (pipeline_wait): Mangle return value into a value
3500           suitable for passing to exit (Debian bug #477305).
3501
3502 Mon Nov 17 00:06:28 GMT 2008  Colin Watson  <cjwatson@debian.org>
3503
3504         Make bare .so includes (e.g. ".so foo.1" rather than ".so
3505         man1/foo.1") work, although only within the same manual page
3506         hierarchy for now. Reported by Mike Frysinger; partially fixes
3507         Debian bug #503472.
3508
3509         * src/zsoelim.l (zsoelim_open_file): Attempt to handle bare .so
3510           includes using look_for_file.
3511         * src/Makefile.am (zsoelim_SOURCES): Add globbing.c, globbing.h, and
3512           util.c.
3513
3514 Sun Nov 16 23:34:02 GMT 2008  Colin Watson  <cjwatson@debian.org>
3515
3516         Improve handling of systems without internationalisation support.
3517         Reported by Mike Frysinger.
3518
3519         * include/manconfig.h.in (locale_changed): New macro.
3520         * src/man.c (main), src/whatis.c (main): Use it.
3521         * src/manconv.c (check_preprocessor_encoding, try_iconv): Declare
3522           only if HAVE_ICONV is defined.
3523           (manconv): If HAVE_ICONV is not defined, supply a replacement that
3524           just passes data straight through.
3525         * src/whatis.c (simple_convert): Declare only if HAVE_ICONV is
3526           defined and supply a macro replacement otherwise, since in the
3527           latter case iconv_t is not defined.
3528
3529 Sun Nov 16 18:40:09 GMT 2008  Colin Watson  <cjwatson@debian.org>
3530
3531         * manual/misc.me (Credits): Update with contributors of
3532           non-translation patches since I started maintaining man-db;
3533           mention man/THANKS for translator credits. Probably still missing
3534           some people, as ever ...
3535
3536 Sun Nov 16 18:16:55 GMT 2008  Chusslove Illich  <caslav.ilic@gmx.net>
3537
3538         * src/encodings.c (directory_table): Add Serbian Latin ->
3539           ISO-8859-2.
3540         * src/lexgrog.l (sr_name): Add another possible translation.
3541           (srlatin_name): Add.
3542
3543 Sun Nov 16 18:00:23 GMT 2008  Colin Watson  <cjwatson@debian.org>
3544
3545         * src/man.c (main), src/whatis.c (main): Tokenise LANGUAGE properly
3546           rather than only taking the first two characters of each entry.
3547           Based on a suggestion from Chusslove Illich in Savannah patch
3548           #6658.
3549
3550 Sun Nov 16 17:57:57 GMT 2008  Chusslove Illich  <caslav.ilic@gmx.net>
3551
3552         * src/manp.c (add_nls_manpath): Check that modifiers match if set
3553           (Savannah patch #6658).
3554
3555 Wed Nov 12 12:32:17 GMT 2008  Arif E. Nugroho  <arif_endro@yahoo.com>
3556
3557         * po/id.po: New from Translation Project.
3558         * po/LINGUAS: Add id.
3559         * man/THANKS: Add translator credit.
3560
3561 Sun Nov  9 16:23:12 GMT 2008  Robert Luberda  <robert@debian.org>
3562
3563         * man/po4a/po/pl.po: Update from Translation Project.
3564
3565 Sun Oct 26 12:44:42 GMT 2008  Colin Watson  <cjwatson@debian.org>
3566
3567         * src/manp.c (create_pathlist): Eliminate duplicates due to
3568           symlinks. Reported by Mike Frysinger.
3569         * src/man.c (main): Emit "manpath search path" debugging message
3570           before calling create_pathlist.
3571         * docs/NEWS: Document this.
3572
3573 Sun Oct 26 11:58:37 GMT 2008  Colin Watson  <cjwatson@debian.org>
3574
3575         Support LINGUAS environment variable to control installation of
3576         localised manual pages. Reported by Mike Frysinger.
3577
3578         * m4/man-po4a.m4, m4/man-linguas.m4: New files.
3579         * configure.ac: Call MAN_PO4A instead of inline code. Remove NLS and
3580           PO4A Automake conditionals, no longer needed. Call MAN_LINGUAS.
3581         * man/LINGUAS, man/LINGUAS.po4a: New files.
3582         * man/Makefile.am (SUBDIRS): Set to $(MAN_SUBDIRS) rather than
3583           computing the list here.
3584           (DIST_SUBDIRS): Add, since we no longer use Automake conditionals.
3585         * docs/NEWS: Document this.
3586
3587 Sun Oct 26 01:53:36 GMT 2008  Colin Watson  <cjwatson@debian.org>
3588
3589         * configure.ac: Check for lzma.
3590         * include/comp_src.h.in (comp_list): Add lzma.
3591         * include/manconfig.h.in: Define UNLZMA.
3592         * docs/NEWS: Document this.
3593
3594 Wed Oct  1 12:19:29 BST 2008  Colin Watson  <cjwatson@debian.org>
3595
3596         * docs/TODO: Remove entry about Berkeley DB's error handling, fixed
3597           in Berkeley DB 4.1 (see http://bugs.debian.org/180379).
3598
3599 Tue Sep 30 16:39:19 BST 2008  Colin Watson  <cjwatson@debian.org>
3600
3601         * src/encodings.c (directory_table): Add Norwegian Bokmål and
3602           Norwegian Nynorsk (following a comment on
3603           http://www.linuxfromscratch.org/lfs/view/development/chapter06/man-db.html).
3604
3605 Sun Sep 28 11:35:18 BST 2008  Colin Watson  <cjwatson@debian.org>
3606
3607         * manual/files.me (NLS manual pages): Describe automatic detection
3608           of manual pages encoded in UTF-8. Recommend that character set
3609           components not be used in directory names.
3610
3611 Sun Sep 28 11:30:40 BST 2008  Colin Watson  <cjwatson@debian.org>
3612
3613         * configure.ac: Check for GDBM before Berkeley DB.
3614         * docs/man-db.lsm: List GDBM before Berkeley DB.
3615         * manual/db.me (Database types): Explain why GDBM is preferred.
3616         * manual/intro.me (Arguments to configure), README (Non-generic
3617           arguments to configure): Update --with-db description.
3618         * docs/NEWS: Document this, with a note to distributors on upgrade
3619           handling.
3620
3621 Thu Sep 18 02:00:54 BST 2008  Colin Watson  <cjwatson@debian.org>
3622
3623         * man/man1/apropos.man1 (AUTHOR), man/man1/manpath.man1 (AUTHOR),
3624           man/man1/whatis.man1 (AUTHOR), man/man8/catman.man8 (AUTHOR): Add
3625           my name.
3626
3627 Thu Sep 18 01:42:34 BST 2008  Colin Watson  <cjwatson@debian.org>
3628
3629         Call zsoelim as an internal function rather than as an external
3630         process, to improve performance.
3631
3632         * src/Makefile.am (man_SOURCES): Add zsoelim.h and zsoelim.l.
3633           (zsoelim_SOURCES): Add zsoelim.h and zsoelim_main.c.
3634         * src/man.c (make_roff_command): Call zsoelim_stdin as an internal
3635           function.
3636         * src/zsoelim.l (open_file): Rename to ...
3637           (zsoelim_open_file): ... this. Make external. Update all callers.
3638           (parse_file): Rename to ...
3639           (zsoelim_parse_file): ... this. Make external. Update all callers.
3640           (zsoelim_stdin): New function.
3641           (parse_opt, main): Move to ...
3642         * src/zsoelim_main.c: ... here. New file.
3643         * src/zsoelim.h: New file.
3644         * docs/NEWS: Document this.
3645
3646         * man/man1/zsoelim.man1 (AUTHOR): Add my name.
3647
3648 Mon Sep  8 09:21:34 BST 2008  Colin Watson  <cjwatson@debian.org>
3649
3650         Call manconv as an internal function rather than as an external
3651         process, to improve performance. Indirectly suggested by Dr. Werner
3652         Fink in Savannah bug #24043.
3653
3654         * src/Makefile.am (whatis_LDADD): Add $(LIBCOMPRESS).
3655           (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES, whatis_SOURCES): Add
3656           manconv.c and manconv.h.
3657           (manconv_SOURCES): Add manconv.h and manconv_main.c.
3658         * src/encodings.c (manconv_stdin, free_manconv_codes): New
3659           functions.
3660           (add_manconv): Call manconv as an internal function.
3661         * src/manconv.c (try_iconv): Take the target code as an argument
3662           rather than using a global variable.
3663           (manconv): New function, split out of main.
3664           (split_codes, parse_opt, main): Move to ...
3665         * src/manconv_main.c: ... here. New file.
3666         * src/manconv.h: New file.
3667         * docs/NEWS: Document this.
3668
3669 Mon Sep  8 09:09:06 BST 2008  Colin Watson  <cjwatson@debian.org>
3670
3671         Add support for freeing command_function data.
3672
3673         * lib/pipeline.c (command_new_function): Add free_func argument.
3674           (command_dup): Copy it.
3675           (pipeline_connect): Adjust command_new_function call.
3676           (pipeline_start): Free command_function data before exiting.
3677           (pipeline_wait): Free command_function data while cleaning up
3678           pipeline.
3679         * lib/pipeline.h: Add command_function_free_type typedef.
3680           (struct command [struct command_function]): Add free_func member.
3681           (command_new_function): Update prototype.
3682         * lib/decompress.c (decompress_open, decompress_fdopen): Adjust
3683           command_new_function calls.
3684
3685 Sun Sep  7 15:26:25 BST 2008  Colin Watson  <cjwatson@debian.org>
3686
3687         * src/manconv.c (try_iconv): Remove premature optimisation that
3688           sometimes caused us to write incomplete output.
3689
3690         * src/encodings.c (add_manconv): Always use manconv even if iconv
3691           could theoretically do the job, as manconv has slightly more
3692           permissive behaviour that is generally more suitable for
3693           converting manual page source (Debian bug #498082).
3694
3695 Sun Aug 31 18:38:34 BST 2008  Colin Watson  <cjwatson@debian.org>
3696
3697         * docs/NEWS: Update.
3698
3699 Sun Aug 31 18:17:14 BST 2008  Colin Watson  <cjwatson@debian.org>
3700
3701         * gnulib: Upgrade to 20080801.
3702
3703 Sun Aug 17 16:42:43 BST 2008  Colin Watson  <cjwatson@debian.org>
3704
3705         * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
3706           (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c
3707           (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c
3708           (main), src/zsoelim.l (main): Suppress locale warning if being
3709           called by another man-db program (Debian bug #494989).
3710
3711 Sun Aug 17 00:27:07 BST 2008  Colin Watson  <cjwatson@debian.org>
3712
3713         * src/man.c (tmp_cat_fd, man_modtime, discard_stderr): Move
3714           definitions outside MAN_CATS guard; these are needed by catman
3715           handling and (in the case of discard_stderr) manual page
3716           formatting functions as well as cat handling in man itself
3717           (Savannah bug #24044).
3718
3719 Thu Aug  7 02:12:09 BST 2008  Colin Watson  <cjwatson@debian.org>
3720
3721         * src/man.c (display): If we fail to decompress man_file and it
3722           matters (i.e. we aren't just displaying a stray cat), then emit an
3723           error message and return early (Coverity CID #5, #6).
3724
3725 Wed Aug  6 22:36:48 BST 2008  Colin Watson  <cjwatson@debian.org>
3726
3727         * libdb/db_lookup.c (infoalloc): Move to ...
3728         * libdb/db_storage.h (infoalloc): ... here (as inline function).
3729           Include "xalloc.h" for this.
3730           (dblookup_all, dblookup_exact, gripe_lock, gripe_corrupt_data):
3731           Stop declaring inline.
3732         * src/security.h (drop_effective_privs, regain_effective_privs):
3733           Stop declaring inline.
3734
3735 Wed Aug  6 22:23:41 BST 2008  Colin Watson  <cjwatson@debian.org>
3736
3737         * src/man.c (display): If display_to_stdout is set, assert that
3738           man_file is non-NULL; all the stray-cat code paths ensure that
3739           neither troff nor recode is set by this point (Coverity CID #5).
3740
3741 Wed Aug  6 21:40:37 BST 2008  Colin Watson  <cjwatson@debian.org>
3742
3743         * src/man.c (manopt_to_env): Duplicate options assigned to elements
3744           of argv, and free the copy of manopt before returning. This isn't
3745           really a bug as such, but it appeases Coverity CID #22.
3746
3747 Thu Jul 31 02:10:06 BST 2008  Colin Watson  <cjwatson@debian.org>
3748
3749         * src/man.c (get_section_list): Fix leak of get_sections return
3750           value if the configuration file contains no SECTIONS directives
3751           (Coverity CID #21).
3752
3753 Thu Jul 31 02:03:46 BST 2008  Colin Watson  <cjwatson@debian.org>
3754
3755         * src/man.c (try_section): Free info and info_buffer if there is a
3756           failure before adding a candidate (Coverity CID #24).
3757
3758 Thu Jul 31 01:41:17 BST 2008  Colin Watson  <cjwatson@debian.org>
3759
3760         * src/manp.c (add_nls_manpath): Copy manpathlist to omanpathlist
3761           after the initial locale checks, to avoid memory leaks (Coverity
3762           CID #20).
3763           (get_manpath): Free return value of add_system_manpath (Coverity
3764           CID #18) and guess_manpath (Coverity CID #19) when they're simply
3765           interpolated into another string.
3766
3767 Thu Jul 31 01:18:59 BST 2008  Colin Watson  <cjwatson@debian.org>
3768
3769         * src/man.c (display): Check for failure to open the preformatted
3770           cat file (Coverity CID #14).
3771
3772 Thu Jul 31 01:01:13 BST 2008  Colin Watson  <cjwatson@debian.org>
3773
3774         * src/util.c (lang_dir): Free ld if returning xstrdup ("C") instead
3775           (Coverity CID #17).
3776
3777 Thu Jul 31 00:55:36 BST 2008  Colin Watson  <cjwatson@debian.org>
3778
3779         * lib/pathsearch.c (pathsearch): Free path if returning early due to
3780           being given a qualified name (Coverity CID #16).
3781
3782 Thu Jul 31 00:51:58 BST 2008  Colin Watson  <cjwatson@debian.org>
3783
3784         * lib/pipeline.c (pipeline_pump): Free known_source before returning
3785           (Coverity CID #15).
3786
3787 Thu Jul 31 00:47:43 BST 2008  Colin Watson  <cjwatson@debian.org>
3788
3789         * src/whatis.c (word_fnmatch): Free lowwhatis on return paths
3790           (Coverity CID #25).
3791
3792 Thu Jul 31 00:40:29 BST 2008  Colin Watson  <cjwatson@debian.org>
3793
3794         * src/catman.c (parse_for_sec): Fix initialisation of initial_bit
3795           (Coverity CID #28).
3796
3797 Tue Jul 15 15:58:24 BST 2008  Clytie Siddall  <clytie@riverland.net.au>
3798
3799         * po/vi.po: Update from Translation Project.
3800
3801 Sat Jul 12 16:47:11 BST 2008  Colin Watson  <cjwatson@debian.org>
3802
3803         * Version: 2.5.3-pre1.
3804         * po/man-db.pot, po/*.po: Update.
3805
3806 Sat Jul 12 16:43:07 BST 2008  Colin Watson  <cjwatson@debian.org>
3807
3808         * docs/NEWS: Start 2.5.3.
3809
3810 Sat Jul  5 11:33:16 BST 2008  Colin Watson  <cjwatson@debian.org>
3811
3812         * gnulib: Upgrade to 20080701.
3813
3814 Mon Jun  9 13:47:50 BST 2008  Colin Watson  <cjwatson@debian.org>
3815
3816         * gnulib: Upgrade to 20080601.
3817
3818 Mon Jun  9 09:31:04 BST 2008  Yuri Kozlov  <kozlov.y@gmail.com>
3819
3820         * man/po4a/po/ru.po: Update.
3821
3822 Tue Jun  3 09:54:17 BST 2008  Colin Watson  <cjwatson@debian.org>
3823
3824         * man/po4a/po/ru.po: Update with msgmerge.
3825
3826 Tue Jun  3 09:53:59 BST 2008  Colin Watson  <cjwatson@debian.org>
3827
3828         * man/ru/translator.add: Add dummy file.
3829
3830 Tue Jun  3 00:07:47 BST 2008  Colin Watson  <cjwatson@debian.org>
3831
3832         * man/po4a/po/ru.po: New from Translation Project (thanks, Yuri
3833           Kozlov).
3834         * configure.ac (AC_CONFIG_FILES): Add man/ru/Makefile.
3835         * man/Makefile.am (MAYBE_PO4A_LINGUAS): Add ru.
3836         * man/ru/Makefile.am: New file.
3837         * man/po4a/Makefile.am (POFILES): Add po/ru.po.
3838         * man/po4a/po4a.cfg (po4a_langs): Add ru.
3839         * man/THANKS: Credit Yuri Kozlov with man/ru as well as ru.po.
3840         * .bzrignore: Add man/ru/man1, man/ru/man5, and man/ru/man8.
3841
3842 Sun Jun  1 16:40:12 BST 2008  Colin Watson  <cjwatson@debian.org>
3843
3844         * man/man8/mandb.man8 (SYNOPSIS): Document -t (thanks, Yuri Kozlov;
3845           Debian bug #483951).
3846
3847 Sun Jun  1 04:01:12 BST 2008  Colin Watson  <cjwatson@debian.org>
3848
3849         * man/man1/whatis.man1 (SYNOPSIS): Document -v (thanks, Yuri Kozlov;
3850           Debian bug #483862).
3851
3852 Fri May 30 00:11:15 BST 2008  Colin Watson  <cjwatson@debian.org>
3853
3854         * man/man1/manconv.man1 (SYNOPSIS), man/man1/manpath.man1
3855           (SYNOPSIS): Document -h and -V here as well as in OPTIONS (thanks,
3856           Yuri Kozlov; Debian bug #483589).
3857
3858 Sun May 25 18:51:47 BST 2008  Colin Watson  <cjwatson@debian.org>
3859
3860         * man/man1/man.man1 (SYNOPSIS): Fix minor formatting error in -w|-W
3861           synopsis.
3862
3863 Sun May 25 18:46:55 BST 2008  Colin Watson  <cjwatson@debian.org>
3864
3865         * man/man1/man.man1 (SYNOPSIS): Restructure to include all options
3866           from the OPTIONS section and to use approximately the same order.
3867           Thanks to Yuri Kozlov; Debian bugs #482424, #482791, #482792, and
3868           #482810.
3869
3870 Sun May 25 18:29:28 BST 2008  Colin Watson  <cjwatson@debian.org>
3871
3872         * man/man1/lexgrog.man1 (SYNOPSIS): Correct -s to -E.
3873           (OPTIONS): Correct -e to -E.
3874           Thanks to Yuri Kozlov; Debian bug #481226.
3875
3876 Sun May 25 19:23:00 CEST 2008  Yuri Kozlov  <kozlov.y@gmail.com>
3877
3878         * man/man1/apropos.man1 (SYNOPSIS): Document -v (Debian bug
3879           #480678).
3880
3881 Mon May  5 09:53:19 BST 2008  Colin Watson  <cjwatson@debian.org>
3882
3883         * lib/cleanup.c: #include <string.h> for memset.
3884
3885 Mon May  5 02:34:52 BST 2008  Colin Watson  <cjwatson@debian.org>
3886
3887         * docs/man-db.lsm: Update to 2.5.2.
3888         * docs/HACKING: Note requirement for docs/man-db.lsm update just
3889           before release.
3890
3891 Mon May  5 02:11:38 BST 2008  Colin Watson  <cjwatson@debian.org>
3892
3893         * Version: 2.5.2.
3894         * po/man-db.pot, po/*.po: Update.
3895
3896 Mon May  5 02:07:00 BST 2008  Colin Watson  <cjwatson@debian.org>
3897
3898         * docs/NEWS: Document previous commit.
3899
3900 Mon May  5 01:39:22 BST 2008  Colin Watson  <cjwatson@debian.org>
3901
3902         Fix jless support to avoid breaking less (Debian bug #217519).
3903
3904         * src/encodings.c (less_charset_table): Add jless_charset members.
3905           Move EUC-JP less_charset to jless_charset, falling back to iso8859
3906           for less. Use the more explicit japanese-ujis rather than ja.
3907         * src/encodings.c (get_jless_charset): New function.
3908         * src/encodings.h (get_jless_charset): Add prototype.
3909         * src/man.c (make_roff_command): Set JLESSCHARSET to the return
3910           value of get_jless_charset if non-NULL.
3911
3912 Mon May  5 01:06:56 BST 2008  Colin Watson  <cjwatson@debian.org>
3913
3914         Clean up some loose ends of Chinese support (thanks, Wu Songhai;
3915         Debian bug #354321).
3916
3917         * src/encodings.c (directory_table): Add zh_SG, defaulting to the
3918           GBK encoding.
3919           (charset_alias_table): Map EUCTW to EUC-TW.
3920           (charset_table): Add EUC-TW, defaulting to the nippon driver.
3921           (compatible_encodings): Recognise EUC-TW encoding.
3922
3923 Mon May  5 00:05:19 BST 2008  Colin Watson  <cjwatson@debian.org>
3924
3925         * gnulib: Upgrade to 20080501.
3926
3927 Sun May  4 23:16:59 BST 2008  Colin Watson  <cjwatson@debian.org>
3928
3929         * lib/cleanup.c (sighandler, trap_signal), lib/pipeline.c
3930           (pipeline_start, pipeline_pump): Zero sigaction structures before
3931           using them. (I believe we set all required fields anyway; this is
3932           just an extra safety catch.)
3933
3934 Mon Apr 28 09:54:48 BST 2008  Clytie Siddall  <clytie@riverland.net.au>
3935
3936         * po/vi.po: Update from Translation Project.
3937
3938 Mon Apr 28 09:38:53 BST 2008  Benno Schulenberg  <benno@vertaalt.nl>
3939
3940         * po/nl.po: Update from Translation Project.
3941
3942 Sun Apr 27 22:41:54 BST 2008  Robert Luberda  <robert@debian.org>
3943
3944         * man/po4a/po/pl.po: Update from Translation Project.
3945
3946 Sun Apr 27 11:47:19 BST 2008  Colin Watson  <cjwatson@debian.org>
3947
3948         * po/man-db.pot, po/*.po: Update (sync with 2.5.2-pre2 tarball).
3949
3950 Sun Apr 27 11:27:46 BST 2008  Colin Watson  <cjwatson@debian.org>
3951
3952         * Version: 2.5.2-pre2.
3953         * po/man-db.pot, po/*.po: Update.
3954
3955 Sun Apr 27 11:24:24 BST 2008  Colin Watson  <cjwatson@debian.org>
3956
3957         * lib/pipeline.c (pipeline_sigchld): assert is not
3958           async-signal-safe, so avoid calling it in a signal handler and use
3959           an if guard instead (Ubuntu bug #221635, although exactly why the
3960           assertion is failing there is unclear).
3961
3962 Sun Apr 27 01:40:32 BST 2008  Colin Watson  <cjwatson@debian.org>
3963
3964         * gnulib: Upgrade to 20080401.
3965
3966 Sun Apr 27 01:32:58 BST 2008  Colin Watson  <cjwatson@debian.org>
3967
3968         * src/lexgrog.l (ko_name): Add another possible translation, seen in
3969           hdparm(1).
3970
3971 Sun Apr 27 01:31:47 BST 2008  Colin Watson  <cjwatson@debian.org>
3972
3973         * src/manconv.c (try_iconv): Don't handle //IGNORE unless this is
3974           the last encoding to be tried.
3975         * src/encodings.c (add_manconv): Append //IGNORE to the target
3976           encoding.
3977         * docs/NEWS: Document this.
3978
3979 Sun Apr 27 00:54:05 BST 2008  Colin Watson  <cjwatson@debian.org>
3980
3981         Don't emit encoding conversion errors in mandb's quiet mode (Debian
3982         bug #473862).
3983
3984         * src/manconv.c (options, parse_opt): Accept -q/--quiet.
3985           (try_iconv): Suppress iconv errors under --quiet.
3986         * man/man1/manconv.man1 (SYNOPSIS, OPTIONS): Document --quiet.
3987         * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
3988         * po/man-db.pot, po/*.po: Update.
3989
3990         * src/encoding.c (add_manconv): Pass -q to manconv if this is mandb
3991           in quiet mode.
3992
3993 Sat Apr 26 14:34:26 BST 2008  Colin Watson  <cjwatson@debian.org>
3994
3995         * man/man1/man.man1 (DESCRIPTION): Bring list of conventional
3996           section names more into sync with man-pages(7).
3997         * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
3998
3999 Sat Apr 26 13:51:27 BST 2008  Colin Watson  <cjwatson@debian.org>
4000
4001         * man/de/man1/apropos.man1, man/de/man1/man.man1,
4002           man/de/man1/manpath.man1, man/de/man1/whatis.man1,
4003           man/de/man1/zsoelim.man1, man/de/man5/manpath.man5,
4004           man/de/man8/catman.man8, man/es/man1/man.man1,
4005           man/fr/man1/man.man1, man/it/man8/accessdb.man8: Fix various small
4006           mistakes that caused warnings from groff.
4007
4008 Sun Mar 30 20:39:34 BST 2008  Benno Schulenberg  <benno@vertaalt.nl>
4009
4010         * po/nl.po: Update from Translation Project.
4011
4012 Mon Mar 17 19:29:43 GMT 2008  Clytie Siddall  <clytie@riverland.net.au>
4013
4014         * po/vi.po: Update from Translation Project.
4015
4016 Fri Mar 14 14:24:58 GMT 2008  Colin Watson  <cjwatson@debian.org>
4017
4018         Persuade 'make distcheck' to pass again.
4019
4020         * man/po4a/po4a.cfg: Use paths relative to $(srcdir) and
4021           $(builddir).
4022         * man/po4a/Makefile.am (PO4A_ARGS): Define srcdir and builddir
4023           variables.
4024           (all-local, update-po, clean-local): Pass $(PO4A_ARGS) to $(PO4A).
4025           Read po4a.cfg from $(srcdir).
4026         * man/po4a/*.pl.add: Consolidate into ...
4027         * man/pl/translator.add: ... this.
4028         * man/Rules.man (dist-hook): Only do anything if PO4A_LINGUA is not
4029           set to yes.
4030           (distclean-hook): Remove man1, man5, and man8 if PO4A_LINGUA is
4031           set to yes.
4032         * man/pl/Makefile.am (PO4A_LINGUA): Set to yes.
4033           (EXTRA_DIST): Distribute translator.add.
4034         * .bzrignore: Ignore man/pl/man1, man/pl/man5, and man/pl/man8,
4035           rather than just some files within those directories.
4036
4037 Fri Mar 14 01:06:42 GMT 2008  Colin Watson  <cjwatson@debian.org>
4038
4039         * man/man1/man.man1 (Controlling formatted output): Change
4040           'soft-hyphen' string to 'softhyphen' to work around Debian bug
4041           #470849.
4042         * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update.
4043
4044 Fri Mar 14 00:57:37 GMT 2008  Colin Watson  <cjwatson@debian.org>
4045
4046         Build Polish manual pages. The method used scales rather poorly and
4047         will probably need to be revisited at some point.
4048
4049         * configure.ac (AC_CONFIG_FILES): Add man/pl/Makefile.
4050         * man/Makefile.am (MAYBE_PO4A_LINGUAS): New, containing pl.
4051           (SUBDIRS): Add $(MAYBE_PO4A_LINGUAS) if po4a is present.
4052         * man/pl/Makefile.am: New file.
4053         * man/po4a/Makefile.am (POFILES): New, containing po/pl.po.
4054           (EXTRA_DIST): Add $(POFILES).
4055           (all-local, clean-local): New rules to generate and remove
4056           translated documents.
4057           (update-po): Add --no-translations option.
4058         * man/po4a/po4a.cfg (po4a_langs): Replace zh_CN with pl. (zh_CN can
4059           come back once it has a translation.)
4060         * man/THANKS: Credit Robert Luberda with man/pl as well as pl.po.
4061
4062         * .bzrignore: Add man/pl/man1/*.man1, man/pl/man5/*.man5, and
4063           man/pl/man8/*.man8.
4064         * man/po4a/po/man-db-manpages.pot: Update.
4065
4066 Fri Mar 14 00:55:15 GMT 2008  Robert Luberda  <robert@debian.org>
4067
4068         * man/po4a/po/pl.po: New from Translation Project.
4069         * man/po4a/accessdb.pl.add, man/po4a/apropos.pl.add,
4070           man/po4a/catman.pl.add, man/po4a/lexgrog.pl.add,
4071           man/po4a/man.pl.add, man/po4a/manconv.pl.add,
4072           man/po4a/mandb.pl.add, man/po4a/manpath.pl.add,
4073           man/po4a/whatis.pl.add, man/po4a/zsoelim.pl.add: New files.
4074
4075 Thu Mar 13 09:56:53 GMT 2008  Robert Luberda  <robert@debian.org>
4076
4077         * po/pl.po: Update from Translation Project.
4078
4079 Wed Mar 12 18:29:32 GMT 2008  Yuri Kozlov  <kozlov.y@gmail.com>
4080
4081         * po/ru.po: Update from Translation Project.
4082
4083 Wed Mar 12 13:52:02 GMT 2008  Benno Schulenberg  <benno@vertaalt.nl>
4084
4085         * po/nl.po: Update from Translation Project.
4086
4087 Wed Mar 12 12:30:09 GMT 2008  Colin Watson  <cjwatson@debian.org>
4088
4089         * src/man.c (parse_opt): Only set html_pager if arg is non-NULL.
4090         * docs/NEWS: Document this.
4091
4092 Wed Mar 12 12:20:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
4093
4094         * configure.ac: Check for po4a. Define an Automake conditional based
4095           on whether it is present.
4096         * man/Makefile.am (SUBDIRS): Add the po4a subdirectory only if the
4097           po4a program is present.
4098         * man/po4a/Makefile.am (update-po): Use PO4A variable.
4099
4100 Wed Mar 12 08:53:48 GMT 2008  Colin Watson  <cjwatson@debian.org>
4101
4102         * man/po4a/Makefile.am (update-po): New target.
4103
4104 Wed Mar 12 08:53:32 GMT 2008  Robert Luberda  <robert@debian.org>
4105
4106         * man/man1/apropos.man1 (OPTIONS, FILES), man/man1/man.man1
4107           (ENVIRONMENT, FILES), man/man1/manconv.man1 (OPTIONS),
4108           man/man1/manpath.man1 (OPTIONS, FILES), man/man1/whatis.man1
4109           (OPTIONS, EXIT STATUS, FILES), man/man8/mandb.man8 (OPTIONS):
4110           Consolidate various nearly-identical strings.
4111         * man/po4a/po/man-db-manpages.pot: Update.
4112
4113 Tue Mar 11 10:41:05 GMT 2008  Colin Watson  <cjwatson@debian.org>
4114
4115         * Version: 2.5.2-pre1 (really this time).
4116
4117 Tue Mar 11 10:39:45 GMT 2008  Colin Watson  <cjwatson@debian.org>
4118
4119         * configure.ac (AC_CONFIG_FILES): Add man/po4a/Makefile.
4120         * man/Makefile.am (SUBDIRS): Add po4a.
4121         * man/po4a/Makefile.am: New file. Distribute po4a.cfg and
4122           po/man-db-manpages.pot.
4123
4124 Tue Mar 11 10:26:49 GMT 2008  Colin Watson  <cjwatson@debian.org>
4125
4126         * Version: 2.5.2-pre1.
4127         * po/man-db.pot, po/*.po: Update.
4128
4129 Mon Mar 10 19:42:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
4130
4131         * man/man1/man.man1 (Controlling formatted output): Quote %pager,
4132           since it may expand to multiple words.
4133
4134 Mon Mar 10 16:07:11 GMT 2008  Colin Watson  <cjwatson@debian.org>
4135
4136         * docs/NEWS: More updates for 2.5.2.
4137
4138 Mon Mar 10 16:00:15 GMT 2008  Colin Watson  <cjwatson@debian.org>
4139
4140         * man/po4a/po/man-db.pot: Rename to ...
4141         * man/po4a/po/man-db-manpages.pot: ... this, so that the translation
4142           domain name stops clashing with that used for program translations
4143           (per Benno Schulenberg).
4144         * man/po4a/po4a.cfg (po4a_paths): Adjust for rename.
4145
4146 Mon Mar 10 01:05:57 GMT 2008  Colin Watson  <cjwatson@debian.org>
4147
4148         * man/Rules.man (.man1.1, .man8.8): Substitute name of manual page
4149           being processed as %program%.
4150         * man/man1/apropos.man1 (OPTIONS), man/man1/man.man1 (Finding manual
4151           pages), man/man1/whatis.man1 (OPTIONS): Consolidate
4152           nearly-identical descriptions of --locale using %program% (thanks,
4153           Robert Luberda).
4154         * man/po4a/po/man-db.pot: Update.
4155
4156 Tue Mar  4 09:24:40 GMT 2008  Colin Watson  <cjwatson@debian.org>
4157
4158         * gnulib: Upgrade to 20080301.
4159
4160 Tue Mar  4 09:18:43 GMT 2008  Colin Watson  <cjwatson@debian.org>
4161
4162         * src/man.c (options): Force --extension to appear after --sections
4163           in --help output.
4164
4165 Mon Mar  3 21:46:36 GMT 2008  Colin Watson  <cjwatson@debian.org>
4166
4167         * man/po4a/po/man-db.pot: Update.
4168
4169 Sun Mar  2 12:41:13 GMT 2008  Colin Watson  <cjwatson@debian.org>
4170
4171         * po/man-db.pot, po/*.po: Update.
4172
4173 Sun Mar  2 12:37:43 GMT 2008  Colin Watson  <cjwatson@debian.org>
4174
4175         * src/man.c (options): Describe --recode's argument as ENCODING, not
4176           CODE (thanks, Benno Schulenberg).
4177
4178 Sun Mar  2 12:35:28 GMT 2008  Colin Watson  <cjwatson@debian.org>
4179
4180         * src/man.c (options), src/manpath.c (options), src/whatis.c
4181           (options): Use a unified description for --systems (thanks, Benno
4182           Schulenberg).
4183
4184 Sun Mar  2 12:29:57 GMT 2008  Colin Watson  <cjwatson@debian.org>
4185
4186         * src/manconv.c (args_doc, options): Describe argument to -f as
4187           "CODE[:...]" rather than "CODE:..." (thanks, Benno Schulenberg).
4188
4189 Sun Mar  2 12:28:40 GMT 2008  Colin Watson  <cjwatson@debian.org>
4190
4191         * man/man1/man.man1 (OPTIONS): Reorganise into subsections, with
4192           options listed in the same order as in 'man --help' output.
4193         * src/man.c (options, parse_opt): Rearrange a few options slightly
4194           so that the ordering makes more sense.
4195
4196 Sun Mar  2 11:56:48 GMT 2008  Colin Watson  <cjwatson@debian.org>
4197
4198         * man/man1/man.man1, src/encodings.c, src/encodings.h,
4199           src/lexgrog_test.c: Update copyright notices.
4200
4201 Sun Mar  2 11:03:21 GMT 2008  Colin Watson  <cjwatson@debian.org>
4202
4203         Improve 'man -E' to allow overriding the output encoding explicitly,
4204         rather than implicitly (and unreliably) by changing the *roff device
4205         (Debian bug #466396).
4206
4207         * src/encodings.c (device_table): Add stub entries for troff
4208           devices.
4209           (is_roff_device): New function.
4210         * src/encodings.h (is_roff_device): Add prototype.
4211         * src/man.c (options): Change description of -E to allow general
4212           encoding selection.
4213           (parse_opt): Only assign the argument of -E to roff_device if it
4214           is actually a *roff device; otherwise it is presumed to be a true
4215           character encoding and stored in want_encoding. Remove
4216           different_encoding, since testing whether want_encoding is set
4217           supersedes that.
4218           (make_roff_command): If want_encoding is set and is not a *roff
4219           device, recode to it rather than to the locale's encoding.
4220           (display, try_section, display_filesystem, display_database): Test
4221           want_encoding rather than different_encoding.
4222         * man/man1/man.man1 (OPTIONS): Adjust documentation of -E.
4223         * docs/NEWS: Document this.
4224
4225         * src/lexgrog_test.c (options): Bring description of -E into sync
4226           with man.
4227
4228 Sat Mar  1 22:14:43 GMT 2008  Colin Watson  <cjwatson@debian.org>
4229
4230         * src/encodings.c (get_roff_encoding): In the CJK UTF-8 special
4231           case, check the canonicalised encoding in order that locale
4232           specifications such as "zh_CN.utf8" work (Debian bug #467249).
4233
4234 Fri Feb 29 09:59:23 GMT 2008  Colin Watson  <cjwatson@debian.org>
4235
4236         * autogen.sh: Run autoreconf with -f.
4237         * tools/config.guess, tools/config.sub, tools/depcomp,
4238           tools/install-sh, tools/ylwrap: Update.
4239
4240 Thu Feb 28 10:47:22 GMT 2008  Colin Watson  <cjwatson@debian.org>
4241
4242         * src/lexgrog.l: Terminate MAN_NAME at .ie or .if conditionals
4243           (Debian bug #467444).
4244
4245 Sun Feb 17 17:17:16 GMT 2008  Colin Watson  <cjwatson@debian.org>
4246
4247         * src/manp.c (def_path): Fix brace indentation.
4248
4249 Sun Feb 17 17:13:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
4250
4251         * gnulib: Import the strsignal module.
4252         * lib/pipeline.c (pipeline_wait): Call strsignal rather than
4253           xstrsignal.
4254         * lib/xstrsignal.c: Remove.
4255         * lib/README (xstrsignal): Remove.
4256         * lib/Makefile.am (libman_a_SOURCES): Remove xstrsignal.c.
4257         * include/manconfig.h.in (xstrsignal): Remove.
4258         * m4/man-strsignal.m4: Remove.
4259         * configure.ac (MAN_FUNC_STRSIGNAL): Remove.
4260
4261 Sun Feb 17 16:59:22 GMT 2008  Colin Watson  <cjwatson@debian.org>
4262
4263         * Makefile.in, aclocal.m4, config.h.in, configure, docs/Makefile.in,
4264           gnulib, lib/Makefile.in, libdb/Makefile.in, man/Makefile.in,
4265           man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in,
4266           man/it/Makefile.in, man/ja/Makefile.in, manual/Makefile.in,
4267           src/Makefile.in, tools/Makefile.in: Upgrade to Automake 1.10.1 and
4268           Gnulib 20080201.
4269
4270 Mon Feb  4 08:28:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
4271
4272         * src/man_db.conf.in: Make /usr/local/share/man mandatory rather
4273           than /usr/local/man (thanks, Reuben Thomas; Debian bug #463892).
4274
4275 Fri Feb  1 09:01:34 GMT 2008  Colin Watson  <cjwatson@debian.org>
4276
4277         * man/replace.sin.in: Strip off ".if !'po4a'hide' " from input
4278           manual pages. It's a no-op except for po4a's purposes, and
4279           removing it helps non-groff manual page renderers.
4280
4281 Mon Jan 28 08:54:47 GMT 2008  Colin Watson  <cjwatson@debian.org>
4282
4283         * docs/man-db.lsm: Update to 2.5.1.
4284
4285 Mon Jan 28 08:47:51 GMT 2008  Colin Watson  <cjwatson@debian.org>
4286
4287         * Version: 2.5.1.
4288         * po/man-db.pot, po/*.po: Update.
4289
4290 Sun Jan 27 22:48:32 GMT 2008  Colin Watson  <cjwatson@debian.org>
4291
4292         Support Korean when configured with support for the multibyte groff
4293         patch (thanks, Hansun Lee; Ubuntu bug #176896).
4294
4295         * src/encodings.c (compatible_encodings): Allow EUC-KR -> UTF-8.
4296           (get_roff_encoding): Handle ko_KR.UTF-8 via devutf8.
4297
4298 Sun Jan 27 13:42:31 GMT 2008  Colin Watson  <cjwatson@debian.org>
4299
4300         * lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen,
4301           bufmax, line_cache, and peek_offset.
4302
4303 Sun Jan 27 13:37:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
4304
4305         * lib/pipeline.h (struct pipeline): Add ignore_signals member.
4306         * lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1.
4307           (pipeline_join): Set ignore_signals if either input pipeline has
4308           it set.
4309           (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals
4310           is set.
4311           (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals
4312           is set.
4313         * lib/decompress.c (decompress_open, decompress_fdopen): Set
4314           ignore_signals to 0 so that SIGINT and SIGQUIT are not ignored
4315           just because a decompression process is running (Debian bug
4316           #462276).
4317         * docs/NEWS: Document this.
4318
4319 Thu Jan 24 17:12:24 GMT 2008  Colin Watson  <cjwatson@debian.org>
4320
4321         * include/manconfig.h.in (INTERRUPTED): Remove.
4322         * src/man.c (int_handler): Remove; this is useless and
4323           non-signal-safe.
4324           (main): Don't set SIGINT to int_handler.
4325
4326 Thu Jan 17 09:13:04 GMT 2008  Ming Hua  <minghua-guest@users.alioth.debian.org>
4327
4328         * po/zh_CN.po: Update from Translation Project.
4329
4330 Tue Jan 15 18:45:22 GMT 2008  Yuri Kozlov  <kozlov.y@gmail.com>
4331
4332         * po/ru.po: Update from Translation Project.
4333         * man/THANKS: Update e-mail address.
4334
4335 Tue Jan 15 14:37:15 GMT 2008  Colin Watson  <cjwatson@debian.org>
4336
4337         * m4/man-bdb.m4: Add WITH-DB option; make ACTION-IF-FOUND optional;
4338           define BDB_H and BTREE.
4339         * configure.ac: Make Berkeley DB checks more concise using the
4340           above.
4341
4342 Tue Jan 15 12:31:12 GMT 2008  Colin Watson  <cjwatson@debian.org>
4343
4344         * configure.ac: Remove unused AC_HEADER_STDC.
4345
4346 Tue Jan 15 08:42:27 GMT 2008  Clytie Siddall  <clytie@riverland.net.au>
4347
4348         * po/vi.po: Update from Translation Project.
4349
4350 Tue Jan 15 08:39:56 GMT 2008  Benno Schulenberg  <benno@vertaalt.nl>
4351
4352         * po/nl.po: Update from Translation Project.
4353
4354 Tue Jan 15 00:01:39 GMT 2008  Colin Watson  <cjwatson@debian.org>
4355
4356         * m4/man-compress-lib.m4: New function, MAN_COMPRESS_LIB: like
4357           AC_CHECK_LIB but adds the library to LIBCOMPRESS rather than LIBS.
4358         * configure.ac: Use it for -lz.
4359         * src/Makefile.am (lexgrog_LDADD, man_LDADD, manconv_LDADD,
4360           mandb_LDADD, zsoelim_LDADD): Add $(LIBCOMPRESS).
4361
4362 Mon Jan 14 15:29:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
4363
4364         * configure.ac: Don't check for strerror; Gnulib supplies a
4365           replacement now.
4366
4367 Mon Jan 14 13:59:18 GMT 2008  Colin Watson  <cjwatson@debian.org>
4368
4369         * src/mandb.c (xcopy): Set the new file's mode to DBMODE in order to
4370           try to defend against strange problems with databases being left
4371           world-unreadable (Debian bug #430800).
4372
4373 Mon Jan 14 00:55:22 GMT 2008  Colin Watson  <cjwatson@debian.org>
4374
4375         * man/po4a/po/man-db.pot: Update.
4376
4377 Mon Jan 14 00:16:57 GMT 2008  Colin Watson  <cjwatson@debian.org>
4378
4379         * Version: 2.5.1-pre2.
4380         * po/man-db.pot, po/*.po: Update.
4381
4382 Mon Jan 14 00:00:21 GMT 2008  Colin Watson  <cjwatson@debian.org>
4383
4384         * src/lexgrog_test.c (parse_opt): Use argp_error rather than
4385           error/argp_usage. Suggested by Ivan Shmakov.
4386         * src/man.c (parse_opt): Likewise.
4387         * src/manconv.c (parse_opt): Likewise.
4388
4389 Sun Jan 13 23:35:27 GMT 2008  Ivan Shmakov  <oneingray@gmail.com>
4390
4391         Add a command-line option to man to enable groff warnings.
4392
4393         * src/man.c (enum opts, struct string_llist): New types.
4394           (default_roff_warnings, roff_warnings): Set defaults.
4395           (options, parse_opt): Accept --warnings.
4396           (make_roff_command): Add warnings to groff command line.
4397         * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document --warnings.
4398         * docs/NEWS: Document this.
4399
4400 Thu Jan 10 09:24:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
4401
4402         * src/man.c (local_man_loop): Guess language based on absolute path
4403           to provided file, rather than relative (Debian bug #460014).
4404
4405 Mon Jan  7 17:28:54 GMT 2008  Colin Watson  <cjwatson@debian.org>
4406
4407         * gnulib/lib/xmalloc.patch: Add commentary.
4408
4409 Mon Jan  7 15:30:56 GMT 2008  Yuri Kozlov  <kozlov.y@gmail.com>
4410
4411         * po/ru.po: Update from Translation Project.
4412
4413 Mon Jan  7 11:38:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
4414
4415         * man/replace.sin: Rename to ...
4416         * man/replace.sin.in: ... this.
4417         * configure.ac (AC_CONFIG_FILES): Generate man/replace.sin.
4418         * man/Rules.man (CLEANFILES, replace.sed, .man1.1, .man5.5,
4419           .man8.8): Generate replace.sed at 'make' time so that
4420           $(config_file) is substituted properly. Reported by Peter
4421           Breitenlohner.
4422         * .bzrignore: Update.
4423
4424 Mon Jan  7 11:14:04 GMT 2008  Peter Breitenlohner  <peb@mppmu.mpg.de>
4425
4426         * manual/Makefile.am: Use soelim with -I$(srcdir).
4427
4428         * man/Rules.man (mandir): Append the language so that Automake can
4429           handle translated manual pages.
4430           (install-data-local, uninstall-local): Removed in favor of rules
4431           generated by Automake.
4432           (CLEANFILES, dist-hook): Go back to using man*_MANS.
4433           (all-am): Remove explicit dependencies.
4434         * man/Makefile.am, man/de/Makefile.am, man/es/Makefile.am,
4435           man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Go
4436           back to using man*_MANS.
4437
4438         * man/man8/accessdb.man8, man/fr/man8/accessdb.man8: Fix typo (-V,
4439           not -v).
4440
4441         * manual/Makefile.am (.pp.ps): Use groff -Tps, not -Tdvi.
4442
4443         * src/Makefile.am (install-data-hook): Don't (try to) overwrite
4444           existing config files.
4445
4446         * src/Makefile.am (bin_SCRIPTS, all-am, install-exec-hook,
4447           uninstall-hook): Remove apropos from bin_SCRIPTS, explicitly
4448           depend on it from all-am, and manually create a whatis->apropos
4449           symlink at install time; installing the symlink from the build
4450           directory using bin_SCRIPTS would install a second copy (not
4451           stripped by "make install-strip").
4452
4453 Mon Jan  7 09:54:12 GMT 2008  Colin Watson  <cjwatson@debian.org>
4454
4455         * configure.ac: Stop checking for memory.h (not used) and limits.h
4456           (guaranteed by C89).
4457         * lib/hashtable.c, libdb/db_ver.c, src/convert_name.c,
4458           src/descriptions.c, src/filenames.c: Remove unnecessary #include
4459           <stdio.h>.
4460         * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c,
4461           src/manpath.c: Remove unnecessary #include <assert.h>.
4462         * libdb/mydbm.h, src/catman.c, src/man.c, src/manpath.c: Include
4463           <limits.h> unconditionally.
4464         * src/convert_name.c: Remove unnecessary #include <unistd.h>.
4465         * src/man.c: Remove unnecessary #include <sys/file.h> and
4466           <sys/wait.h>.
4467         * src/manpath.c: Remove unnecessary #include <termios.h>.
4468         * src/straycats.c: Remove unnecessary #include <fcntl.h>.
4469         * src/ult_src.c: Remove S_ISLNK conditionals; Gnulib's <sys/stat.h>
4470           wrapper deals with this.
4471
4472         * lib/linelength.c (get_line_length): Remove trailing newline from
4473           message passed to perror.
4474
4475 Mon Jan  7 03:21:49 GMT 2008  Colin Watson  <cjwatson@debian.org>
4476
4477         * lib/gettext.h: Remove; now provided by Gnulib.
4478         * lib/Makefile.am (libman_a_SOURCES): Remove gettext.h.
4479         * lib/README: Remove gettext.h.
4480
4481 Mon Jan  7 03:11:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
4482
4483         * include/comp_src.h.in: Update header comment.
4484
4485 Mon Jan  7 02:52:25 GMT 2008  Colin Watson  <cjwatson@debian.org>
4486
4487         * src/util.c (mkdbname): Replace with ...
4488         * include/manconfig.h.in (mkdbname): ... a simpler macro.
4489
4490 Mon Jan  7 02:27:59 GMT 2008  Colin Watson  <cjwatson@debian.org>
4491
4492         * libdb/db_btree.c, libdb/db_storage.h, libdb/mydbm.h, src/catman.c,
4493           src/check_mandirs.c, src/convert_name.c, src/globbing.c,
4494           src/man.c, src/man.h, src/mandb.c, src/manp.c, src/security.c,
4495           src/security.h, src/whatis.c: Replace __inline__ with inline
4496           everywhere. Autoconf's handling of the latter is sufficient.
4497         * include/manconfig.h.in: Remove __inline and __inline__
4498           definitions.
4499
4500 Mon Jan  7 02:12:26 GMT 2008  Colin Watson  <cjwatson@debian.org>
4501
4502         * configure.ac: Automatically detect the Debian multibyte patch to
4503           groff.
4504
4505 Mon Jan  7 01:14:39 GMT 2008  Colin Watson  <cjwatson@debian.org>
4506
4507         * src/accessdb.c (options, parse_opt): Accept -d/--debug.
4508         * src/lexgrog_test.c (options, parse_opt): Likewise.
4509         * src/zsoelim.l (options, parse_opt): Likewise.
4510         * docs/NEWS: Document this.
4511
4512 Mon Jan  7 01:08:39 GMT 2008  Colin Watson  <cjwatson@debian.org>
4513
4514         * src/zsoelim.l (options): Fix incorrect description of -C.
4515
4516 Sun Jan  6 15:01:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
4517
4518         sigaction is specified as non-interruptible; there is no need to
4519         wrap it with EINTR detection.
4520
4521         * lib/xsigaction.c: Remove.
4522         * include/manconfig.h.in (xsigaction): Remove prototype.
4523         * lib/Makefile.am (libman_a_SOURCES): Remove xsigaction.c.
4524         * lib/README: Remove xsigaction.c.
4525         * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Call
4526           sigaction rather than xsigaction.
4527         * lib/pipeline.c (pipeline_start, pipeline_wait,
4528           pipeline_install_sigchld, pipeline_pump): Call sigaction rather
4529           than xsigaction.
4530
4531 Sun Jan  6 14:46:36 GMT 2008  Colin Watson  <cjwatson@debian.org>
4532
4533         * po/nl.po: Update with msgmerge.
4534
4535 Sun Jan  6 14:45:09 GMT 2008  Colin Watson  <cjwatson@debian.org>
4536
4537         * man/Rules.man, man/de/Makefile.am, man/es/Makefile.am,
4538           man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Use
4539           LINGUA rather than LANGUAGE to name the manual page language, as
4540           setting LANGUAGE causes 'make' output to be translated.
4541
4542 Sun Jan  6 14:34:15 GMT 2008  Colin Watson  <cjwatson@debian.org>
4543
4544         * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8,
4545           man/ja.UTF-8: Rename to ...
4546         * man/de, man/es, man/fr, man/it, man/ja: ... these.
4547         * .bzrignore, configure.ac, man/de/Makefile.am, man/es/Makefile.am,
4548           man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am,
4549           man/po4a/po4a.cfg, man/THANKS: Adjust for new directory names.
4550
4551 Sun Jan  6 10:20:19 GMT 2008  Colin Watson  <cjwatson@debian.org>
4552
4553         * gnulib: Upgrade to Debian 20080104-1. Import the unsetenv module.
4554         * src/man.c, src/whatis.c: No longer #include "setenv.h".
4555
4556 Sun Jan  6 09:57:51 GMT 2008  Clytie Siddall  <clytie@riverland.net.au>
4557
4558         * po/vi.po: Update from Translation Project.
4559
4560 Sat Jan  5 23:15:23 GMT 2008  Ming Hua  <minghua-guest@users.alioth.debian.org>
4561
4562         * po/zh_CN.po: Update from Translation Project (trivial).
4563
4564 Sat Jan  5 23:06:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
4565
4566         * configure.ac: Define NLS Automake conditional from USE_NLS.
4567         * man/Makefile.am (SUBDIRS): Define only if NLS.
4568
4569 Sat Jan  5 22:54:05 GMT 2008  Colin Watson  <cjwatson@debian.org>
4570
4571         * man/Makefile.am, man/de.UTF-8/Makefile.am,
4572           man/es.UTF-8/Makefile.am, man/fr.UTF-8/Makefile.am,
4573           man/it.UTF-8/Makefile.am, man/ja.UTF-8/Makefile.am: Declare
4574           man*_files rather than man*_MANS. Using the MANS primary causes
4575           Automake's incorrect manual page rules to be used.
4576         * man/Rules.man (CLEANFILES, install-data-local, uninstall-local,
4577           dist-hook): Expect man*_files rather than man*_MANS.
4578           (all-am): Depend on $(man*_files).
4579
4580         * man/Rules.man (install-data-local, uninstall-local): Stop
4581           stripping leading "man*/" from install location.
4582
4583 Sat Jan  5 21:49:40 GMT 2008  Colin Watson  <cjwatson@debian.org>
4584
4585         * m4/man-gcc-warning.m4: New file.
4586         * configure.ac: Test whether each -W option (other than -Wall) that
4587           we want to add is supported, rather than adding it
4588           unconditionally. Reported by Peter Breitenlohner.
4589
4590 Sat Jan  5 14:12:33 GMT 2008  Ivan Shmakov  <oneingray@gmail.com>
4591
4592         * configure.ac: Test for existence of
4593           "$srcdir/gnulib/po/Makefile.in.in" rather than just
4594           gnulib/po/Makefile.in.in in order to work for VPATH builds. Also
4595           reported by Peter Breitenlohner.
4596
4597 Fri Jan  4 16:03:57 GMT 2008  Peter Breitenlohner  <peb@mppmu.mpg.de>
4598
4599         * src/man.c (display): Stop -W printing blank lines for manual pages
4600           without corresponding cat pages.
4601
4602 Fri Jan  4 15:59:41 GMT 2008  Colin Watson  <cjwatson@debian.org>
4603
4604         * src/Makefile.am: Install globbing and manconv in
4605           $(libexecdir)/@PACKAGE@ rather than in $(pkglibdir). Reported by
4606           Peter Breitenlohner.
4607
4608 Fri Jan  4 12:44:34 GMT 2008  Peter Breitenlohner  <peb@mppmu.mpg.de>
4609
4610         * libdb/db_btree.c (dbstore): Rename basename argument to base to
4611           avoid clashing with the function of the same name.
4612         * libdb/db_storage.h (dbstore): Update prototype.
4613         * libdb/mydbm.h (dbver_wr, dbver_rd), src/security.h
4614           (do_system_drop_privs): Update prototype argument names to match
4615           definition.
4616
4617 Fri Jan  4 11:52:22 GMT 2008  Peter Breitenlohner  <peb@mppmu.mpg.de>
4618
4619         * src/man.c: Make prompt_string const. Avoids "discards qualifier"
4620           warning when building without NLS.
4621
4622 Thu Jan  3 21:39:27 GMT 2008  Colin Watson  <cjwatson@debian.org>
4623
4624         * gnulib: Import the lib-ignore module, to have the linker ignore
4625           unused libraries.
4626
4627 Wed Jan  2 23:30:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
4628
4629         * lib/decompress.c (decompress_zlib), lib/linelength.c
4630           (get_line_length), lib/pipeline.c (passthrough), src/lexgrog.l
4631           (find_name), src/man.c (set_term, get_term, main,
4632           make_roff_command, format_display_and_save, format_display,
4633           display_catman, display), src/manconv.c (main), src/zsoelim.l
4634           (open_file): Use STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO
4635           macros rather than calling fileno.
4636
4637 Wed Jan  2 16:46:46 GMT 2008  Colin Watson  <cjwatson@debian.org>
4638
4639         * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c
4640           (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c
4641           (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c
4642           (main), src/wrapper.c (main), src/zsoelim.l (main): Bind the
4643           "man-db-gnulib" textual domain as well as "man-db".
4644
4645 Wed Jan  2 00:12:48 GMT 2008  Benno Schulenberg  <benno@vertaalt.nl>
4646
4647         * po/nl.po: New from Translation Project.
4648         * po/LINGUAS: Add nl.
4649         * man/THANKS: Add translator credit.
4650
4651 Tue Jan  1 15:36:23 GMT 2008  Colin Watson  <cjwatson@debian.org>
4652
4653         * README, src/man.c: Update copyright years.
4654
4655 Tue Jan  1 15:27:51 GMT 2008  Ming Hua  <minghua-guest@users.alioth.debian.org>
4656
4657         * po/zh_CN.po: Update.
4658
4659 Tue Jan  1 12:34:10 GMT 2008  Colin Watson  <cjwatson@debian.org>
4660
4661         * src/man.c (options): Add -s as an alias for -S (Debian bug
4662           #458499).
4663           (parse_opt): Accept it.
4664           (get_section_list): Allow the section list to be separated by
4665           commas as well as colons.
4666         * man/man1/man.man1 (OPTIONS): Document -s and comma-separation.
4667         * docs/NEWS: Document this.
4668
4669 Mon Dec 31 22:13:00 GMT 2007  Colin Watson  <cjwatson@debian.org>
4670
4671         * docs/HACKING (Coding style): Expand.
4672
4673 Mon Dec 31 22:01:35 GMT 2007  Colin Watson  <cjwatson@debian.org>
4674
4675         * include/manconfig.h.in: Remove obsolete definitions of VERSION and
4676           DATE and declaration of ver.
4677         * src/zsoelim.l: Remove obsolete definition of STATIC_VER.
4678
4679 Mon Dec 31 17:00:19 GMT 2007  Colin Watson  <cjwatson@debian.org>
4680
4681         * lib/hashtable.c (hash_lookup_structure): New function; same as
4682           previous hash_lookup but returns a struct nlist * rather than the
4683           value.
4684           (hash_lookup): Rewrite in terms of hash_lookup_structure.
4685           (hash_install): Use hash_lookup_structure rather than hash_lookup
4686           (thanks, Ivan Shmakov; should fix Debian bug #374708).
4687
4688 Mon Dec 31 16:15:26 GMT 2007  Colin Watson  <cjwatson@debian.org>
4689
4690         * lib/hashtable.c (hash_install): Fix head comment to match reality
4691           (thanks, Ivan Shmakov).
4692
4693 Mon Dec 31 15:45:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
4694
4695         * docs/HACKING (Revision control): Mention that the bzr archive now
4696           requires bzr 0.15 or later.
4697
4698 Mon Dec 31 15:31:08 GMT 2007  Colin Watson  <cjwatson@debian.org>
4699
4700         * Version: 2.5.1-pre1.
4701         * po/man-db.pot, po/*.po: Update.
4702
4703 Mon Dec 31 10:02:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
4704
4705         * lib/pipeline.c (passthrough): New helper function.
4706           (pipeline_connect): Add special (kludge) handling for zero-command
4707           sinks.
4708           (pipeline_pump): Add minor commentary.
4709         * src/man.c (options, parse_opt): New -R/--recode option.
4710           (make_roff_command): If --recode is used, suppress external
4711           formatters and all processing filters, and force the output
4712           encoding to the argument to --recode.
4713           (display): If --recode is used, force display to stdout and
4714           suppress cat pages.
4715           (try_section, display_filesystem, display_database): Don't show
4716           cat pages or follow .so links for --recode.
4717         * src/util.c (lang_dir): Handle relative filenames starting with
4718           "man/".
4719         * man/man1/man.man1 (OPTIONS): Document --recode.
4720         * docs/NEWS: Document this.
4721
4722 Fri Dec 14 10:06:21 GMT 2007  Colin Watson  <cjwatson@debian.org>
4723
4724         * src/whatis.c (options): Note that --exact is for apropos only.
4725
4726 Fri Dec 14 09:39:06 GMT 2007  Colin Watson  <cjwatson@debian.org>
4727
4728         Convert from getopt to argp for option parsing. This invalidates
4729         many translations, but this should be the last time; in future, a
4730         changes in a single option will only affect translations of the help
4731         strings for that option, not the program's entire help string.
4732
4733         * gnulib: Import the argp and lock modules.
4734         * autogen.sh: Hack around a tools/config.rpath clash between Gnulib
4735           and gettext.
4736         * configure.ac (CFLAGS): Add -Wno-missing-field-initializers for
4737           GCC.
4738         * .bzrignore: Add gnulib/lib/strings.h, po/remove-potcdate.sed, and
4739           tools/config.rpath.*.
4740
4741         * src/version.c: Remove in favour of argp's --version handling.
4742         * po/POTFILES.in: Remove src/version.c.
4743         * src/Makefile.am (accessdb_SOURCES, catman_SOURCES,
4744           globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, manconv_SOURCES,
4745           mandb_SOURCES, manpath_SOURCES, whatis_SOURCES, wrapper_SOURCES,
4746           zsoelim_SOURCES): Remove version.c.
4747
4748         * src/accessdb.c (long_options, args, usage): Remove.
4749           (argp_program_version, argp_program_bug_address,
4750           argp_err_exit_status, args_doc, doc, options, parse_opt,
4751           help_filter, argp): Add.
4752           (main): Switch from getopt_long to argp_parse. Use error (FATAL)
4753           for database read errors rather than error (0); usage (FAIL).
4754         * src/catman.c (long_options, args, usage): Remove.
4755           (argp_program_version, argp_program_bug_address,
4756           argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
4757           (catman, do_catman, parse_for_sec): Rename argp to args.
4758           (main): Switch from getopt_long to argp_parse.
4759         * src/globbing_test.c (long_options, args, usage): Remove.
4760           (argp_program_version, argp_program_bug_address,
4761           argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
4762           (main): Switch from getopt_long to argp_parse.
4763         * src/lexgrog_test.c (long_options, args, usage): Remove.
4764           (argp_program_version, argp_program_bug_address,
4765           argp_err_exit_status, args_doc, doc, options, parse_opt, argp):
4766           Add.
4767           (main): Switch from getopt_long to argp_parse.
4768         * src/man.c (long_options, args, usage, man_getopt): Remove.
4769           (argp_program_version, argp_program_bug_address,
4770           argp_err_exit_status, args_doc, options, parse_opt, help_filter,
4771           argp): Add.
4772           (do_extern): Adjust iteration over arguments.
4773           (main): Switch from getopt_long to argp_parse. Initialise
4774           html_pager early for use in --help.
4775         * src/man.h (man_getopt): Remove prototype.
4776         * src/manconv.c (long_options, args, usage): Remove.
4777           (argp_program_version, argp_program_bug_address,
4778           argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
4779           (main): Switch from getopt_long to argp_parse.
4780         * src/mandb.c (long_options, args, usage): Remove.
4781           (argp_program_version, argp_program_bug_address,
4782           argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
4783           (main): Switch from getopt_long to argp_parse.
4784         * src/manpath.c (long_options, args, usage): Remove.
4785           (argp_program_version, argp_program_bug_address,
4786           argp_err_exit_status, options, parse_opt, argp): Add.
4787           (main): Switch from getopt_long to argp_parse.
4788         * src/whatis.c (long_options, args, apropos_usage, whatis_usage,
4789           usage): Remove.
4790           (argp_program_version, argp_program_bug_address,
4791           argp_err_exit_status, args_doc, apropos_doc, options, parse_opt,
4792           apropos_argp, whatis_argp): Add.
4793           (main): Switch from getopt_long to argp_parse. Suppress --exact
4794           and --and options in the whatis case.
4795         * src/zsoelim.l (long_options, args, usage, ver): Remove.
4796           (argp_program_version, argp_program_bug_address,
4797           argp_err_exit_status, args_doc, options, parse_opt, argp): Add.
4798           (main): Switch from getopt_long to argp_parse.
4799         * po/POTFILES.in: Add zsoelim.l.
4800
4801 Thu Dec 13 17:20:51 GMT 2007  Colin Watson  <cjwatson@debian.org>
4802
4803         * autogen.sh: Permit gnulib-tool to be missing; in that case, just
4804           run autoreconf.
4805
4806 Thu Dec 13 11:36:26 GMT 2007  Colin Watson  <cjwatson@debian.org>
4807
4808         * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.17.
4809         * gnulib: Upgrade to Debian 20071201+dfsg-1.
4810         * README (Copyright and licensing): New section. Explain the
4811           implications of Gnulib components being distributed under GPL v3.
4812         * .bzrignore: Ignore gnulib/lib/fcntl.h.
4813
4814 Mon Nov 26 08:37:30 GMT 2007  Colin Watson  <cjwatson@debian.org>
4815
4816         * docs/HACKING (Utility functions to use): Rename to ...
4817           (Facilities and portability): ... this. Add comments on Gnulib and
4818           C89/C99.
4819
4820 Sun Nov 25 21:11:34 GMT 2007  Colin Watson  <cjwatson@debian.org>
4821
4822         * docs/HACKING (Revision control): Add advice on docs/ChangeLog
4823           practice in branches.
4824
4825 Sun Nov 25 21:01:22 GMT 2007  Colin Watson  <cjwatson@debian.org>
4826
4827         * src/encodings.c (get_roff_encoding): Just use the fallback
4828           encoding if device is NULL, rather than crashing. Bug reported by
4829           Ivan Shmakov.
4830
4831 Sun Nov 25 18:51:16 GMT 2007  Ivan Shmakov  <oneingray@gmail.com>
4832
4833         * man/Rules.man: replace.sed lives in $(top_builddir)/man, not
4834           $(top_srcdir)/man.
4835
4836 Sat Nov 24 10:45:50 GMT 2007  Colin Watson  <cjwatson@debian.org>
4837
4838         * src/man.c (make_roff_command): If the environment variable
4839           MANROFFOPT is set, append its contents to the *roff command line
4840           (thanks, Ivan Shmakov; Debian bug #451187).
4841         * man/man1/man.man1 (ENVIRONMENT): Document MANROFFOPT.
4842         * docs/NEWS: Document this.
4843
4844 Mon Nov 19 19:41:18 GMT 2007  Colin Watson  <cjwatson@debian.org>
4845
4846         * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.10. Ming Hua
4847           reported that Automake 1.9 doesn't have the MKDIR_P feature we
4848           depend on.
4849
4850 Tue Nov 13 22:10:51 GMT 2007  Colin Watson  <cjwatson@debian.org>
4851
4852         * src/whatis.c (use_grep, do_whatis, word_fnmatch, search, main):
4853           Rename regex to regex_opt, as Solaris' <libgen.h> defines a regex
4854           function (thanks to the Nexenta developers).
4855
4856 Mon Nov 12 19:24:00 GMT 2007  Colin Watson  <cjwatson@debian.org>
4857
4858         * src/accessdb.c (main), src/globbing_test.c (main),
4859           src/lexgrog_test.c (main), src/zsoelim.l (main): Enable
4860           localisation (Debian bug #448395).
4861
4862 Sun Nov 11 05:43:16 GMT 2007  Colin Watson  <cjwatson@debian.org>
4863
4864         * configure.ac: Issue a useful error message if
4865           gnulib/po/Makefile.in.in does not exist (reported by Ming Hua).
4866
4867 Mon Oct 22 00:04:45 BST 2007  Colin Watson  <cjwatson@debian.org>
4868
4869         Bruno Haible notes in
4870         http://lists.gnu.org/archive/html/groff/2005-12/msg00061.html that
4871         setlocale is supported on all known systems, and it is in C89. Use
4872         it unconditionally.
4873
4874         * configure.ac: Don't check for setlocale.
4875         * src/catman.c (parse_for_sec), src/man.c (main), src/manp.c
4876           (add_nls_manpath), src/whatis.c (main): Remove HAVE_SETLOCALE
4877           conditionals.
4878
4879 Sun Oct 21 21:56:02 BST 2007  Colin Watson  <cjwatson@debian.org>
4880
4881         * configure.ac: Forbid output tokens beginning with "MAN_".
4882
4883 Sun Oct 21 21:52:43 BST 2007  Colin Watson  <cjwatson@debian.org>
4884
4885         * configure.ac: Rationalise use of comments. Use more vertical
4886           whitespace.
4887
4888 Sun Oct 21 21:12:46 BST 2007  Colin Watson  <cjwatson@debian.org>
4889
4890         * gnulib: Import .po files (--po-base=gnulib/po --po-domain=man-db).
4891         * configure.ac (AC_CONFIG_FILES): Generate gnulib/po/Makefile.in.
4892         * Makefile.am (SUBDIRS): Build gnulib/po.
4893         * .bzrignore: Ignore gnulib/po. This is contrary to our usual
4894           practice, since this is generated by autogen.sh; but gnulib-tool
4895           gives us full .po files which are then stripped down to just the
4896           parts of Gnulib we use by make, so adding them to bzr is
4897           inconvenient.
4898
4899 Sun Oct 21 19:46:26 BST 2007  Colin Watson  <cjwatson@debian.org>
4900
4901         * src/man.c (man_getopt): Fix reversed handling of -f and -k in the
4902           "incompatible options" message.
4903
4904 Sun Oct 21 19:43:27 BST 2007  Colin Watson  <cjwatson@debian.org>
4905
4906         * configure.ac (CFLAGS): Add -Wformat-security.
4907         * src/man.c (man_getopt): Use %s as the format string for the
4908           "incompatible options" message since the message itself is not a
4909           string literal. (This is only a security problem in the presence
4910           of hostile translators.)
4911
4912 Sun Oct 21 17:59:13 BST 2007  Colin Watson  <cjwatson@debian.org>
4913
4914         * man/Rules.man (SED_ARGS): Move to ...
4915         * man/replace.sin: ... here.
4916         * man/Rules.man (.man1.1, .man5.5, .man8.8): Use replace.sed to
4917           shorten build output.
4918         * configure.ac (AC_CONFIG_FILES): Generate man/replace.sed from
4919           man/replace.sin.
4920         * .bzrignore: Ignore man/replace.sed.
4921
4922 Sun Oct 21 13:38:09 BST 2007  Colin Watson  <cjwatson@debian.org>
4923
4924         * src/check_mandirs.c (purge_missing): If there is no content, that
4925           might just be because the key was already freed while purging an
4926           earlier multi key, so skip to the next key rather than breaking
4927           out of the loop.
4928
4929 Sun Oct 21 13:33:38 BST 2007  Colin Watson  <cjwatson@debian.org>
4930
4931         * configure.ac: Check for gdbm_exists in DBLIBS as well as LIBS.
4932           Remove unused gdbm_setopt check.
4933
4934 Sun Oct 21 01:25:00 BST 2007  Colin Watson  <cjwatson@debian.org>
4935
4936         * configure.ac (AC_INIT): Pass a BUG-REPORT argument.
4937
4938 Sat Oct 20 18:27:13 BST 2007  Colin Watson  <cjwatson@debian.org>
4939
4940         * gnulib/lib/xmalloc.c (xstrdup): Explicitly tolerate a NULL
4941           argument, returning NULL in that case. (Also sent to Gnulib
4942           upstream.)
4943         * gnulib/lib/xmalloc.patch: Add, with the above change in patch
4944           format.
4945         * autogen.sh: Apply xmalloc.patch after updating Gnulib.
4946
4947 Sat Oct 20 18:20:07 BST 2007  Colin Watson  <cjwatson@debian.org>
4948
4949         * gnulib/lib/asnprintf.c, gnulib/lib/asprintf.c,
4950           gnulib/lib/float+.h, gnulib/lib/float_.h,
4951           gnulib/lib/printf-args.c, gnulib/lib/printf-args.h,
4952           gnulib/lib/printf-parse.c, gnulib/lib/printf-parse.h,
4953           gnulib/lib/size_max.h, gnulib/lib/stdio_.h,
4954           gnulib/lib/vasnprintf.c, gnulib/lib/vasnprintf.h,
4955           gnulib/lib/vasprintf.c, gnulib/lib/xasprintf.c,
4956           gnulib/lib/xsize.h, gnulib/lib/xvasprintf.c,
4957           gnulib/lib/xvasprintf.h, gnulib/m4/eoverflow.m4,
4958           gnulib/m4/float_h.m4, gnulib/m4/intmax_t.m4,
4959           gnulib/m4/inttypes_h.m4, gnulib/m4/size_max.m4,
4960           gnulib/m4/stdarg.m4, gnulib/m4/stdint_h.m4, gnulib/m4/stdio_h.m4,
4961           gnulib/m4/vasnprintf.m4, gnulib/m4/vasprintf.m4,
4962           gnulib/m4/wchar_t.m4, gnulib/m4/xsize.m4, gnulib/m4/xvasprintf.m4:
4963           Import the Gnulib xvasprintf module.
4964         * .bzrignore: Update.
4965
4966         * libdb/mydbm.h: Add MYDBM_RESET_DSIZE and MYDBM_SET convenience
4967           macros, to obsolete most direct uses of MYDBM_SET_DPTR and
4968           MYDBM_DSIZE. Code that just wants to put a string in a datum
4969           should use MYDBM_SET.
4970         * libdb/db_btree.c (dbstore), libdb/db_delete.c (dbdelete): Use
4971           MYDBM_SET.
4972         * libdb/db_lookup.c (make_multi_key): Use MYDBM_SET and xasprintf.
4973           (make_content): Likewise. Collapse ANSI_SPRINTF #ifdef, no longer
4974           needed.
4975           (dblookup): Use MYDBM_SET.
4976         * libdb/db_ndbm.c (ndbm_flopen): Use xasprintf.
4977         * libdb/db_store.c (dbstore): Use MYDBM_SET and xasprintf.
4978         * libdb/db_ver.c (dbver_rd, dbver_wr): Use MYDBM_SET.
4979         * src/check_mandirs.c (update_db_time): Use MYDBM_SET and xasprintf.
4980           (reset_db_time, update_db): Use MYDBM_SET.
4981         * src/filenames.c (make_filename): Use xasprintf.
4982         * src/man.c (setenv_less): Use xasprintf.
4983
4984         * m4/man-ansi-sprintf.m4, configure.ac (MAN_FUNC_ANSI_SPRINTF):
4985           Remove.
4986
4987 Sat Oct 20 14:30:44 BST 2007  Colin Watson  <cjwatson@debian.org>
4988
4989         * configure.ac: Remove redundant check for getcwd.
4990
4991 Thu Oct 18 01:51:06 BST 2007  Colin Watson  <cjwatson@debian.org>
4992
4993         * src/wrapper.c: Include "config.h" right at the top and with a
4994           HAVE_CONFIG_H guard, like other files.
4995
4996 Thu Oct 18 01:41:41 BST 2007  Colin Watson  <cjwatson@debian.org>
4997
4998         * lib/pathsearch.c, src/man.c, src/mandb.c, src/manp.c: Include
4999           "xgetcwd.h" rather than <xgetcwd.h>, as suggested by gnulib-tool.
5000
5001 Thu Oct 18 01:37:22 BST 2007  Colin Watson  <cjwatson@debian.org>
5002
5003         * src/manp.c (cat_manpath): Whitespace adjustments.
5004
5005 Thu Oct 18 01:15:25 BST 2007  Colin Watson  <cjwatson@debian.org>
5006
5007         * src/man.c: PIPE_BUF is no longer used, so don't define it.
5008
5009 Wed Oct 17 22:34:32 BST 2007  Colin Watson  <cjwatson@debian.org>
5010
5011         * gnulib/lib/minmax.h, gnulib/m4/minmax.m4: Import the Gnulib minmax
5012           module.
5013         * src/man.c (duplicate_candidates): Use it.
5014         * src/util.c: Remove unused definition of MAX.
5015
5016         Regenerate all build system files. (Future ChangeLog entries will
5017         not mention this.)
5018
5019 Wed Oct 17 22:22:25 BST 2007  Colin Watson  <cjwatson@debian.org>
5020
5021         * gnulib/lib/strerror.c, gnulib/m4/strerror.m4: Import the Gnulib
5022           strerror module.
5023
5024         Regenerate all build system files.
5025
5026 Wed Oct 17 21:05:50 BST 2007  Colin Watson  <cjwatson@debian.org>
5027
5028         Use the Gnulib portability library.
5029
5030         * lib/alloca.c, lib/basename.c, lib/error.c, lib/error.h,
5031           lib/fnmatch.c, lib/fnmatch_.h, lib/getcwdalloc.c,
5032           lib/getcwdalloc.h, lib/getopt.c, lib/getopt1.c, lib/getopt_.h,
5033           lib/glob.c, lib/glob_.h, lib/memcmp.c, lib/mkdtemp.c,
5034           lib/mkstemp.c, lib/putenv.c, lib/realpath.c, lib/rename.c,
5035           lib/setenv.c, lib/setenv.h, lib/strcspn.c, lib/strnlen.c,
5036           lib/strsep.c, lib/tempname.c, lib/unsetenv.c, lib/xmalloc.c,
5037           lib/xstrdup.c, lib/xstrndup.c, m4/man-fnmatch.m4, m4/setenv.m4,
5038           m4/tempname.m4: Remove.
5039         * gnulib/*, tools/link-warning.h: Import atexit, canonicalize,
5040           dirname, error, fnmatch-gnu, getopt, glob, memcmp, mkdtemp,
5041           mkstemp, regex, rename, setenv, strcspn, strsep, sys_select,
5042           xalloc, xgetcwd, and xstrndup modules.
5043         * .bzrignore: Update.
5044         * Makefile.am (SUBDIRS): Build gnulib/lib.
5045           (ACLOCAL_AMFLAGS): Add -I gnulib/m4.
5046         * autogen.sh: Add gnulib-tool --update.
5047         * configure.ac: Call gl_EARLY and gl_INIT.
5048           Remove calls to AC_AIX and AC_MINIX.
5049           Stop checking for unistd.h, regex.h, libgen.h, string.h, and
5050           strings.h headers.
5051           Stop checking for alloca, memcmp, strcoll, vprintf, getwd, atexit,
5052           on_exit, canonicalize_file_name, regcomp, re_comp, globfree,
5053           getopt_long, putenv, realpath, rename, basename, strsep, strcspn,
5054           strnlen, mkdtemp, mkstemp, setenv, and __gen_tempname functions.
5055           Generate gnulib/lib/Makefile.
5056         * docs/HACKING: Document policy on generated files in revision
5057           control.
5058         * include/manconfig.h.in: Replace xmalloc, xrealloc, xstrdup, and
5059           xstrndup declarations with inclusions of xalloc.h and xstrndup.h.
5060           Stop defining basename, strsep, and getcwd.
5061         * lib/Makefile.am (libman_a_CPPFLAGS): Include headers from
5062           gnulib/lib.
5063           (libman_a_SOURCES): Remove error.c, error.h, getcwdalloc.c,
5064           getcwdalloc.h, setenv.h, xmalloc.c, xstrdup.c, and xstrndup.c.
5065           (libman_a_LIBADD): Remove $(ALLOCA).
5066           (BUILT_SOURCES, MOSTLYCLEANFILES, EXTRA_DIST, fnmatch.h, getopt.h,
5067           glob.h): Remove; replaced by Gnulib.
5068         * lib/README: Alphabetise, update file list, and update authors.
5069         * libdb/Makefile.am (libmandb_a_CPPFLAGS): Include headers from
5070           gnulib/lib.
5071         * src/Makefile.am (AM_CPPFLAGS): Include headers from gnulib/lib.
5072           (LIBMAN): Link with gnulib/lib/libgnu.a.
5073
5074         * lib/cleanup.c: Assume <unistd.h> and atexit.
5075         * lib/decompress.c, lib/flock.c: Assume <unistd.h>.
5076         * lib/pathsearch.c: Assume <unistd.h>.
5077           (pathsearch): Use xgetcwd.
5078         * lib/pipeline.c: Assume <sys/select.h> and <unistd.h>. Remove
5079           duplicate <fcntl.h> inclusion.
5080           (command_new): Use base_name.
5081         * lib/tempfile.c, lib/xstrsignal.h: Assume <unistd.h>.
5082         * libdb/db_btree.c: Assume <unistd.h>.
5083         * libdb/db_btree.c, libdb/db_lookup.c: Assume <unistd.h> and strsep.
5084         * libdb/db_ndbm.c: Assume <unistd.h>.
5085         * libdb/db_store.c: Assume <unistd.h> and strsep.
5086         * src/accessdb.c (main): Use base_name.
5087         * src/catman.c: Assume <unistd.h>.
5088           (main): Use base_name.
5089         * src/check_mandirs.c: Assume <unistd.h>, strpbrk, and time.
5090           (test_manfile): Use base_name. Rename existing base_name variable
5091           to manpage_base.
5092           (reset_db_time): Use dir_name.
5093         * src/compression.c, src/convert_name.c: Assume <unistd.h>.
5094         * src/filenames.c: Remove unused <libgen.h> inclusion.
5095         * src/globbing_test.c (main): Use base_name.
5096         * src/lexgrog.l, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
5097           src/lexgrog.l.new: Assume <unistd.h>.
5098         * src/lexgrog_test.c (main): Use base_name.
5099         * src/man.c: Assume <unistd.h>.
5100           (gripe_no_man): Use unsetenv rather than putenv.
5101           (local_man_loop): Use base_name.
5102           (main): Use base_name and xgetcwd.
5103           (make_roff_command): Use setenv rather than putenv.
5104           (format_display): Use xgetcwd and base_name.
5105         * src/manconv.c: Assume <unistd.h>.
5106           (main): Use base_name.
5107         * src/mandb.c: Assume <unistd.h>.
5108           (main): Use base_name and xgetcwd.
5109         * src/manp.c: Assume <unistd.h>.
5110           (add_dir_to_path_list): Use xgetcwd.
5111         * src/manpath.c: Assume <unistd.h>.
5112           (main): Use base_name.
5113         * src/security.c: Assume <unistd.h>.
5114         * src/straycats.c: Assume <unistd.h>.
5115           (check_for_stray): Use base_name. Assume canonicalize_file_name.
5116         * src/ult_src.c: Assume <unistd.h>.
5117           (ult_softlink): Use canonicalize_file_name.
5118         * src/ult_src.c: Assume <unistd.h>.
5119         * src/whatis.c: Assume <unistd.h> and <sys/types.h>.
5120           (use_grep, parse_name, parse_whatis, search, main): Assume POSIX
5121           regex functions (provided by Gnulib's regex module).
5122           (main): Use base_name.
5123         * src/wrapper.c (main): Use base_name.
5124         * src/zsoelim.l: Assume <unistd.h>.
5125           (main): Use base_name.
5126
5127         * docs/NEWS: Document this.
5128
5129         Drop remaining bits of pre-C89 compatibility.
5130
5131         * lib/ansidecl.h, lib/strspn.c, lib/strstr.c: Remove.
5132         * configure.ac: Stop checking for strstr and strspn.
5133         * include/manconfig.h.in: Remove VOID definition.
5134         * lib/Makefile.am (libman_a_SOURCES): Remove ansidecl.h.
5135         * lib/appendstr.c, lib/decompress.c, lib/flock.c, lib/hashtable.c,
5136           lib/pathsearch.c, lib/tempfile.c, libdb/db_btree.c,
5137           libdb/db_delete.c, libdb/db_gdbm.c, libdb/db_lookup.c,
5138           libdb/db_ndbm.c, libdb/db_store.c, libdb/db_ver.c, src/accessdb.c,
5139           src/catman.c, src/check_mandirs.c, src/compression.c,
5140           src/convert_name.c, src/descriptions.c, src/descriptions_store.c,
5141           src/encodings.c, src/fake_security.c, src/filenames.c,
5142           src/globbing.c, src/globbing_test.c, src/lexgrog.l,
5143           src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, src/lexgrog.l.new,
5144           src/lexgrog_test.c, src/man.c, src/manconv.c, src/mandb.c,
5145           src/manp.c, src/manpath.c, src/security.c, src/straycats.c,
5146           src/ult_src.c, src/util.c, src/version.c, src/whatis.c,
5147           src/zsoelim.l: Assume C89 declaration syntax, headers, and
5148           functions.
5149         * docs/NEWS: Document this.
5150
5151         * configure.ac (--enable-mandirs): Improve grammar.
5152
5153         Regenerate all build system files using autogen.sh.
5154
5155 Mon Oct 15 10:15:48 BST 2007  Colin Watson  <cjwatson@debian.org>
5156
5157         * docs/NEWS: Document previous change.
5158
5159 Mon Oct 15 10:13:57 BST 2007  Colin Watson  <cjwatson@debian.org>
5160
5161         * src/manconv.c (check_preprocessor_encoding): Allow only
5162           alphanumerics and "-_/:.()" in encoding names (Debian bug
5163           #446055). This matches everything in 'iconv --list' on my system.
5164           (try_iconv): Include encoding names in error message if iconv_open
5165           fails.
5166
5167 Mon Oct 15 10:06:51 BST 2007  Colin Watson  <cjwatson@debian.org>
5168
5169         * man/Rules.man (.man1.1, .man5.5, .man8.8): Use $(MKDIR_P) rather
5170           than hardcoding mkdir -p.
5171         * man/Makefile.in, man/de.UTF-8/Makefile.in,
5172           man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
5173           man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate.
5174
5175 Sun Oct 14 02:39:43 BST 2007  Colin Watson  <cjwatson@debian.org>
5176
5177         * src/Makefile.am (AM_CPPFLAGS): Fix SOELIM definition.
5178         * src/Makefile.in: Regenerate.
5179
5180 Sun Oct 14 01:20:07 BST 2007  Colin Watson  <cjwatson@debian.org>
5181
5182         * .bzrignore: Restore some ignores needed in intl/.
5183
5184 Sun Oct 14 01:16:23 BST 2007  Colin Watson  <cjwatson@debian.org>
5185
5186         Add most files generated by autogen.sh to revision control, as it
5187         makes it easier to keep track of what the Autotools are doing.
5188         autom4te.cache and po/Makevars.template are explicitly still
5189         ignored; the former is junk and the latter is only necessary in the
5190         gettext-tools package.
5191
5192         * ABOUT-NLS, aclocal.m4, config.h.in, configure, intl/ChangeLog,
5193           intl/Makefile.in, intl/VERSION, intl/bindtextdom.c,
5194           intl/config.charset, intl/dcgettext.c, intl/dcigettext.c,
5195           intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c,
5196           intl/eval-plural.h, intl/explodename.c, intl/export.h,
5197           intl/finddomain.c, intl/gettext.c, intl/gettextP.h, intl/gmo.h,
5198           intl/hash-string.c, intl/hash-string.h, intl/intl-compat.c,
5199           intl/intl-exports.c, intl/l10nflist.c, intl/langprefs.c,
5200           intl/libgnuintl.h.in, intl/loadinfo.h, intl/loadmsgcat.c,
5201           intl/localcharset.c, intl/localcharset.h, intl/locale.alias,
5202           intl/localealias.c, intl/localename.c, intl/lock.c, intl/lock.h,
5203           intl/log.c, intl/ngettext.c, intl/os2compat.c, intl/os2compat.h,
5204           intl/osdep.c, intl/plural-exp.c, intl/plural-exp.h, intl/plural.c,
5205           intl/plural.y, intl/printf-args.c, intl/printf-args.h,
5206           intl/printf-parse.c, intl/printf-parse.h, intl/printf.c,
5207           intl/ref-add.sin, intl/ref-del.sin, intl/relocatable.c,
5208           intl/relocatable.h, intl/textdomain.c, intl/vasnprintf.c,
5209           intl/vasnprintf.h, intl/vasnwprintf.h, intl/version.c,
5210           intl/wprintf-parse.h, intl/xsize.h, m4/codeset.m4, m4/gettext.m4,
5211           m4/glibc2.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4,
5212           m4/intl.m4, m4/intldir.m4, m4/intmax.m4, m4/inttypes-pri.m4,
5213           m4/inttypes_h.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4,
5214           m4/lib-prefix.m4, m4/lock.m4, m4/longdouble.m4, m4/longlong.m4,
5215           m4/nls.m4, m4/po.m4, m4/printf-posix.m4, m4/progtest.m4,
5216           m4/size_max.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4,
5217           m4/visibility.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4,
5218           po/Makefile.in.in, po/Rules-quot, po/boldquot.sed,
5219           po/en@boldquot.header, po/en@quot.header, po/insert-header.sin,
5220           po/quot.sed, po/remove-potcdate.sin, tools/config.rpath,
5221           tools/depcomp, tools/missing, tools/ylwrap: New files.
5222         * .bzrignore: Update.
5223
5224 Sun Oct 14 01:04:41 BST 2007  Colin Watson  <cjwatson@debian.org>
5225
5226         * autogen.sh: Use 'autoreconf -i' rather than reinventing the wheel.
5227
5228 Sun Oct 14 00:53:14 BST 2007  Colin Watson  <cjwatson@debian.org>
5229
5230         * po/man-db.pot, po/*.po: Update.
5231
5232 Sun Oct 14 00:49:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5233
5234         * man/Rules.man (clean-local): Remove; we don't need to worry about
5235           removing empty directories in separated build trees.
5236         * man/Makefile.in, man/de.UTF-8/Makefile.in,
5237           man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
5238           man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate.
5239
5240 Sun Oct 14 00:40:26 BST 2007  Colin Watson  <cjwatson@debian.org>
5241
5242         * man-db.lsm: Move to ...
5243         * docs/man-db.lsm: ... here.
5244         * Makefile.am, docs/Makefile.am: Move man-db.lsm reference.
5245         * Makefile.in, docs/Makefile.in: Regenerate.
5246
5247 Sun Oct 14 00:33:10 BST 2007  Colin Watson  <cjwatson@debian.org>
5248
5249         * README: Remove several restrictions lifted by the conversion to
5250           Automake. Remove documentation of how to install native language
5251           manual pages, since this is now done unconditionally. Remove
5252           documentation of the update target, which no longer exists and
5253           should no longer be needed.
5254
5255         * docs/NEWS: Document conversion to Automake.
5256
5257 Sun Oct 14 00:22:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5258
5259         Convert to Automake. This fixes VPATH builds, fixes a number of bugs
5260         in areas such as dependency generation, provides new features such
5261         as 'make distcheck', moves complexity into autogenerated code, and
5262         prepares the way for using Gnulib more effectively.
5263
5264         * makefile.in, include/Defines.in: Remove.
5265         * GNUmakefile.in, lib/Makefile.in, libdb/Makefile.in,
5266           man/Makefile.in, manual/Makefile.in, src/Makefile.in: Translate to
5267           Automake and move to ...
5268         * Makefile.am, lib/Makefile.am, libdb/Makefile.am, man/Makefile.am,
5269           manual/Makefile.am, src/Makefile.am: ... here.
5270         * docs/Makefile.am, tools/Makefile.am: Build these directories
5271           separately.
5272         * man/Rules.man, man/de.UTF-8/Makefile.am, man/es.UTF-8/Makefile.am,
5273           man/fr.UTF-8/Makefile.am, man/it.UTF-8/Makefile.am,
5274           man/ja.UTF-8/Makefile.am: Build manual pages recursively, as it
5275           makes VPATH builds easier.
5276         * Makefile.in, docs/Makefile.in, lib/Makefile.in, libdb/Makefile.in,
5277           man/Makefile.in, man/de.UTF-8/Makefile.in,
5278           man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in,
5279           man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in,
5280           manual/Makefile.in, src/Makefile.in, tools/Makefile.in: Add
5281           generated files.
5282         * README: Remove mention of include/Defines.
5283         * autogen.sh: Call automake-1.10 --add-missing --copy.
5284         * m4/man-trans-subst.m4: New macro.
5285         * configure.ac: Various changes for Automake. AC_SUBST man_owner,
5286           and set man_mode rather than man_install_flags. Set
5287           config_file_dirname. Calculate transformed versions of program
5288           names (using MAN_TRANS_SUBST) here for use in Automake variables.
5289         * docs/HACKING (Directory layout): Mention automake.
5290
5291         Arrange that each file only needs to be built once.
5292
5293         * src/globbing.c: Split main program out to ...
5294         * src/globbing_test.c: ... here.
5295         * src/lexgrog.l: Split main program out to ...
5296         * src/lexgrog_test.c: ... here.
5297         * po/POTFILES.in: Add src/globbing_test.c and src/lexgrog_test.c.
5298         * src/whatis.c (args, long_options): Include -a/--and
5299           unconditionally.
5300           (usage): Replace with a wrapper selecting between ...
5301           (apropos_usage, whatis_usage): ... these.
5302           (apropos, whatis): Rename to ...
5303           (do_apropos, do_whatis): ... these, respectively.
5304           (use_grep, do_whatis, parse_name, match, do_apropos, search,
5305           main): Use run-time conditionals rather than compile-time
5306           conditionals.
5307           (main): Detect whether we are being invoked as "apropos" or
5308           "whatis" and adjust behaviour accordingly.
5309         * src/Makefile.am: Adjust for the above. Make apropos a symlink to
5310           whatis.
5311
5312         Make VPATH builds work, and simplify some includes.
5313
5314         * configure.ac, m4/man-fnmatch.m4: Define FNMATCH_H, GETOPT_H, and
5315           GLOB_H to the respective header names if system versions do not
5316           exist.
5317         * lib/hashtable.h: Remove unnecessary libdb includes.
5318         * lib/decompress.h, lib/glob.c, libdb/db_btree.c, libdb/db_delete.c,
5319           libdb/db_gdbm.c, libdb/db_lookup.c, libdb/db_ndbm.c,
5320           libdb/db_storage.h, libdb/db_store.c, libdb/db_ver.c,
5321           src/accessdb.c, src/catman.c, src/check_mandirs.c,
5322           src/check_mandirs.h, src/compression.c, src/convert_name.c,
5323           src/descriptions.h, src/descriptions_store.c, src/encodings.c,
5324           src/fake_security.c, src/filenames.c, src/filenames.h,
5325           src/globbing.c, src/lexgrog.l, src/lexgrog.l-2.3.8,
5326           src/lexgrog.l-2.4a, src/lexgrog.l.new, src/man.c, src/manconv.c,
5327           src/mandb.c, src/manp.c, src/manpath.c, src/security.c,
5328           src/straycats.c, src/ult_src.c, src/util.c, src/version.c,
5329           src/whatis.c, src/wrapper.c, src/zsoelim.l: Remove lib/ and libdb/
5330           prefixes from includes. Include <fnmatch.h>, <getopt.h>, and
5331           <glob.h> directly rather than using a forest of #ifdefs, since the
5332           copies in lib/ are now not built if a system version exists.
5333
5334         * .bzrignore: Update.
5335
5336 Sat Oct 13 15:04:06 BST 2007  Colin Watson  <cjwatson@debian.org>
5337
5338         * lib/popen.c, m4/man-pclose.m4: Remove; we no longer need popen or
5339           pclose.
5340         * configure.ac: Remove call to MAN_FUNC_PCLOSE.
5341
5342 Sat Oct 13 11:55:21 BST 2007  Colin Watson  <cjwatson@debian.org>
5343
5344         * configure.ac: Add --with-sections option to change the default
5345           value of SECTION.
5346         * src/man_db.conf.in: Use its output.
5347         * docs/NEWS: Document this.
5348
5349 Fri Oct 12 12:22:52 BST 2007  Colin Watson  <cjwatson@debian.org>
5350
5351         * docs/NEWS: Start 2.5.1.
5352
5353 Fri Oct 12 11:57:50 BST 2007  Colin Watson  <cjwatson@debian.org>
5354
5355         * src/manconv.c (try_iconv): If we need to try the next encoding in
5356           the list, make sure to do that before writing the output buffer.
5357
5358 Fri Oct 12 10:21:07 BST 2007  Colin Watson  <cjwatson@debian.org>
5359
5360         * src/whatis.c (use_grep): Add trailing newline to debugging output.
5361
5362 Fri Oct 12 01:47:49 BST 2007  Colin Watson  <cjwatson@debian.org>
5363
5364         * src/manconv.c (try_iconv): Improve debugging output slightly.
5365
5366 Fri Oct 12 01:43:25 BST 2007  Colin Watson  <cjwatson@debian.org>
5367
5368         * src/man.c (format_display_and_save, format_display,
5369           display_catman): Only discard stderr from formatting processes if
5370           stdout is a terminal.
5371
5372 Fri Oct 12 01:32:52 BST 2007  Colin Watson  <cjwatson@debian.org>
5373
5374         * src/encodings.c (device_table): groff's ascii device only supports
5375           ASCII input, not ISO-8859-1.
5376           (compatible_encodings): If the output is ASCII, this is probably
5377           because the caller explicitly asked for it, so allow recoding to
5378           it unconditionally.
5379
5380 Fri Oct 12 00:48:42 BST 2007  Colin Watson  <cjwatson@debian.org>
5381
5382         * src/whatis.c (main): locale is a constant pointer; free
5383           internal_locale instead (Debian bug #446302).
5384
5385 Thu Oct 11 01:40:51 BST 2007  Colin Watson  <cjwatson@debian.org>
5386
5387         * src/man.c (display): Free format_cmd on two more early return
5388           paths.
5389
5390 Thu Oct 11 00:53:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5391
5392         * src/man.c (display): I don't think it's possible for decomp to be
5393           NULL on the display_to_stdout path, but better safe than sorry.
5394
5395 Thu Oct 11 00:38:56 BST 2007  Colin Watson  <cjwatson@debian.org>
5396
5397         * src/man.c (display): Connect up the decompression pipeline in the
5398           display_to_stdout case too (Debian bug #446189).
5399           (checked_system): Remove, no longer used.
5400
5401 Thu Oct 11 00:21:49 BST 2007  Colin Watson  <cjwatson@debian.org>
5402
5403         * src/man.c (make_roff_command): Perform input encoding conversion
5404           for troff output as well as nroff output.
5405
5406 Wed Oct 10 09:39:53 BST 2007  Colin Watson  <cjwatson@debian.org>
5407
5408         * man/man8/mandb.man8 (DATABASE CACHES): Fix "occured" typo (thanks,
5409           Alfie Costa; Debian bug #446044).
5410
5411 Mon Oct  8 02:24:19 BST 2007  Colin Watson  <cjwatson@debian.org>
5412
5413         * lib/popen.c (popen), src/descriptions.c (parse_descriptions),
5414           src/man.c (add_candidate), src/manp.c (add_dir_to_path_list): Use
5415           xmalloc instead of malloc.
5416         * lib/pipeline.c (get_block): Use xrealloc instead of realloc.
5417
5418 Mon Oct  8 02:15:47 BST 2007  Colin Watson  <cjwatson@debian.org>
5419
5420         * docs/HACKING: Minor release process adjustment now that we're no
5421           longer using CVS.
5422
5423 Mon Oct  8 02:13:15 BST 2007  Colin Watson  <cjwatson@debian.org>
5424
5425         * README: Building the manual requires running ./configure now.
5426
5427 Mon Oct  8 02:09:55 BST 2007  Colin Watson  <cjwatson@debian.org>
5428
5429         The strappend function is in the namespace reserved by C99
5430         7.26.10/7.26.11; rename it to appendstr.
5431
5432         * lib/strappend.c: Rename to ...
5433         * lib/appendstr.c: ... this. Rename function.
5434         * lib/Makefile.in (ALLSRCS, ALL): Build appendstr instead of
5435           strappend.
5436         * lib/README: Update credit.
5437         * include/manconfig.h.in: Update prototype.
5438         * lib/decompress.c, lib/pathsearch.c, lib/pipeline.c,
5439           lib/tempfile.c, libdb/db_delete.c, src/accessdb.c, src/catman.c,
5440           src/check_mandirs.c, src/compression.c, src/convert_name.c,
5441           src/encodings.c, src/filenames.c, src/globbing.c,
5442           src/lexgrog.l.new, src/man.c, src/manconv.c, src/mandb.c,
5443           src/manp.c, src/straycats.c, src/ult_src.c, src/util.c,
5444           src/whatis.c, src/zsoelim.l: Update all callers.
5445         * docs/HACKING: Update reference.
5446         * docs/TODO: Remove item for this.
5447
5448 Mon Oct  8 01:21:10 BST 2007  Colin Watson  <cjwatson@debian.org>
5449
5450         * GNUmakefile.in (_man): Ship po4a files.
5451           (dist): Create the necessary directories.
5452
5453 Mon Oct  8 01:16:07 BST 2007  Colin Watson  <cjwatson@debian.org>
5454
5455         Build the manual automatically. This avoids problems trying to do a
5456         distclean (distclean at the top level runs ./config.status --recheck
5457         and regenerates manual/Makefile, but manual/Makefile requires
5458         include/Defines to exist, so there is no way to distclean both the
5459         top level and manual/).
5460
5461         * GNUmakefile.in (EVERYTHING, ALL): Add manual.
5462           (_subdirs): Remove manual, now included in $(EVERYTHING).
5463
5464 Sun Oct  7 17:05:54 BST 2007  Colin Watson  <cjwatson@debian.org>
5465
5466         * Version: 2.5.0.
5467         * configure.ac, docs/NEWS, man-db.lsm: Update.
5468
5469 Sun Oct  7 17:01:47 BST 2007  Colin Watson  <cjwatson@debian.org>
5470
5471         * src/lexgrog.l (ja_name): Add another possible translation.
5472
5473 Sun Oct  7 15:19:15 BST 2007  Colin Watson  <cjwatson@debian.org>
5474
5475         * manual/Makefile.in (distclean): Remove Makefile.
5476
5477 Sun Oct  7 14:28:27 BST 2007  Colin Watson  <cjwatson@debian.org>
5478
5479         * po/man-db.pot, po/*.po: Update.
5480
5481 Sun Oct  7 14:24:31 BST 2007  Ming Hua  <minghua-guest@users.alioth.debian.org>
5482
5483         * po/zh_CN.po: New translation.
5484         * po/LINGUAS: Add zh_CN.
5485         * man/THANKS: Add translator credit.
5486
5487 Wed Sep 26 17:57:44 BST 2007  Colin Watson  <cjwatson@debian.org>
5488
5489         * src/util.c (escape_shell): '=' is conceivably a shell
5490           metacharacter if used in the first word of a command (although I
5491           can't see anywhere in man-db where this might actually happen,
5492           barring very unlikely settings of $BROWSER).
5493
5494 Wed Sep 26 17:51:45 BST 2007  Colin Watson  <cjwatson@debian.org>
5495
5496         * src/globbing.c (look_for_file): Don't escape the hierarchy path;
5497           it isn't necessary and it causes problems for paths containing
5498           metacharacters (Debian bug #444187).
5499         * src/globbing.h (look_for_file): Update prototype.
5500
5501 Tue Sep 18 11:29:26 BST 2007  Colin Watson  <cjwatson@debian.org>
5502
5503         * man/po4a/po4a.cfg: Add po4a mechanism for manual page translation,
5504           as the Simplified Chinese translator would like to use this.
5505         * man/po4a/po/man-db.pot: Add generated file.
5506
5507         * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1,
5508           man/man1/manconv.man1, man/man1/manpath.man1,
5509           man/man1/whatis.man1, man/man1/zsoelim.man1,
5510           man/man5/manpath.man5, man/man8/accessdb.man8,
5511           man/man8/catman.man8, man/man8/mandb.man8: Some strings should not
5512           be translated. Use the ".if !'po4a'hide'" idiom to mark them.
5513         * man/man1/man.man1 (OVERVIEW): Adjust some spacing.
5514
5515 Tue Sep 18 08:59:55 BST 2007  Colin Watson  <cjwatson@debian.org>
5516
5517         * src/encodings.c (directory_table): Switch Simplified Chinese to
5518           GBK by default. Ming Hua points out that GBK is a superset of
5519           EUC-CN, and indeed all Simplified Chinese manual pages I can find
5520           can be recoded from GBK without hassle. I'm less certain about
5521           changing the output encoding, but for CJK encodings it's best for
5522           these to be the same at the moment.
5523
5524 Mon Sep 17 16:13:37 BST 2007  Daniel Nylander  <po@danielnylander.se>
5525
5526         * po/sv.po: Update from Translation Project.
5527
5528 Mon Sep 17 14:27:15 BST 2007  Clytie Siddall  <clytie@riverland.net.au>
5529
5530         * po/vi.po: Update from Translation Project.
5531
5532 Mon Sep 17 00:34:17 UTC 2007  Colin Watson  <cjwatson@debian.org>
5533
5534         * src/lexgrog.l (ja_name): Oops; make the first translation keep
5535           working!
5536
5537 Mon Sep 17 00:26:27 UTC 2007  Colin Watson  <cjwatson@debian.org>
5538
5539         * src/lexgrog.l (ja_name): Add another possible translation.
5540
5541 Mon Sep 17 00:11:38 UTC 2007  Colin Watson  <cjwatson@debian.org>
5542
5543         * lib/pipeline.c (pipeline_start): Break after execvp, otherwise we
5544           segfault if execvp fails.
5545
5546 Sun Sep 16 23:15:27 BST 2007  Colin Watson  <cjwatson@debian.org>
5547
5548         * Version: 2.5.0-pre2.
5549         * man-db.lsm (Keywords): Add manconv.
5550
5551 Sun Sep 16 20:41:36 BST 2007  Colin Watson  <cjwatson@debian.org>
5552
5553         * GNUmakefile.in (__distclean): Remove config.status.lineno.
5554         * .bzrignore: Ignore ./config.status.lineno.
5555
5556 Sun Sep 16 20:38:32 BST 2007  Colin Watson  <cjwatson@debian.org>
5557
5558         * man/Makefile.in: Deal more neatly with manual pages without
5559           complete sets of translations.
5560
5561 Sun Sep 16 20:25:24 BST 2007  Colin Watson  <cjwatson@debian.org>
5562
5563         Add more intelligent guessing of manual page encodings. Thanks to
5564         Adam Borowski for discussion leading to this.
5565
5566         * src/manconv.c: New program.
5567         * man/man1/manconv.man1: Document it.
5568         * .bzrignore: Ignore src/manconv.
5569         * include/Defines.in (manconv): Add.
5570         * man/Makefile.in (manconv, thmanconv, manconv.1): Add.
5571           (process_manpage): Add manconv and thmanconv.
5572           (allmanpages): Add ./man1/manconv.1.
5573           (nlsinstall): Install manconv.1.
5574           (nlsuninstall): Uninstall manconv.1.
5575         * src/Makefile.in (PRIVTOOLS, all): Add manconv.
5576         * po/POTFILES.in: Add src/manconv.c.
5577         * po/man-db.pot, po/*.po: Update.
5578
5579         * src/man.c (PP_COOKIE): Move to ...
5580         * include/manconfig.h.in (PP_COOKIE): ... here.
5581
5582         * src/encodings.c (add_manconv): New function to use manconv instead
5583           of iconv where appropriate.
5584         * src/encodings.h (add_manconv): Add prototype.
5585         * src/lexgrog.l (find_name): Use it.
5586         * src/man.c (make_roff_command): Use it. Remove coding: preprocessor
5587           string handling, as manconv deals with that now.
5588         * src/straycats.c (check_for_stray): Use it.
5589         * src/Makefile.in (DEFS_encodings.o): Add, defining location of
5590           manconv.
5591
5592         * docs/NEWS: Document this.
5593
5594 Sun Sep 16 12:41:05 BST 2007  Colin Watson  <cjwatson@debian.org>
5595
5596         * src/catman.c (main), src/globbing.c (main), src/lexgrog.l (main),
5597           src/man.c (man_getopt), src/mandb.c (main), src/manpath.c (main),
5598           src/whatis.c (main), src/zsoelim.l (main): Pass NULL as the fifth
5599           argument to getopt_long rather than requiring an unused variable.
5600
5601 Tue Sep 11 13:49:33 BST 2007  Clytie Siddall  <clytie@riverland.net.au>
5602
5603         * po/vi.po: Update from Translation Project.
5604
5605 Mon Sep 10 10:29:40 BST 2007  Colin Watson  <cjwatson@debian.org>
5606
5607         * docs/TODO: Miscellaneous updates.
5608
5609 Mon Sep 10 10:26:57 BST 2007  Colin Watson  <cjwatson@debian.org>
5610
5611         * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.61.
5612
5613 Mon Sep 10 10:20:23 BST 2007  Colin Watson  <cjwatson@debian.org>
5614
5615         * manual/misc.me (NLS message catalogues): Update Translation
5616           Project URL.
5617
5618 Mon Sep 10 10:17:43 BST 2007  Colin Watson  <cjwatson@debian.org>
5619
5620         * manual/Makefile: Rename to ...
5621         * manual/Makefile.in: ... this. Write out a version file with the
5622           current version of man-db.
5623         * manual/man_db.me: Use the automatically-generated version file
5624           rather than hardcoding the version. Set the manual version to
5625           simply the version of man-db.
5626         * configure.ac (AC_CONFIG_FILES): Add manual/Makefile.
5627         * GNUmakefile.in (_manual): Distribute manual/Makefile.in rather
5628           than manual/Makefile.
5629         * .bzrignore: Update.
5630
5631 Mon Sep 10 09:17:17 BST 2007  Colin Watson  <cjwatson@debian.org>
5632
5633         * Version: 2.5.0-pre1. I mistakenly used version 2.4.5-pre1 earlier.
5634
5635 Mon Sep 10 09:11:05 BST 2007  Clytie Siddall  <clytie@riverland.net.au>
5636
5637         * po/vi.po: Update from Translation Project.
5638
5639 Mon Sep 10 00:15:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5640
5641         * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.16.1.
5642         * .bzrignore: Update ignores.
5643
5644 Sun Sep  9 23:49:37 BST 2007  Daniel Nylander  <po@danielnylander.se>
5645
5646         * po/sv.po: Update from Translation Project.
5647
5648 Sun Sep  9 22:50:22 BST 2007  Colin Watson  <cjwatson@debian.org>
5649
5650         * manual/format.me (Format scripts): Adjust for renaming of
5651           tools/mandb_[nt]fmt-script to tools/mandb_fmt-script.
5652
5653 Sun Sep  9 21:03:25 BST 2007  Colin Watson  <cjwatson@debian.org>
5654
5655         * manual/comp.me (Compressed manual pages): Using compressed manual
5656           pages is perfectly reasonable these days; stop recommending
5657           against it.
5658
5659 Sun Sep  9 20:57:16 BST 2007  Colin Watson  <cjwatson@debian.org>
5660
5661         * manual/files.me (Displaying latin1 characters on a Linux virtual
5662           terminal): Rename to ...
5663           (Displaying non-ASCII characters on a Linux virtual terminal): ...
5664           this. Mention console-tools as an alternative to kbd. Remove
5665           detailed advice on configuring kbd as it is now woefully out of
5666           date. Recommend the UTF-8 encoding again.
5667
5668 Sun Sep  9 20:49:59 BST 2007  Colin Watson  <cjwatson@debian.org>
5669
5670         * manual/files.me (NLS manual pages): Update for new per-locale
5671           directory handling. Recommend UTF-8 encoding.
5672
5673 Sun Sep  9 19:39:36 BST 2007  Colin Watson  <cjwatson@debian.org>
5674
5675         * manual/intro.me (The manual page system): Refer to /usr/share/man
5676           rather than /usr/man.
5677         * manual/sec.me (Package specific manual page sections): Likewise.
5678         * manual/files.me (Manual page hierarchies, Other OS's manual pages,
5679           NLS manual pages): Likewise.
5680         * manual/leader.me: Update copyright years.
5681
5682 Sun Sep  9 19:24:56 BST 2007  Colin Watson  <cjwatson@debian.org>
5683
5684         * docs/NEWS: Reorder, roughly by importance.
5685
5686 Sun Sep  9 09:01:30 BST 2007  Colin Watson  <cjwatson@debian.org>
5687
5688         * GNUmakefile.in (_root): Add autogen.sh to the distribution; it's
5689           useful if you need to change autotools input files.
5690
5691 Sun Sep  9 08:37:04 BST 2007  Colin Watson  <cjwatson@debian.org>
5692
5693         * Version: 2.4.5-pre1 (for translators).
5694         * po/man-db.pot, po/*.po: Update.
5695
5696 Mon Sep  3 14:34:06 BST 2007  Colin Watson  <cjwatson@debian.org>
5697
5698         * src/manp.c (add_nls_manpath): Handle the POSIX locale the same way
5699           as C.
5700
5701 Mon Sep  3 13:48:13 BST 2007  Colin Watson  <cjwatson@debian.org>
5702
5703         * man/man1/whatis.man1 (OPTIONS): Refer to whatis rather than
5704           apropos in description of --manpath.
5705
5706 Mon Sep  3 13:45:30 BST 2007  Nicolas François  <nicolas.francois@centraliens.net>
5707
5708         * man/man1/apropos.man1 (ENVIRONMENT): Remove stray space in
5709           description of POSIXLY_CORRECT. Patch from Debian bug #281811.
5710
5711 Mon Sep  3 13:26:19 BST 2007  Colin Watson  <cjwatson@debian.org>
5712
5713         * src/encodings.c (directory_table): Add Bulgarian -> CP1251 and
5714           Vietnamese -> TCVN5712-1.
5715         * src/lexgrog.l (bg_name, vi_name): Add.
5716
5717 Mon Sep  3 12:15:55 BST 2007  Colin Watson  <cjwatson@debian.org>
5718
5719         * src/check_mandirs.c (test_manfile): Fix comment typos and
5720           formatting.
5721
5722 Mon Sep  3 12:01:36 BST 2007  Colin Watson  <cjwatson@debian.org>
5723
5724         * .bzrignore: Update for manual directory renaming.
5725         * GNUmakefile.in (nls_man): Likewise.
5726
5727 Mon Sep  3 11:56:58 BST 2007  Colin Watson  <cjwatson@debian.org>
5728
5729         * man/de_DE.88591, man/es_ES.88591, man/fr_FR.88591,
5730           man/it_IT.88591, man/ja_JP.eucJP: Rename to ...
5731         * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8,
5732           man/ja.UTF-8: ... these. Recode all contents to UTF-8.
5733         * man/Makefile.in (NLS): Adjust directory search.
5734         * man/THANKS: Update credits.
5735
5736 Mon Sep  3 11:38:11 BST 2007  Colin Watson  <cjwatson@debian.org>
5737
5738         Create and use databases for non-English manual hierarchies (Debian
5739         bug #29448). Extensive changes elsewhere to support this by means of
5740         better UTF-8 handling and knowledge of more languages.
5741
5742         * src/check_mandirs.c (make_database_directory): New function.
5743           (create_db, update_db): Use it.
5744           (purge_missing): Check that the database exists before starting.
5745         * src/mandb.c (process_manpath): New function, split out from main.
5746           Make the single_filename check aware that the file might be in a
5747           per-locale subdirectory that we aren't processing right now.
5748           (main): Use it. Move man_owner, purged, and strays to file scope.
5749           Build databases for all per-locale subdirectories.
5750         * src/straycats.c (straycats): Constify manpath argument.
5751         * src/whatis.c (main): Sync locale handling with src/man.c, in order
5752           to look up per-locale databases correctly. Based on a patch by
5753           Nicolas François (Debian bug #281811).
5754         * include/manconfig.h.in (straycats): Update prototype.
5755
5756         * src/man.c (duplicate_candidates): New function to determine
5757           whether candidates are substantially duplicated, and if so in
5758           which direction. The logic is better than before: it now knows how
5759           to compare locales and pick the best available candidate for each
5760           language, and prefers UTF-8 candidates if everything else is
5761           equal.
5762           (add_candidate): Move duplication logic to duplicate_candidates.
5763           Adjust insertion handling so that we can drop old candidates in
5764           favour of new candidates.
5765         * src/manp.c (check_and_give): Remove.
5766           (unpack_locale_bits): New function, inspired by _nl_explode_name
5767           in libintl.
5768           (free_locale_bits): New function.
5769           (add_nls_manpath): Instead of trying individual directories (which
5770           doesn't work so well with character set aliasing), iterate over
5771           all subdirectories of each manpath entry and add all those
5772           matching the current locale's language and (if specified)
5773           territory. This now includes ll.CODESET as well as more
5774           conventional locale names.
5775         * src/manp.h: Declare 'struct locale_bits'. Prototype
5776           unpack_locale_bits and free_locale_bits.
5777
5778         * src/man.c (lang_dir): Move to ...
5779         * src/util.c (lang_dir): ... here.
5780         * src/lexgrog.l (long_options, args, main): New -E/--encoding
5781           option.
5782           (usage): Document it.
5783           (cs_name, hu_name, ja_name, ru_name): Recode to UTF-8.
5784           (find_name): Add encoding argument. Guess the page's encoding from
5785           its filesystem location (or use encoding if supplied), and add an
5786           iconv command to recode it to UTF-8.
5787         * man/man1/lexgrog.man1 (SYNOPSIS, OPTIONS): Document --encoding.
5788         * src/straycats.c (check_for_stray): Guess the page's encoding from
5789           its filesystem location, and add an iconv command to recode it to
5790           UTF-8.
5791         * src/whatis.c (simple_convert): New function to simplify iconv
5792           handling.
5793           (display): Convert output from UTF-8 to locale charset.
5794           (main): Initialise iconv descriptor.
5795         * include/manconfig.h.in (find_name): Update prototype.
5796           (lang_dir): Add prototype.
5797         * configure.ac: Call AM_ICONV.
5798         * src/Makefile.in (mandb, lexgrog): Add encodings.o.
5799         * src/Makefile.in (whatis, apropos): Add encodings.o and
5800           $(LIBICONV).
5801
5802         * src/encodings.c (directory_table): Add Serbian -> ISO-8859-5.
5803         * src/lexgrog.l (cs_name, hu_name): Expand character classes
5804           containing non-ASCII characters into the form (a|b|...); flex
5805           doesn't understand Unicode well enough to deal with them
5806           otherwise.
5807           (cs_name, ru_name): Add more possible translations.
5808           (ko_name, sk_name, sr_name, tr_name, zh_CN_name, zh_TW_name): Add.
5809           (find_name_decompressed): Ignore exit status from decompressor
5810           pipeline; iconv may exit non-zero on misencoded pages, but if we
5811           manage to extract a whatis from it anyway then it doesn't really
5812           matter.
5813
5814         * src/whatis.c (usage): Document -L/--locale.
5815         * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Likewise.
5816         * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise.
5817
5818         * docs/NEWS: Document this.
5819
5820 Sun Sep  2 01:21:11 BST 2007  Colin Watson  <cjwatson@debian.org>
5821
5822         Add limited character set aliasing support.
5823
5824         * src/encodings.c (charset_alias_table): New table for common
5825           character set aliases.
5826           (get_canonical_charset_name): New function to inspect
5827           charset_alias_table.
5828           (get_page_encoding): Use get_canonical_charset_name. Adjust FHS
5829           commentary, since we now support its craziness.
5830           (get_standard_output_encoding): Use get_canonical_charset_name.
5831           (get_locale_charset): Likewise.
5832         * src/encodings.h: Prototype get_canonical_charset_name.
5833
5834         * src/encodings.c (directory_table): Use EUC-CN rather than GB2312
5835           and BIG5HKSCS rather than BIG5-HKSCS (canonical names according to
5836           glibc's /usr/lib/gconv/gconv-modules).
5837           (charset_table): Likewise.
5838           (compatible_encodings): Likewise.
5839
5840 Sun Sep  2 00:49:27 BST 2007  Colin Watson  <cjwatson@debian.org>
5841
5842         * lib/decompress.c (decompress_open, decompress_fdopen): Don't start
5843           the returned pipeline.
5844         * lib/decompress.h (decompress_open, decompress_fdopen): Note that
5845           the caller must start the returned pipeline.
5846         * src/lexgrog.l (find_name): Start the decompressor pipeline.
5847         * src/man.c (display): Likewise.
5848         * src/ult_src.c (ult_src): Likewise.
5849         * src/zsoelim.l (open_file): Likewise.
5850         * src/straycats.c (check_for_stray): Append 'col -bx' to the
5851           decompressor pipeline rather than connecting two pipelines
5852           together. Don't call pipeline_wait by hand as pipeline_free will
5853           do this for us now.
5854
5855 Fri Aug 31 14:52:22 BST 2007  Colin Watson  <cjwatson@debian.org>
5856
5857         * src/man.c (maybe_update_file): Only recache pages automatically if
5858           --update was given.
5859
5860 Fri Aug 31 04:54:45 BST 2007  Colin Watson  <cjwatson@debian.org>
5861
5862         * lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline
5863           is still running.
5864         * lib/pipeline.h (pipeline_free): Document that this may happen.
5865
5866 Fri Aug 31 04:46:04 BST 2007  Colin Watson  <cjwatson@debian.org>
5867
5868         * src/zsoelim.l (main): Call pipeline_install_sigchld.
5869
5870 Wed Aug 29 17:12:52 BST 2007  Lars Wirzenius  <liw@iki.fi>
5871
5872         * po/fi.po: Adjust translation of "No manual entry for %s" (Debian
5873           bug #320108).
5874
5875 Wed Aug 29 15:22:54 BST 2007  Clytie Siddall  <clytie@riverland.net.au>
5876
5877         * po/vi.po: Update from Translation Project.
5878
5879 Wed Aug 29 15:18:34 BST 2007  Daniel Nylander  <po@danielnylander.se>
5880
5881         * po/sv.po: Update from Translation Project.
5882
5883 Wed Aug 29 12:07:38 BST 2007  Colin Watson  <cjwatson@debian.org>
5884
5885         * docs/NEWS: Reorganise slightly. Document mandb --quiet fixes.
5886
5887 Wed Aug 29 11:57:59 BST 2007  Colin Watson  <cjwatson@debian.org>
5888
5889         Add an option to apropos to display only items matching all keywords
5890         (thanks, Alfie Costa; Debian bug #259340).
5891
5892         * src/whatis.c (args, long_options, main): New -a/--and option for
5893           apropos.
5894           (usage): Document it.
5895           (apropos): Store a count of how many times each item has been seen
5896           in the hashtable. If --and was given, only display an item if its
5897           count equals the number of supplied keywords.
5898           (main): Store the number of supplied keywords. Adjust hash free
5899           function.
5900         * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --and.
5901         * docs/NEWS: Document this.
5902
5903 Wed Aug 29 11:09:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5904
5905         * m4/man-path-progs.m4: Rename to ...
5906         * m4/man-check-progs.m4: ... this. Use AC_CHECK_PROGS rather than
5907           AC_PATH_PROGS.
5908         * configure.ac: Use AC_CHECK_PROGS rather than
5909           AC_PATH_PROG/AC_PATH_PROGS, and MAN_CHECK_PROGS rather than
5910           MAN_PATH_PROGS. This fixes problems due to system utilities moving
5911           around on $PATH (Debian bug #385651).
5912
5913 Wed Aug 29 10:42:08 BST 2007  Colin Watson  <cjwatson@debian.org>
5914
5915         * configure.ac: Move bogus makefile content ...
5916         * makefile.in: ... here.
5917
5918 Wed Aug 29 10:15:33 BST 2007  Colin Watson  <cjwatson@debian.org>
5919
5920         * m4/man-path-progs.m4: Define HAVE_WITH-ARG if the program is
5921           found.
5922         * configure.ac: Rely on the above rather than setting HAVE_GZIP,
5923           HAVE_COMPRESS, and HAVE_BZIP2 here.
5924
5925 Wed Aug 29 09:41:51 BST 2007  Colin Watson  <cjwatson@debian.org>
5926
5927         * src/mandb.c (main): Revert inadvertently-committed debugging
5928           change to straycats logic.
5929
5930 Wed Aug 29 09:34:50 BST 2007  Colin Watson  <cjwatson@debian.org>
5931
5932         * src/lexgrog.l: Add Indonesian translation of NAME.
5933
5934 Wed Aug 29 09:29:36 BST 2007  Colin Watson  <cjwatson@debian.org>
5935
5936         * docs/NEWS: Document previous apropos change.
5937
5938 Wed Aug 29 09:26:23 BST 2007  Colin Watson  <cjwatson@debian.org>
5939
5940         * src/whatis.c (apropos): Add output keys to a hashtable, and skip
5941           any that have already been seen (Debian bug #259338).
5942           (main): Create the hashtable on startup and free it on exit.
5943
5944 Tue Aug 28 19:16:18 BST 2007  Colin Watson  <cjwatson@debian.org>
5945
5946         * src/man.c (format_display): Wait for the decomp pipeline in the
5947           !format_cmd case too.
5948
5949 Tue Aug 28 19:07:53 BST 2007  Colin Watson  <cjwatson@debian.org>
5950
5951         * src/man.c (display_catman): Take a decompressor pipeline argument.
5952           Connect it to format_cmd.
5953           (display): Update call to display_catman.
5954
5955 Tue Aug 28 18:38:31 BST 2007  Colin Watson  <cjwatson@debian.org>
5956
5957         Add a configuration file flag (NOCACHE) to disable cat page caching
5958         (thanks, Ralph Corderoy; Debian bug #196642).
5959
5960         * src/manp.c (add_to_dirlist): Recognise NOCACHE.
5961         * src/man.c (display): Don't save a cat page if NOCACHE is set.
5962         * src/man_db.conf.in: Document NOCACHE.
5963         * man/man5/manpath.man5 (FORMAT): Document NOCACHE.
5964         * docs/NEWS: Document this.
5965
5966 Tue Aug 28 17:23:26 BST 2007  Colin Watson  <cjwatson@debian.org>
5967
5968         * docs/NEWS: Bump to 2.5.0; I think there's now enough to justify
5969           that.
5970
5971 Tue Aug 28 17:19:16 BST 2007  Colin Watson  <cjwatson@debian.org>
5972
5973         Implement and use a decompression library. This allows cat pages to
5974         be saved in the background (Debian bug #18452) and operation with a
5975         read-only /tmp (Debian bug #165499).
5976
5977         * lib/pipeline.h (struct command): Add support for commands that
5978           consist of calling a function rather than executing a process.
5979           (struct pipeline): Add want_infile and want_outfile members. Note
5980           that infile and outfile default to NULL. Add source, buffer,
5981           buflen, bufmax, line_cache, and peek_offset members.
5982           (command_new_function, command_dump, command_tostring,
5983           pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek,
5984           pipeline_peek_size, pipeline_peek_skip, pipeline_readline,
5985           pipeline_peekline): New prototypes.
5986           (pipeline_join): Update description for want_infile and
5987           want_outfile.
5988         * lib/pipeline.c (command_new, command_dup, command_arg,
5989           command_argv, command_args, command_argstr, command_free): Update
5990           for 'struct command' changes.
5991           (command_new_function, command_dump, command_tostring): New
5992           functions.
5993           (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring):
5994           Update for 'struct pipeline' changes.
5995           (pipeline_dump): Use command_dump.
5996           (pipeline_tostring): Use command_tostring.
5997           (pipeline_start): Implement want_infile, want_outfile, and
5998           function commands. Make zero-command case work properly (read
5999           directly from input file). Flush all pending stdio output so that
6000           subprocesses don't inherit it.
6001           (pipeline_connect, pipeline_pump, get_block, pipeline_read,
6002           pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line,
6003           pipeline_readline, pipeline_peekline): New functions.
6004
6005         * lib/decompress.c, lib/decompress.h: New files, implementing a
6006           decompression abstraction layer.
6007         * lib/Makefile.in: Always compile decompress.c.
6008
6009         * src/lexgrog.l (YY_INPUT): Define to read from a 'struct pipeline'.
6010           (find_name): Use decompress_open/decompress_fdopen rather than
6011           older decompression methods. Split handling once we have a
6012           decompressor pipeline out to ...
6013           (find_name_decompressed): ... here.
6014         * src/check_mandirs.c (test_manfile): Remove decompression code;
6015           find_name will handle this itself now.
6016         * src/compression.c (create_ztemp, decompress, remove_ztemp,
6017           get_ztemp): Remove.
6018         * src/man.c (checked_popen): Remove.
6019           (local_man_loop): Remove decompression code.
6020           (get_preprocessors_from_file): Convert to peeking the first line
6021           from a pipeline.
6022           (get_preprocessors): Adjust arguments and
6023           get_preprocessors_from_file call.
6024           (remove_stdintmp, create_stdintmp): Remove.
6025           (make_roff_command): Remove special handling of stdin, now handled
6026           by peeking a pipeline.
6027           (open_cat_stream): Don't start the returned pipeline.
6028           (close_cat_stream): Remove unnecessary COMP_CAT special case.
6029           (format_display_and_save): Take a decompressor pipeline argument.
6030           Simplify by using pipeline_connect and pipeline_pump.
6031           (format_display): Take a decompressor pipeline argument. Use
6032           pipeline_connect and pipeline_pump.
6033           (display): Use decompress_open/decompress_fdopen rather than older
6034           decompression methods.
6035           (display_filesystem, display_database): Drop remove_ztemp calls.
6036         * src/straycats.c (check_for_stray): Use decompression layer.
6037           Rearrange control flow a bit to reduce duplication. Remove use of
6038           temporary file; use find_name_decompressed instead. Only increment
6039           strays if find_name_decompressed succeeds.
6040           (straycats): Remove temporary file creation.
6041         * src/ult_src.c (ult_src): Use pipeline and decompression layers
6042           rather than older decompression methods.
6043         * src/zsoelim.l (YY_INPUT): Define to read from a 'struct pipeline'.
6044           (<so>\"?[^ \t\n\"]+\"?): Call open_file only once; let it worry
6045           about compression extensions. Decrement so_stack_ptr here if
6046           open_file fails rather than having it do it.
6047           (<lfname>\"?[^ \t\n\"]+\"?): Free the old value of NAME, if set.
6048           (<<EOF>>): Clean up used pipeline and free NAME. Remove so_delete
6049           handling.
6050           (main): Let open_file handle stdin.
6051           (open_file): Use decompress_open/decompress_fdopen rather than
6052           older decompression methods. Don't decrement so_stack_ptr here on
6053           failure.
6054
6055         * configure.ac: Remove decompressor variable. Check for gzopen in
6056           libz.
6057         * include/manconfig.h.in (DECOMPRESSOR): Remove.
6058           (comp_list): Declare extern here.
6059           (create_tempfile): Remove.
6060           (decompress, remove_ztemp, get_ztemp): Remove.
6061           (find_name_decompressed): Add prototype.
6062         * lib/tempfile.c (create_tempfile): Remove. We now only need
6063           temporary directory creation.
6064         * src/man_db.conf.in (decompressor): Remove.
6065
6066         * docs/TODO: Update.
6067         * docs/NEWS: Document this.
6068
6069 Tue Aug 28 11:14:53 BST 2007  Colin Watson  <cjwatson@debian.org>
6070
6071         * tools/mandb_[nt]fmt-script: Rename to tools/mandb_fmt-script,
6072           which is a rather less hostile filename.
6073         * tools/README: Update.
6074         * GNUmakefile.in: Update.
6075
6076 Tue Aug 28 10:36:20 BST 2007  Colin Watson  <cjwatson@debian.org>
6077
6078         * src/straycats.c (check_for_stray): Drop privileges while opening
6079           temporary file (previously created with dropped privileges).
6080
6081 Tue Aug 28 10:31:03 BST 2007  Colin Watson  <cjwatson@debian.org>
6082
6083         * src/straycats.c (straycats): Regain privileges on the error path
6084           too.
6085
6086 Mon Aug 27 20:13:09 BST 2007  Colin Watson  <cjwatson@debian.org>
6087
6088         * src/compression.c (comp_file): Free compfile if returning NULL.
6089
6090 Mon Aug 27 20:02:17 BST 2007  Colin Watson  <cjwatson@debian.org>
6091
6092         * lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they
6093           terminate a subprocess.
6094
6095 Mon Aug 27 19:58:19 BST 2007  Colin Watson  <cjwatson@debian.org>
6096
6097         * lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the
6098           pipeline's output.
6099
6100 Sun Aug 26 23:33:23 BST 2007  Colin Watson  <cjwatson@debian.org>
6101
6102         * src/man.c (format_display): Check whether format_cmd is NULL
6103           before discarding stderr from it.
6104
6105 Sun Aug 26 21:20:45 BST 2007  Colin Watson  <cjwatson@debian.org>
6106
6107         * src/man.c (checked_popen): Remove unnecessary SECURE_MAN_UID
6108           guard; drop_effective_privs/regain_effective_privs already check
6109           this.
6110         * src/security.c (remove_with_dropped_privs): Likewise. The uid !=
6111           ruid check is no longer necessary now that
6112           drop_effective_privs/regain_effective_privs handle nesting
6113           correctly.
6114
6115 Sun Aug 26 19:40:12 BST 2007  Colin Watson  <cjwatson@debian.org>
6116
6117         * src/man.c (make_roff_command): If MAN_KEEP_FORMATTING is set in
6118           the environment, don't strip formatting characters with col
6119           (Debian bug #340673).
6120         * man/man1/man.man1 (ENVIRONMENT): Document MAN_KEEP_FORMATTING.
6121         * docs/NEWS: Document this.
6122
6123 Sun Aug 26 16:40:50 BST 2007  Colin Watson  <cjwatson@debian.org>
6124
6125         Suppress warnings in --quiet mode (thanks, Martin Dorey; Debian bugs
6126         #348008, #378428, and #411220).
6127
6128         * src/check_mandirs.c (test_manfile): Suppress "bad symlink" warning
6129           under --quiet.
6130         * src/ult_src.c (ult_hardlink): Suppress "can't search directory"
6131           warning under --quiet.
6132           (ult_softlink): Suppress "dangling symlinks" and "can't resolve"
6133           warnings under --quiet.
6134           (ult_src): Suppress "can't resolve", "is self referencing", and
6135           "can't open" warnings under --quiet.
6136         * src/lexgrog.l: Declare global quiet variable.
6137
6138 Sun Aug 26 16:10:26 BST 2007  Colin Watson  <cjwatson@debian.org>
6139
6140         * src/lexgrog.l (main): Skip descriptions with NULL name or whatis.
6141           This causes pages with no description to be flagged as parse
6142           failures, so that automatic scanners can pick them up more easily.
6143
6144 Sun Aug 26 15:08:45 BST 2007  Colin Watson  <cjwatson@debian.org>
6145
6146         * src/man.c (is_section): Disallow sectional extensions of
6147           alphabetic sections, e.g. n and l from the default configuration
6148           (Debian bug #391977). Also disallow sectional extensions beginning
6149           with a digit (Debian bug #421481).
6150
6151 Mon Aug 20 00:10:49 BST 2007  Colin Watson  <cjwatson@debian.org>
6152
6153         Discard stderr from formatting processes when outputting to a pager,
6154         to avoid visual corruption from any error messages (thanks, Vincent
6155         Lefevre; Debian bug #372939).
6156
6157         * lib/pipeline.h (struct command): Add discard_err member.
6158         * lib/pipeline.c (command_new, command_dup): Initialise discard_err.
6159           (pipeline_start): Redirect the child's stderr to /dev/null if
6160           discard_err is set.
6161         * src/man.c (discard_stderr): New function to set discard_err on all
6162           commands in a pipeline.
6163           (format_display_and_save, format_display): Use it on format_cmd.
6164         * docs/NEWS: Document this.
6165
6166 Sun Aug 19 21:04:24 BST 2007  Colin Watson  <cjwatson@debian.org>
6167
6168         * src/descriptions.c (parse_descriptions): Skip name tokens
6169           containing whitespace, as they are almost never useful as manual
6170           page names.
6171         * man/man1/lexgrog.1 (WHATIS PARSING), docs/NEWS: Document this.
6172
6173 Sun Aug 19 21:00:20 BST 2007  Colin Watson  <cjwatson@debian.org>
6174
6175         * src/lexgrog.l: Skip over .ft font change requests, and the .Vb and
6176           .Ve definitions used by pod2man to begin and end verbatim mode.
6177           This handles some POD-generated pages better.
6178
6179 Sun Aug 19 20:48:42 BST 2007  Colin Watson  <cjwatson@debian.org>
6180
6181         Truncate apropos/whatis output to the terminal width by default
6182         (thanks, Dan Jacobson; Debian bug #411721).
6183
6184         * lib/linelength.c: New file for terminal line length detection,
6185           split out from src/man.c. Unlike the previous implementation, this
6186           does its own memoisation rather than requiring explicit
6187           initialisation.
6188         * lib/linelength.h: Prototype get_line_length.
6189         * lib/Makefile.in: Always compile linelength.c.
6190         * src/man.c (line_length, store_line_length): Remove.
6191           (get_roff_line_length): Use get_line_length.
6192           (main): We no longer need to call store_line_length.
6193         * src/whatis.c (args, long_options, main): New -l/--long option.
6194           (usage): Document it.
6195           (display): Truncate names and descriptions to fit within the
6196           terminal width.
6197         * man/man1/apropos.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Document
6198           --long and the MANWIDTH override.
6199         * man/man1/whatis.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Likewise.
6200         * docs/NEWS: Document this.
6201
6202 Tue Jun 26 10:48:45 BST 2007  Colin Watson  <cjwatson@debian.org>
6203
6204         * man/de_DE.88591/man1/man.man1 (UMGEBUNG),
6205           man/de_DE.88591/man8/catman.man8 (BESCHREIBUNG): MANSEC -> MANSECT
6206           (thanks, Holger Kubiak; Debian bug #430635).
6207
6208 Mon Jun 18 10:19:22 BST 2007  Colin Watson  <cjwatson@debian.org>
6209
6210         * lib/cleanup.c (do_cleanups): Split out signal-safe processing ...
6211           (do_cleanups_sigsafe): ... here.
6212           (sighandler): Call do_cleanups_sigsafe rather than do_cleanups.
6213           (push_cleanup): Add sigsafe argument to allow cleanup functions to
6214           be flagged as non-signal-safe (e.g. freeing memory).
6215         * lib/cleanup.h: Update prototypes.
6216         * libdb/db_gdbm.c (man_gdbm_firstkey): hash_free cleanup is not
6217           signal-safe.
6218         * src/globbing.c (update_directory_cache): hash_free cleanup is not
6219           signal-safe.
6220           (look_for_file): globfree cleanup is not signal-safe.
6221         * src/man.c (open_cat_stream, display_catman): unlink cleanup is
6222           signal-safe.
6223         * src/mandb.c (cleanup): Split out signal-safe processing ...
6224           (cleanup_sigsafe): ... here.
6225           (main): Call cleanup_sigsafe as well as cleanup.
6226         * src/manp.c (read_config_file): free_config_file cleanup is not
6227           signal-safe.
6228
6229 Mon Jun 18 08:03:30 BST 2007  Colin Watson  <cjwatson@debian.org>
6230
6231         * lib/xstrsignal.c: Include config.h.
6232
6233 Mon Jun 18 07:50:56 BST 2007  Colin Watson  <cjwatson@debian.org>
6234
6235         * libdb/db_btree.c (btree_close, btree_flopen, btree_replace,
6236           btree_insert, btree_fetch, btree_exists, btree_findkey,
6237           btree_firstkey, btree_nextkey, btree_nextkeydata): Rename dbf to
6238           db to avoid shadowing a global variable.
6239         * libdb/mydbm.h: Update prototypes and btree macros likewise.
6240
6241 Sat May 26 10:58:11 BST 2007  Colin Watson  <cjwatson@debian.org>
6242
6243         * src/man.c (gripe_no_name): On reflection, borrowing the error
6244           message from gripe_no_man is clearer if a possible section name
6245           was specified.
6246         * po/man-db.pot, po/*.po: Update.
6247
6248 Sat May 26 10:53:58 BST 2007  Colin Watson  <cjwatson@debian.org>
6249
6250         * po/man-db.pot: Add to revision control.
6251
6252 Sat May 26 10:52:01 BST 2007  Colin Watson  <cjwatson@debian.org>
6253
6254         * src/man.c (gripe_no_name): Resolve ambiguous error message when
6255           asking for a nonexistent manual page that might also be a section
6256           name (Debian bug #421481).
6257         * po/*.po: Update.
6258
6259 Sat May 26 10:46:56 BST 2007  Colin Watson  <cjwatson@debian.org>
6260
6261         * src/man.c (gripe_no_name): Complete renaming of section to sect.
6262
6263 Fri May 25 21:23:05 BST 2007  Colin Watson  <cjwatson@debian.org>
6264
6265         Add (untested) zh_HK support. Thanks to Alex Lau for advice.
6266
6267         * src/encodings.c (directory_table): Add zh_HK, defaulting to the
6268           BIG5-HKSCS encoding.
6269           (charset_table): Add BIG5-HKSCS, defaulting to the nippon driver.
6270           (compatible_encodings): Recognise BIG5-HKSCS encoding.
6271           (get_roff_encoding): Add special case for zh_HK.UTF-8 locale.
6272
6273 Wed Apr 11 04:37:35 BST 2007  Colin Watson  <cjwatson@debian.org>
6274
6275         Add MANPAGER support. Thanks to Faidon Liambotis for the suggestion.
6276
6277         * src/man.c (main): Support MANPAGER, overriding PAGER.
6278         * man/man1/man.man1 (OPTIONS, ENVIRONMENT): Document MANPAGER.
6279         * docs/NEWS: Document this.
6280
6281 Thu Apr  5 18:00:00 BST 2007  Colin Watson  <cjwatson@debian.org>
6282
6283         * src/lexgrog.l: Break whatis definitions at .IP, .HP, .RS, and .RE
6284           (thanks to Ori Avtalion for the report).
6285
6286 Mon Mar  5 10:02:01 GMT 2007  Colin Watson  <cjwatson@debian.org>
6287
6288         * src/man_db.conf.in (MANDATORY_MANPATH): Remove /usr/X11R6/man
6289           (Debian bug #413349).
6290
6291 Sun Mar  4 10:40:49 GMT 2007  Colin Watson  <cjwatson@debian.org>
6292
6293         * libdb/db_gdbm.c (gdbm_exists): Rename dbf to file.
6294
6295 Sun Mar  4 10:39:14 GMT 2007  Colin Watson  <cjwatson@debian.org>
6296
6297         * libdb/db_store.c (dbstore): Rename basename to base.
6298
6299 Sun Mar  4 00:51:30 GMT 2007  Colin Watson  <cjwatson@debian.org>
6300
6301         Eliminate variable and function shadowing.
6302
6303         * configure.ac (CFLAGS): Add -Wshadow if the compiler is GCC.
6304
6305         * src/manp.c: Don't declare manpathlist here, as it's never used in
6306           this file.
6307         * src/catman.c, src/man.c, src/mandb.c, src/whatis.c: Declare it
6308           here instead.
6309
6310         * lib/pipeline.c (pipeline_start): Remove duplicate declarations of
6311           set and oset.
6312         * libdb/db_ver.c (dbver): Merge into ...
6313           (dbver_rd): ... this, eliminating a global variable.
6314           (dbver_rd, dbver_wr): Rename dbf to dbfile.
6315         * src/accessdb.c (main): Don't redeclare dbf locally.
6316         * src/check_mandirs.c (gripe_rwopen_failed): Use global database
6317           rather than passing it as an argument. Update all callers.
6318         * src/man.c (gripe_no_name): Rename section to sect.
6319           (add_roff_line_length): Rename save_cat to save_cat_p.
6320           (make_roff_command): Declare cmd only once.
6321           (make_browser): Rename command to pattern.
6322           (display): Rename pause to prompt.
6323         * src/manp.c (get_manpath): Rename to ...
6324           (get_manpath_from_path): ... this. Update all callers.
6325           (manpath): Rename to ...
6326           (get_manpath): ... this. Update all callers.
6327           (add_system_manpath): Rename system to one_system.
6328         * src/manp.h (manpath): Rename to ...
6329           (get_manpath): ... this.
6330         * src/ult_src.c (ult_hardlink): Rename link to base.
6331           (ult_src): Rename basename to base.
6332         * src/whatis.c (apropos): Rename match to got_match.
6333           (search): Return found rather than setting the global variable
6334           status based on it.
6335           (main): Use search's return value, eliminating a global variable.
6336         * src/zsoelim.l (usage): Rename status to exit_status.
6337           (open_file): Rename decompress to decomp.
6338
6339 Sat Mar  3 22:35:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
6340
6341         * src/manp.c: Declare tmplist as static.
6342
6343 Wed Feb 28 22:04:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
6344
6345         * lib/pipeline.c (pipeline_start): Close inputs and outputs from
6346           other active pipelines in all subprocesses.
6347
6348 Wed Feb 28 21:57:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
6349
6350         * lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in
6351           subprocesses; this has undesirable consequences in some
6352           situations.
6353           (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead.
6354
6355 Tue Feb 27 20:58:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
6356
6357         * lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT
6358           such that it gets restored as SIGQUIT, not as SIGINT.
6359
6360 Wed Feb 14 12:20:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
6361
6362         * m4/man-path-progs.m4: New file with MAN_PATH_PROGS macro.
6363         * configure.ac: Use MAN_PATH_PROGS where reasonable (browser, pager,
6364           nroff, eqn, neqn, tbl, col, vgrind, refer, grap, pic, gzip,
6365           compress, bzip2) to allow overriding the default search for
6366           auxiliary program locations.
6367         * docs/NEWS: Document this.
6368
6369 Wed Feb 14 10:41:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
6370
6371         * acinclude.m4: Remove and split into ...
6372         * m4/man-ansi-sprintf.m4, m4/man-bdb.m4, m4/man-fnmatch.m4,
6373           m4/man-gnu-nroff.m4, m4/man-pclose.m4, m4/man-strsignal.m4: ...
6374           these new files.
6375         * configure.ac (AC_CONFIG_SRCDIR): Use src/man.c rather than
6376           acinclude.m4.
6377
6378 Wed Feb 14 10:32:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
6379
6380         * libdb/db_lookup.c (make_content): Restore (size_t) cast in
6381           assertion.
6382
6383 Wed Feb 14 10:30:52 GMT 2007  Colin Watson  <cjwatson@debian.org>
6384
6385         * libdb/db_gdbm.c (man_gdbm_nextkey): Fix MYDBM_DPTR vs. MYDBM_DSIZE
6386           typo.
6387
6388 Wed Feb 14 09:52:15 GMT 2007  Colin Watson  <cjwatson@debian.org>
6389
6390         * libdb/db_btree.c (test_insert): Use debug function.
6391
6392         * libdb/mydbm.h (GDBM, NDBM, BTREE): Add MYDBM_DPTR, MYDBM_SET_DPTR,
6393           and MYDBM_DSIZE accessor macros.
6394           (BTREE): Make datum be a typedef for DBT rather than our own
6395           struct, fixing "dereferencing type-punned pointer will break
6396           strict-aliasing rules" warnings from GCC. Adjust MYDBM_DELETE
6397           definition accordingly.
6398         * libdb/db_btree.c (test_insert, btree_findkey, dbstore, dblookup):
6399           Use MYDBM_DPTR, MYDBM_SET_DPTR, and MYDBM_DSIZE macros instead of
6400           accessing dptr and dsize members directly.
6401         * libdb/db_delete.c (dbdelete): Likewise.
6402         * libdb/db_gdbm.c (parent_sortkey_hash_free, sortkey_compare,
6403           man_gdbm_firstkey, man_gdbm_nextkey, gdbm_exists): Likewise.
6404         * libdb/db_lookup.c (copy_datum, make_multi_key, make_content,
6405           dblookup): Likewise.
6406         * libdb/db_store.c (replace_if_necessary, dbstore): Likewise.
6407         * libdb/db_ver.c (dbver, dbver_wr, dbver_rd): Likewise.
6408         * src/accessdb.c (main): Likewise.
6409         * src/catman.c (add_arg, parse_for_sec): Likewise.
6410         * src/check_mandirs.c (update_db_time, reset_db_time, update_db,
6411           purge_pointers, purge_missing): Likewise.
6412         * src/whatis.c (apropos): Likewise.
6413
6414         * libdb/db_btree.c (btree_fetch, btree_findkey, dbstore, dblookup):
6415           Make sure that datum structures allocated on the stack are zeroed
6416           properly.
6417         * libdb/db_delete.c (dbdelete): Likewise.
6418         * libdb/db_lookup.c (make_multi_key, make_content, dblookup):
6419           Likewise.
6420         * libdb/db_store.c (dbstore): Likewise.
6421         * libdb/db_ver.c (dbver, dbver_wr): Likewise.
6422         * src/check_mandirs.c (update_db_time, reset_db_time, update_db):
6423           Likewise.
6424
6425 Tue Feb 13 11:02:08 GMT 2007  Colin Watson  <cjwatson@debian.org>
6426
6427         * zsoelim/README: Rename to ...
6428         * src/README.zsoelim: ... this.
6429         * zsoelim/zsoelim.l: Rename to ...
6430         * src/zsoelim.l: ... this.
6431         * zsoelim/Makefile.in: Remove.
6432         * src/Makefile.in: Build, install, and clean zsoelim.
6433         * GNUmakefile.in: Remove references to zsoelim directory. Distribute
6434           src/README.zsoelim.
6435         * configure.ac: Stop producing zsoelim/Makefile.
6436         * docs/HACKING: Remove description of zsoelim directory.
6437         * .bzrignore: Update ignores.
6438
6439 Tue Feb 13 10:52:33 GMT 2007  Colin Watson  <cjwatson@debian.org>
6440
6441         * zsoelim/zsoelim.l (yywrap): Remove; use %option noyywrap instead.
6442         * zsoelim/Makefile.in (LDLIBS): zsoelim doesn't need to be linked
6443           with LEXLIB any more.
6444
6445 Mon Feb 12 18:06:42 GMT 2007  Colin Watson  <cjwatson@debian.org>
6446
6447         * src/Makefile.in (LFLAGS), zsoelim/Makefile.in (LFLAGS),
6448           zsoelim/zsoelim.l: Set options using %option rather than using
6449           command-line options.
6450
6451 Mon Feb 12 17:52:11 GMT 2007  Colin Watson  <cjwatson@debian.org>
6452
6453         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
6454           po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
6455           po/ru.po, po/sv.po, po/vi.po: Update.
6456
6457 Mon Feb 12 17:44:48 GMT 2007  Colin Watson  <cjwatson@debian.org>
6458
6459         * lib/debug.c: New file for debugging functions.
6460         * include/manconfig.h.in: debug -> debug_level; prototype debug and
6461           debug_error.
6462         * lib/Makefile.in (ALL): Add debug.o.
6463         * Update all emissions of debugging messages to use the new
6464           functions where possible; otherwise, debug -> debug_level.
6465
6466 Mon Feb 12 13:00:42 GMT 2007  Colin Watson  <cjwatson@debian.org>
6467
6468         * src/mandb.c (main): Change "No databases updated" to "No databases
6469           created" now that we're no longer string-frozen.
6470         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
6471           po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
6472           po/ru.po, po/sv.po, po/vi.po: Update.
6473
6474 Mon Feb 12 12:58:10 GMT 2007  Colin Watson  <cjwatson@debian.org>
6475
6476         * po/POTFILES.in: Add src/descriptions_store.c.
6477         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
6478           po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
6479           po/ru.po, po/sv.po, po/vi.po: Update.
6480
6481 Mon Feb 12 12:42:44 GMT 2007  Colin Watson  <cjwatson@debian.org>
6482
6483         * man/es_ES.88591/man1/man.man1 (OPCIONES),
6484           man/it_IT.88591/man1/man.man1 (OPZIONI),
6485           man/ja_JP.eucJP/man1/man.man1 (オプション): Fix soft-hyphen
6486           declarations to avoid error messages from groff.
6487
6488 Mon Feb 12 10:35:14 GMT 2007  Colin Watson  <cjwatson@debian.org>
6489
6490         * Version: 2.4.4.
6491         * configure.ac, docs/NEWS, man-db.lsm: Update.
6492
6493 Mon Feb 12 09:20:09 GMT 2007  Colin Watson  <cjwatson@debian.org>
6494
6495         * man/man1/man.man1 (OPTIONS): Stop claiming that -d does not
6496           display any manual pages (thanks, Dan Jacobson; Debian bug
6497           #340910).
6498
6499 Mon Feb 12 09:04:17 GMT 2007  Colin Watson  <cjwatson@debian.org>
6500
6501         * src/man.c (main): Treat an empty LANGUAGE environment variable as
6502           equivalent to it being unset.
6503
6504 Sun Feb 11 10:31:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
6505
6506         * docs/NEWS: Add forgotten item about SIGCHLD handling.
6507
6508 Sat Feb  3 10:08:03 GMT 2007  Giuseppe Sacco  <eppesuig@debian.org>
6509
6510         * man/it_IT.88591/man1/man.man1: Update translation.
6511         * man/THANKS: Update translator credit.
6512
6513 Mon Jan 29 10:51:09 GMT 2007  Valéry Perrin  <valery.perrin.debian@free.fr>
6514
6515         * man/fr_FR.88591: Add French man page translations.
6516         * .bzrignore: Add ignores under man/fr_FR.88591.
6517         * GNUmakefile.in (nls_man): Add fr_FR.88591.
6518         * man/THANKS: Add translator credit.
6519
6520 Mon Jan  8 13:31:15 GMT 2007  Colin Watson  <cjwatson@debian.org>
6521
6522         Partial update of tempname module from gnulib. (Once we switch to
6523         automake, it will be possible to import it properly.)
6524
6525         * m4/tempname.m4: New file.
6526         * configure.ac: Use gl_FUNC_GEN_TEMPNAME.
6527
6528 Mon Jan  8 13:06:42 GMT 2007  Colin Watson  <cjwatson@debian.org>
6529
6530         * docs/ToDo: Rename to ...
6531         * docs/TODO: ... this for consistency with other projects.
6532         * GNUmakefile.in (_docs), docs/README, docs/HACKING: Update
6533           references.
6534
6535 Mon Jan  8 12:45:33 GMT 2007  Colin Watson  <cjwatson@debian.org>
6536
6537         * configure.ac (AC_PREREQ): Require autoconf 2.59, for gnulib.
6538
6539 Mon Jan  8 12:37:12 GMT 2007  Colin Watson  <cjwatson@debian.org>
6540
6541         Update setenv module from gnulib.
6542
6543         * m4/setenv.m4: New file.
6544         * .bzrignore: Ignore only gettextize-generated files in m4
6545           directory.
6546         * autogen.sh: Pass '-I m4' option to aclocal.
6547         * configure.ac: Use gt_FUNC_SETENV.
6548         * lib/setenv.c, lib/unsetenv.c: Update.
6549
6550 Mon Jan  8 12:14:59 GMT 2007  Colin Watson  <cjwatson@debian.org>
6551
6552         * acinclude.m4 (MAN_FUNC_STRSIGNAL): Include <string.h> for
6553           strsignal.
6554
6555 Mon Jan  8 12:10:08 GMT 2007  Colin Watson  <cjwatson@debian.org>
6556
6557         * acinclude.m4 (MAN_FUNC_FNMATCH): New macro to check whether
6558           fnmatch supports the FNM_CASEFOLD flag (a GNU extension).
6559         * configure.ac: Use it.
6560
6561 Mon Jan  8 10:39:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
6562
6563         * lib/xsigaction.c: New file: sigaction with EINTR checking.
6564         * include/manconfig.h.in: Add prototype.
6565         * lib/Makefile.in: Build xsigaction.
6566         * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Use
6567           xsigaction instead of bare sigaction.
6568         * lib/pipeline.c (pipeline_start, pipeline_wait,
6569           pipeline_install_sigchld): Use xsigaction instead of
6570           sigaction-plus-EINTR-check.
6571
6572 Mon Jan  8 09:55:48 GMT 2007  Colin Watson  <cjwatson@debian.org>
6573
6574         * configure.ac: Rename lynx variable to browser. Check for
6575           www-browser (as on Debian) before lynx.
6576         * include/manconfig.h.in: Rename lynx variable to browser.
6577
6578 Mon Jan  8 09:15:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
6579
6580         * src/mandb.c (main): If no database changes were necessary, then:
6581           don't bother committing database changes or running straycats;
6582           only exit non-zero if the -c option was given; only emit "No
6583           databases updated" message (should be "No databases created" now)
6584           if the -c option was given but not -q, to help automatic
6585           invocation from man.
6586
6587 Sun Jan  7 23:54:18 GMT 2007  Colin Watson  <cjwatson@debian.org>
6588
6589         * src/man.c (make_roff_command): Don't try to pass -X or -P-g
6590           options to eqn, only troff (Debian bug #327772).
6591
6592 Sun Jan  7 21:16:57 GMT 2007  Colin Watson  <cjwatson@debian.org>
6593
6594         * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document -X option (thanks,
6595           Sam Morris; Debian bug #360112).
6596
6597 Sun Jan  7 20:58:16 GMT 2007  Colin Watson  <cjwatson@debian.org>
6598
6599         Add cross-references to mandb in apropos and whatis documentation
6600         (thanks, Phil Endecott; Debian bug #388755).
6601
6602         * man/man1/apropos.man1 (DESCRIPTION): Mention that the database is
6603           updated by mandb.
6604           (SEE ALSO): Refer to mandb(8).
6605         * man/man1/whatis.man1 (DESCRIPTION, SEE ALSO): Likewise.
6606
6607 Sun Jan  7 20:51:27 GMT 2007  Colin Watson  <cjwatson@debian.org>
6608
6609         * src/globbing.c (parse_layout): Actually check upper-cased version
6610           of layout rather than creating it and then ignoring it.
6611
6612 Sun Jan  7 20:48:58 GMT 2007  Colin Watson  <cjwatson@debian.org>
6613
6614         Fix a slew of memory leaks, including a nasty per-search leak in
6615         apropos (Debian bug #368749).
6616
6617         * include/manconfig.h.in (ATTRIBUTE_UNUSED): Define to an attribute
6618           marking a variable as unused if using GCC 2.4 or newer.
6619
6620         * lib/error.c (error): Free program_name before exiting.
6621         * src/accessdb.c (main): Put program_name in allocated memory.
6622         * src/wrapper.c (main): Likewise.
6623         * src/Makefile.in: Link wrapper against libman.
6624
6625         * libdb/db_gdbm.c (man_gdbm_firstkey): Register cleanup function to
6626           free parent_sortkey_hash on exit.
6627         * src/globbing.c (update_directory_cache): Register cleanup function
6628           to free dirent_hash on exit.
6629           (look_for_file): Register cleanup function to free gbuf on exit.
6630           Move freeing of gbuf before each search to ...
6631           (match_in_directory): ... here.
6632         * src/manp.c (free_config_file): New function.
6633           (read_config_file): Register cleanup function to free
6634           configuration file structures on exit.
6635
6636         * lib/cleanup.c (do_cleanups): Free the stack after processing it.
6637         * lib/hashtable.c (hash_free): Free ht->hashtab as well.
6638         * libdb/db_lookup.c (free_mandata_elements): Add TODO comment about
6639           strange memory handling.
6640         * src/catman.c (parse_for_sec): Free entry.
6641           (main): Free various variables before exiting.
6642         * src/check_mandirs.c (count_glob_matches): Free info.name.
6643           (purge_missing): Free entry rather than just content.dptr (==
6644           entry.addr).
6645         * src/globbing.c (parse_layout): Free upper_layout.
6646           (match_in_directory): Free pattern_start.pattern in early return
6647           case.
6648         * src/man.c (main): Free various variables before exiting.
6649         * src/mandb.c (finish_up, cleanup, mandb, main): Free various
6650           database file names properly.
6651           (main): Remember to assign the result of getcwd_allocated
6652           somewhere. Free various variables before exiting.
6653         * src/manp.c (add_sections): Free section_list; comment was
6654           incorrect.
6655           (add_nls_manpath): Free temp_locale.
6656           (guess_manpath): Constify path. Free result of get_manpath before
6657           returning.
6658           (get_manpath): Constify path. Free tmplist elements.
6659           (create_pathlist): Free result of xstrndup.
6660           (free_pathlist): New function.
6661         * src/manp.h (free_pathlist): Add prototype.
6662         * src/util.c (mkdbname): Don't allocate mkdbname statically; it's
6663           less confusing just to free it each time.
6664         * src/whatis.c (apropos): Initialise and free info.
6665           (search): Free database.
6666           (main): Free regular expression after each search. Free various
6667           variables before exiting.
6668
6669 Wed Dec 27 13:34:23 GMT 2006  Colin Watson  <cjwatson@debian.org>
6670
6671         Teach lexgrog front-end about pages with multiple name/description
6672         pairs (Debian bug #342834).
6673
6674         * src/descriptions.c (parse_descriptions): Allow base_name to be
6675           NULL to suppress ensuring that base_name is in the returned list.
6676           (gripe_bad_store, store_descriptions): Move to ...
6677         * src/descriptions_store.c: ... here.
6678         * src/lexgrog.l (main): Use parse_descriptions to split lg.whatis up
6679           into its component descriptions, and display each on a separate
6680           line.
6681         * src/Makefile.in (mandb, lexgrog): Adjust object lists for the
6682           above.
6683         * docs/NEWS: Document this.
6684
6685 Tue Dec 26 20:52:50 GMT 2006  Colin Watson  <cjwatson@debian.org>
6686
6687         * src/man.c (local_man_loop): Fail with an error message if argv is
6688           a character or block device, as we may well hang trying to read
6689           from it and it almost certainly isn't what the caller intended
6690           anyway (Debian bug #341706).
6691
6692 Tue Dec 26 20:11:04 GMT 2006  Colin Watson  <cjwatson@debian.org>
6693
6694         * docs/HACKING (Revision control): New section.
6695         * docs/NEWS: Refer to docs/HACKING for bzr archive location.
6696
6697 Tue Dec 26 20:04:32 GMT 2006  Colin Watson  <cjwatson@debian.org>
6698
6699         * GNUmakefile.in: Distribute configure.ac and docs/HACKING.
6700
6701 Tue Dec 26 15:06:06 GMT 2006  Colin Watson  <cjwatson@debian.org>
6702
6703         * Version: 2.4.4-pre1 (for translators).
6704
6705 Tue Dec 26 15:02:33 GMT 2006  Colin Watson  <cjwatson@debian.org>
6706
6707         * po/*.po: Update.
6708
6709 Tue Dec 26 14:49:56 GMT 2006  Colin Watson  <cjwatson@debian.org>
6710
6711         * libdb/db_store.c, libdb/db_ver.c: Correct gettext.h inclusions.
6712
6713 Tue Dec 26 14:47:36 GMT 2006  Colin Watson  <cjwatson@debian.org>
6714
6715         * libdb/Makefile.in, src/Makefile.in: Remove .depend directory on
6716           clean, not distclean.
6717
6718 Tue Dec 26 14:34:25 GMT 2006  Colin Watson  <cjwatson@debian.org>
6719
6720         * autogen.sh: Upgrade to aclocal 1.10.
6721
6722 Tue Dec 26 14:27:59 GMT 2006  Colin Watson  <cjwatson@debian.org>
6723
6724         * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.15.
6725         * lib/gettext.h: Copy from gettext 0.15.
6726         * lib/README: Mention the above.
6727         * lib/pipeline.c, libdb/db_delete.c, libdb/db_lookup.c,
6728           libdb/db_store.c, libdb/db_ver.c, src/accessdb.c, src/catman.c,
6729           src/check_mandirs.c, src/compression.c, src/convert_name.c,
6730           src/descriptions.c, src/encodings.c, src/fake_security.c,
6731           src/filenames.c, src/globbing.c, src/lexgrog.l, src/lexgrog.l.new,
6732           src/man.c, src/mandb.c, src/manp.c, src/manpath.c, src/security.c,
6733           src/straycats.c, src/ult_src.c, src/version.c, src/whatis.c,
6734           src/wrapper.c, zsoelim/zsoelim.l: Include "gettext.h" rather than
6735           <libintl.h>. Make sure not to include <locale.h> before
6736           "gettext.h", for portability to Solaris.
6737         * src/wrapper.c: Drop ENABLE_NLS test, now handled by gettext.h.
6738
6739 Tue Nov  7 11:00:14 PST 2006  Colin Watson  <cjwatson@debian.org>
6740
6741         * src/man.c (make_browser): Remove unnecessary check for browser
6742           being NULL.
6743         * docs/NEWS: Add CVE identifier.
6744
6745 Mon Nov  6 09:45:49 PST 2006  Colin Watson  <cjwatson@debian.org>
6746
6747         * configure.ac, include/manconfig.h.in: Only prepend "exec " to
6748           WEB_BROWSER if configure found a web browser.
6749
6750 Mon Nov  6 09:01:13 PST 2006  Colin Watson  <cjwatson@debian.org>
6751
6752         * src/globbing.c: _GNU_SOURCE is defined throughout now, so don't
6753           redefine it.
6754
6755 Mon Nov  6 08:40:54 PST 2006  Colin Watson  <cjwatson@debian.org>
6756
6757         * docs/NEWS: Document switch to bzr.
6758
6759 Mon Nov  6 08:34:57 PST 2006  Colin Watson  <cjwatson@debian.org>
6760
6761         * src/man.c (make_browser): Fix buffer overrun if BROWSER contains
6762           multiple %s expansions. Thanks to Jochen Voß for the report.
6763         * docs/NEWS: Document this.
6764
6765 Sun Nov  5 23:41:45 PST 2006  Colin Watson  <cjwatson@debian.org>
6766
6767         * configure.ac: Call AC_GNU_SOURCE before AC_PROG_CC, as autoconf
6768           objects otherwise (due to macros called by AM_GNU_GETTEXT). Let's
6769           hope using _GNU_SOURCE for everything doesn't break anything ...
6770
6771 Sat Nov  4 17:24:27 GMT 2006  Colin Watson  <cjwatson@debian.org>
6772
6773         * GNUmakefile.in, docs/HACKING: Update references to configure.in to
6774           say configure.ac instead.
6775
6776 Sat Nov  4 17:04:54 GMT 2006  Colin Watson  <cjwatson@debian.org>
6777
6778         * configure.ac: Use AS_HELP_STRING throughout.
6779           (AC_PREREQ): Bump to 2.53.
6780
6781 Sat Nov  4 16:52:20 GMT 2006  Colin Watson  <cjwatson@debian.org>
6782
6783         * configure.in: Rename to configure.ac.
6784
6785 Sat Nov  4 16:41:59 GMT 2006  Colin Watson  <cjwatson@debian.org>
6786
6787         * autogen.sh: Force the use of aclocal-1.8; at least 1.4 won't work
6788           correctly.
6789
6790 Fri Oct 20 12:46:41 BST 2006  Colin Watson  <cjwatson@debian.org>
6791
6792         * tools/config.guess: Update to 2006-07-02.
6793         * tools/config.sub: Update to 2006-09-20.
6794
6795 Sun Sep 17 09:20:33 BST 2006  Colin Watson  <cjwatson@debian.org>
6796
6797         * lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes
6798           (Debian bug #387864).
6799         * docs/NEWS: Document this.
6800
6801 Thu Aug 10 17:23:03 BST 2006  Colin Watson  <cjwatson@debian.org>
6802
6803         * src/encodings.c (get_default_device): Always use utf8 if preconv
6804           is available.
6805           (get_roff_encoding): Skip CJK UTF-8 hack if preconv is available.
6806         * src/man.c (make_roff_command): Use preconv if available to recode
6807           input even if the encoding is detected by means other than looking
6808           at the preprocessor line. Skip iconv preprocessing in that case.
6809
6810 Thu Aug 10 17:00:21 BST 2006  Colin Watson  <cjwatson@debian.org>
6811
6812         * src/encodings.c (get_groff_preconv): New function, moved from
6813           src/man.c because other functions here are going to need it.
6814         * src/encodings.h (get_groff_preconv): Prototype it.
6815         * src/man.c (make_roff_command): Use it.
6816
6817 Wed Aug  9 14:58:50 BST 2006  Colin Watson  <cjwatson@debian.org>
6818
6819         * src/man.c (make_roff_command): Set page_encoding to pp_encoding if
6820           available. Plug a memory leak.
6821
6822 Wed Aug  9 14:45:13 BST 2006  Colin Watson  <cjwatson@debian.org>
6823
6824         * include/manconfig.h.in (GNUC_PREREQ): Check for __GNUC_MINOR__,
6825           not __GNUC_MINOR.
6826
6827 Wed Aug  9 14:10:57 BST 2006  Colin Watson  <cjwatson@debian.org>
6828
6829         * src/man.c (make_roff_command): Recognise preprocessor encoding
6830           declarations like "-*- coding: utf8 -*-". Invoke the "preconv"
6831           preprocessor for these if available.
6832
6833 Mon Jul  3 04:54:13 BST 2006  Colin Watson  <cjwatson@debian.org>
6834
6835         * libdb/db_lookup.c (make_content): Break up dsize calculation
6836           differently for legibility.
6837
6838 Tue Mar 21 11:08:55 GMT 2006  Colin Watson  <cjwatson@debian.org>
6839
6840         Improve portability to Solaris and other systems without setenv.
6841
6842         * lib/setenv.c, lib/setenv.h, lib/unsetenv.c: Copied from gnulib
6843           0.0.20051110-1.
6844         * lib/Makefile.in (ALLSRCS): Add setenv.c and unsetenv.c.
6845         * lib/README: Mention the above.
6846         * configure.in: Check for setenv and unsetenv and use the gnulib
6847           versions if they are unavailable.
6848         * src/man.c, src/whatis.c: Include lib/setenv.h.
6849
6850 Thu Mar  9 08:08:39 GMT 2006  Daniel Nylander  <po@danielnylander.se>
6851
6852         * po/sv.po: Update from Translation Project.
6853         * man/THANKS: Add translator credit.
6854
6855 Wed Feb 22 09:44:02 GMT 2006  Colin Watson  <cjwatson@debian.org>
6856
6857         * lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a
6858           command, to make old configuration files work (Debian bug
6859           #353959).
6860         * docs/NEWS: Document this.
6861
6862 Mon Feb 20 09:33:18 GMT 2006  Henning Makholm  <henning@makholm.net>
6863
6864         * src/lexgrog.l: Add Danish translation of NAME.
6865
6866 Sun Jan 22 19:02:43 GMT 2006  Clytie Siddall  <clytie@riverland.net.au>
6867
6868         * po/vi.po: Update from Translation Project.
6869         * po/LINGUAS: Add vi.
6870         * man/THANKS: Add translator credit.
6871
6872 Sun Jan 22 18:49:16 GMT 2006  Colin Watson  <cjwatson@debian.org>
6873
6874         * man/man1/man.man1, man/es_ES.88591/man1/man.man1,
6875           man/it_IT.88591/man1/man.man1: Fix mistaken use of .l instead of
6876           .I (thanks, Valéry Perrin).
6877
6878 Thu Jan 19 10:15:33 GMT 2006  Karl Eichwalder  <ke@suse.de>
6879
6880         * po/de.po: Update from Translation Project.
6881         * man/THANKS: Add translator credit.
6882
6883 Sat Dec 31 16:30:44 GMT 2005  Colin Watson  <cjwatson@debian.org>
6884
6885         * lib/hashtable.c (hash_free): Update function name in debug
6886           message.
6887
6888 Sun Dec 18 08:57:01 GMT 2005  Yuri Kozlov  <kozlov.y@gmail.com>
6889
6890         * src/lexgrog.l: Change encoding of Russian translation of NAME to
6891           KOI8-R.
6892
6893 Sat Dec 10 17:31:45 CET 2005 Giuseppe Sacco <eppesuig@debian.org>
6894
6895         * Updated italian translation po/it.po
6896
6897 Mon Nov 14 11:02:54 GMT 2005  Yuri Kozlov  <kozlov.y@gmail.com>
6898
6899         * src/lexgrog.l: Add Russian translation of NAME.
6900
6901 Tue Oct  4 10:34:03 BST 2005  Colin Watson  <cjwatson@debian.org>
6902
6903         * tools/chconfig: Start with "#! /" rather than "#!/", for 4.2BSD.
6904
6905 Wed Sep 21 10:56:22 BST 2005  Colin Watson  <cjwatson@debian.org>
6906
6907         * lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time
6908           we're collecting child process statuses; we need to keep a careful
6909           count of processes. Forget any previous errno before calling
6910           reap_children. Should fix Debian bug #326488.
6911
6912 Wed Sep 21 10:47:51 BST 2005  Nicolas Velin  <nsv@fr.st>
6913
6914         * po/fr.po: Update from Rosetta.
6915         * man/THANKS: Add translator credit.
6916
6917 Wed Sep 21 10:36:19 BST 2005  Ondřej Surý  <ondrej@sury.org>
6918
6919         * po/cs.po: Update from Rosetta.
6920         * man/THANKS: Add translator credit.
6921
6922 Wed Sep 21 10:33:13 BST 2005  Colin Watson  <cjwatson@debian.org>
6923
6924         * man/THANKS: Recode to UTF-8.
6925
6926 Wed Sep 21 10:10:12 BST 2005  Colin Watson  <cjwatson@debian.org>
6927
6928         * lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and
6929           SIGQUIT in the parent while running subprocesses (Debian bug
6930           #328982).
6931         * docs/NEWS: Document this.
6932
6933 Wed Sep 21 10:04:42 BST 2005  Colin Watson  <cjwatson@debian.org>
6934
6935         * docs/NEWS: Start 2.4.4.
6936
6937 Wed Sep 21 09:45:48 BST 2005  Colin Watson  <cjwatson@debian.org>
6938
6939         * configure.in: Substitute basename of config_file as
6940           config_file_basename.
6941         * src/man_db.conf.in: Use @config_file_basename@ in header comment.
6942
6943 Thu Sep  1 14:10:07 BST 2005  Colin Watson  <cjwatson@debian.org>
6944
6945         * lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather
6946           than magic numbers.
6947
6948 Thu Sep  1 14:04:29 BST 2005  Colin Watson  <cjwatson@debian.org>
6949
6950         * include/manconfig.h.in (ATTRIBUTE_WARN_UNUSED_RESULT): Define to a
6951           function attribute enabling unused result checking if using GCC
6952           3.4 or newer.
6953           (xmalloc, xrealloc, strappend): Use it.
6954
6955 Wed Aug 31 01:23:55 BST 2005  Colin Watson  <cjwatson@debian.org>
6956
6957         * src/encodings.c (directory_table): Add Simplified Chinese ->
6958           GB2312 and Traditional Chinese -> BIG5.
6959           (charset_table): Use the nippon device for BIG5, GB2312, and GBK.
6960           (device_table): Assume that the nippon device is
6961           encoding-agnostic, since it handles several encodings now.
6962           (compatible_encodings, get_roff_encoding): Extend the ja_JP.UTF-8
6963           hack to cover zh_CN.UTF-8, zh_SG.UTF-8, and zh_TW.UTF-8 too.
6964
6965 Sun Jul 31 16:34:15 BST 2005  Colin Watson  <cjwatson@debian.org>
6966
6967         * docs/COPYING, docs/COPYING.LIB: Update from www.gnu.org to pick up
6968           the FSF's new address.
6969         * Update all other GPL and LGPL notices with the new address (apart
6970           from those in externally-maintained files).
6971
6972 Wed Jul 27 11:29:02 BST 2005  Colin Watson  <cjwatson@debian.org>
6973
6974         * src/man.c (gripe_no_man): Don't emit a different message in the
6975           troff case; it's extra translation load and nobody really cares
6976           about the distinction. Avoid splitting up a sentence into two
6977           translatable pieces (Debian bug #320111).
6978         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
6979           po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
6980           po/ru.po, po/sv.po: Update with msgmerge.
6981
6982 Tue Jul 26 00:05:02 BST 2005  Colin Watson  <cjwatson@debian.org>
6983
6984         * src/man.c (make_roff_command): Use 'col -b -p -x' rather than just
6985           'col -b' when stdout is not a terminal.
6986
6987 Tue Jul 12 02:08:41 BST 2005  Colin Watson  <cjwatson@debian.org>
6988
6989         * include/manconfig.h.in (ATTRIBUTE_MALLOC): Define to a function
6990           attribute enabling malloc return value checking if using GCC 2.96
6991           or newer.
6992           (xmalloc, xrealloc, xstrdup, xstrndup): Use it.
6993
6994 Tue Jul 12 01:59:10 BST 2005  Colin Watson  <cjwatson@debian.org>
6995
6996         * include/manconfig.h.in (GNUC_PREREQ): Helper macro borrowed from
6997           glibc.
6998           (ATTRIBUTE_FORMAT_PRINTF): Define to a function attribute enabling
6999           printf-style format string checking if using GCC 2.0 or newer.
7000           (ATTRIBUTE_SENTINEL): Use GNUC_PREREQ. Use __sentinel__ rather
7001           than sentinel to avoid possible clashes with other macros.
7002         * lib/error.h (error): Add printf format attribute.
7003         * lib/xmalloc.c: Include "error.h" rather than redeclaring error.
7004
7005 Mon Jul 11 18:12:58 BST 2005  Colin Watson  <cjwatson@debian.org>
7006
7007         * lib/pipeline.c (pipeline_wait): Emit a debugging message.
7008
7009 Mon Jul 11 14:41:52 BST 2005  Colin Watson  <cjwatson@debian.org>
7010
7011         * include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function
7012           attribute enabling sentinel checking if using GCC 4.0 or newer.
7013           (strappend): Use it.
7014         * lib/pipeline.h (command_new_args, command_args,
7015           pipeline_new_commands, pipeline_command_args, pipeline_commands):
7016           Likewise.
7017
7018 Mon Jul 11 14:38:30 BST 2005  Colin Watson  <cjwatson@debian.org>
7019
7020         * lib/Makefile.in, libdb/Makefile.in, src/Makefile.in,
7021           zsoelim/Makefile.in: Stop using -I-; it's deprecated in GCC 4.0,
7022           and it doesn't seem worth the effort of switching to the -iquote
7023           replacement.
7024
7025 Mon Jul 11 12:02:57 BST 2005  Colin Watson  <cjwatson@debian.org>
7026
7027         * src/man.c (usage): Fix "gditview" typo (Debian bug #317696).
7028         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po,
7029           po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po,
7030           po/ru.po, po/sv.po: Unfuzzy all translations.
7031
7032 Fri Jul  8 13:12:29 BST 2005  Ralph Corderoy  <ralph@inputplus.co.uk>
7033
7034         * src/man.c (display): Drop "Reformatting %s, please wait..."
7035           message; it's been years since processing power was low enough for
7036           this to be relevant.
7037
7038 Mon Jul  4 00:49:36 BST 2005  Colin Watson  <cjwatson@debian.org>
7039
7040         * GNUmakefile.in (EVERYTHING, ALL): List intl before lib, since
7041           intl/Makefile runs config.status and thus recreates lib/Makefile
7042           after lib has been distcleaned.
7043
7044 Sun Jul  3 22:14:02 BST 2005  Colin Watson  <cjwatson@debian.org>
7045
7046         * Version: 2.4.3.
7047         * configure.in, docs/NEWS, man-db.lsm: Update.
7048         * man-db.lsm: Correct primary download location.
7049
7050 Sun Jul  3 20:55:13 BST 2005  Colin Watson  <cjwatson@debian.org>
7051
7052         * configure.in: Define HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 as
7053           appropriate.
7054         * include/comp_src.h.in: Conditionalise compressor list on
7055           HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 rather than on GUNZIP,
7056           UNCOMPRESS, and BUNZIP2; if a compressor isn't detected, the
7057           latter will end up as empty strings, not undefined. Thanks to Paul
7058           Slootman (Debian bug #196097).
7059         * docs/NEWS: Document this.
7060
7061 Sun Jul  3 18:58:14 BST 2005  Colin Watson  <cjwatson@debian.org>
7062
7063         * GNUmakefile.in (__distclean): Remove po/Makevars.template.
7064
7065 Sun Jul  3 18:11:56 BST 2005  Colin Watson  <cjwatson@debian.org>
7066
7067         * docs/NEWS: List more language support since 2.4.2.
7068
7069 Sun Jul  3 17:45:18 BST 2005  Colin Watson  <cjwatson@debian.org>
7070
7071         * docs/NEWS: Minor clarification.
7072
7073 Sun Jul  3 17:41:20 BST 2005  Robert Luberda  <robert@debian.org>
7074
7075         * po/pl.po: Update.
7076
7077 Sun Jul  3 17:39:14 BST 2005  Yuri Kozlov  <yuray@id.ru>
7078
7079         * po/ru.po: Update.
7080
7081 Tue Jun 21 13:58:37 BST 2005  Jordi Mallach  <jordi@gnu.org>
7082
7083         * po/ca.po: Update from Translation Project.
7084         * man/THANKS: Update e-mail address.
7085
7086 Mon Jun 20 14:46:22 BST 2005  Colin Watson  <cjwatson@debian.org>
7087
7088         * tools/config.guess, tools/config.sub: Update to 2005-04-22.
7089
7090 Fri Jun 10 15:05:53 BST 2005  Colin Watson  <cjwatson@debian.org>
7091
7092         * Version: 2.4.3-pre1 (for translators).
7093
7094 Fri Jun 10 14:53:52 BST 2005  Colin Watson  <cjwatson@debian.org>
7095
7096         * man/THANKS: Add translator credits for it.po, ja.po, pt_BR.po, and
7097           sv.po.
7098
7099 Fri Jun 10 14:36:36 BST 2005  Colin Watson  <cjwatson@debian.org>
7100
7101         * po/LINGUAS: Add ro.
7102         * man/THANKS: Add translator credit.
7103         * po/fi.po, po/ro.po: Update with msgmerge.
7104
7105 Fri Jun 10 14:31:42 BST 2005  Eugen Hoanca  <eugenh@urban-grafx.ro>
7106
7107         * po/ro.po: New from Translation Project.
7108
7109 Fri Jun 10 14:29:17 BST 2005  Jordi Mallach  <jordi@sindominio.net>
7110
7111         * po/ca.po: Update from Translation Project.
7112
7113 Fri Jun 10 14:22:04 BST 2005  Colin Watson  <cjwatson@debian.org>
7114
7115         * po/fi.po: New, from Lauri Nurmi via the Translation Project.
7116         * po/LINGUAS: Add fi.
7117         * man/THANKS: Add translator credit.
7118
7119 Mon Jun  6 02:15:07 BST 2005  Colin Watson  <cjwatson@debian.org>
7120
7121         * docs/NEWS: Document various changes since this file was last
7122           updated.
7123
7124 Sun Jun  5 15:47:10 BST 2005  Jeremy C. Reed  <reed@reedmedia.net>
7125
7126         * configure.in: Add support for db4. Check for db3/db_185.h before
7127           db_185.h.
7128
7129 Sat Jun  4 12:42:26 BST 2005  Colin Watson  <cjwatson@debian.org>
7130
7131         * docs/manpage.example.mdoc: New file.
7132
7133 Sat Jun  4 12:23:15 BST 2005  Colin Watson  <cjwatson@debian.org>
7134
7135         * po/ru.po: Update with msgmerge.
7136
7137 Sat Jun  4 12:21:17 BST 2005  Colin Watson  <cjwatson@debian.org>
7138
7139         * po/ru.po: New, from Yuri Kozlov (Debian bug #268584).
7140         * po/LINGUAS: Add ru.
7141         * man/THANKS: Add translator credit.
7142
7143 Sat Jun  4 12:17:52 BST 2005  Colin Watson  <cjwatson@debian.org>
7144
7145         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
7146           po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/sv.po: Update with
7147           msgmerge.
7148
7149 Sat Jun  4 11:48:58 BST 2005  Colin Watson  <cjwatson@debian.org>
7150
7151         * po/pl.po: Fix typo in Last-Translator e-mail address.
7152
7153 Sat Jun  4 11:46:13 BST 2005  Colin Watson  <cjwatson@debian.org>
7154
7155         * po/pl.po: New, from Robert Luberda (Debian bug #245057).
7156         * po/LINGUAS: Add pl.
7157         * man/THANKS: Add translator credit.
7158
7159 Sat Jun  4 10:59:29 BST 2005  Colin Watson  <cjwatson@debian.org>
7160
7161         * lib/getcwdalloc.c, lib/getcwdalloc.h: Fix header comments.
7162
7163 Sat Jun  4 10:55:47 BST 2005  Colin Watson  <cjwatson@debian.org>
7164
7165         * src/lexgrog.l (MAN_NAME): Terminate NAME section parsing on
7166           encountering a macro definition (Debian bug #275562).
7167
7168 Wed Jan  5 15:08:06 GMT 2005  Colin Watson  <cjwatson@debian.org>
7169
7170         * src/encodings.c (directory_table): Add Turkish -> ISO-8859-9.
7171
7172 Sun Dec 12 21:48:04 CET 2004  Colin Watson  <cjwatson@debian.org>
7173
7174         * lib/pipeline.c (pipeline_sigchld): Don't bother saving and
7175           restoring errno if SIGCHLD is being queued.
7176
7177 Mon Nov  8 09:57:27 GMT 2004  Colin Watson  <cjwatson@debian.org>
7178
7179         * lib/pathsearch.c: New file, containing functions for searching
7180           $PATH.
7181         * lib/pathsearch.h: Prototype pathsearch_executable().
7182         * lib/Makefile.in: Always compile pathsearch.c.
7183         * src/man.c (find_in_path): Remove; replaced by
7184           pathsearch_executable().
7185           (gripe_no_man): Use pathsearch_executable() instead of
7186           find_in_path().
7187
7188 Mon Nov  8 09:52:02 GMT 2004  Colin Watson  <cjwatson@debian.org>
7189
7190         Get rid of plain getcwd(); this allows getting rid of most uses of
7191         PATH_MAX.
7192
7193         * lib/getcwdalloc.c: New file, providing an allocating version of
7194           getcwd().
7195         * lib/getcwdalloc.h: Prototype it.
7196         * lib/Makefile.in: Always compile getcwdalloc.c.
7197
7198         * src/man.c (main, format_display): Use getcwd_allocated() instead
7199           of getcwd().
7200         * src/mandb.c (main): Likewise.
7201         * src/manp.c (add_dir_to_path_list): Likewise.
7202
7203 Mon Nov  8 09:40:07 GMT 2004  Colin Watson  <cjwatson@debian.org>
7204
7205         * lib/hashtable.c (null_hash_free): No-op hash_free_ptr provider,
7206           for convenience.
7207         * lib/hashtable.h (null_hash_free): Prototype it.
7208
7209 Mon Nov  8 09:36:55 GMT 2004  Colin Watson  <cjwatson@debian.org>
7210
7211         * acinclude.m4: Improve quoting to stop aclocal complaining. Improve
7212           indentation. Get rid of unnecessary changequote().
7213
7214 Sun Nov  7 16:07:26 GMT 2004  Colin Watson  <cjwatson@debian.org>
7215
7216         * lib/pipeline.c (pipeline_wait): Close pipeline output before
7217           reaping processes, so that writing processes get SIGPIPE.
7218
7219 Sun Nov  7 16:05:08 GMT 2004  Colin Watson  <cjwatson@debian.org>
7220
7221         * lib/pipeline.c (pipeline_wait): Fix active process debugging
7222           output to include processes without statuses.
7223
7224 Sun Nov  7 16:01:26 GMT 2004  Colin Watson  <cjwatson@debian.org>
7225
7226         * src/compression.c (decompress): Invalidate file_fd after closing
7227           it.
7228
7229 Sun Nov  7 15:31:18 GMT 2004  Colin Watson  <cjwatson@debian.org>
7230
7231         * src/man.c (compare_candidates): Compare extensions' positions in
7232           section_list at the same time as sections, but do the lexical
7233           comparison fallback after comparing ids; this restores the
7234           intended ability to use SECTIONS to move extensions out of order
7235           with respect to their parent sections without breaking the earlier
7236           workaround for Debian bug #204249.
7237
7238 Thu Jul 22 14:46:30 BST 2004  Colin Watson  <cjwatson@debian.org>
7239
7240         * src/check_mandirs.c (testmandirs): Always scan directory if last
7241           is 0 (i.e. creating) to avoid problems on systems with badly
7242           broken clocks set before the epoch.
7243
7244 Mon Jun 28 03:56:56 BST 2004  Colin Watson  <cjwatson@debian.org>
7245
7246         * src/man.c (man): Free candidate list after displaying it.
7247
7248 Mon Jun 28 01:19:45 BST 2004  David Weinehall  <tao@debian.org>
7249
7250         * tools/mkcatdirs: Replace XSIish uses of 'test' with more portable
7251           code.
7252
7253 Thu Apr  1 05:10:50 BST 2004  Colin Watson  <cjwatson@debian.org>
7254
7255         * src/encodings.c (charset_table): Use the latin1 device for
7256           ISO-8859-15, even though that isn't exactly right.
7257
7258 Thu Apr  1 04:56:02 BST 2004  Colin Watson  <cjwatson@debian.org>
7259
7260         * src/encodings.c (get_page_encoding, get_standard_output_encoding):
7261           Remove trailing ,<version> and @<modifier> from locale names.
7262         * src/encodings.h (get_page_encoding, get_standard_output_encoding):
7263           Update prototypes: these no longer return const.
7264         * src/man.c (make_roff_command): Free page_encoding and cat_charset.
7265
7266 Thu Apr  1 00:18:55 BST 2004  Colin Watson  <cjwatson@debian.org>
7267
7268         * src/man.c (do_extern): Pass only options understood by
7269           apropos/whatis, using the pipeline library (Debian bug #207436).
7270           (main): Make optind global. Install SIGINT and SIGCHLD handlers
7271           earlier. Update do_extern call.
7272         * docs/NEWS: Document this.
7273
7274 Wed Mar 31 23:40:15 BST 2004  Colin Watson  <cjwatson@debian.org>
7275
7276         * src/man.c (make_roff_command): If stdout isn't a terminal, get rid
7277           of formatting characters using GROFF_NO_SGR=1 and 'col -b'
7278           (thanks, Adam Heath).
7279         * docs/NEWS: Document this.
7280
7281 Thu Mar 25 19:31:02 GMT 2004  Colin Watson  <cjwatson@debian.org>
7282
7283         * src/whatis.c (apropos): Move warning-silencing code to the bottom
7284           of the function, so that it doesn't interfere with declarations.
7285
7286 Sun Mar 14 03:52:12 UTC 2004  Giuseppe Sacco <eppesuig@debian.org>
7287
7288         * Updated italian translation (corrected three fuzzy strings)
7289
7290 Tue Mar  9 10:25:40 GMT 2004  Colin Watson  <cjwatson@debian.org>
7291
7292         * zsoelim/zsoelim.l: Define debug for the benefit of pipeline.c.
7293           (open_file): Use pipeline library.
7294
7295 Tue Mar  9 01:54:20 GMT 2004  Colin Watson  <cjwatson@debian.org>
7296
7297         * zsoelim/zsoelim.l: Long-overdue style cleanup per docs/HACKING. No
7298           functional changes.
7299
7300 Tue Mar  9 00:37:23 GMT 2004  Colin Watson  <cjwatson@debian.org>
7301
7302         Roll out the new pipeline library in most programs.
7303
7304         * src/compression.c (decompress): Use pipeline library.
7305         * src/fake_security.c (do_system_drop_privs): Likewise.
7306         * src/lexgrog.l (main): Initialize pipeline library.
7307         * src/man.c (checked_popen, gripe_system, checked_system, run_mandb,
7308           format_display_and_save, format_display, display_catman, display):
7309           Use pipeline library.
7310           (add_roff_line_length): Append to a command structure rather than
7311           using strappend.
7312           (main): Initialize pipeline library.
7313           (make_roff_command): Return a constructed pipeline instead of a
7314           malloced string. This plugs various hitherto difficult leaks. Drop
7315           support for changing the line length with groff < 1.18, as the
7316           pipeline library can't handle compound commands in pipelines yet.
7317           (make_browser): Return a constructed pipeline instead of a
7318           statically allocated string. The pipeline construction is very
7319           crude for now.
7320           (make_display_command): Return a constructed pipeline instead of a
7321           malloced string. The htmlout case is strange for now (return NULL
7322           and let format_display sort it out).
7323           (tmp_cat_filename): Handle debug > /dev/null here rather than in
7324           open_cat_stream. Construct the temporary cat filename more
7325           sensibly. Open the temporary file and record its file descriptor.
7326           (open_cat_stream): Return a constructed (and started, if COMP_CAT
7327           is defined) pipeline instead of a stream. This gets rid of a
7328           fixed-size buffer associated with security problems in the past,
7329           although it wasn't a vulnerability in itself.
7330           (close_cat_stream): Clean up pipeline rather than stream.
7331           (format_display): The htmlout case ignores disp_cmd and puts the
7332           display pipeline together itself.
7333           (display): When calling format_display_and_save, assert (disp_cmd)
7334           to make sure we aren't in the htmlout case.
7335         * src/man.h (make_roff_command): Drop unnecessary prototype.
7336         * src/mandb.c (main): Initialize pipeline library.
7337         * src/security.c (do_system_drop_privs): Take a pipeline rather than
7338           a string.
7339         * src/security.h (do_system_drop_privs): Update prototype.
7340         * src/straycats.c (check_for_stray): Use pipeline library.
7341         * src/util.c (do_system): Take a pipeline rather than a string. This
7342           becomes a simple synchronous wrapper around pipeline_start and
7343           pipeline_wait.
7344         * src/whatis.c (use_grep): Use pipeline library.
7345           (main): Initialize pipeline library.
7346
7347         * include/manconfig.h.in (struct pipeline): Declare opaquely.
7348           (do_system): Update prototype.
7349
7350         * configure.in: Drop 'exec' from default pager; no longer needed
7351           since the pipeline library obviates the use of /bin/sh -c.
7352
7353         * docs/NEWS: Document all this.
7354
7355 Mon Mar  8 16:45:27 GMT 2004  Colin Watson  <cjwatson@debian.org>
7356
7357         * src/compression.c (comp_info): If the new want_stem argument is
7358           set, put a copy of the filename without extension in comp->stem
7359           rather than a strange thing in comp->file. This is closer to what
7360           most callers actually want, and removes a lot of memory management
7361           confusion.
7362           (comp_file): Use comp->stem instead of comp->file (previous usage
7363           matched this semantically).
7364         * include/manconfig.h.in (struct compression): Replace 'file' with
7365           'stem'.
7366           (comp_info): Update prototype.
7367
7368         * src/convert_name.c (convert_name): Update comp_info call.
7369         * src/filenames.c (filename_info): Fix misuse of basename. Update
7370           comp_info call.
7371         * src/lexgrog.l (find_name): Update comp_info call.
7372         * src/man.c (local_man_loop): Likewise.
7373         * src/straycats.c (check_for_stray): Likewise.
7374         * src/ult_src.c (ult_src): Likewise.
7375         * zsoelim/zsoelim.l (open_file): Don't set comp->file. Add a
7376           clone-and-hack warning.
7377
7378 Mon Mar  8 16:07:11 GMT 2004  Colin Watson  <cjwatson@debian.org>
7379
7380         * src/compression.c (decompress): Error out if decompression program
7381           not found, as a temporary workaround for poor detection in
7382           configure.
7383
7384 Mon Mar  8 15:59:29 GMT 2004  Colin Watson  <cjwatson@debian.org>
7385
7386         * src/manp.c (get_catpath): Use xstrdup and strappend rather than
7387           doing memory management by hand.
7388
7389 Mon Mar  8 11:28:51 GMT 2004  Colin Watson  <cjwatson@debian.org>
7390
7391         * include/manconfig.h.in: Protect against multiple inclusion.
7392
7393 Mon Mar  8 11:21:05 GMT 2004  Colin Watson  <cjwatson@debian.org>
7394
7395         * lib/pipeline.c (pipeline_dump): Show caller-supplied input and
7396           output file descriptors.
7397
7398         * lib/pipeline.c (command_free, pipeline_free): Return safely if
7399           argument is NULL.
7400         * lib/pipeline.h (command_free, pipeline_free): Document NULL
7401           arguments as a safe no-op, like free().
7402
7403 Mon Mar  8 09:33:08 GMT 2004  Colin Watson  <cjwatson@debian.org>
7404
7405         * docs/manpage.example (DESCRIPTION): ".SS macros" -> ".SS macro".
7406
7407 Mon Mar  8 00:16:53 GMT 2004  Colin Watson  <cjwatson@debian.org>
7408
7409         * src/man.c (compare_candidates): Instead of comparing extensions
7410           followed by ids, compare pure sections first, then ids, then
7411           extensions. This works around the worst effects of Debian bug
7412           #204249, in which we have an incorrect whatis ref xterm(1) in
7413           /usr/share/man and a correct real xterm(1x) in /usr/X11R6/man.
7414
7415 Sun Mar  7 23:55:48 GMT 2004  Colin Watson  <cjwatson@debian.org>
7416
7417         * src/man.c (compare_candidates): Keep searching for more specific
7418           extension matches in section_list even after finding one.
7419
7420 Wed Jan 28 00:15:00 GMT 2004  Colin Watson  <cjwatson@debian.org>
7421
7422         * src/lexgrog.l: Add a terrifying hack to make '.B "..."' work in
7423           NAME sections. lex is really the wrong tool for this job, I feel.
7424
7425 Tue Jan 27 23:37:58 GMT 2004  Colin Watson  <cjwatson@debian.org>
7426
7427         * src/lexgrog.l: Attempt to fix problems with groff requests
7428           immediately following .SH NAME. All patterns in the MAN_FILE and
7429           MAN_NAME states need to avoid matching trailing newlines, since
7430           they're needed by other patterns to detect beginning-of-line.
7431
7432           In order to ignore any excess whitespace following .SH NAME, which
7433           is how this problem got created, introduce a MAN_PRENAME start
7434           condition, which just skips over spacing. Some evil use of yyless
7435           is needed to transition properly to the MAN_NAME start condition
7436           from this without eating trailing newlines.
7437
7438 Tue Jan 27 21:19:41 GMT 2004  Colin Watson  <cjwatson@debian.org>
7439
7440         * src/Makefile.in (LFLAGS): Add -d if LEXGROG_DEBUG=yes.
7441
7442 Wed Dec 24 10:29:16 UTC 2003  Giuseppe Sacco <eppesuig@debian.org>
7443
7444         * src/whatis.c (usage): Fix usage message for --section
7445         * updated italian translation.
7446
7447 Wed Dec 24 10:10:16 GMT 2003  Colin Watson  <cjwatson@debian.org>
7448
7449         * src/whatis.c (usage): Fix usage message for --section, thanks to
7450           Giuseppe Sacco.
7451
7452 Wed Dec 24 09:14:19 UTC 2003  Giuseppe Sacco <eppesuig@debian.org>
7453
7454         * Updated italian translation
7455
7456 Mon Nov 17 22:50:39 GMT 2003  Colin Watson  <cjwatson@debian.org>
7457
7458         * src/globbing.c (match_in_directory): Oops; stop decrementing
7459           bsearched when it reaches the beginning of the cache->names array,
7460           otherwise patterns beginning with a metacharacter cause a
7461           segfault. (The decrement loop is necessary because bsearch()
7462           doesn't specify which element it returns if there are multiple
7463           matches.)
7464
7465 Mon Nov 17 05:04:54 GMT 2003  Colin Watson  <cjwatson@debian.org>
7466
7467         Speed up mandb's purging functions further, from about 20 seconds to
7468         about 2 seconds on my i386 laptop, by being more intelligent about
7469         calling fnmatch().
7470
7471         * src/globbing.c (cache_compare): New function.
7472           (update_directory_cache): Sort the cache.
7473           (pattern_compare): New function.
7474           (match_in_directory): Rather than scanning the whole cache, start
7475           from a point matching the start of the pattern up to the first
7476           metacharacter, and stop once this no longer matches.
7477
7478         * src/globbing.c (TEST): Include <libintl.h> and define _() so that
7479           the test code compiles.
7480           (main): Set program_name before any calls to usage().
7481
7482 Sun Nov 16 21:45:24 GMT 2003  Colin Watson  <cjwatson@debian.org>
7483
7484         * docs/HACKING: Mention the new CTYPE() macro.
7485
7486 Sun Nov 16 21:29:35 GMT 2003  Colin Watson  <cjwatson@debian.org>
7487
7488         * src/convert_name.c (convert_name): Reorganize and clarify. The
7489           alternate argument was confusing and is now gone. Add a new fsstnd
7490           argument which controls whether the "man1" to "cat1" etc.
7491           conversion is performed. That conversion now makes sure that the
7492           directory name starts with "man" before blithely overwriting it.
7493           Treat comp->file as const, since it will be soon.
7494         * src/convert_name.h (convert_name): Update prototype.
7495         * src/man.c (find_cat_file): New logic. First, check for existing
7496           FSSTND cat files; then check for a cat dir based on the ultimate
7497           source, if different from the original (Debian bug #129575); then
7498           check for a cat dir based on the original man page path.
7499           (display): Drop the !local_man_file case which tries to work out
7500           whether to save a cat, as it's not a problem to try regardless of
7501           whether there's already one in a FSSTND location.
7502           (display_filesystem, display_database): Add extra argument to
7503           find_cat_file() so that it knows the original man page path as
7504           distinct from the ultimate source.
7505           (display_filesystem): Remove debugging output, now in
7506           find_cat_file().
7507
7508         * docs/ToDo: Remove entry about cleaning up cat file code, now done.
7509
7510 Sun Nov 16 19:28:38 GMT 2003  Colin Watson  <cjwatson@debian.org>
7511
7512         Add an option to apropos and whatis to allow specification of a
7513         section to search.
7514
7515         * src/whatis.c (args, long_options, main): New -s/--section option.
7516           (usage): Document it.
7517           (whatis): Tell dblookup_all() to look in the section named by
7518           --section, if present.
7519           (apropos): If --section was given, check that it matches either
7520           info.sec or info.ext for each page. Use info.whatis rather than
7521           parsing the whatis out manually.
7522         * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --section.
7523         * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise.
7524
7525         * docs/NEWS: Start 2.4.3. Document the above.
7526
7527 Sun Nov 16 18:47:46 GMT 2003  Colin Watson  <cjwatson@debian.org>
7528
7529         * include/manconfig.h.in (CTYPE): New macro to help get <ctype.h>
7530           calls right.
7531         * libdb/db_lookup.c (name_to_key): Use it.
7532         * src/globbing.c (parse_layout, look_for_file): Likewise.
7533         * src/man.c (manopt_to_env, main): Likewise.
7534         * src/manp.c (add_to_dirlist): Likewise.
7535         * src/ult_src.c (ult_softlink, test_for_include): Likewise.
7536         * src/whatis.c (lower, match, word_fnmatch): Likewise.
7537
7538 Sun Nov 16 17:06:29 GMT 2003  Colin Watson  <cjwatson@debian.org>
7539
7540         Style cleanups; no functional changes.
7541
7542         * src/whatis.c (usage, match, apropos, search, main): Add a space
7543           before the open parenthesis in several function calls.
7544           (apropos): The nesting level has got out of control here. Use a
7545           goto and a 'nextpage' label near the end of the loop instead.
7546
7547 Sun Nov 16 15:49:12 GMT 2003  Erik Andersen  <andersen@codepoet.org>
7548
7549         * src/straycats.c (check_for_stray): Add missing open brace to
7550           non-HAVE_CANONICALIZE_FILE_NAME case.
7551
7552 Tue Oct 28 16:24:41 GMT 2003  Colin Watson  <cjwatson@debian.org>
7553
7554         * man/Makefile.in: Create new th* variables with capitalized
7555           variants of program names for .TH lines.
7556         * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5,
7557           man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1,
7558           man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8,
7559           man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5,
7560           man/it_IT.88591/man8/*.man8, man/ja_JP.eucJP/man1/*.man1,
7561           man/ja_JP.eucJP/man5/*.man5, man/ja_JP.eucJP/man8/*.man8,
7562           man/man1/*.man1, man/man5/*.man5, man/man8/*.man8: Capitalize all
7563           page titles in .TH lines.
7564         * man/de_DE.88591/man5/manpath.man5: Fix typo: 'man' => 'manpath'.
7565
7566 Sun Sep 28 20:11:55 BST 2003  Colin Watson  <cjwatson@debian.org>
7567
7568         * man-db.gnu: Remove. This is licensed under the GFDL, whose
7569           freeness is under serious question. I'm not sure if the FSF
7570           actually have standing to claim copyright over this file in the
7571           first place, but it doesn't need to be in CVS here so I don't feel
7572           like arguing about it.
7573
7574 Sun Sep 21 02:17:43 BST 2003  Colin Watson  <cjwatson@debian.org>
7575
7576         * lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode.
7577
7578 Sun Sep 21 02:15:17 BST 2003  Colin Watson  <cjwatson@debian.org>
7579
7580         * docs/NEWS: Add a forgotten entry for 2.4.2.
7581
7582 Sat Sep 20 18:35:54 BST 2003  Colin Watson  <cjwatson@debian.org>
7583
7584         * src/encodings.c (directory_table): Add Galician -> ISO-8859-1,
7585           Indonesian -> ISO-8859-1, Croatian -> ISO-8859-2, and Slovak ->
7586           ISO-8859-2.
7587
7588 Sat Sep 20 11:57:58 BST 2003  Colin Watson  <cjwatson@debian.org>
7589
7590         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
7591           po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge
7592           (po/Makevars changed).
7593
7594 Sat Sep 20 01:07:24 BST 2003  Colin Watson  <cjwatson@debian.org>
7595
7596         * Version: 2.4.2.
7597         * configure.in, docs/NEWS, man-db.gnu, man-db.lsm: Update.
7598         * man-db.gnu: Suggest libgdbm-dev rather than libdb3-dev.
7599         * man-db.lsm: Suggest GDBM.
7600
7601 Sat Sep 20 00:11:14 BST 2003  Colin Watson  <cjwatson@debian.org>
7602
7603         * src/man.c (make_roff_command): Don't recode output if an explicit
7604           encoding was specified with -E.
7605
7606 Sat Sep 20 00:09:03 BST 2003  Colin Watson  <cjwatson@debian.org>
7607
7608         * po/.cvsignore: Add stamp-po.
7609
7610 Fri Sep 19 22:49:14 BST 2003  Colin Watson  <cjwatson@debian.org>
7611
7612         * acinclude.m4 (MAN_CHECK_BDB): Temporarily add $lib to LIBS for
7613           AC_TRY_LINK, not to DBLIBS; but add it to DBLIBS if the test
7614           succeeds.
7615         * configure.in: Simply set DBLIBS rather than appending to it.
7616
7617 Fri Sep 19 22:20:07 BST 2003  Colin Watson  <cjwatson@debian.org>
7618
7619         * autogen.sh: Run aclocal after autopoint, in accordance with the
7620           autopoint info documentation.
7621
7622 Fri Sep 19 22:17:18 BST 2003  Colin Watson  <cjwatson@debian.org>
7623
7624         * configure.in (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.12.1.
7625         * po/Makevars (MSGID_BUGS_ADDRESS): Set to me.
7626         * po/.cvsignore: Add Makevars.template.
7627
7628 Fri Sep 19 00:48:07 BST 2003  Colin Watson  <cjwatson@debian.org>
7629
7630         * src/lexgrog.l (MAN_FILE): Accept blank lines immediately following
7631           ".SH NAME".
7632
7633 Fri Sep 19 00:06:02 BST 2003  Colin Watson  <cjwatson@debian.org>
7634
7635         * man/man8/mandb.man8 (OPTIONS): Improve --filename wording a bit.
7636
7637 Wed Sep 17 07:17:22 BST 2003  Colin Watson  <cjwatson@debian.org>
7638
7639         Fix case where a page explicitly encoded in UTF-8 has to be recoded
7640         down to a non-ISO-8859-1 legacy encoding for processing by groff and
7641         then back up to UTF-8 for display.
7642
7643         * src/encodings.c (get_page_encoding): New function, renamed from
7644           get_source_encoding.
7645           (get_source_encoding): Return only the canonical source encoding,
7646           not any explicit encoding in the directory name. This allows us to
7647           take account of differing explicit encoding and canonical encoding
7648           of pages for the purposes of working out which device to use.
7649           (get_roff_encoding): New source_encoding argument, now returned
7650           instead of NULL.
7651           (get_default_device): Pass source_encoding to get_roff_encoding().
7652           (compatible_encodings): The roff encoding can no longer be NULL.
7653         * src/encodings.h (get_page_encoding): Add prototype.
7654           (get_roff_encoding): Update prototype.
7655         * src/man.c (make_roff_command): Call get_page_encoding(), and
7656           recode from that to roff_encoding, not from source_encoding to
7657           roff_encoding. Pass source_encoding to get_roff_encoding().
7658           roff_encoding can no longer be NULL.
7659
7660 Tue Sep 16 22:53:36 BST 2003  Colin Watson  <cjwatson@debian.org>
7661
7662         Purge database entries corresponding to removed stray cat pages.
7663
7664         * src/check_mandirs.c (purge_normal, purge_whatis): Add TODO notes
7665           for systems where the cat extension differs from the man
7666           extension.
7667           (purge_whatis): Rename manpath to path. New cat argument, passed
7668           through to look_for_file().
7669           (purge_missing): New catpath argument, passed to look_for_file()
7670           and purge_whatis() in the STRAY_CAT and WHATIS_CAT cases, which
7671           are now handled.
7672         * src/check_mandirs.h (purge_missing): Update prototype.
7673         * src/mandb.c (main): Pass catpath to purge_missing().
7674         * docs/NEWS: Document this.
7675
7676 Tue Sep 16 22:37:33 BST 2003  Colin Watson  <cjwatson@debian.org>
7677
7678         Work around the fact that GDBM's firstkey/nextkey interface doesn't
7679         return ordered results.
7680
7681         * libdb/db_gdbm.c (man_gdbm_open_wrapper): New function. Wraps the
7682           return value from gdbm_open() in a structure that remembers the
7683           file name.
7684           (parent_sortkey_hash_free, sortkey_hash_free): New functions to
7685           free hashtables used here.
7686           (sortkey_compare): New comparison function for qsort().
7687           (man_gdbm_firstkey): New function. Retrieve all keys using
7688           gdbm_firstkey() and gdbm_nextkey() in advance, sort them into an
7689           ordered hashtable, remember that hashtable for later, and return
7690           the first key.
7691           (man_gdbm_nextkey): New function. Find the previously remembered
7692           ordered hashtable and return the next element from it.
7693           (man_gdbm_close): New function. Clean up remembered data.
7694         * libdb/db_lookup.c (copy_datum): Define even if using GDBM.
7695           (gripe_lock): Explain why this isn't used for GDBM.
7696         * libdb/mydbm.h (man_gdbm_wrapper): New type.
7697           (man_gdbm_open_wrapper, man_gdbm_firstkey, man_gdbm_nextkey,
7698           man_gdbm_close): Add prototypes.
7699           (MYDBM_FILE): Change to man_gdbm_wrapper for GDBM. Adjust all
7700           other MYDBM_* macros to cope with this and use man_gdbm_*
7701           functions where necessary.
7702           (copy_datum): Declare for all database types. Remove __inline__.
7703         * docs/NEWS: Document this.
7704
7705 Tue Sep 16 01:44:59 BST 2003  Colin Watson  <cjwatson@debian.org>
7706
7707         * src/accessdb.c (main): Free each key after listing it rather than
7708           just leaking it.
7709
7710 Mon Sep 15 23:45:33 BST 2003  Byrial Ole Jensen  <byrial@image.dk>
7711
7712         * po/da.po: Update from Translation Project.
7713
7714 Mon Sep 15 23:29:33 BST 2003  Colin Watson  <cjwatson@debian.org>
7715
7716         * configure.in: Add --enable-mb-groff option, which defines
7717           MULTIBYTE_GROFF for src/encodings.c.
7718         * docs/NEWS: Document this.
7719
7720 Mon Sep 15 01:23:00 BST 2003  Colin Watson  <cjwatson@debian.org>
7721
7722         * po/it.po: msgfmt doesn't like "charset=iso8859-1". Use
7723           "charset=iso-8859-1" instead.
7724
7725 Sun Sep 14 17:48:38 BST 2003  Colin Watson  <cjwatson@debian.org>
7726
7727         * src/encodings.c (get_source_encoding): If the language directory
7728           is unknown (e.g. 'man -l'), guess based on the locale before
7729           falling back to a default.
7730           (get_standard_output_encoding): Likewise.
7731
7732 Sun Sep 14 16:58:34 BST 2003  Colin Watson  <cjwatson@debian.org>
7733
7734         * src/encodings.c (get_source_encoding): Assume ISO-8859-1 source
7735           encoding if it's unknown (e.g. 'man -l').
7736           (get_default_device): source_encoding can no longer be NULL.
7737         * src/man.c (make_roff_command): Likewise.
7738
7739 Sun Sep 14 16:45:43 BST 2003  Colin Watson  <cjwatson@debian.org>
7740
7741         * man/man1/man.man1 (EXAMPLES, ENVIRONMENT, HISTORY): Change a few
7742           stray hyphens to dashes.
7743
7744 Sun Sep 14 16:37:56 BST 2003  Colin Watson  <cjwatson@debian.org>
7745
7746         * src/encodings.c (get_source_encoding,
7747           get_standard_output_encoding, get_default_device,
7748           get_roff_encoding, get_output_encoding, get_less_charset):
7749           Simplify using new table element struct types.
7750
7751 Sun Sep 14 16:24:00 BST 2003  Colin Watson  <cjwatson@debian.org>
7752
7753         Make locales like ru_RU.UTF-8 that need the ascii8 device but UTF-8
7754         output work. This involves a good deal of restructuring.
7755
7756         * src/encodings.c (directory_table): Remove a completed TODO
7757           comment.
7758           (directory_table, charset_table, device_table): Name array element
7759           struct types in order to abbreviate code later.
7760           (device_table): Split less_charset members out into a new table,
7761           less_charset_table. They really depend on the locale charset, but
7762           aren't quite appropriate for charset_table. Use "iso8859" rather
7763           than "latin1", and add KOI8-R.
7764           (device_table): Add output_encoding member, which is almost the
7765           inverse of charset_table but slightly different for ascii8.
7766           (compatible_encodings): New function to figure out if a source
7767           encoding and a roff encoding are compatible.
7768           (get_default_device): Take new source_encoding argument so that we
7769           can make ru_RU.UTF-8 use the ascii8 device and an iconv pipe
7770           rather than utf8 directly. Drop through to the fallback default
7771           device if none of the predefined entries in charset_table are
7772           compatible when considering the source encoding.
7773           (get_roff_encoding): Split LESSCHARSET handling out into a new
7774           function ...
7775           (get_less_charset): ... here. The caller is expected to set
7776           environment variables rather than having it done by the library.
7777           (get_output_encoding): New function, returning the output encoding
7778           produced by a device.
7779         * src/encodings.h (get_default_device): Update prototype.
7780           (get_output_encoding, get_less_charset): Add prototypes.
7781         * src/man.c (make_roff_command): Update calls to encoding library
7782           for these changes.
7783
7784 Sun Sep  7 23:10:01 BST 2003  Colin Watson  <cjwatson@debian.org>
7785
7786         Fix decision about whether a given encoding is safe to save as a cat
7787         page.
7788
7789         * src/encodings.c (directory_table): Add standard_output_encoding
7790           member, used to set the default encoding for cat pages.
7791           (fallback_locale_charset): Remove.
7792           (get_standard_output_encoding): New function.
7793           (get_locale_charset): New function, split out in modified form
7794           from get_default_device().
7795           (get_default_device): Take a character set as input rather than a
7796           locale.
7797         * src/encodings.h (get_standard_output_encoding,
7798           get_locale_charset): Add prototypes.
7799           (get_default_device): Update prototype.
7800         * src/man.c (make_roff_command): Instead of comparing devices, test
7801           that the default character set for this manual hierarchy is being
7802           used, and don't save cat pages if it isn't.
7803
7804 Sun Sep  7 11:33:09 +0200 2003 Giuseppe Sacco <eppesuig@debian.org>
7805
7806         * po/it.po: changed the header of the po file correcting the
7807           charset and the transfer encoding.
7808
7809 Sat Sep  6 11:53:06 BST 2003  Colin Watson  <cjwatson@debian.org>
7810
7811         * src/encodings.c (get_source_encoding): Implement encodings in
7812           manual hierarchy directory names. Include a mini-rant about the
7813           bizarre specification for these in FHS 2.1, which I've declined to
7814           implement for now.
7815
7816 Sat Sep  6 11:28:46 BST 2003  Colin Watson  <cjwatson@debian.org>
7817
7818         * src/check_mandirs.c (purge_missing): Call MYDBM_REORG() after
7819           deleting entries. Currently only useful for gdbm.
7820
7821 Sat Sep  6 00:23:03 BST 2003  Colin Watson  <cjwatson@debian.org>
7822
7823         * acinclude.m4 (MAN_CHECK_BDB): Append to DBLIBS rather than LIBS.
7824         * configure.in: Likewise for gdbm and ndbm tests. Make DBLIBS an
7825           output variable.
7826         * src/Makefile.in: Link only the necessary programs with the
7827           database library.
7828
7829 Sat Sep  6 00:15:37 BST 2003  Colin Watson  <cjwatson@debian.org>
7830
7831         * libdb/db_lookup.c (make_content): Cast cont.dsize to size_t when
7832           comparing it with the return value of strlen(). Avoids warning
7833           when building with gdbm.
7834
7835 Thu Sep  4 20:22:21 BST 2003  Christian Rose  <menthos@menthos.com>
7836
7837         * po/sv.po: Update from Translation Project.
7838
7839 Fri Aug 29 17:46:40 BST 2003  Michael Piefel <piefel@informatik.hu-berlin.de>
7840
7841         * po/de.po: Update from Translation Project.
7842
7843 Fri Aug 29 17:42:15 BST 2003  Giuseppe Sacco  <eppesuig@debian.org>
7844
7845         * po/it.po: Updated after the revision in tp@linux.it.
7846
7847 Thu Aug 28 11:19:21 BST 2003  Christian Rose  <menthos@menthos.com>
7848
7849         * po/sv.po: Update from Translation Project.
7850
7851 Thu Aug 28 00:45:50 BST 2003  Jordi Mallach  <jordi@sindominio.net>
7852
7853         * po/ca.po: Update from Translation Project.
7854
7855 Thu Aug 28 00:43:33 BST 2003  Christian Rose  <menthos@menthos.com>
7856
7857         * po/sv.po: Update from Translation Project.
7858
7859 Thu Aug 28 00:40:09 BST 2003  Colin Watson  <cjwatson@debian.org>
7860
7861         * lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to
7862           "can't execute %s" in line with src/man.c, to make translators'
7863           lives easier.
7864           (pipeline_wait): Separate "%s: %s%s" into two translatable
7865           strings: the "(core dumped)" portion should definitely be
7866           translated.
7867         * src/accessdb.c (usage): Clarify "man_database" to "(The) man
7868           database".
7869
7870 Thu Aug 28 00:18:46 BST 2003  Colin Watson  <cjwatson@debian.org>
7871
7872         * src/globbing.c (usage): Expand "sec" to "section".
7873
7874 Wed Aug 27 00:50:07 BST 2003  Giuseppe Sacco  <eppesuig@debian.org>
7875
7876         * po/it.po: Remove all fuzzy translations and insert missed ones.
7877           Now this translation will be reviewed by the Italian translation
7878           project for proofreading.
7879
7880 Tue Aug 26 20:16:23 BST 2003  Colin Watson  <cjwatson@debian.org>
7881
7882         * Version: 2.4.2-pre1 (for translators).
7883         * docs/NEWS: Mention pipeline library.
7884
7885 Sat Aug 16 14:07:46 BST 2003  Colin Watson  <cjwatson@debian.org>
7886
7887         * src/lexgrog.l (find_name): Report a sensible error if file is a
7888           directory.
7889
7890 Fri Aug 15 18:11:06 BST 2003  Colin Watson  <cjwatson@debian.org>
7891
7892         * src/check_mandirs.c (test_manfile): file is const.
7893         * src/check_mandirs.h (test_manfile): Update prototype.
7894         * src/mandb.c (update_one_file): filename is const.
7895
7896 Fri Aug 15 18:05:37 BST 2003  Colin Watson  <cjwatson@debian.org>
7897
7898         * include/manconfig.h.in: Remove incorrect prototype of basename()
7899           which was hiding several bugs.
7900         * configure.in: Check for <libgen.h>.
7901         * lib/pipeline.c, src/accessdb.c, src/catman.c, src/check_mandirs.c,
7902           src/filenames.c, src/lexgrog.l, src/man.c, src/mandb.c,
7903           src/manpath.c, src/straycats.c, src/whatis.c, zsoelim/zsoelim.l:
7904           Include <libgen.h> instead of relying on basename() prototype in
7905           manconfig.h.
7906         * src/check_mandirs.c (test_manfile), src/man.c (local_man_loop),
7907           src/straycats.c (check_for_stray): Copy strings before calling
7908           basename() on them.
7909
7910 Fri Aug 15 00:16:13 BST 2003  Colin Watson  <cjwatson@debian.org>
7911
7912         * src/ult_src.c (ult_hardlink): Return a newly allocated string
7913           rather than messily copying over an existing one (and possibly
7914           corrupting the malloc arena). link and dir are now allocated
7915           rather than being declared as arrays.
7916           (ult_src): Update call to ult_hardlink(). Return 'const char *' to
7917           make sure callers aren't messing about with our memory.
7918         * src/ult_src.h (ult_src): Update prototype.
7919         * src/check_mandirs.c (test_mandirs): ult is const.
7920         * src/lexgrog.l (main): file is const.
7921         * src/man.c (try_section): ult is const.
7922           (display_filesystem, display_database): man_file is const.
7923
7924 Sat Aug  9 21:30:16 BST 2003  Colin Watson  <cjwatson@debian.org>
7925
7926         * po/POTFILES.in: Add lib/pipeline.c, src/descriptions.c,
7927           src/filenames.c, and src/globbing.c.
7928         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
7929           po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
7930
7931 Sat Aug  9 18:28:01 BST 2003  Colin Watson  <cjwatson@debian.org>
7932
7933         Replace the old "wait() for one child at a time" approach with a
7934         SIGCHLD-handling edifice that collects children's exit statuses as
7935         they die.
7936
7937         * lib/pipeline.c (pipeline_new): Initialize statuses.
7938           (pipeline_join): Set statuses to NULL in joined pipeline.
7939           (pipeline_join, pipeline_get_infile, pipeline_get_outfile,
7940           pipeline_start, pipeline_wait): Assert that statuses field is NULL
7941           or non-NULL as appropriate.
7942           (pipeline_free): Free statuses if necessary.
7943
7944           (pipeline_start): Add p to a new active_pipelines array, to be
7945           used while reaping children. Initialize statuses elements to -1.
7946           Block SIGCHLD while forking children.
7947           (reap_children): New function. Delivers collected exit statuses
7948           into statuses fields of entries in active_pipelines.
7949           (pipeline_wait): Rather than wait()ing manually here, check
7950           whether any statuses have been picked up by the SIGCHLD handler,
7951           and if not call reap_children(). Remove now-obsolete TODO comment.
7952           (pipeline_sigchld): New function, the SIGCHLD handler.
7953           (pipeline_install_sigchld): New function, to be called once per
7954           program.
7955
7956           (pipeline_start, pipeline_wait): Add minimal debugging
7957           information.
7958
7959         * lib/pipeline.h: Prototype new functions.
7960           (struct pipeline): New statuses member.
7961
7962 Sat Aug  9 17:00:12 BST 2003  Colin Watson  <cjwatson@debian.org>
7963
7964         * lib/pipeline.c (command_dup): Copy cmd->nice.
7965           (pipeline_command): Correct condition for growing commands array.
7966
7967 Mon Aug  4 20:44:16 BST 2003  Colin Watson  <cjwatson@debian.org>
7968
7969         * man/man1/man.man1 (HISTORY): Rearrange text to avoid having
7970           "Wilf." at the end of a line, since groff thinks that's the end of
7971           a sentence and adjusts spacing accordingly. (Alternatively, I
7972           could have used \&.)
7973
7974 Mon Aug  4 19:35:26 BST 2003  Colin Watson  <cjwatson@debian.org>
7975
7976         * lib/pipeline.c (command_dup): Terminate argv with a NULL.
7977           (command_dup, command_arg): Assert that argc < argv_max after
7978           changing either.
7979
7980 Mon Aug  4 19:30:22 BST 2003  Colin Watson  <cjwatson@debian.org>
7981
7982         * lib/pipeline.c (pipeline_dump): New function to dump a printable
7983           representation of a pipeline to a stream.
7984           (pipeline_tostring): Likewise, but to a newly allocated string.
7985         * lib/pipeline.h: Prototype these.
7986
7987 Mon Aug  4 12:03:38 BST 2003  Colin Watson  <cjwatson@debian.org>
7988
7989         * lib/pipeline.c (argstr_get_word): Plug some memory leaks.
7990
7991 Mon Aug  4 01:05:12 BST 2003  Colin Watson  <cjwatson@debian.org>
7992
7993         * lib/pipeline.c (pipeline_wait): The return value was a bit
7994           groff-specific. Now just return the status of the last command in
7995           the pipeline, as reported by wait().
7996
7997 Mon Aug  4 00:31:44 BST 2003  Colin Watson  <cjwatson@debian.org>
7998
7999         Add support for getting stdio streams for input and output. Needs
8000         library support because pipeline_wait() needs to know to close the
8001         stream rather than the underlying file descriptor.
8002
8003         * lib/pipeline.h (struct pipeline): New infile and outfile members.
8004           (pipeline_get_infile, pipeline_get_outfile): Add prototypes.
8005         * lib/pipeline.c (pipeline_new): Initialize infile and outfile.
8006           (pipeline_join): Likewise.
8007           (pipeline_get_infile, pipeline_get_outfile): New functions.
8008           (pipeline_wait): Check for infile and outfile and fclose() them in
8009           preference to close()ing infd and outfd. Check for errors on
8010           close().
8011
8012 Sun Aug  3 23:59:18 BST 2003  Colin Watson  <cjwatson@debian.org>
8013
8014         * lib/pipeline.c (pipeline_start): Use dup2() instead of close()
8015           then dup().
8016
8017 Sun Aug  3 23:52:14 BST 2003  Colin Watson  <cjwatson@debian.org>
8018
8019         infd and outfd should now only be set by pipeline_start(). Positive
8020         values in want_in and want_out now indicate caller-supplied file
8021         descriptors, while negative values indicate a request for
8022         pipeline_start() to create a pipe.
8023
8024         * lib/pipeline.h (struct pipeline): Document this.
8025         * lib/pipeline.c (pipeline_start): Implement it. Caller-supplied
8026           input and output file descriptors previously didn't work properly.
8027           (pipeline_wait): Update TODO comment.
8028
8029 Sun Aug  3 21:07:46 BST 2003  Colin Watson  <cjwatson@debian.org>
8030
8031         * lib/pipeline.h (struct command): New 'nice' member.
8032         * lib/pipeline.c (command_new): Initialize nice.
8033           (pipeline_start): Change child process priority if nice is set.
8034
8035 Sun Aug  3 20:50:35 BST 2003  Colin Watson  <cjwatson@debian.org>
8036
8037         * lib/pipeline.c (pipeline_start): Pop all cleanups in child.
8038
8039 Sun Aug  3 20:47:24 BST 2003  Colin Watson  <cjwatson@debian.org>
8040
8041         * lib/pipeline.c (argstr_get_word, command_new_argstr,
8042           command_argstr, pipeline_command_argstr): New functions to handle
8043           constructing commands from shell-quoted strings, such as those
8044           found in man-db configuration files. They deliberately handle only
8045           a safe subset of shell syntax.
8046         * lib/pipeline.h: Prototype command_new_argstr(), command_argstr(),
8047           and pipeline_command_argstr().
8048
8049 Sun Aug  3 19:09:59 BST 2003  Colin Watson  <cjwatson@debian.org>
8050
8051         * lib/pipeline.c (command_dup): New function to duplicate a command.
8052           (pipeline_join): New function to join two pipelines together.
8053         * lib/pipeline.h: Prototype these.
8054
8055 Sun Aug  3 18:00:59 BST 2003  Colin Watson  <cjwatson@debian.org>
8056
8057         * lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd,
8058           and readfd names turn out to be confusing in calling code. Rename
8059           to want_in, want_out, infd, and outfd respectively.
8060         * lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use
8061           new names.
8062
8063 Sun Aug  3 16:35:24 BST 2003  Colin Watson  <cjwatson@debian.org>
8064
8065         Add support in pipeline library for writing input to or reading
8066         output from the whole pipeline.
8067
8068         * lib/pipeline.c (pipeline_new): Initialize writeto, readfrom,
8069           writefd, and readfd.
8070           (pipeline_start): Create extra pipes as necessary.
8071           (pipeline_wait): Expand TODO comment. Close file descriptors from
8072           extra pipes if necessary.
8073         * lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd,
8074           and readfd.
8075
8076 Sun Aug  3 11:15:17 BST 2003  Colin Watson  <cjwatson@debian.org>
8077
8078         * lib/pipeline.c: New pipeline library, adapted from that in groff.
8079           The interface isn't complete yet; in particular, it can't be a
8080           replacement for popen() at the moment.
8081         * lib/pipeline.h: New file with pipeline library interface.
8082         * lib/Makefile.in (ALLSRCS, ALL): Build pipeline.
8083
8084 Sun Aug  3 11:09:07 BST 2003  Colin Watson  <cjwatson@debian.org>
8085
8086         * acinclude.m4 (MAN_FUNC_STRSIGNAL): New macro to check for the GNU
8087           extension strsignal().
8088         * configure.in: Use it.
8089         * lib/xstrsignal.c: New file, wrapping strsignal() or sys_siglist
8090           depending on what's available (and with a saner return type than
8091           strsignal()).
8092         * lib/Makefile.in (ALLSRCS, XOBJS): Build xstrsignal.
8093         * include/manconfig.h.in (xstrsignal): Add prototype.
8094
8095 Sun Aug  3 10:57:55 BST 2003  Colin Watson  <cjwatson@debian.org>
8096
8097         * include/comp_src.h.in: Protect against multiple inclusions.
8098
8099 Sat Aug  2 19:32:04 BST 2003  Colin Watson  <cjwatson@debian.org>
8100
8101         * docs/NEWS: Document the recent security fixes.
8102
8103 Sat Aug  2 12:31:24 BST 2003  Colin Watson  <cjwatson@debian.org>
8104
8105         * lib/error.c (error_print_progname): Use a proper prototype.
8106
8107 Sat Aug  2 01:23:08 BST 2003  Colin Watson  <cjwatson@debian.org>
8108
8109         * tools/checkman: Tolerate spaces in NAME sections, since they occur
8110           in practice and confused checkman before this. Prompted by a
8111           question from James B. Hiller.
8112
8113 Fri Aug  1 22:06:33 BST 2003  Colin Watson  <cjwatson@debian.org>
8114
8115         Fix vulnerability due to over-permissiveness of DEFINE directive.
8116
8117         * src/manp.c (DEFINE_USER): New list flag.
8118           (get_def): Note that this must not return DEFINEs set in
8119           ~/.manpath.
8120           (get_def_user): New function, which may return DEFINEs set in
8121           ~/.manpath.
8122           (add_def): Use DEFINE or DEFINE_USER depending on context.
8123           (add_to_dirlist): Update call to add_def().
8124         * src/manp.h (get_def_user): Add prototype.
8125
8126         * src/man.c (main): pager and cat are safe for the user to define.
8127           (make_display_command): cat, tr, and decompressor are safe.
8128         * src/straycats.c (check_for_stray): col and decompressor are safe.
8129         * src/whatis.c (use_grep): whatis_grep_flags,
8130           apropos_regex_grep_flags, apropos_grep_flags, and grep are safe.
8131
8132 Fri Aug  1 01:32:37 BST 2003  Colin Watson  <cjwatson@debian.org>
8133
8134         * src/man.c (main): Minor whitespace cleanups.
8135
8136 Fri Aug  1 01:05:42 BST 2003  Colin Watson  <cjwatson@debian.org>
8137
8138         * src/manp.c (mkcatdirs): Allocate manname and catname dynamically.
8139
8140 Wed Jul 30 22:28:13 BST 2003  Colin Watson  <cjwatson@debian.org>
8141
8142         Fix vulnerability 4 posted by Vade 79 <v9@fakehalo.deadpig.org> on
8143         BugTraq, Message-ID:
8144         <20030729210308.15518.qmail@www.securityfocus.com>. This fix is just
8145         a stopgap measure for now; proper list handling will be added later.
8146
8147         * src/manp.c (gripe_overlong_list): New function.
8148           (add_dir_to_list): Die gracefully if too many list entries are
8149           added.
8150           (add_dir_to_path_list): Likewise. Take an extra argument for the
8151           head of the list so that we can spot this efficiently.
8152           (create_pathlist): Update calls to add_dir_to_path_list().
8153
8154 Wed Jul 30 22:15:16 BST 2003  Colin Watson  <cjwatson@debian.org>
8155
8156         * src/manp.c (gripe_reading_mp_config): This is a fatal error, so
8157           shouldn't be conditional on quiet.
8158
8159 Wed Jul 30 20:48:57 BST 2003  Colin Watson  <cjwatson@debian.org>
8160
8161         Fix vulnerability 1 posted by Vade 79 <v9@fakehalo.deadpig.org> on
8162         BugTraq, Message-ID:
8163         <20030729210308.15518.qmail@www.securityfocus.com>.
8164
8165         * src/manp.c (add_to_dirlist): Limit all sscanf() calls to the
8166           appropriate buffer size. Leave a TODO to say that a replacement
8167           that allocates its own memory would be welcome.
8168
8169 Wed Jul 30 20:38:40 BST 2003  Colin Watson  <cjwatson@debian.org>
8170
8171         Fix vulnerabilities 2 and 3 posted by Vade 79
8172         <v9@fakehalo.deadpig.org> on BugTraq, Message-ID:
8173         <20030729210308.15518.qmail@www.securityfocus.com>.
8174
8175         * src/ult_src.c (ult_softlink): Return a newly allocated string
8176           rather than copying into fullpath.
8177           (test_for_include): Return a newly allocated string rather than
8178           copying into rel (which was a pointer into part of basename in
8179           ult_src(), and wasn't reallocated in the event that the .so text
8180           was too large).
8181           (ult_src): Allocate basename dynamically rather than using a
8182           static buffer. relative is no longer needed. Update for changes in
8183           ult_softlink() and test_for_include().
8184
8185 Wed Jul 30 12:33:25 BST 2003  Colin Watson  <cjwatson@debian.org>
8186
8187         * src/man.c (close_cat_stream): The unlink(tmp_cat_file) cleanup is
8188           only pushed if (!debug), so apply the same condition to popping
8189           it.
8190
8191 Wed Jul 30 12:21:20 BST 2003  Colin Watson  <cjwatson@debian.org>
8192
8193         * src/descriptions.c (parse_descriptions): Revert this part of
8194           xstrdup(NULL) change from 28 April 2003; head->whatis is undefined
8195           if the else branch was taken.
8196
8197 Wed Jul 30 10:40:06 BST 2003  Colin Watson  <cjwatson@debian.org>
8198
8199         * src/man.c (find_in_path): Avoid leaking filename for each PATH
8200           element.
8201
8202 Wed Jul 30 10:36:22 BST 2003  Colin Watson  <cjwatson@debian.org>
8203
8204         * src/compression.c (decompress): Don't free command until after
8205           printing the error message that includes it.
8206
8207 Wed Jul 30 10:23:50 BST 2003  Colin Watson  <cjwatson@debian.org>
8208
8209         * src/mandb.c (main): Return non-zero with an error message if no
8210           databases were updated. Required so that man knows not to call
8211           mandb over and over again.
8212
8213 Sat Jun 28 01:26:55 BST 2003  Colin Watson  <cjwatson@debian.org>
8214
8215         * man/it_IT.88591/man1/apropos.man1: Use %date% rather than
8216           %date_it% (which the build system no longer supports).
8217
8218 Sat Jun 28 00:23:02 BST 2003  Colin Watson  <cjwatson@debian.org>
8219
8220         * man/man1/man.man1: Clarify section 3 as "program libraries" rather
8221           than "system libraries".
8222
8223 Tue May  6 00:50:25 CEST 2003 Giuseppe Sacco <eppesuig@debian.org>
8224
8225         * Updated the apropos italian man page.
8226
8227 Mon May  5 19:47:07 BST 2003  Colin Watson  <cjwatson@debian.org>
8228
8229         * src/man.c (set_term, get_term, store_line_length): Use the
8230           fileno() of stdin and stdout respectively instead of literal 0 and
8231           1.
8232         * src/ult_src.c (ult_src): Use STRNEQ() instead of strncmp().
8233
8234 Mon May  5 18:35:02 BST 2003  Colin Watson  <cjwatson@debian.org>
8235
8236         * src/encodings.c (directory_table): Add Czech -> ISO-8859-2.
8237
8238 Thu May  1 19:12:54 BST 2003  Colin Watson  <cjwatson@debian.org>
8239
8240         * configure.in (CFLAGS): Add -Wpointer-arith and -Wstrict-prototypes
8241           for gcc.
8242
8243         * src/man.h: Move prototype from convert_name.c to ...
8244         * src/convert_name.h: ... here (new file).
8245         * src/convert_name.c: Include "convert_name.h". Add some TODO
8246           comments.
8247         * src/man.c: Include "convert_name.h".
8248
8249         * lib/error.c: Include "error.h". Prototype strerror() fully.
8250         * lib/tempfile.c: Include "manconfig.h" instead of prototyping
8251           strappend() and xstrdup(). Prototype path_search() fully.
8252         * lib/xmalloc.c: Remove most K&R compatibility, since it's not
8253           really supported elsewhere in man-db.
8254         * src/globbing.c: Include "globbing.h".
8255           (match_in_directory): Add static.
8256         * src/man.c (set_term, get_term): Add static.
8257           (int_handler): Move above main(), and add static.
8258           (main): Remove int_handler() prototype.
8259           (make_roff_command, format_display_and_save): Prototype
8260           old_handler fully.
8261           (open_cat_stream, display_catman): Cast to cleanup_fun rather than
8262           to an incomplete prototype.
8263         * src/manp.c (guess_manpath): Add static.
8264         * src/security.c (gripe_set_euid): Prototype fully.
8265         * src/ult_src.c (realpath): Move prototype to the non-STDC_HEADERS
8266           case.
8267
8268         * src/lexgrog.l: Add '%option warn'.
8269
8270 Thu May  1 17:39:55 BST 2003  Colin Watson  <cjwatson@debian.org>
8271
8272         * configure.in (CFLAGS): Add -W for gcc.
8273
8274         * lib/hashtable.c (hash): Change array index type to size_t.
8275         * src/globbing.c (dirent_hash_free, match_in_directory): Likewise.
8276
8277         * src/check_mandirs.c (purge_pointers): Remove unused manpath
8278           argument.
8279         * src/check_mandirs.h (purge_pointers): Update prototype.
8280         * src/mandb.c (update_one_file): Update call to purge_pointers().
8281
8282         * src/catman.c (catman): Remove unused arg_no argument.
8283           (do_catman): Update call to catman().
8284         * src/man.c (make_roff_command): dir is unused except #ifdef
8285           ALT_EXT_FORMAT.
8286         * src/mandb.c (cleanup): dummy is unused.
8287         * src/ult_src.c (ult_hardlink): Change type of inode to ino_t.
8288           (ult_softlink): mantree is unused.
8289           (ult_src): Update call to ult_softlink().
8290         * src/whatis.c (apropos): lowpage is unused except #ifdef APROPOS.
8291         * src/wrapper.c (main): argc is unused.
8292
8293 Thu May  1 16:52:44 BST 2003  Colin Watson  <cjwatson@debian.org>
8294
8295         Remove all assumptions that string literals have type 'char *'
8296         rather than 'const char *'.
8297
8298         * configure.in (CFLAGS): Add -Wwrite-strings for gcc.
8299
8300         * lib/tempfile.c (xstrdup): First argument is const.
8301           (path_search): Return 'const char *'.
8302           (create_tempfile, create_tempdir): Copy return value of
8303           path_search() right away rather than after checking for NULL.
8304
8305         * libdb/db_ver.c (dbver): Take a private copy of VER_KEY.
8306           (dbver_wr): Take private copies of VER_KEY and VER_ID.
8307
8308         * src/accessdb.c (cat_root): Add const.
8309         * src/catman.c (parse_for_sec): Remove __inline__; add const to both
8310           arguments. Take private copies of "man" and the basic options.
8311           (main): Copy "C" for locale. Make sections etc. 'const char **',
8312           since STD_SECTIONS is an array of 'const char *'.
8313         * src/check_mandirs.c (update_db_time, reset_db_time, update_db):
8314           Take a private copy of KEY.
8315         * src/filenames.c (make_filename): Make type const.
8316         * src/filenames.h (make_filename): Update prototype.
8317         * src/globbing.c (extension, mandir_layout): Add const.
8318         * src/lexgrog.l (fname): Add const.
8319           (find_name): Make filename const.
8320           (main): Set program_name here from argv[0] rather than from a
8321           string literal.
8322         * include/manconfig.h.in (find_name): Update prototype.
8323         * src/man.c (lang_dir): Add static. Copy string literals into ld.
8324           Use xstrndup() rather than copying and then inserting '\0'.
8325           (extension, alt_system_name, section_list, preprocessors, pager,
8326           locale, std_sections, external, gxditview, html_pager): Add const.
8327           (add_roff_line_length): First argument is const. Return a copy of
8328           it if necessary.
8329           (gripe_no_man): Copy external before passing it to basename().
8330           (main): Copy "C" for internal_locale. Reorganize locale
8331           reinitialization slightly so that locale can be const.
8332           (man_getopt): Set 'const char *' and 'char *' variables to NULL
8333           separately.
8334           (is_section, compare_candidates, man): Use a 'const char **' to
8335           iterate through section_list.
8336           (make_roff_command): Remove __inline__. Take a copy of "" for dev
8337           so that dev is always allocated memory. Handle filter in a more
8338           const-safe way (although there's still a memory leak).
8339           (get_section_list): Remove __inline__. Return 'const char **'.
8340         * src/man.h (get_section_list): Update prototype.
8341         * src/manp.c (get_from_list): Make return value and first argument
8342           const.
8343           (get_def): Make return value and both arguments const.
8344           (get_sections): Return const.
8345           (cat_manpath): Make path and catdir const.
8346         * src/manp.h (get_def, get_sections): Update prototypes.
8347         * src/manpath.c (main): Make alt_system const.
8348         * src/whatis.c (use_grep): Make flags and anchor const.
8349           (main): Make manp and alt_systems const. Copy "C" for locale.
8350         * zsoelim/zsoelim.l (main): Copy argv[0] basename for program_name,
8351           as basename()'s return value may not be long-lived. Copy "-" for
8352           so_name[0].
8353
8354         * src/mandb.c (main): Don't bother remembering the return value of
8355           setlocale().
8356         * src/manpath.c (main): Likewise.
8357
8358 Mon Apr 28 15:11:28 BST 2003  Colin Watson  <cjwatson@debian.org>
8359
8360         * src/catman.c (main): Don't guard xstrdup() from NULL input, as it
8361           checks itself.
8362         * src/check_mandirs.c (test_manfile): Likewise.
8363         * src/descriptions.c (parse_descriptions): Likewise.
8364         * src/mandb.c (main): Likewise.
8365         * src/whatis.c (main): Likewise.
8366
8367 Mon Apr 28 09:06:28 BST 2003  Colin Watson  <cjwatson@debian.org>
8368
8369         Introduce a readdir() cache, which substantially speeds up mandb's
8370         purging functions (from 2 minutes to under 45 seconds on my laptop,
8371         and from about 280000 to about 13500 system calls).
8372
8373         * src/globbing.c (dirent_hash_free, update_directory_cache): New
8374           functions.
8375           (match_in_directory): Use update_directory_cache() rather than
8376           reading the directory on every call.
8377         * docs/NEWS: Document this.
8378
8379 Mon Apr 28 00:51:11 BST 2003  Colin Watson  <cjwatson@debian.org>
8380
8381         * lib/hashtable.c (hash_lookup): Return the definition rather than
8382           the hash entry structure. This turns out to be a lot more useful.
8383         * lib/hashtable.h (hash_lookup): Update prototype.
8384         * src/man.c (try_db): Simplify; in_cache is no longer needed. Just
8385           assign to the target variable directly.
8386         * src/check_mandirs.c (test_manfile): Likewise. xstrdup() already
8387           checks for NULL input, so don't bother checking here.
8388
8389 Tue Apr 22 19:56:13 BST 2003  Colin Watson  <cjwatson@debian.org>
8390
8391         * docs/HACKING: New prototypical document for developers.
8392
8393 Tue Apr 22 19:48:46 BST 2003  Colin Watson  <cjwatson@debian.org>
8394
8395         * src/globbing.c (parse_layout, look_for_file): Add a BSD layout in
8396           which cat pages have the extension .0 (Jeremy C. Reed). More work
8397           is needed elsewhere so that man can write such cat pages, though.
8398         * configure.in (--enable-mandirs): Add BSD layout.
8399         * manual/intro.me (Arguments to configure): Document
8400           --enable-mandirs=BSD.
8401         * README: Sync with manual/intro.me.
8402
8403 Tue Apr 22 19:38:03 BST 2003  Colin Watson  <cjwatson@debian.org>
8404
8405         * libdb/COPYING.LIB: Remove (obsoleted in favour of
8406           docs/COPYING.LIB).
8407         * GNUmakefile.in (_docs, _libdb): Include COPYING.LIB from docs/
8408           rather than libdb/.
8409
8410 Tue Apr 22 19:34:30 BST 2003  Colin Watson  <cjwatson@debian.org>
8411
8412         * tools/mandb_[nt]fmt-script: Correct "# !" to "#! " on the shebang
8413           line.
8414
8415 Tue Apr 15 18:16:30 BST 2003  Colin Watson  <cjwatson@debian.org>
8416
8417         * src/Makefile.in (LFLAGS): Provide -8 and -B as separate arguments.
8418           flex 2.5.31 is stricter about this.
8419         * zsoelim/Makefile.in (LFLAGS): Likewise.
8420
8421 Sun Apr 13 14:36:29 BST 2003  Colin Watson  <cjwatson@debian.org>
8422
8423         * src/encodings.c (directory_table): Add Hungarian -> ISO-8859-2.
8424
8425 Sun Apr 13 13:39:38 BST 2003  Colin Watson  <cjwatson@debian.org>
8426
8427         * src/mandb.c (xcopy): Return 0 if the source file doesn't exist, so
8428           that the caller can go on and silently create a non-existent
8429           database rather than bailing out.
8430
8431 Sun Apr 13 12:49:33 BST 2003  Colin Watson  <cjwatson@debian.org>
8432
8433         * src/mandb.c: Remove DO_CHOWN define and simply use SECURE_MAN_UID.
8434
8435 Thu Apr 10 23:51:43 BST 2003  Byrial Ole Jensen  <byrial@image.dk>
8436
8437         * po/da.po: Update from Translation Project.
8438
8439 Mon Apr  7 09:12:27 BST 2003  Colin Watson  <cjwatson@debian.org>
8440
8441         * src/man.c (man): Call local_man_loop() straight away if name
8442           contains a slash. Make the number of pages found an output
8443           argument rather than the return value, so that we can include
8444           local_man_loop()'s return behaviour.
8445           (main): Update throughout for new man() signature. Don't call
8446           local_man_loop() if man() returns an error, as man() now sorts
8447           that out for itself.
8448         * src/man.h (man): Update prototype.
8449
8450 Mon Apr  7 08:09:08 BST 2003  Colin Watson  <cjwatson@debian.org>
8451
8452         * include/Defines.in: Generate dependencies in .depend rather than
8453           the current directory. Suppress echoing of dependency generation
8454           commands.
8455         * libdb/Makefile.in: Remove .depend directory on distclean. Always
8456           use dependencies (except on clean), not just when --enable-debug
8457           was passed to configure.
8458         * src/Makefile.in: Likewise. Set up $(DEFS_*) variables so that the
8459           correct flags are used when generating dependencies.
8460         * libdb/.cvsignore, src/.cvsignore: Ignore .depend.
8461
8462         * configure.in: Remove now-redundant --enable-debug option. Remove
8463           search for libefence if --enable-debug is used; using it with
8464           LD_PRELOAD is generally more convenient anyway.
8465         * README, manual/intro.me (Arguments to configure): Remove
8466           documentation for --enable-debug.
8467         * docs/NEWS: Document the removal.
8468
8469 Mon Apr  7 01:02:27 BST 2003  Colin Watson  <cjwatson@debian.org>
8470
8471         * man/ja_JP.eucJP/man1/man.man1: Replace "%date%" with the Japanese
8472           "ima", meaning "now" or "the present time" (thanks, Liyang Hu).
8473
8474 Mon Apr  7 00:04:30 BST 2003  Colin Watson  <cjwatson@debian.org>
8475
8476         * configure.in: Don't generate language-specific date variants for
8477           man pages, as that requires all the relevant locales to be
8478           installed on the build machine. Use the ISO 8601 date format
8479           instead.
8480         * include/Defines.in: Remove obsolete substitutions of date_it,
8481           date_es, date_de, and date_fr.
8482         * man/Makefile.in: Likewise.
8483         * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5,
8484           man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1,
8485           man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8,
8486           man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5,
8487           man/it_IT.88591/man8/*.man8 (.TH): Replace "%date_de%",
8488           "%date_es%", and "%date_it%" substitutions by plain "%date%".
8489         * man/man1/man.man1 (HISTORY): "%date%" -> "present day".
8490         * man/it_IT.88591/man1/man.man1 (STORIA): Similarly, "%date_it%" ->
8491           "presente" (present day).
8492
8493 Sun Apr  6 21:39:36 BST 2003  Colin Watson  <cjwatson@debian.org>
8494
8495         * src/man.c (main): Ignore LANGUAGE if a locale is explicitly
8496           specified using the -L/--locale option.
8497
8498 Sun Apr  6 20:28:57 BST 2003  Colin Watson  <cjwatson@debian.org>
8499
8500         Revamp locale encoding support. The old code made the incorrect
8501         assumption that the source encoding of manual pages is dependent on
8502         the locale.
8503
8504         If MULTIBYTE_GROFF is defined then man will assume that it is using
8505         a version of groff with the multibyte patch applied, which supports
8506         some additional locales.
8507
8508         * src/man.c (lang_table, determine_lang_table): Remove.
8509           (lang_dir): Return "C" if there is no language directory element.
8510           (make_roff_command): Find out the source encoding for the
8511           requested man page and the default device for the current locale,
8512           and use these to select a device more intelligently. Insert an
8513           iconv pipe if the source encoding differs from the input *roff
8514           encoding for the current device.
8515         * src/encodings.c: New file. There are three tables replacing the
8516           old lang_table: directory_table, charset_table, and device_table.
8517           (get_source_encoding): New function, returning the assumed source
8518           encoding for the current page from directory_table.
8519           (get_default_device): New function, returning the default *roff
8520           output device based on the current locale from charset_table.
8521           (get_roff_encoding): New function, returning the input encoding
8522           expected by *roff from device_table. This is always ISO-8859-1
8523           unless MULTIBYTE_GROFF is defined (this is still a subject of some
8524           debate, and will be UTF-8 for all devices in groff 2).
8525         * src/encodings.h: Prototype new functions.
8526         * src/Makefile.in (man): Add encodings.o.
8527         * docs/NEWS: Document the above.
8528
8529 Sun Mar 30 23:14:47 BST 2003  Colin Watson  <cjwatson@debian.org>
8530
8531         * man/man1/man.man1 (SYNOPSIS): Both -H and -T take optional
8532           arguments. The fact that they're optional means that no space is
8533           allowed between the option and its argument (thanks to Peter Muir
8534           for that observation).
8535           (OPTIONS): Likewise. Document the 'browser' argument to -H.
8536           Correct a couple of hyphens to dashes.
8537
8538 Fri Mar 28 09:23:19 GMT 2003  Colin Watson  <cjwatson@debian.org>
8539
8540         * src/man.c (main): Protect ruid/euid debugging statement with
8541           #ifdef SECURE_MAN_UID.
8542           (commit_tmp_cat): Likewise for temporary cat ownership code.
8543         * src/security.c (drop_effective_privs, regain_effective_privs):
8544           priv_drop_count is only declared #ifdef SECURE_MAN_UID. Move the
8545           corresponding directives so that these functions are no-ops if
8546           that symbol isn't defined.
8547         * docs/NEWS: Document this.
8548
8549 Wed Mar 26 15:04:00 GMT 2003  Colin Watson  <cjwatson@debian.org>
8550
8551         * manual/format.me: Correct location of example external formatter
8552           script.
8553
8554 Tue Mar 25 04:15:41 GMT 2003  Colin Watson  <cjwatson@debian.org>
8555
8556         * configure.in: Use AC_MSG_NOTICE throughout rather than MAN_ECHO.
8557           Move the definition of MAN_ECHO_VAR to just above its only uses.
8558
8559 Tue Mar 25 03:44:06 GMT 2003  Giuseppe Sacco  <eppesuig@debian.org>
8560
8561         * po/it.po: Update.
8562
8563 Tue Mar 25 03:41:13 GMT 2003  Colin Watson  <cjwatson@debian.org>
8564
8565         * src/whatis.c (parse_name): Free lowdbname before returning.
8566
8567 Tue Mar 25 03:38:39 GMT 2003  Colin Watson  <cjwatson@debian.org>
8568
8569         * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: Remove unused
8570           definitions of VOID.
8571
8572 Sun Mar 16 00:51:12 GMT 2003  Jeremy C. Reed  <reed@reedmedia.net>
8573
8574         * configure.in (--enable-mandirs): Use 'mandirs' rather than
8575           'mandir', as the latter clashes with an autoconf variable.
8576
8577 Wed Mar 12 13:17:45 GMT 2003  Colin Watson  <cjwatson@debian.org>
8578
8579         * libdb/db_lookup.c (gripe_bad_multi_key): This function has been
8580           unused since 24 June 2002 (noticed by Giuseppe Sacco). Remove.
8581         * libdb/db_storage.h (gripe_bad_multi_key): Remove prototype.
8582
8583 Tue Mar 11 21:17:56 GMT 2003  Giuseppe Sacco  <eppesuig@debian.org>
8584
8585         * po/it.po: Update.
8586
8587 Mon Mar 10 17:20:46 GMT 2003  Colin Watson  <cjwatson@debian.org>
8588
8589         * libdb/db_btree.c, libdb/db_delete.c, libdb/db_gdbm.c,
8590           libdb/db_lookup.c, libdb/db_ndbm.c, libdb/db_storage.h,
8591           libdb/db_store.c, libdb/db_ver.c: Style cleanup (as with src/* on
8592           28 May 2001). No functional changes.
8593
8594 Mon Mar 10 15:55:34 GMT 2003  Colin Watson  <cjwatson@debian.org>
8595
8596         * GNUmakefile.in (EVERYTHING, ALL): Move intl ahead of libdb. (Not
8597           'make -j'-clean, though ...)
8598         * libdb/Makefile.in: Use '$(top_srcdir)' rather than '..'
8599           throughout. Add $(top_srcdir)/intl to the include path if USE_NLS
8600           is set.
8601
8602 Mon Mar 10 15:24:04 GMT 2003  Colin Watson  <cjwatson@debian.org>
8603
8604         * configure.in (AC_CONFIG_HEADER): Generate config.h rather than
8605           include/config.h. intl/Makefile.in is insistent on config.h being
8606           in the top-level directory.
8607         * GNUmakefile.in, manual/comp.me: Replace 'include/config.h' with
8608           'config.h' throughout.
8609         * .cvsignore, include/.cvsignore: Update for new config.h and
8610           config.h.in locations.
8611
8612 Mon Mar 10 15:00:32 GMT 2003  Colin Watson  <cjwatson@debian.org>
8613
8614         * lib/mkdtemp.c: Define __GT_DIR if necessary.
8615         * lib/tempfile.c: Prototype mkstemp() and mkdtemp().
8616
8617 Mon Mar 10 14:46:39 GMT 2003  Colin Watson  <cjwatson@debian.org>
8618
8619         * lib/tempname.c: Include "config.h" rather than <config.h>.
8620
8621 Mon Mar  3 22:00:03 GMT 2003  Colin Watson  <cjwatson@debian.org>
8622
8623         * src/mandb.c (xcopy): Remove silly calls to fclose() on null
8624           pointers.
8625
8626 Sun Mar  2 20:37:08 GMT 2003  Colin Watson  <cjwatson@debian.org>
8627
8628         * src/mandb.c (xcopy): Save errno before performing operations that
8629           might change it. Close ifp as well if an error occurs while
8630           opening ofp.
8631
8632 Fri Feb 28 01:50:21 GMT 2003  Colin Watson  <cjwatson@debian.org>
8633
8634         * src/man.c (find_in_path): path needs to be preserved in order to
8635           be freed safely, or else we segfault. Use a temporary variable for
8636           strsep() instead.
8637
8638 Mon Feb 24 17:05:25 GMT 2003  Colin Watson  <cjwatson@debian.org>
8639
8640         * man/man1/man.man1 (OPTIONS): Only use the \[shc] character if it's
8641           available, which is the case on groff's latin1 and utf8 devices
8642           but not on others. Otherwise, use \(hy.
8643
8644 Mon Feb 24 00:17:39 GMT 2003  Colin Watson  <cjwatson@debian.org>
8645
8646         * docs/manpage.example (OPTIONS): Move the note about '\-' versus
8647           '-' from a comment into displayed text.
8648
8649 Sun Feb 23 00:34:12 GMT 2003  Alexandre Folle de Menezes  <afmenez@terra.com.br>
8650
8651         * po/pt_BR.po: Update from Translation Project.
8652
8653 Sat Feb 22 18:32:58 GMT 2003  Colin Watson  <cjwatson@debian.org>
8654
8655         * acinclude.m4 (MAN_CHECK_BDB): Remove some extra calls to
8656           AC_MSG_RESULT, since AC_CACHE_CHECK already calls that.
8657
8658 Sat Feb 22 18:10:14 GMT 2003  Morten Brix Pedersen  <morten@wtf.dk>
8659
8660         * po/da.po: Translate a few more strings.
8661
8662 Sat Feb 22 18:06:09 GMT 2003  Alexandre Folle de Menezes  <afmenez@terra.com.br>
8663
8664         * po/pt_BR.po: Update from Translation Project.
8665
8666 Sat Feb 22 17:50:55 GMT 2003  Colin Watson  <cjwatson@debian.org>
8667
8668         * src/Makefile.in: Fix typo ("developement" -> "development").
8669         * src/manp.c (add_to_dirlist): Fix typo ("mach" -> "match").
8670
8671 Sat Feb 22 17:41:07 GMT 2003  Colin Watson  <cjwatson@debian.org>
8672
8673         * src/manp.c (read_config_file): If user_config_file is non-NULL,
8674           use it instead of ~/.manpath. Programs can now set the user
8675           configuration file to be used.
8676
8677         * src/catman.c, src/mandb.c, src/manpath.c, src/whatis.c
8678           (long_options): Add -C/--config-file option.
8679           (usage): Document it.
8680           (main): Handle it.
8681         * src/man.c (long_options): Add -C/--config-file option.
8682           (usage): Document it, along with adding -i and -I to the synopsis.
8683           (man_getopt): Handle it.
8684         * man/man1/apropos.man1, man/man1/man.man1, man/man1/manpath.man1,
8685           man/man1/whatis.man1, man/man8/catman.man8, man/man8/mandb.man8
8686           (SYNOPSIS): Add -C.
8687           (OPTIONS): Describe -C/--config-file.
8688
8689         * docs/NEWS: Document this addition.
8690
8691 Fri Feb 21 18:32:21 GMT 2003  Colin Watson  <cjwatson@debian.org>
8692
8693         * src/Makefile.in (man): lexgrog.o is no longer needed. Removing it
8694           takes 24K off the size of a stripped man binary on Linux/i386.
8695
8696 Fri Feb 21 18:12:45 GMT 2003  Colin Watson  <cjwatson@debian.org>
8697
8698         * src/mandb.c (xcopy): Improve error handling.
8699           (mandb): Since xcopy() now returns int, handle its return value.
8700
8701 Fri Feb 21 16:40:26 GMT 2003  Colin Watson  <cjwatson@debian.org>
8702
8703         * src/man.c (find_in_path): New function to look for executables on
8704           the $PATH.
8705           (gripe_no_man): Only emit the "undocumented" message if a
8706           corresponding executable is found on the $PATH.
8707         * docs/NEWS: Document this.
8708
8709 Fri Feb 21 16:26:00 GMT 2003  Colin Watson  <cjwatson@debian.org>
8710
8711         * docs/NEWS: Preliminary entries for 2.4.2.
8712
8713 Fri Feb 21 15:49:08 GMT 2003  Colin Watson  <cjwatson@debian.org>
8714
8715         * zsoelim/zsoelim.l: Internationalize usage and error messages.
8716
8717 Fri Feb 21 15:46:04 GMT 2003  Colin Watson  <cjwatson@debian.org>
8718
8719         * src/check_mandirs.c (gripe_bogus_manpage, make_filename,
8720           filename_info): Move to ...
8721         * src/filenames.c: ... here.
8722         * src/check_mandirs.h: Move corresponding prototypes to ...
8723         * src/filenames.h: ... here.
8724
8725         * src/check_mandirs.c (purge_pointers): New function to purge any
8726           entries whose pointers refer to a given name.
8727         * src/check_mandirs.h (purge_pointers): Add prototype.
8728         * src/mandb.c (long_options): Add -f/--filename option.
8729           (usage): Document it, along with -t/--test.
8730           (update_one_file): New function to update a single file in an
8731           existing database.
8732           (update_db_wrapper): Call update_one_file() if using --filename.
8733           (main): Handle --filename option. If using --filename, only call
8734           mandb() if the manpath prefix matches.
8735         * man/man8/mandb.man8 (SYNOPSIS): Improve *roff style and document
8736           -p. Add separate call summary for when -f is used.
8737           (OPTIONS): Document -f.
8738
8739         * lib/hashtable.c (hash_remove): New function to remove an entry
8740           from a hash table.
8741         * lib/hashtable.h (hash_remove): Add prototype.
8742
8743         * libdb/db_store.c (replace_if_necessary): Replace entries with ids
8744           other than ULT_MAN too, so that their timestamps can be updated.
8745           Add more debugging output.
8746         * src/man.c (need_to_rerun): Remove.
8747           (display_database): Remove code to check whether pages found in
8748           databases are up to date. This is done elsewhere now.
8749           (run_mandb): New function, used instead of updating databases
8750           directly.
8751           (main): Call run_mandb() instead of need_to_rerun().
8752           (maybe_update_file): New function to check whether a page found in
8753           a database is up to date. If not, use run_mandb() to recache it.
8754           (try_db): Use run_mandb() rather than create_db(). Use #defines
8755           for special return values rather than magic numbers. Check whether
8756           pages are up to date as they're found.
8757           (locate_page): If try_db() returns TRY_DATABASE_UPDATED (i.e.
8758           mandb was called to update some pages), call it again.
8759           (display_pages): Use a switch with named candidate types instead
8760           of an if.
8761
8762         * src/Makefile.in (DEFS_man.o): Add definition for MANDB.
8763           (man): Database code is no longer needed. Add filenames.o.
8764           (mandb): Add filenames.o.
8765
8766 Mon Feb 17 23:28:55 GMT 2003  Colin Watson  <cjwatson@debian.org>
8767
8768         * src/manpath.c: Remove unused prototypes.
8769
8770 Tue Jan 21 01:42:16 GMT 2003  Colin Watson  <cjwatson@debian.org>
8771
8772         * src/mandb.c (xcopy, main): Minor whitespace cleanups.
8773         * src/ult_src.c: Fix typo (loosing -> losing).
8774
8775 Mon Jan  6 03:25:16 GMT 2003  Colin Watson  <cjwatson@debian.org>
8776
8777         * src/man.c (display_pages): Drop privileges if candp->path is a
8778           user manpath. Inner code generally dropped privileges anyway,
8779           certainly when running external commands, but the absence of this
8780           drop meant that pages in non-world-readable user manpaths could
8781           not be read.
8782
8783 Mon Jan  6 03:19:57 GMT 2003  Colin Watson  <cjwatson@debian.org>
8784
8785         * lib/error.c (error): Print a backtrace if the BACKTRACE_ON_ERROR
8786           symbol is defined. This undoubtedly isn't portable and is not
8787           intended for production use; it's just a last-resort way to get a
8788           backtrace when the usual methods fail, chiefly when running
8789           setuid.
8790
8791 Tue Dec 31 04:39:03 GMT 2002  Colin Watson  <cjwatson@debian.org>
8792
8793         * src/man.c (man): If update is set, need_to_rerun() will always
8794           have been called already by now. Remove this redundant code.
8795
8796 Tue Dec 31 04:26:50 GMT 2002  Colin Watson  <cjwatson@debian.org>
8797
8798         * man/man1/apropos.man1, man/man1/lexgrog.man1,
8799           man/man1/manpath.man1, man/man1/whatis.man1,
8800           man/man1/zsoelim.man1: --version no longer displays author
8801           information.
8802
8803 Sun Dec 29 19:57:55 GMT 2002  Colin Watson  <cjwatson@debian.org>
8804
8805         * src/check_mandirs.c, src/check_mandirs.h: Move page_description
8806           interface functions to ...
8807         * src/descriptions.c, src/descriptions.h: ... here (new files).
8808         * src/Makefile.in (man, mandb): Link descriptions.o.
8809
8810         * libdb/db_storage.h: Include libdb/mydbm.h for the datum type.
8811
8812 Sun Dec 29 19:51:11 GMT 2002  Colin Watson  <cjwatson@debian.org>
8813
8814         * src/lexgrog.l: Add commas between short and long options in usage
8815           output.
8816
8817         * src/accessdb.c (main): Support -h/--help and -v/--version options.
8818           (usage): Document them. Move MAN_DB outside translatable string.
8819         * man/man8/accessdb.man8 (SYNOPSIS, OPTIONS): Document new options.
8820           (AUTHOR): Add myself.
8821         * src/globbing.c (long_options, args, main): Support -h/--help and
8822           -v/--version options.
8823           (usage): New function.
8824         * zsoelim/zsoelim.l: Support long option forms of -C (--compatible),
8825           -h (--help), and -V (--verbose).
8826         * man/man1/zsoelim.man1: Document long options.
8827
8828         * src/Makefile.in: Link $(TOOLS) as well as $(PROGS) with version.o.
8829
8830 Sun Dec 29 19:40:46 GMT 2002  Colin Watson  <cjwatson@debian.org>
8831
8832         Patch partly by Werner Fink <werner@suse.de>.
8833
8834         * src/whatis.c (args, long_options): Add -v/--verbose option.
8835           (usage): Document it.
8836           (get_whatis): Print pointer loop warnings only if --verbose.
8837           (main): Handle --verbose option.
8838         * man/man1/apropos.man1 (OPTIONS): Document --verbose.
8839         * man/man1/whatis.man1 (OPTIONS): Likewise.
8840
8841 Sun Dec 22 23:30:12 GMT 2002  Colin Watson  <cjwatson@debian.org>
8842
8843         * src/check_mandirs.c (test_manfile): Initialize the mandata struct
8844           on the stack to zero.
8845           (count_glob_matches): Likewise.
8846         * src/straycats.c (check_for_stray): Likewise.
8847         * src/man.c (try_section): Use infoalloc() (which initializes the
8848           mandata struct to zero) rather than malloc(). This had caused
8849           several uses of uninitialized memory (Debian bug #168584).
8850
8851         * src/check_mandirs (purge_whatis): Compare info->pointer against
8852           "-", not just its first character.
8853
8854 Sun Dec 22 19:29:38 GMT 2002  Colin Watson  <cjwatson@debian.org>
8855
8856         * Version: 2.4.1.
8857         * docs/NEWS, man-db.gnu, man-db.lsm: Update.
8858
8859 Sun Dec 22 18:19:09 GMT 2002  Colin Watson  <cjwatson@debian.org>
8860
8861         * libdb/db_btree.c (btree_findkey): Cast key.dsize to int when using
8862           it as an fprintf() field width.
8863
8864 Sun Dec 22 18:15:51 GMT 2002  Colin Watson  <cjwatson@debian.org>
8865
8866         Patch inspired by part of SuSE's diff, although not identical.
8867
8868         * GNUmakefile.in: Export DESTDIR.
8869         * man/Makefile.in, src/Makefile.in, zsoelim/Makefile.in: Honour
8870           DESTDIR when installing and uninstalling files.
8871
8872 Sun Dec 22 14:14:37 GMT 2002  Colin Watson  <cjwatson@debian.org>
8873
8874         * GNUmakefile.in (dist): Don't update .po files automatically, since
8875           they're kept under revision control.
8876
8877 Sun Dec 22 13:59:23 GMT 2002  Colin Watson  <cjwatson@debian.org>
8878
8879         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
8880           po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
8881
8882 Sun Dec 22 13:44:20 GMT 2002  Alexandre Folle de Menezes  <afmenez@terra.com.br>
8883
8884         * po/pt_BR.po: Update from Translation Project.
8885
8886 Sat Dec 21 13:30:43 GMT 2002  Colin Watson  <cjwatson@debian.org>
8887
8888         * src/check_mandirs.c (count_glob_matches): Exclude file names which
8889           fail stat(), such as dangling symlinks.
8890
8891 Sat Dec 21 03:01:34 GMT 2002  Colin Watson  <cjwatson@debian.org>
8892
8893         * src/check_mandirs.c (count_glob_matches): New function,
8894           sanity-checking results from look_for_file(). This should probably
8895           be done in look_for_file() itself eventually, but that requires
8896           more widespread changes.
8897           (purge_normal, purge_whatis): Use it.
8898
8899         * src/check_mandirs.c (gripe_bogus_manpage, gripe_rwopen_failed,
8900           filename_info, purge_normal, purge_whatis): Constify arguments.
8901         * src/check_mandirs.h (filename_info): Update prototype.
8902
8903         * docs/NEWS: Document --enable-mandirs guesswork.
8904         * src/.cvsignore: Add the globbing test executable.
8905
8906 Fri Dec 20 15:38:48 GMT 2002  Colin Watson  <cjwatson@debian.org>
8907
8908         * src/globbing.c (main): Make the test program compile again, and
8909           add full argument parsing.
8910         * src/Makefile.in (globbing): Link with util.o.
8911
8912 Fri Dec 20 15:34:51 GMT 2002  Colin Watson  <cjwatson@debian.org>
8913
8914         * configure.in: Guess the --enable-mandirs setting where possible if
8915           it isn't specified explicitly.
8916
8917 Fri Dec 20 02:28:15 GMT 2002  Colin Watson  <cjwatson@debian.org>
8918
8919         * src/check_mandirs.c (purge_missing): Match database entries
8920           against real filenames using the name field where available, not
8921           the lowercased field.
8922
8923 Fri Dec 20 02:15:21 GMT 2002  Colin Watson  <cjwatson@debian.org>
8924
8925         * src/mandb.c (mandb): If force_rescan is set, delete the database
8926           and recreate it from scratch.
8927         * src/check_mandirs.c (testmandirs): force_rescan is handled
8928           elsewhere now.
8929           (purge_normal, purge_whatis): Remove inline qualifier.
8930           (check_multi_key): New function to check for broken multi keys
8931           such as those generated by 2.4.0.
8932           (purge_missing): Call check_multi_key() where necessary.
8933
8934         * src/lexgrog.l (find_name): Revert change of 27 November 2002, as
8935           calling ult_src() inside find_name() breaks mandb (which already
8936           calls ult_src() itself). Instead:
8937           (main): Do the ult_src() resolution here for each element of argv.
8938
8939         * src/ult_src.c (ult_src): 'name' argument is const.
8940         * src/lexgrog.l (find_name): 'file' argument is const.
8941         * include/manconfig.h.in, src/ult_src.h: Update prototypes.
8942
8943 Mon Dec 16 05:28:34 GMT 2002  Colin Watson  <cjwatson@debian.org>
8944
8945         From SuSE's diff:
8946
8947         * lib/error.c: Add 'extern' to prototypes.
8948         * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: #include
8949           "manconfig.h" rather than using an explicit prototype.
8950         * lib/xstrdup.c (xstrdup): 'string' should be const.
8951
8952         * po/cs.po: Fix a format string.
8953
8954         * src/lexgrog.l: Add Japanese translation of NAME.
8955         * src/man.c: 'wd', 'cwd', and local_man_loop() are static.
8956
8957 Mon Dec 16 04:30:39 GMT 2002  Colin Watson  <cjwatson@debian.org>
8958
8959         * configure.in: 'test "$foo"' => 'test -n "$foo"' throughout. Taken
8960           from SuSE's diff.
8961
8962 Wed Dec  4 21:02:48 GMT 2002  Colin Watson  <cjwatson@debian.org>
8963
8964         * man/man1/lexgrog.man1: Replace `, ', and - (for literal dash
8965           rather than hyphen) with \(oq, \(cq, and \- respectively.
8966           (NOTES): lexgrog attempts to handle .so requests now.
8967
8968 Tue Dec  3 01:39:54 GMT 2002  Colin Watson  <cjwatson@debian.org>
8969
8970         * src/man.c (main): Only set multiple_locale if it's going to be
8971           used. Look at multiple_locale rather than internal_locale when
8972           performing special $LANGUAGE handling.
8973
8974 Mon Dec  2 14:08:08 GMT 2002  Michael Piefel  <piefel@informatik.hu-berlin.de>
8975
8976         * po/de.po: Fix a missing newline.
8977
8978 Mon Dec  2 13:58:55 GMT 2002  Michael Piefel  <piefel@informatik.hu-berlin.de>
8979
8980         * po/de.po: Update from Translation Project.
8981
8982 Fri Nov 29 15:40:21 GMT 2002  Jordi Mallach  <jordi@sindominio.net>
8983
8984         * po/ca.po: Update from Translation Project.
8985
8986 Wed Nov 27 20:27:59 GMT 2002  Christian Rose  <menthos@menthos.com>
8987
8988         * po/sv.po: Update from Translation Project.
8989
8990 Wed Nov 27 02:43:03 GMT 2002  Colin Watson  <cjwatson@debian.org>
8991
8992         * Version: 2.4.1-pre1 (for translators).
8993         * docs/NEWS: Update.
8994
8995 Wed Nov 27 02:29:42 GMT 2002  Colin Watson  <cjwatson@debian.org>
8996
8997         * src/lexgrog.l (find_name): Call ult_src() to resolve .so links.
8998         * src/Makefile.in: Link ult_src.o into lexgrog.
8999
9000 Wed Nov 27 01:49:18 GMT 2002  Colin Watson  <cjwatson@debian.org>
9001
9002         * release.sh: Don't pass --copy to autogen.sh, as it's a no-op now.
9003         * po/.cvsignore, tools/.cvsignore: More ignored files.
9004
9005 Wed Nov 27 01:46:27 GMT 2002  Colin Watson  <cjwatson@debian.org>
9006
9007         * tools/mkinstalldirs: Remove. It's more trouble than it's worth to
9008           store something in CVS that autopoint thinks it controls.
9009
9010 Wed Nov 27 01:25:52 GMT 2002  Colin Watson  <cjwatson@debian.org>
9011
9012         * po/da.po: Correct some minor typographical mistakes (mostly
9013           missing spaces or newlines at the end of one piece of a string
9014           concatenation).
9015         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
9016           po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge.
9017
9018 Wed Nov 27 00:51:47 GMT 2002  Colin Watson  <cjwatson@debian.org>
9019
9020         * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1,
9021           man/man1/manpath.man1, man/man1/whatis.man1,
9022           man/man1/zsoelim.man1, man/man5/manpath.man5,
9023           man/man8/accessdb.man8, man/man8/catman.man8, man/man8/mandb.man8:
9024           Add a .pc request so that the % characters we use for
9025           substitutions don't get translated into page numbers when
9026           formatting the unsubstituted pages.
9027
9028 Wed Nov 27 00:37:29 GMT 2002  Colin Watson  <cjwatson@debian.org>
9029
9030         * man/man1/lexgrog.man1 (WHATIS PARSING): Add an example of how NAME
9031           sections should be written in mdoc.
9032
9033 Tue Nov 26 22:57:27 GMT 2002  Colin Watson  <cjwatson@debian.org>
9034
9035         * .cvsignore: Ignore the m4 directory, created by autopoint.
9036         * GNUmakefile.in (_subdirs, _m4): Add m4/*.m4 to the distribution.
9037           (_root): There are no *.h files left in the top-level directory.
9038           (nls_man): de_DE.ascii is gone.
9039           (dist): Use 'cp -p' rather than 'ln', since ln notes that making a
9040           hard link to a symbolic link is not portable.
9041
9042 Tue Nov 26 03:43:15 GMT 2002  Colin Watson  <cjwatson@debian.org>
9043
9044         * po/pt_BR.po: New from Translation Project.
9045         * po/LINGUAS: Add pt_BR.
9046
9047 Fri Nov 22 22:06:01 GMT 2002  Morten Brix Pedersen  <morten@wtf.dk>
9048
9049         * po/da.po: Further updates.
9050
9051 Sat Nov 16 12:54:29 GMT 2002  Colin Watson  <cjwatson@debian.org>
9052
9053         * docs/manpage.example: Clarify that dashes in options should be
9054           written using '\-', not '-'.
9055
9056 Thu Nov 14 23:29:14 GMT 2002  Morten Brix Pedersen  <morten@wtf.dk>
9057
9058         * po/da.po: Update.
9059
9060 Thu Nov 14 23:26:58 GMT 2002  Colin Watson  <cjwatson@debian.org>
9061
9062         * configure.in: Implement --enable-undoc=COMMAND.
9063         * src/man.c (gripe_no_man): If --enable-undoc=COMMAND was set, print
9064           an additional message referring users to COMMAND. This is mostly
9065           here to support Debian's undocumented(7) page in a nicer way, but
9066           perhaps others will find it useful too.
9067
9068 Thu Nov 14 04:21:09 GMT 2002  Colin Watson  <cjwatson@debian.org>
9069
9070         * src/Makefile.in: Use @LIBINTL@ rather than @INTLLIBS@. The latter
9071           is deprecated.
9072
9073 Thu Nov 14 04:17:49 GMT 2002  Colin Watson  <cjwatson@debian.org>
9074
9075         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
9076           po/it.po, po/ja.po, po/sv.po: Update with msgmerge.
9077
9078 Thu Nov 14 04:10:44 GMT 2002  Colin Watson  <cjwatson@debian.org>
9079
9080         * acinclude.m4, configure.in: Include documentation in all calls to
9081           AC_DEFINE and AC_DEFINE_UNQUOTED. Look for acinclude.m4 in
9082           AC_CONFIG_SRCDIR rather than acconfig.h.
9083         * acconfig.h: Remove; the above makes it unnecessary.
9084         * GNUmakefile.in: Remove acconfig.h from stamp-h.in's dependencies.
9085
9086         * autogen.sh: Run autopoint, not gettextize. autogen.sh no longer
9087           takes an optional --copy argument.
9088
9089 Thu Nov 14 04:06:41 GMT 2002  Colin Watson  <cjwatson@debian.org>
9090
9091         * po/.cvsignore: Add messages.mo and remove-potcdate.sed.
9092         * po/it.po: Add missing '=' in charset.
9093
9094 Thu Nov 14 03:53:22 GMT 2002  Colin Watson  <cjwatson@debian.org>
9095
9096         * po/cs.po: Fix an incorrect C format string.
9097         * po/da.po: Fix some out-of-sync C format strings and default PO
9098           file headers. I've contacted the translator about these.
9099
9100 Thu Nov 14 01:57:42 GMT 2002  Colin Watson  <cjwatson@debian.org>
9101
9102         * man-db.gnu, man-db.lsm: Document the switch from SourceForge to
9103           Savannah.
9104
9105 Mon Nov 11 01:50:28 GMT 2002  Colin Watson  <cjwatson@debian.org>
9106
9107         * src/man.c (man): Update the count of found pages with the return
9108           value of display_pages(). This should fix the situation where man
9109           finds a matching entry in the database, discovers that it's
9110           actually a dangling symlink, but fails to print an error message
9111           to say that no page was found.
9112
9113 Mon Nov 11 00:47:38 GMT 2002  Colin Watson  <cjwatson@debian.org>
9114
9115         * man/man1/man.man1 (OPTIONS): Change \[char173] to \[shc]. The
9116           former doesn't appear to display as anything useful these days.
9117         * man/es_ES.88591/man1/man.man1, man/it_IT.88591/man1/man.man1,
9118           man/ja_JP.eucJP/man1/man.man1: Likewise.
9119
9120 Thu Nov  7 02:18:44 GMT 2002  Colin Watson  <cjwatson@debian.org>
9121
9122         * src/man.c (display): Don't do access() checks on an empty man_file
9123           in the display_to_stdout branch, to avoid problems when running
9124           'man -X -l -'. Similar code is already in the other branch. Patch
9125           from Peter Muir <iyhi@yahoo.com>.
9126
9127 Thu Nov  7 01:42:52 GMT 2002  Colin Watson  <cjwatson@debian.org>
9128
9129         * docs/NEWS: Further updates for 2.4.1.
9130         * docs/ToDo: I think the new-style database is OK now.
9131
9132 Thu Nov  7 01:32:29 GMT 2002  Colin Watson  <cjwatson@debian.org>
9133
9134         * src/globbing.c (match_in_directory): Don't use FNM_NOESCAPE flag
9135           to fnmatch().
9136           (look_for_file): Escape paths and names before passing them to
9137           match_in_directory().
9138         * src/globbing.h: Update variable names in prototype.
9139
9140 Wed Oct 23 02:12:43 BST 2002  Colin Watson  <cjwatson@debian.org>
9141
9142         * tools/README: Remove reference to install-manpage.
9143
9144 Wed Oct 23 02:10:15 BST 2002  Colin Watson  <cjwatson@debian.org>
9145
9146         * tools/install-manpage: Remove. It doesn't work at all as far as I
9147           can see, and at least as far as Debian is concerned dh_installman
9148           does a better job.
9149         * GNUmakefile.in: Remove reference to install-manpage.
9150
9151 Wed Oct 23 02:03:18 BST 2002  Colin Watson  <cjwatson@debian.org>
9152
9153         Apply proper copyright and licence notices to all source files.
9154         There are no functional changes here, either to the code or to the
9155         applicable licences, merely clarifications.
9156
9157         * docs/COPYING.LIB: New file, containing version 2.1 of the GNU
9158           LGPL.
9159
9160 Wed Oct 23 01:56:38 BST 2002  Colin Watson  <cjwatson@debian.org>
9161
9162         * tools/install-sh: Update to the version in automake 1.4-p4, which
9163           includes a full (MIT) licence notice.
9164
9165 Sat Oct 12 20:16:48 BST 2002  Colin Watson  <cjwatson@debian.org>
9166
9167         A much-needed complete rewrite of splitline(). The previous version
9168         was extremely difficult to debug (see http://bugs.debian.org/123130)
9169         and got info->pointer and info->whatis wrong quite frequently. This
9170         version is much simpler and I hope more correct.
9171
9172         * src/util.c (trim_spaces): New function.
9173         * include/manconfig.h.in: Prototype trim_spaces().
9174
9175         * src/check_mandirs.c (gripe_bad_store): New function.
9176           (splitline): Remove.
9177           (parse_descriptions, store_descriptions, free_descriptions): New
9178           functions, implementing the whatis parsing that used to be in
9179           splitline() and test_manfile().
9180           (test_manfile): Reduce the complicated loop over splitline() to
9181           calls to the above three functions. Adjust the parsing failure
9182           case to require less deeply nested indentation.
9183         * src/check_mandirs.h: New page_description struct, used to
9184           implement the above. Prototype new functions.
9185         * src/straycats.c: Use the new page_description-based interface.
9186
9187 Wed Sep 25 00:39:16 BST 2002  Colin Watson  <cjwatson@debian.org>
9188
9189         * man/man1/man.man1 (DESCRIPTION): Clarify the purpose of section 7
9190           as "Miscellaneous".
9191
9192 Tue Sep 24 00:22:36 BST 2002  Colin Watson  <cjwatson@debian.org>
9193
9194         * lib/strnlen.c: Don't try to define a weak alias. We aren't libc.
9195
9196 Mon Sep 16 21:14:26 BST 2002  Colin Watson  <cjwatson@debian.org>
9197
9198         * libdb/mydbm.h: datum.dsize must be size_t, not int.
9199
9200 Mon Sep 16 01:07:16 BST 2002  Colin Watson  <cjwatson@debian.org>
9201
9202         * src/compression.c (decompress): If the decompressor fails, print
9203           an error message and return NULL rather than exit()ing
9204           immediately. This allows callers to behave more intelligently.
9205         * src/lexgrog.l (find_name): Cope with decompress() returning NULL.
9206         * src/man.c (local_man_loop): Likewise.
9207         * src/ult_src.c (ult_src): Likewise.
9208
9209 Mon Sep 16 00:25:17 BST 2002  Clint Adams  <schizo@debian.org>
9210
9211         * configure.in: Detect bzip2.
9212         * include/comp_src.h.in (comp_list): Include bunzip2 support if
9213           available.
9214         * include/manconfig.h.in: Add BUNZIP2 definition.
9215
9216 Sun Sep 15 23:53:28 BST 2002  Colin Watson  <cjwatson@debian.org>
9217
9218         Upgrade to gettext 0.11.5.
9219
9220         * configure.in: Remove ALL_LINGUAS. Add AM_GNU_GETTEXT_VERSION.
9221         * po/LINGUAS: New file. Adds sv to the value of the old ALL_LINGUAS.
9222         * po/Makevars: New file.
9223         * po/POTFILES.in: Add src/fakesecurity.c. Change src/lexgrog.c to
9224           src/lexgrog.l.
9225         * tools/mkinstalldirs: Upgrade to current version.
9226
9227 Fri Sep  6 23:58:10 BST 2002  Colin Watson  <cjwatson@debian.org>
9228
9229         * src/mandb.c (xcopy): Don't print the error from fopen() if it's
9230           just ENOENT.
9231
9232 Tue Sep  3 21:53:56 BST 2002  Colin Watson  <cjwatson@debian.org>
9233
9234         * libdb/db_lookup.c (list_extensions): Prevent a theoretical buffer
9235           overflow by allocating names and ext as necessary rather than
9236           using a fixed-length array.
9237           (dblookup): Update callers.
9238         * libdb/db_delete.c (dbdelete): Likewise.
9239         * libdb/db_storage.h: Update prototypes. ENTRIES definition is now
9240           redundant.
9241
9242 Tue Sep  3 20:26:22 BST 2002  Colin Watson  <cjwatson@debian.org>
9243
9244         * libdb/db_delete.c (dbdelete): Construct new multi_content
9245           correctly (names as well as extensions) when deleting some of its
9246           elements.
9247
9248 Fri Aug 30 03:11:42 BST 2002  Colin Watson  <cjwatson@debian.org>
9249
9250         * src/man.c (make_roff_command): Restore the fix from 13 July 2001
9251           that got lost while implementing -E. We need to look up the
9252           correct character set each time a page is displayed, but still
9253           honour any device explicitly set by -E, so test different_encoding
9254           rather than roff_device.
9255
9256 Thu Aug 29 01:14:19 BST 2002  Colin Watson  <cjwatson@debian.org>
9257
9258         * src/man.c (setenv_less): Export the value of $MAN_PN for the
9259           benefit of other pagers (suggestion from Jeff Sheinberg).
9260
9261 Thu Aug 29 00:50:54 BST 2002  Colin Watson  <cjwatson@debian.org>
9262
9263         * src/man.c: dbfilters is no longer a global variable.
9264           (get_preprocessors, make_roff_command, display): Take an extra
9265           dbfilters argument.
9266           (local_man_loop, make_roff_command, display, display_filesystem):
9267           Adjust callers.
9268           (display_database): Likewise. Pass in->filter as the dbfilters
9269           argument to display() rather than setting it globally (and
9270           forgetting to set it back to NULL later).
9271         * src/man.h: Update prototypes.
9272
9273 Sat Aug 17 21:53:38 BST 2002  Colin Watson  <cjwatson@debian.org>
9274
9275         * src/straycats.c (check_for_stray): Initialize info.name and
9276           info.filter. Remove unhelpful __inline__.
9277
9278 Tue Aug 13 18:25:13 BST 2002  Colin Watson  <cjwatson@debian.org>
9279
9280         * src/man.c (usage): Document new option -W, --where-cat,
9281           --location-cat.
9282           (man_getopt): Accept -W.
9283           (display): -w now just prints man_file, while -W prints cat_file.
9284           If both are given, the two filenames are printed separated by a
9285           space, as -w used to do.
9286         * man/man1/man.man1, docs/NEWS: Document this.
9287
9288 Sat Aug 10 13:19:34 BST 2002  Colin Watson  <cjwatson@debian.org>
9289
9290         * docs/NEWS: Preliminary entries for 2.4.1.
9291
9292 Sat Aug 10 13:15:49 BST 2002  Colin Watson  <cjwatson@debian.org>
9293
9294         * lib/hashtable.c (plain_hash_free, hash_install, hash_free): Remove
9295           the type argument and nlist element. All current users can just
9296           use separate hashtables instead.
9297         * lib/hashtable.h: Update prototypes and nlist declaration.
9298         * libdb/db_btree.c: Don't pass dummy type argument to
9299           hash_install().
9300
9301         * src/check_mandirs.c, src/man.c: Include "lib/hashtable.h" rather
9302           than "hashtable.h".
9303         * src/check_mandirs.c (test_manfile): Use hashtable functions on the
9304           new static whatis_hash directly rather than the old functions
9305           which implicitly operated on the global man_hash.
9306           (testmandirs): Since we use full paths as hash keys, there's no
9307           need to clear whatis_hash between hierarchies.
9308         * src/man.c (db_hash_free): New function.
9309           (main, try_db): Use hashtable functions on the new static db_hash
9310           directly rather than the old functions which implicitly operated
9311           on the global man_hash.
9312           (try_db, man): Don't clear hashtables before creating a new
9313           database. This used to segfault in some circumstances.
9314
9315         * src/hashtable.c, src/hashtable.h: Remove.
9316         * src/Makefile.in: Remove mentions of hashtable.o.
9317
9318 Thu Aug  8 02:05:34 BST 2002  Colin Watson  <cjwatson@debian.org>
9319
9320         * po/sv.po: New from Translation Project.
9321
9322 Mon Jul 22 01:20:28 BST 2002  Colin Watson  <cjwatson@debian.org>
9323
9324         * src/check_mandirs.c (splitline): Check for pointer underflow when
9325           trimming leading spaces.
9326
9327 Mon Jul 22 01:18:18 BST 2002  Colin Watson  <cjwatson@debian.org>
9328
9329         * libdb/db_ver.c: Include <string.h> for strcmp().
9330
9331 Wed Jul 17 20:30:30 BST 2002  Colin Watson  <cjwatson@debian.org>
9332
9333         * src/wrapper.c: Include <locale.h> even under --disable-nls.
9334
9335 Mon Jul 15 14:18:56 BST 2002  Colin Watson  <cjwatson@debian.org>
9336
9337         * src/lexgrog.l: Allow EOF to terminate MAN_NAME cleanly.
9338
9339 Thu Jul 11 20:45:36 BST 2002  Colin Watson  <cjwatson@debian.org>
9340
9341         * manual/man_db.me: Version 0.7. Remove version number from \*M
9342           string. Set a default page width of 78 ens for nroff output. Add
9343           myself as an author.
9344         * manual/intro.me (man-db): Mention lexgrog.
9345           (The format of manual pages): Ted and Werner now maintain groff.
9346         * manual/sec.me (Specifying a section): Extensions don't have to be
9347           listed unless a special ordering is desired.
9348         * manual/files.me (Other OS's manual pages): --systems, not
9349           --system.
9350           (NLS manual pages): Likewise. Update Daniel Quinlan's e-mail
9351           address. Correct "/usr/man/man" to "/usr/man" in example manpath
9352           output.
9353           (Displaying latin1 characters on a Linux virtual terminal): Set
9354           sample script in a constant-width font.
9355           (Local cat page directory caches): Modification times are now
9356           compared for equality rather than for the cat file being more
9357           recent.
9358         * manual/format.me (GROFF): tools/nroff-script is no longer
9359           provided.
9360           (Pre-format processors (pre-processors)): Mention the lexgrog scan
9361           for preprocessor hints.
9362         * manual/db.me (Contents of an index database): Clarify where the
9363           true case of a name is stored.
9364           (Accessdb): accessdb is compiled by default now.
9365         * manual/misc.me (NLS message catalogues): Point to the Translation
9366           Project.
9367         * manual/*.me: Minor wording improvements. Apply better *roff style
9368           (newline at each sentence break).
9369
9370         * man/THANKS: Update Jordi Mallach's e-mail address.
9371
9372 Sun Jul  7 22:19:41 BST 2002  Colin Watson  <cjwatson@debian.org>
9373
9374         * tools/config.guess: Update to 2002-05-29.
9375         * tools/config.sub: Update to 2002-06-21.
9376         * tools/README: Describe config.guess and config.sub.
9377
9378         * tools/nroff-script: Remove. groff has had this since 1992, and its
9379           version is considerably more up-to-date.
9380         * GNUmakefile.in, tools/README: Remove references to nroff-script.
9381
9382         * zsoelim/zsoelim.l: -Wall cleanup. Set the nounput option, since we
9383           don't need yyunput().
9384           (open_file): Make sure the compiler knows that compfile and comp
9385           are always initialized.
9386
9387 Sat Jul  6 21:30:07 BST 2002  Colin Watson  <cjwatson@debian.org>
9388
9389         * src/man.c (get_roff_line_length): Widen to match groff 1.18's
9390           defaults.
9391           (add_roff_line_length, make_roff_command): Simplify by using en
9392           units rather than inches.
9393
9394         * src/man.c (main): Slight improvement in the error message for a
9395           missing page. If the name doesn't begin with a digit, never use
9396           gripe_no_name(): having the 'n' section shouldn't mean that 'man
9397           nonexistent' says "What manual page do you want from section
9398           nonexistent?".
9399
9400         * src/man.c (try_section): Check for ult_src() returning NULL.
9401
9402 Wed Jul  3 23:46:31 BST 2002  Colin Watson  <cjwatson@debian.org>
9403
9404         * src/manp.c (add_system_manpath): Make sure the loop that scans for
9405           per-system manpaths always makes progress.
9406
9407 Wed Jul  3 23:14:42 BST 2002  David Martinez Moreno <ender@debian.org>
9408
9409         * man/THANKS: Update e-mail address.
9410         * po/es.po: Update.
9411
9412 Sat Jun 29 14:58:08 BST 2002  Colin Watson  <cjwatson@debian.org>
9413
9414         * src/man.c (main): If a section is given but the lookup fails,
9415           check to see if the section is actually a page name. This allows
9416           man page names that begin with a digit to work much more sanely.
9417           (is_section): If a single-character entry in section_list is a
9418           prefix of the requested section name, return successfully. This
9419           means that e.g. '3tcl' is treated as a valid section even if only
9420           '3' is in section_list.
9421
9422         * src/man.c (is_section), src/man.h (is_section): Constify argument
9423           and return type.
9424
9425         * src/globbing.c (match_in_directory, look_for_file): Reduce
9426           debugging chatter.
9427
9428 Wed Jun 26 20:07:56 BST 2002  Colin Watson  <cjwatson@debian.org>
9429
9430         * src/whatis.c (get_whatis): "(unknown)" => "(unknown subject)",
9431           mainly so that translators know the number and gender.
9432
9433 Wed Jun 26 19:49:49 BST 2002  Colin Watson  <cjwatson@debian.org>
9434
9435         * src/catman.c (usage), src/man.c (usage), src/mandb.c (usage),
9436           src/manpath.c (usage): Make --help output more consistent.
9437         * src/whatis.c (usage): Likewise. "alternate systems" => "alternate
9438           systems'".
9439
9440 Wed Jun 26 14:47:01 UTC 2002  Colin Watson  <cjwatson@debian.org>
9441
9442         * Version: 2.4.0.
9443         * README: Update or remove references to "man-db-2.3" and similar.
9444         * man-db.gnu: Update and sync with GNU.
9445         * man-db.lsm: Update.
9446         * manual/man_db.me: Replace "2.3.x" with "2.4.x".
9447         * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po,
9448           po/it.po, po/ja.po: Update with msgmerge.
9449
9450 Wed Jun 26 14:09:25 BST 2002  Colin Watson  <cjwatson@debian.org>
9451
9452         * src/lexgrog.l (name_sec): Allow whitespace before any closing
9453           double quote. (rman(1) uses '.SH "NAME "'.)
9454
9455 Tue Jun 25 00:29:22 BST 2002  Colin Watson  <cjwatson@debian.org>
9456
9457         * docs/NEWS: Translation credits are in man/THANKS.
9458         * man/THANKS: Update.
9459
9460         * manual/.cvsignore: New file.
9461
9462 Mon Jun 24 02:53:00 BST 2002  Colin Watson  <cjwatson@debian.org>
9463
9464         * libdb/db_store.c (dbstore): Use \t instead of . to separate
9465           case-variant-names and extensions in multi keys.
9466         * libdb/db_lookup.c (list_extensions): Take an extra 'names' array
9467           argument, and split alternately into that and 'ext'.
9468           (dblookup): Update and simplify accordingly; we don't need the
9469           awkward '.' handling any more.
9470         * libdb/db_delete.c (dbdelete): Likewise.
9471         * libdb/db_storage.h (list_extensions): Update prototype.
9472
9473         * include/manconfig.h.in: Database format version 2.4.1.
9474
9475         * manual/db.me (Contents of an index database): Document
9476           case-insensitive name storage format. Bring the documentation of
9477           the database entry format up to date.
9478         * manual/sec.me (Specifying a section): Mention the SECTION
9479           configuration directive.
9480
9481 Fri Jun 21 10:50:40 UTC 2002  Colin Watson  <cjwatson@debian.org>
9482
9483         * src/check_mandirs.c (make_filename): in->comp may be NULL.
9484
9485         * po/fr.po: Update from Translation Project.
9486
9487 Mon Jun 17 09:56:15 UTC 2002  Colin Watson  <cjwatson@debian.org>
9488
9489         * configure.in (ALL_LINGUAS): Add ca.
9490         * src/man.c: Update some comments.
9491         * src/lexgrog.l: Treat \~ as a space. Treat \# as a comment. Treat
9492           .ig as ending the whatis.
9493
9494 Thu Jun 13 18:16:46 BST 2002  Colin Watson  <cjwatson@debian.org>
9495
9496         * po/ca.po: Some updates after review.
9497
9498 Wed Jun 12 18:29:18 BST 2002  Colin Watson  <cjwatson@debian.org>
9499
9500         * docs/ToDo: Updates.
9501         * po/ca.po: New from Translation Project.
9502
9503 Wed Jun  5 14:23:13 BST 2002  Colin Watson  <cjwatson@debian.org>
9504
9505         * po/de.po: Update from Translation Project.
9506
9507 Tue Jun  4 13:15:09 BST 2002  Colin Watson  <cjwatson@debian.org>
9508
9509         * src/man.c (compare_candidates): Return 0 when asked to compare two
9510           candidates we can't distinguish, not -1. The latter broke
9511           multilingual support.
9512
9513 Tue Jun  4 01:33:31 BST 2002  Colin Watson  <cjwatson@debian.org>
9514
9515         * Version: 2.3.90 (for translators).
9516         * docs/NEWS: More updates.
9517         * po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, po/it.po,
9518           po/ja.po: Update with msgmerge.
9519
9520 Tue May 28 00:36:55 BST 2002  Colin Watson  <cjwatson@debian.org>
9521
9522         * libdb/db_lookup.c (dblookup): Check the MATCH_CASE flag in the
9523           case of a single entry as well as multiple entries.
9524
9525 Mon May 27 23:57:26 BST 2002  Colin Watson  <cjwatson@debian.org>
9526
9527         * lib/hashtable.c, lib/hashtable.h: New files, containing the
9528           generic parts of src/hashtable.{c,h}.
9529         * lib/Makefile.in: Add hashtable.c.
9530         * src/hashtable.c (hash, lookup, install): Remove. These functions
9531           have been renamed and moved to lib/hashtable.c.
9532           (free_defn): Rename to man_hash_free and update for new hashtable
9533           API.
9534           (free_hashtab): Update for new hashtable API.
9535         * src/hashtable.h: Update prototypes.
9536
9537         * libdb/db_btree.c (btree_findkey): Check for entries we've seen
9538           before in the current run. These indicate a corrupt database
9539           containing a loop.
9540
9541 Thu May 23 01:50:53 BST 2002  Colin Watson  <cjwatson@debian.org>
9542
9543         * lib/cleanup.h: #endif must not be followed by a token on the same
9544           line.
9545
9546 Thu May 23 00:29:24 BST 2002  Colin Watson  <cjwatson@debian.org>
9547
9548         * src/fake_security.c (get_man_owner): New fake function to match
9549           the real one in src/security.c.
9550         * src/manp.c (mkcatdirs): Chown newly created cat directories to the
9551           MAN_OWNER when running as root.
9552
9553         * .cvsignore, intl/.cvsignore, po/.cvsignore: Ignore a few more
9554           files.
9555         * src/man_db.conf.in: Correct the heading.
9556
9557 Wed May 22 00:06:18 BST 2002  Colin Watson  <cjwatson@debian.org>
9558
9559         * libdb/db_store.c (compare_ids): New function, replacing the
9560           FAVOUR() macro. Without this, the last-but-one commit won't
9561           compile ...
9562           (replace_if_necessary): Use it.
9563         * libdb/db_storage.h: Prototype it.
9564
9565 Mon May 20 03:07:24 BST 2002  Colin Watson  <cjwatson@debian.org>
9566
9567         * src/man.c (setenv_less): New function to set up $LESS. This
9568           honours the new environment variable $MANLESS, which overrides the
9569           usual processing and is copied directly into $LESS.
9570           (make_display_command): Use it.
9571         * man/man1/man.man1 (OPTIONS): Mention $MANLESS alongside the
9572           --prompt option.
9573           (ENVIRONMENT): Document $MANLESS.
9574
9575 Mon May 20 02:16:43 BST 2002  Colin Watson  <cjwatson@debian.org>
9576
9577         * src/man.c (compare_candidates): Compare id fields as a last
9578           resort, so that, for example, real pages sort ahead of whatis-only
9579           names.
9580           (try_section): Set the id field based on the output of ult_src().
9581
9582         * src/man.c (man): When locating pages, don't stop when one is found
9583           in a particular directory and -a wasn't given. That's now the job
9584           of the display code.
9585
9586 Mon May 20 01:16:02 BST 2002  Colin Watson  <cjwatson@debian.org>
9587
9588         * libdb/db_lookup.c (free_mandata_elements): New function, to be
9589           used rather than freeing the addr field directly. This frees name
9590           as well.
9591           (free_mandata_struct): Use it.
9592         * libdb/db_btree.c (dbstore, dblookup): Likewise.
9593         * libdb/db_store.c (dbstore): Likewise.
9594         * src/whatis.c (whatis): Likewise.
9595         * libdb/db_storage.h: Prototype it.
9596
9597         * libdb/db_store.c (replace_if_necessary): Rename in and info to
9598           newdata and olddata, which are more comprehensible. Don't check
9599           that the name fields match here - the caller should do that.
9600           (dbstore): Make sure in->name isn't set on entry, and instead set
9601           it to the basename where necessary. Don't set the name field in
9602           multi keys, which use the proper case.
9603
9604         * src/check_mandirs.c (filename_info): We don't need to examine the
9605           case of base_name here.
9606
9607 Thu May 16 00:47:05 BST 2002  Colin Watson  <cjwatson@debian.org>
9608
9609         * libdb/db_btree.c (btree_flopen): If O_CREAT isn't set, check
9610           whether we're trying to open a zero-length database and, if so,
9611           return immediately. This works around some pathological behaviour
9612           in Berkeley DB.
9613
9614 Mon May  6 03:48:17 BST 2002  Colin Watson  <cjwatson@debian.org>
9615
9616         * libdb/db_store.c (FAVOUR): Parenthesize macro arguments.
9617           (dbstore): In situation (3), use the old lookup key for the name
9618           of the corresponding multi key, not the basename (which may be in
9619           the wrong case).
9620
9621 Sun May  5 17:49:21 BST 2002  Colin Watson  <cjwatson@debian.org>
9622
9623         * src/lexgrog.l: Accept DOS line-ending conventions.
9624
9625 Sun May  5 15:38:34 BST 2002  Colin Watson  <cjwatson@debian.org>
9626
9627         * libdb/db_delete.c (dbdelete): Don't scribble over the list
9628           returned by list_extensions(). We need it shortly afterwards to
9629           construct the new multi key.
9630
9631 Fri May  3 19:43:52 BST 2002  Colin Watson  <cjwatson@debian.org>
9632
9633         * include/manconfig.h.in (LESS_OPTS): Add the -R flag, which helps
9634           with displaying the ANSI colour escapes generated by groff 1.18.
9635
9636 Fri May  3 19:27:40 BST 2002  Colin Watson  <cjwatson@debian.org>
9637
9638         * src/man.c (add_roff_line_length): New function, adding -rLL and
9639           -rLT to the groff command line (supported in groff >= 1.18).
9640           (make_roff_command): Call add_roff_line_length(). The old code to
9641           set .ll and .lt remains for compatibility purposes.
9642
9643 Wed May  1 02:16:11 BST 2002  Colin Watson  <cjwatson@debian.org>
9644
9645         * src/check_mandirs.c (testmandirs): Include the subdirectory name
9646           in the "Updating index cache" message.
9647
9648 Wed May  1 02:05:02 BST 2002  Colin Watson  <cjwatson@debian.org>
9649
9650         * libdb/db_store.c: Make sure the check for whether a replace is
9651           necessary in situation (3) behaves as it did before the multi key
9652           format changes.
9653
9654         * libdb/db_lookup.c (copy_if_set, dash_if_unset): Constify
9655           arguments.
9656         * libdb/db_storage.h: Likewise for prototypes.
9657         * src/convert_name.c (gripe_converting_name): name should be const.
9658         * src/manp.c (get_catpath): suffix should be const.
9659
9660 Wed May  1 00:14:20 BST 2002  Colin Watson  <cjwatson@debian.org>
9661
9662         * src/globbing.c (match_in_directory): Close the directory after
9663           reading through it.
9664
9665 Wed May  1 00:02:53 BST 2002  Colin Watson  <cjwatson@debian.org>
9666
9667         Case-(in)sensitivity in database lookups should work properly now.
9668
9669         * libdb/db_lookup.c (gripe_bad_multi_key): New function.
9670           (make_multi_key): Don't lowercase page any more - that happens
9671           elsewhere.
9672           (list_extensions): We now return names/extensions, not just
9673           extensions.
9674           (dblookup): Multi keys are now formed as "RealCase.1" rather than
9675           just "1". Add a new MATCH_CASE flag which, if set, makes sure the
9676           RealCase part matches. Otherwise the database lookup is
9677           case-insensitive.
9678           (dblookup_exact, dblookup_all): Pass through a match_case flag for
9679           the above.
9680         * libdb/db_delete.c (dbdelete): Cope with new multi key format.
9681         * libdb/db_store.c (dbstore): Construct the multi key from the
9682           original case of the name rather than the lowercased version. Add
9683           the basename to the multi keys created here, as above.
9684         * src/man.c (display_database): Pass match_case flag through to the
9685           database lookup.
9686           (try_db): Likewise.
9687         * src/check_mandirs.c (test_manfile): Make sure lookups are
9688           case-sensitive.
9689         * src/straycats.c (check_for_stray): Likewise.
9690         * src/whatis.c (get_whatis): Likewise.
9691           (whatis): Use a case-insensitive lookup.
9692
9693         * libdb/db_storage.h (struct mandata): name is no longer const; it
9694           should always be freeable if non-NULL. We no longer use "-" to
9695           indicate it being the same as the requested name, except in the
9696           database itself.
9697         * libdb/db_lookup.c (copy_if_set, dash_if_unset): New functions.
9698           (infoalloc): Zero the newly allocated structure.
9699           (free_mandata_struct): Free name if it's set.
9700           (dbprintf, split_content, make_content, dblookup): Cope with the
9701           new convention for info->name.
9702         * libdb/db_store.c (replace_if_necessary): Likewise.
9703         * src/check_mandirs.c (filename_info): Likewise.
9704         * src/man.c (compare_candidates, add_candidate, display_database):
9705           Likewise.
9706         * src/whatis.c (display): Likewise.
9707
9708         * libdb/db_storage.h: Update prototypes.
9709
9710 Mon Apr 29 00:13:58 BST 2002  Colin Watson  <cjwatson@debian.org>
9711
9712         * src/whatis.c (display): Display page names in the correct case
9713           using the new info->name field.
9714
9715 Mon Apr 29 00:00:38 BST 2002  Colin Watson  <cjwatson@debian.org>
9716
9717         * src/whatis.c (use_grep): Put a space in the grep command before
9718           the flags!
9719
9720 Sun Apr 28 23:50:22 BST 2002  Colin Watson  <cjwatson@debian.org>
9721
9722         Pass through much of the code adding 'const' where appropriate. This
9723         should help me avoid various memory management bugs.
9724
9725         Noteworthy changes from this:
9726
9727         * include/manconfig.h.in (struct compression): prog and ext
9728           generally shouldn't be modified directly.
9729         * libdb/db_lookup.c (make_content): dash really has to stay
9730           constant, or the various things that point to it statically will
9731           break other things badly.
9732         * libdb/db_storage.h (struct mandata): The only pointers here that
9733           should generally be modified directly are next and addr.
9734         * libdb/db_store.c (dbstore): Remove debugging code left from
9735           previous checkin.
9736         * src/check_mandirs.c (splitline): Note that we're deliberately
9737           modifying info->whatis here.
9738           (filename_info): Modify to be more const-friendly.
9739         * src/compression.c (comp_file): Add TODO for comp->file.
9740         * src/man.c (find_cat_file): Drop unused sec argument, and update
9741           callers.
9742
9743         * include/manconfig.h.in, libdb/db_storage.h, src/hashtable.h,
9744           src/man.h, src/manp.h: Update prototypes for all of the above.
9745
9746 Fri Apr 26 01:59:46 BST 2002  Colin Watson  <cjwatson@debian.org>
9747
9748         Add case-insensitivity support to the database.
9749
9750         * libdb/db_storage.h (struct mandata): Add 'name' element.
9751         * libdb/db_lookup.c (dbprintf): Print name.
9752           (split_content): Read name from start of data.
9753           (make_content): Prepend name to each data element.
9754           (name_to_key): New function, converting a name to lowercase for
9755           use in database keys.
9756           (make_multi_key): Use name_to_key().
9757           (dblookup): Use name_to_key(). If info->name is "-", set it to the
9758           requested key instead.
9759         * libdb/db_delete.c (dbdelete): Use name_to_key().
9760         * libdb/db_store.c (dbstore): Likewise.
9761
9762         * src/check_mandirs.c (make_filename): Use in->name if name is NULL.
9763           (filename_info): Fill in info->name with either a new req_name
9764           argument or the supplied base_name.
9765           (test_manfile): Update calls to make_filename() and
9766           filename_info().
9767         * src/check_mandirs.h: Update prototype.
9768
9769         * src/man.c (struct candidate): Rename 'name' to 'req_name'.
9770           (display_filesystem, display_database_check): Update accordingly.
9771           (compare_candidates): Sort exact-case matches to the front.
9772           (add_candidate): Update calls to compare_candidate() and
9773           filename_info(). When comparing duplicates, check the name field
9774           in the mandata rather than the requested name.
9775           (try_section): The hack to get the name from info_buffer is no
9776           longer required now that filename_info() fills that in.
9777           (display_filesystem): Update calls to make_filename(). Use the
9778           mandata name for the displayed title rather than the requested
9779           name. Sanity-check in->name != "-".
9780
9781         * include/manconfig.h.in: Bump the database version to 2.4.0.
9782
9783         * lib/xstrndup.c: Prototype strnlen().
9784
9785 Mon Apr 22 00:00:08 BST 2002  Colin Watson  <cjwatson@debian.org>
9786
9787         * src/globbing.c (match_in_directory): New function, implementing a
9788           limited glob() with optional case-insensitivity.
9789           (look_for_file): Use match_in_directory() rather than glob().
9790           Accept new match_case argument.
9791         * src/globbing.h: Update prototype.
9792         * src/check_mandirs.c (purge_whatis, purge_missing): Update calls to
9793           look_for_file().
9794         * src/man.c (usage, man_getopt): Add --ignore-case and --match-case
9795           arguments.
9796           (try_section): Update calls to look_for_file().
9797           (try_section, display_filesystem, display_database,
9798           display_database_check, display_pages, man): Make sure to use the
9799           candidate name rather than the requested name, so that
9800           case-insensitive lookups work.
9801         * man/man1/man.man1 (OPTIONS): Document --ignore-case and
9802           --match-case.
9803
9804         * po/.cvsignore: Ignore man-db.pot rather than man_db.pot.
9805
9806 Thu Apr 18 11:15:11 BST 2002  Matej Vela  <vela@debian.org>
9807
9808         * docs/manpage.example: Use .BR for links to other man pages.
9809
9810 Wed Apr  3 19:54:03 BST 2002  Colin Watson  <cjwatson@debian.org>
9811
9812         * Rename package from man_db to man-db.
9813
9814         * docs/NEWS: Start updating for 2.4.0.
9815
9816 Wed Apr  3 18:44:04 BST 2002  Colin Watson  <cjwatson@debian.org>
9817
9818         * GNUmakefile.in (distclean): Remove autom4te.cache.
9819
9820 Wed Apr  3 18:40:19 BST 2002  Colin Watson  <cjwatson@debian.org>
9821
9822         * .cvsignore: Add autom4te.cache.
9823         * configure.in: Use AC_LIBOBJ rather than setting LIBOBJS directly.
9824           (--enable-setuid): Use quadrigraphs to get [ and ].
9825           (--with-config-file): New option.
9826         * include/Defines.in (config_file): Honour --with-config-file
9827           setting.
9828
9829 Fri Mar 29 21:08:37 GMT 2002  dann frazier <dannf@dannf.org>
9830
9831         * docs/manpage.example.sgml: Update copyright year.
9832
9833 Thu Mar 21 16:22:58 GMT 2002  Colin Watson  <cjwatson@debian.org>
9834
9835         * src/man.c (main): Save the value of $LESS at startup to
9836           $MAN_ORIG_LESS, and use that saved value in preference to $LESS.
9837           This lets recursive invocations of man give less the correct page
9838           titles.
9839
9840 Wed Mar 20 09:37:11 GMT 2002  Eirik Fuller <eirik@hackrat.com>
9841
9842         * src/check_mandirs.c (splitline): Don't create a copy of base_name
9843           as pointer_name.
9844           (test_manfile): Be more careful about pointer reuse across calls
9845           to splitline().
9846
9847 Mon Feb 11 13:01:07 GMT 2002  Michael Piefel  <piefel@debian.org>
9848
9849         * po/de.po: Corrections and updates; convert to UTF-8.
9850         * man/THANKS: Add credit (the contributor of the previous de.po is
9851           unidentified).
9852
9853 Sun Jan 27 03:31:11 GMT 2002  Colin Watson  <cjwatson@debian.org>
9854
9855         * configure.in (ALL_LINGUAS): Add da. Reorder alphabetically.
9856
9857 Sat Jan 12 17:55:12 GMT 2002  Colin Watson  <cjwatson@debian.org>
9858
9859         * src/lexgrog.l: Match a line at a time rather than a character at a
9860           time after the end of the NAME section.
9861
9862         * src/check_mandirs.c (testmandirs): More --debug information.
9863
9864         * include/manconfig.h.in (LESS_OPTS): Prune duplicate -Pm option.
9865           Set -PM too so it works even when $LESS contains -M.
9866         * src/man.c (make_display_command): Substitute prompt_string into
9867           LESS_OPTS twice to accommodate the above.
9868
9869 Mon Jan  7 16:16:02 GMT 2002  Colin Watson  <cjwatson@debian.org>
9870
9871         * src/lexgrog.l: Another {blank_eol} fix, thanks to Peter Clay.
9872
9873 Sun Jan  6 19:05:46 GMT 2002  Colin Watson  <cjwatson@debian.org>
9874
9875         * src/lexgrog.l: Use {blank_eol}, not [blank_eol]. The latter
9876           matches in entirely inappropriate places.
9877
9878 Sun Dec 23 06:17:47 GMT 2001  Colin Watson  <cjwatson@debian.org>
9879
9880         * src/man.c (long_options, usage, man_getopt): Add a new
9881           -E/--encoding option. It behaves a little like -T, except that it
9882           uses nroff instead of troff and outputs to a pager.
9883           (make_roff_command): Only call determine_lang_table() if
9884           roff_device isn't already set.
9885           (display, try_section, display_filesystem, display_database):
9886           Check for different_encoding.
9887         * man/man1/man.man1 (DEFAULTS, OPTIONS): Document -E.
9888
9889 Sun Dec 23 05:23:05 GMT 2001  Colin Watson  <cjwatson@debian.org>
9890
9891         * src/man.c (compare_candidates): Compare sections according to
9892           section_list before comparing them lexicographically.
9893           (add_candidate): Do a better job of inserting each entry at the
9894           right place in the list.
9895
9896 Sun Dec 23 04:47:02 GMT 2001  Colin Watson  <cjwatson@debian.org>
9897
9898         * src/man.c (determine_lang_table): Format man pages in UTF-8 if
9899           that's the current locale's character set.
9900
9901 Sun Dec 23 02:35:24 GMT 2001  Colin Watson  <cjwatson@debian.org>
9902
9903         * src/man.c (popen, pclose): Move to a separate library file ...
9904         * lib/popen.c: ... here.
9905         * acinclude.m4 (MAN_FUNC_PCLOSE): Use AC_LIBOBJ to conditionally
9906           compile this.
9907         * acconfig.h: Remove BROKEN_PCLOSE definition.
9908
9909         Major rewrite of man's searching code to make it maintainable and to
9910         prepare for better sorting of displayed man pages.
9911
9912         * src/man.c (add_candidate): New function to add an item to a list
9913           of candidate pages.
9914           (compare_candidates): New helper function.
9915           (compare_names, compare_mandata_ext): Remove.
9916           (try_section): Use add_candidate() rather than displaying the page
9917           immediately.
9918           (try_db): Likewise.
9919           (display_filesystem): New function to display pages found by
9920           try_section().
9921           (try_db_section): Rename to display_database(), and use the
9922           candidate structures.
9923           (exist_check): Rename to display_database_check(); use candidates.
9924           (locate_page): Pass the candidate list through to try_section()
9925           and try_db().
9926           (display_pages): New function to iterate through a candidate list
9927           and display each entry.
9928           (man): Create a candidate list and pass it to locate_page().
9929           Display pages only after building the full list.
9930
9931 Mon Dec 17 03:40:48 GMT 2001  Colin Watson  <cjwatson@debian.org>
9932
9933         * man/man8/mandb.man8 (EXIT STATUS): Document mandb's exit codes.
9934
9935 Mon Dec 17 03:20:15 GMT 2001  Colin Watson  <cjwatson@debian.org>
9936
9937         * src/whatis.c (long_options): Remove duplicate for --exact.
9938           (word_fnmatch): New function.
9939           (parse_whatis): Match using word_fnmatch() if --wildcard but not
9940           --exact was given.
9941         * man/man1/apropos.man1 (OPTIONS): Document this.
9942           (DESCRIPTION): Fix typographical glitch.
9943
9944 Mon Dec 17 00:53:20 GMT 2001  Colin Watson  <cjwatson@debian.org>
9945
9946         * man/man1/man.man1 (OPTIONS): Mention groff 1.17 and the ps and
9947           utf8 devices.
9948         * man/*/man1/man.man1: Likewise.
9949
9950 Sun Dec  9 03:31:54 GMT 2001  Morten Brix Pedersen  <morten@wtf.dk>
9951
9952         * po/da.po: New file.
9953         * man/THANKS: Add credit.
9954
9955 Sun Dec  9 03:19:57 GMT 2001  Jose Rodriguez  <boriel@airtel.net>
9956
9957         * src/man.c (main): Initialize program_name before calling error().
9958
9959 Fri Dec  7 01:35:31 GMT 2001  Colin Watson  <cjwatson@debian.org>
9960
9961         * configure.in: Detect libdb3, although man-db hasn't been well
9962           tested with it yet.
9963
9964 Fri Dec  7 00:35:53 GMT 2001  Paul Slootman  <paul@wurtel.net>
9965
9966         * src/man.c (main): Delete spurious backslashes in prompt_string.
9967
9968 Wed Nov 21 20:59:14 GMT 2001  Colin Watson  <cjwatson@debian.org>
9969
9970         * po/fr.po: Update from Laurent Pelecq.
9971         * po/.cvsignore: Ignore ChangeLog.
9972
9973 Wed Nov 21 00:48:50 GMT 2001  Colin Watson  <cjwatson@debian.org>
9974
9975         Keeping generated files like the output of gettextize in CVS is bad.
9976
9977         * intl/*, po/ChangeLog, po/Makefile.in.in: Remove.
9978         * autogen.sh: Run gettextize.
9979         * release.sh: When releasing, pass --copy to gettextize.
9980
9981 Wed Nov 21 00:29:26 GMT 2001  Colin Watson  <cjwatson@debian.org>
9982
9983         * src/compression.c (decompress): Free esc_file and esc_filename
9984           once we're finished with them.
9985
9986         * src/man.c (local_man_loop): If argv is a directory, display a
9987           useful error message rather than letting zsoelim get confused.
9988
9989 Mon Nov 19 00:53:03 GMT 2001  Colin Watson  <cjwatson@debian.org>
9990
9991         * libdb/db_lookup.c (copy_datum): Explicitly null-terminate
9992           dat.dptr, since C string-manipulation functions are used on it.
9993
9994 Fri Nov 16 04:28:31 GMT 2001  Colin Watson  <cjwatson@debian.org>
9995
9996         * src/manp.c (add_nls_manpath): Concatenate strings more safely.
9997
9998         Changes adapted from a patch by OGAWA Hirofumi
9999         <hirofumi@mail.parknet.co.jp>:
10000
10001         * acinclude.m4 (MAN_CHECK_BDB): $LIBS, not LIBS, and quote it while
10002           we're here.
10003         * src/manp.c (pathappend): Use strsep() rather than strtok().
10004           (cat_manpath): Likewise.
10005           (add_nls_manpath): Likewise.
10006
10007 Thu Nov  8 11:27:32 GMT 2001  Colin Watson  <cjwatson@debian.org>
10008
10009         * src/man.c (get_preprocessors_from_file): Drop privileges to access
10010           temporary file.
10011
10012 Wed Nov  7 13:34:38 GMT 2001  Colin Watson  <cjwatson@debian.org>
10013
10014         * src/man.c (format_display): Drop privileges throughout. Don't free
10015           command until after it could have been used for an error message.
10016
10017 Sun Oct 14 05:23:20 BST 2001  Colin Watson  <cjwatson@debian.org>
10018
10019         * src/version.c: Include <stdlib.h> for exit().
10020         * include/manconfig.h.in: Remove spurious orphaned #ifdef. Oops.
10021
10022         Spanish translation updates from David Martínez <ender@adi.uam.es>:
10023
10024         * po/es.po, man/es_ES.88591/man1/apropos.man1: Bring up to date.
10025         * man/man1/lexgrog.man1: Fix thinko - s/problems/programs/.
10026
10027 Tue Sep 25 22:46:45 BST 2001  Colin Watson  <cjwatson@debian.org>
10028
10029         * src/whatis.c (get_whatis): Suppress wrong report of a pointer loop
10030           when the second or subsequent element in a pointer chain points to
10031           itself and has a usable whatis.
10032
10033 Wed Sep 19 00:47:55 BST 2001  Colin Watson  <cjwatson@debian.org>
10034
10035         * src/man.c (local_man_loop): Drop privileges throughout.
10036
10037         Documentation corrections thanks to Andreas Dilger
10038         <adilger@turbolabs.com>:
10039
10040         * man/man1/man.man1 and translations (SEE ALSO): Refer to man(7).
10041         * docs/manpage.example, docs/manpage.example.pod,
10042           docs/manpage.example.sgml (SEE ALSO): Move to the end.
10043           (SYNOPSIS, DESCRIPTION, OPTIONS): Add more advice.
10044         * docs/manpage.example (FILES): Restore tabs that had been turned
10045           into spaces.
10046
10047 Tue Sep 18 03:46:00 BST 2001  Colin Watson  <cjwatson@debian.org>
10048
10049         * lib/xstrndup.c: New file.
10050         * lib/Makefile.in: Build it.
10051         * include/manconfig.h.in: Prototype xstrndup().
10052
10053         * src/man.c (compare_names, compare_mandata_ext): New functions.
10054           (try_section): Build title more locally, displaying extensions
10055           correctly. Sort the results of look_for_file().
10056           (try_db_section): Build title even if NROFF_MISSING is defined.
10057           (try_db): Sort data returned from the database.
10058           (locate_page): Look in the filesystem first and then the database,
10059           rather than the other way round.
10060
10061         * src/manp.c (checkpath): Remove; it used to resolve symlinks, but
10062           it doesn't do that any more and I don't think it should.
10063         * src/manp.c: Constify arguments to many functions by either being
10064           more careful not to alter them or by duplicating them.
10065         * src/util.c (is_directory): Likewise.
10066         * src/catman.c, src/man.c, src/mandb.c, src/whatis.c (main):
10067           Simplify calls.
10068         * src/manp.h, include/manconfig.h.in: Update prototypes.
10069         * src/manp.h: add_system_manpath() is static now.
10070
10071         * include/manconfig.h.in: Provide stupid getcwd() emulation with
10072           getwd() if the former isn't available.
10073         * src/man.c (main, format_display): Assume getcwd() is available.
10074         * src/mandb.c (main): Likewise.
10075         * src/manp.c (add_dir_to_path_list): Likewise.
10076
10077         * src/manp.c (add_dir_to_path_list): The checks that manpaths end in
10078           /man or /MAN were overly anal and never compiled in; remove them.
10079
10080         * acinclude.m4 (MAN_PROG_GNU_NROFF): More portable shell for ash.
10081
10082         * src/man.c (lang_table): We use the latin1 alias rather than
10083           iso8859 for all other languages, so do so for Korean too.
10084
10085         * src/lexgrog.l: Prevent the no-op request '.' from eating text on
10086           the next line.
10087           (find_name): Remove trailing spaces as well as leading ones.
10088
10089 Fri Sep  7 19:28:12 BST 2001  Colin Watson  <cjwatson@debian.org>
10090
10091         * Version: 2.3.20.
10092         * docs/NEWS: Update.
10093         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
10094           Update.
10095
10096 Fri Sep  7 00:55:53 BST 2001  Colin Watson  <cjwatson@debian.org>
10097
10098         * GNUmakefile.in (dist): Include other manpage.example formats.
10099
10100         * lib/tempfile.c (create_tempfile): Create with mode 0600.
10101         * src/check_mandirs.c (test_manfile): Drop privileges for temporary
10102           file operations.
10103         * src/lexgrog.l (find_name): Likewise.
10104         * src/man.c (make_roff_command): Likewise.
10105         * src/straycats.c (check_for_stray): Likewise.
10106           (straycats): Likewise.
10107         * src/ult_src.c (ult_src): Likewise.
10108
10109 Thu Sep  6 21:54:05 BST 2001  Colin Watson  <cjwatson@debian.org>
10110
10111         * include/Defines.in: Add lexgrog to list of transformed program
10112           names. Adjust sysconfdir detection.
10113         * src/Makefile.in (install): Really install lexgrog by default.
10114           Create the directory config_file is in rather than sysconfdir.
10115
10116 Wed Sep  5 19:55:01 BST 2001  Colin Watson  <cjwatson@debian.org>
10117
10118         * GNUmakefile.in (dist): Generate a .tar.gz, not a .tgz.
10119         * src/man.c: Korean: roff_device is ascii8, LESSCHARSET is iso8859.
10120         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
10121           Update.
10122
10123 Wed Sep  5 03:42:18 BST 2001  Colin Watson  <cjwatson@debian.org>
10124
10125         * src/compression.c (decompress): Constify arguments.
10126         * include/manconfig.h.in: Likewise.
10127
10128         * src/lexgrog.l (find_name): Deal with '-' and compressed files.
10129         * man/man1/lexgrog.man1 (DESCRIPTION): Document this.
10130           (BUGS): Remove (optimism ...).
10131           (NOTES): New section. lexgrog can't parse .so requests.
10132         * src/Makefile.in: Really build lexgrog by default, and add some
10133           objects.
10134
10135 Wed Sep  5 02:02:20 BST 2001  Colin Watson  <cjwatson@debian.org>
10136
10137         * docs/NEWS: Describe recent changes.
10138
10139         * man/man1/man.man1 (OPTIONS): Document --html.
10140           (ENVIRONMENT): Document $BROWSER.
10141         * man/man8/mandb.man8 (OPTIONS): Explain that --create implies
10142           --no-purge.
10143
10144 Tue Sep  4 18:38:23 BST 2001  Colin Watson  <cjwatson@debian.org>
10145
10146         * src/man.c (format_display): If $BROWSER contains several elements
10147           separated by colons, try each in turn until one succeeds.
10148
10149 Tue Sep  4 02:09:07 BST 2001  Colin Watson  <cjwatson@debian.org>
10150
10151         * src/man.c (format_display): Actually change to the temporary
10152           directory for HTML output.
10153         * src/mandb.c (main): --create implies --no-purge.
10154
10155 Sat Sep  1 17:40:06 BST 2001  Colin Watson  <cjwatson@debian.org>
10156
10157         * lib/mkdtemp.c, lib/mkstemp.c, lib/tempname.c: New files, taken
10158           from glibc 2.2.4.
10159         * lib/Makefile.in, lib/README: Add them.
10160         * configure.in: Check for mkdtemp() and mkstemp().
10161         * lib/tempfile.c (path_search): New function, split from
10162           create_tempfile(). Now checks $TMP as well as $TMPDIR, and ensures
10163           that neither is checked when privileges are raised.
10164           (create_tempfile): Use it. Fix the umask around the call to
10165           mkstemp() rather than calling fchmod() after the fact.
10166           (create_tempdir): New function.
10167         * include/manconfig.h.in: Prototype create_tempdir().
10168
10169         * src/man.c: --html code needs to be guarded by TROFF_IS_GROFF.
10170           (man_getopt): If -H is given, set troff to 1. Add -H to the
10171           "incompatible options" error message.
10172           (make_roff_command): Revert determine_lang_table() special case.
10173           (format_display): Use a temporary directory for HTML output (groff
10174           tends to output several files, including images). Take an extra
10175           argument, used to set the name of the main output file.
10176           (display): Pass man_file to format_display().
10177         * src/util.c (remove_directory): New function.
10178         * include/manconfig.h.in: Prototype it.
10179
10180 Fri Aug 31 22:20:08 BST 2001  Colin Watson  <cjwatson@debian.org>
10181
10182         Initial support for ESR's $BROWSER variable. Not complete yet.
10183
10184         * src/man.c: Remove ENABLE_HTML guards around all the --html code.
10185           Too many #ifdefs clutter the code, and it should at least be
10186           usable to some extent now.
10187           (main): Check $BROWSER before other ways of finding html_pager.
10188           (man_getopt): If -H is given, set roff_device to "html". Reset
10189           htmlout and html_pager with -D.
10190           (make_roff_command): Don't call determine_lang_table() if htmlout
10191           is set.
10192           (make_browser): New function.
10193           (make_display_command): Add case for htmlout being set.
10194           (format_display_and_save): Rename roff_cmd to format_cmd.
10195           (display_catman): Likewise.
10196           (display): Likewise. Add some cases for htmlout being set (always
10197           format, never save a cat page). Split some code out into
10198           format_display().
10199           (format_display): New function.
10200
10201         * src/man.c (main): Save the value of $LESS for later.
10202           (make_display_command): Use setenv() to change $LESS in the
10203           environment rather than nasty shell code.
10204
10205         * src/man.c (main): Don't loop if $LANGUAGE is set but empty.
10206           (display_catman): Fix segfaults due to strappend() misuse.
10207         * src/manp.c (read_config_file): Print dotmanpath, not home (which
10208           might point to freed memory).
10209
10210         * src/man.c (main): Tidy up error message.
10211           (store_line_length): Remove duplicate 'int width' declaration.
10212
10213 Wed Aug 29 20:44:27 BST 2001  Colin Watson  <cjwatson@debian.org>
10214
10215         * man/man8/mandb.man8 (WHATIS PARSING): Move to ...
10216         * man/man1/lexgrog.man1: ... here.
10217
10218         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Run
10219           msgmerge.
10220
10221 Wed Aug 29 01:48:53 BST 2001  Colin Watson  <cjwatson@debian.org>
10222
10223         * man/man1/apropos.man1 (ENVIRONMENT): Fix grammar error.
10224
10225 Wed Aug 29 01:34:33 BST 2001  Colin Watson  <cjwatson@debian.org>
10226
10227         * src/lexgrog.l (usage): New function.
10228           (main): Rewrite. Add command-line options, and make the output
10229           more easily parseable by other programs. By default, the lexgrog
10230           program now only attempts to parse its input as a man page and
10231           only displays the whatis line, although this can be changed on the
10232           command line.
10233         * src/Makefile.in: Include lexgrog in $(PROGS), so that it gets
10234           built by default and linked against version.o.
10235         * man/man1/lexgrog.man1: New man page. Still needs some work.
10236         * man/Makefile.in: Install it. Tolerate it being missing in some
10237           languages (ugly hack).
10238
10239 Tue Aug 21 01:57:44 BST 2001  Colin Watson  <cjwatson@debian.org>
10240
10241         * src/Makefile.in: Link non-setuid programs against fake_security.o
10242           rather than security.o.
10243         * src/fake_security.c: Add a few stub variables to match recent
10244           security.c changes.
10245
10246 Tue Aug 21 01:34:49 BST 2001  Colin Watson  <cjwatson@debian.org>
10247
10248         * src/Makefile.in (install): Don't depend on all, so that the
10249           package isn't recompiled when running 'make install' on a machine
10250           with a skewed clock.
10251           Don't install the wrapper. Install man and mandb in $(bindir)
10252           rather than $(libdir)/man-db.
10253           If lexgrog and globbing have been built, install them in
10254           $(libdir)/man-db rather than $(sbindir).
10255           Ensure $(sbindir) and $(libdir)/man-db exist.
10256
10257 Tue Aug 21 00:40:47 BST 2001  Colin Watson  <cjwatson@debian.org>
10258
10259         * src/man.c (escape_special): Rename to escape_less(). Constify
10260           argument.
10261           (determine_lang_table): Constify argument. Unify some common code.
10262           (make_display_common): Use escape_less() rather than
10263           escape_special().
10264         * docs/NEWS: Document shell escaping.
10265
10266 Sun Aug 19 23:56:36 BST 2001  Colin Watson  <cjwatson@debian.org>
10267
10268         * configure.in: Compile with -Wall by default.
10269         * src/compression.c: Include "security.h".
10270         * src/manp.c: Likewise.
10271         * src/check_mandirs.c (purge_whatis): Correct return value when
10272           purging a WHATIS_MAN entry with a missing target.
10273         * src/whatis.c (get_whatis): Remove unused variables 'pointer' and
10274           'ext'.
10275         * src/man.c: Include <time.h> for time().
10276           (local_man_loop): Remove unused variable 'dir'.
10277           (make_roff_command): Remove unused variable 'tmpfile'.
10278           (exist_check): Print 'loc' in pointer format rather than string
10279           format (it's a struct mandata *).
10280         * src/wrapper.c: Include <grp.h> for initgroups().
10281
10282 Sun Aug 19 13:16:01 BST 2001  Colin Watson  <cjwatson@debian.org>
10283
10284         * src/manp.c (iterate_over_list): New function (get_from_list() can
10285           only get the first matching element).
10286           (get_manpath): Use iterate_over_list() to get multiple matching
10287           MANPATH_MAP entries.
10288
10289 Sun Aug 19 13:02:01 BST 2001  Colin Watson  <cjwatson@debian.org>
10290
10291         * src/man.c (popen, pclose): Rely on the BROKEN_PCLOSE check in
10292           configure rather than checking architectures here.
10293           (man_getopt): Wrap the remaining code related to --html in '#ifdef
10294           ENABLE_HTML'.
10295           (make_roff_command): Remove HAS_TROFF and NROFF_MISSING asserts; I
10296           think they're unnecessarily unwieldy here.
10297           (tmp_cat_filename): Constify argument.
10298           (commit_tmp_cat): Constify arguments.
10299           (display_catman): New function, split from display().
10300           (display): Use display_catman(). Don't shadow status from an outer
10301           scope.
10302           (try_section): Simplify cat page case.
10303
10304         * src/util.c (escape_shell): New function.
10305         * include/manconfig.h.in: strappend() is no longer in util.c.
10306           Prototype escape_shell().
10307         * src/man.c (make_roff_command): Use escape_shell() liberally to
10308           protect against strange characters.
10309           (make_display_command): Likewise. Add special handling for $MAN_PN
10310           in the less prompt string, since the environment variable is no
10311           longer parsed by the shell.
10312           (display_catman): Likewise.
10313           (display): Likewise.
10314         * src/whatis.c (use_grep): Likewise.
10315
10316         * src/catman.c (main): Print a warning if setlocale() fails.
10317         * src/man.c (main): Likewise.
10318         * src/mandb.c (main): Likewise.
10319         * src/manpath.c (main): Likewise.
10320         * src/whatis.c (main): Likewise.
10321         * src/wrapper.c (main): Explain why this doesn't need to warn if
10322           setlocale() fails.
10323
10324 Thu Aug  9 15:10:26 BST 2001  Colin Watson  <cjwatson@debian.org>
10325
10326         * configure.in: Require autoconf 2.50a (for AS_VAR_*).
10327         * src/wrapper.c: If DEBUG is defined, allow _man and _mandb as
10328           argv[0] names as well as man and mandb, rather than instead of
10329           them.
10330         * docs/NEWS: Document lexgrog improvement. The mkstemp() work was
10331           more an improvement than a fix, as I don't think it was
10332           exploitable.
10333
10334 Mon Aug  6 02:22:38 BST 2001  Colin Watson  <cjwatson@debian.org>
10335
10336         * src/lexgrog.l: groff requests aren't case-sensitive, so stop the
10337           preprocessor detection thinking they are.
10338
10339 Mon Aug  6 01:26:26 BST 2001  Colin Watson  <cjwatson@debian.org>
10340
10341         * lib/tempfile.c (create_tempfile): Use mode 0644 rather than mode
10342           0600 so that it can be read with different privilege levels.
10343
10344 Thu Aug  2 00:12:41 BST 2001  Colin Watson  <cjwatson@debian.org>
10345
10346         * lib/tempfile.c: New file. create_tempfile() does sane
10347           mkstemp()-like temporary file creation, while searching through
10348           $TMPDIR, P_tmpdir, and /tmp in the style of tempnam().
10349         * include/manconfig.h.in: Prototype create_tempfile().
10350         * lib/tempnam.c: Remove, as we no longer use it.
10351         * lib/Makefile.in, lib/README: Remove mentions of tempnam.c, and use
10352           tempfile.c instead.
10353         * configure.in: Don't replace tempnam().
10354
10355         * src/compression.c (create_ztemp): Use create_tempfile() rather
10356           than tempnam().
10357         * src/man.c (create_stdintmp): Likewise.
10358         * zsoelim/zsoelim.l (open_file): Likewise.
10359         * src/straycats.c (straycats): Use create_tempfile() rather than
10360           mkstemp().
10361
10362         * src/compression.c (decompress): Call remove_ztemp() rather than
10363           duplicating code.
10364           (remove_ztemp): Only close the fd if it looks valid.
10365         * src/man.c (remove_stdintmp): Remember to free stdin_tmpfile.
10366
10367         * acinclude.m4: Correct AC_VAR_* to AS_VAR_*.
10368         * src/util.c (is_changed): Fix comment.
10369
10370         * docs/NEWS: Preliminary entries for 2.3.20.
10371
10372 Tue Jul 24 02:17:53 BST 2001  Colin Watson  <cjwatson@debian.org>
10373
10374         * docs/manpage.example: Some cleanups. Use more conventional
10375           formatting for references to other man pages.
10376         * docs/manpage.example.pod, docs/manpage.example.sgml: New files.
10377
10378 Mon Jul 16 16:42:46 BST 2001  Colin Watson  <cjwatson@debian.org>
10379
10380         * src/lexgrog.l: Restore fr_name to the NAME regex.
10381
10382 Fri Jul 13 11:51:40 BST 2001  Colin Watson  <cjwatson@debian.org>
10383
10384         * man/de_DE.ascii: Remove (Latin-1 variant still exists).
10385
10386 Fri Jul 13 02:35:39 BST 2001  Colin Watson  <cjwatson@debian.org>
10387
10388         * */.cvsignore: New files.
10389
10390         * src/man.c (make_roff_command): Look up the correct character set
10391           each time a page is displayed, not just the first time.
10392
10393 Thu Jul 12 01:11:41 BST 2001  Colin Watson  <cjwatson@debian.org>
10394
10395         * src/lexgrog.l: Split out NAME-matching regex into one regex per
10396           language. Add support for cs, fi, hu, nl, and pl, not forgetting
10397           Latin (for Lingua::Romana::Perligata(3pm), of course).
10398           (add_separator_to_whatis): New function, to allow trimming the
10399           first space from the " - " separator.
10400           (main): Rewrite; find_name()'s prototype changed long ago.
10401
10402 Tue Jul 10 14:37:51 BST 2001  Colin Watson  <cjwatson@debian.org>
10403
10404         * src/util.c (is_newer): Rename to ...
10405           (is_changed): ... this. We now check whether the cat page has a
10406           different timestamp from the man page, rather than simply whether
10407           it is newer.
10408           Remove hack for archivers that preserve timestamps: it's no longer
10409           needed.
10410         * include/manconfig.h.in: Rename is_newer() prototype to
10411           is_changed().
10412
10413         * src/man.c (commit_tmp_cat): Set the modification time of a created
10414           cat page to be the same as the corresponding man page.
10415           (display): stat() the man page so that commit_tmp_cat() can get
10416           its modification time.
10417           Use is_changed() rather than is_newer().
10418
10419 Sun Jul  8 16:06:43 BST 2001  Colin Watson  <cjwatson@debian.org>
10420
10421         * src/whatis.c (get_whatis): Allow an entry to point to itself if it
10422           contains a non-empty whatis field. This occasionally happens when
10423           multiple names and descriptions are present, and it's easier to
10424           tolerate this.
10425           (display): If an entry points to itself, don't display the pointer
10426           in square brackets.
10427
10428         * include/sections.list: Remove; it's no longer needed.
10429         * GNUmakefile.in (dist): Don't install it.
10430         * include/Defines.in: Don't reference it. Also remove definition of
10431           message_catalogue (obsoleted by gettext).
10432
10433         * include/manconfig.h.in (LESS_OPTS): Don't include $LESS.
10434         * src/man.c (make_display_command): Include $LESS here instead. Put
10435           it after prompt_string rather than before, so that long options in
10436           $LESS work.
10437
10438 Sat Jul  7 16:32:24 BST 2001  Colin Watson  <cjwatson@debian.org>
10439
10440         * src/man.c (determine_lang_table): Fix silly bracketing typo that
10441           caused none of the lang_table entries to match.
10442
10443 Thu Jul  5 15:48:42 BST 2001  Colin Watson  <cjwatson@debian.org>
10444
10445         * Version: 2.3.19.
10446
10447         * docs/NEWS: Update.
10448         * man-db.gnu: Update. Change formatting to something closer to that
10449           currently in the Free Software Directory CVS repository.
10450         * man-db.lsm: Update.
10451
10452 Thu Jul  5 14:27:17 BST 2001  Colin Watson  <cjwatson@debian.org>
10453
10454         * man/man5/manpath.man5 (FORMAT): MANDB_MAP now only affects
10455           setuidness when in the system configuration file.
10456         * src/man_db.conf.in: Likewise.
10457
10458         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po:
10459           Update.
10460
10461 Wed Jul  4 13:39:40 BST 2001  Colin Watson  <cjwatson@debian.org>
10462
10463         The product of some hacking at the Debian Conference. Enjoy.
10464
10465         * docs/NEWS: Describe recent changes.
10466
10467         * include/manconfig.h.in: Add SYSTEM_CAT and USER_CAT defines.
10468           Move includes from security.c to ...
10469         * src/security.h: ... here (new file).
10470         * src/man.c: Include security.h.
10471         * src/mandb.c: Likewise.
10472         * src/security.c: Likewise.
10473
10474         * src/manp.c (add_mandb_map): Take an additional parameter, user.
10475           Use the new MANDB_MAP_USER flag instead of MANDB_MAP if it is set.
10476           (cat_manpath): Look at user catpaths before system catpaths.
10477           (add_to_dirlist): Take user parameter, passed through to
10478           add_mandb_map().
10479           (read_config_file): Call add_to_dirlist() with user set for
10480           ~/.manpath, and reset for /etc/manpath.config (security fix).
10481           (get_mandb_manpath): Allow user manpaths.
10482           (global_catpath): Rename to get_catpath(), and only allow it to
10483           handle user catpaths (from ~/.manpath) as well if explicitly
10484           requested.
10485           (is_global_mandir): Note that this is trusted.
10486         * src/manp.h: Reflect renaming of global_catpath() to get_catpath().
10487
10488         * src/man.c (need_to_rerun): Use get_catpath() instead of
10489           global_catpath().
10490           (make_roff_command): Likewise.
10491           (display): Likewise.
10492           (find_cat_file): Likewise.
10493           (try_db_section): Likewise.
10494           (try_db): Likewise.
10495         * src/catman.c (main): Likewise (check only user mandirs).
10496         * src/mandb.c (main): Likewise (check only user mandirs).
10497         * src/straycats.c (straycats): Likewise (check only with user
10498           mandirs).
10499         * src/whatis.c (search): Likewise (check only with user mandirs).
10500
10501         * src/man.c (need_to_rerun): Use is_global_mandir() rather than
10502           global_catpath() to decide whether to drop privileges.
10503         * src/mandb.c (main): Likewise. Unify common code for system and
10504           user catpaths.
10505
10506         * src/man.c (make_roff_command): Check catpath even if
10507           global_manpath is false.
10508           (locate_page): Simplify slightly.
10509
10510         * src/security.c (get_man_owner): New function: gets and caches the
10511           password entry structure for MAN_OWNER.
10512         * src/man.c (commit_tmp_cat): If running as root, chown created cat
10513           pages to MAN_OWNER.
10514
10515 Sun Jul  1 01:58:33 BST 2001  Colin Watson  <cjwatson@debian.org>
10516
10517         * src/check_mandirs.c (splitline): Don't initialize the pointer
10518           field here; instead, control it from ...
10519           (test_manfile): ... here.
10520           Change the logic for multiple name/description blocks again.
10521           Remove misguided special-casing of the first name in a block. Set
10522           the id field more carefully, depending on string equality instead
10523           of ordering. Avoid scribbling over lg.whatis when a later
10524           splitline() needs it. Don't call splitline() if whatis parsing
10525           failed.
10526
10527         * src/check_mandirs.c (purge_normal): New function, factored out
10528           from purge_missing().
10529           (purge_whatis): New function to decide whether to purge a
10530           WHATIS_MAN entry.
10531           (purge_missing): Use both of these.
10532           (testmandirs): purge_whatis() sometimes needs to ensure a
10533           hierarchy is rescanned. Honour this.
10534           Improve indentation levels.
10535         * src/mandb.c (main): Reset force_rescan before each purge.
10536
10537         * src/lexgrog.l: Treat '..' as a no-op request.
10538
10539 Sun Jul  1 01:38:13 BST 2001  Colin Watson  <cjwatson@debian.org>
10540
10541         * manual/misc.me (Modes of operation): Mention new requirement to
10542           use --update to update databases.
10543           mandb knows how to delete old entries now, so remove a sentence
10544           saying it can't.
10545
10546         * src/man.c: More in the quest for sane indentation levels.
10547
10548         * man/man1/apropos.man1: Textual cleanups.
10549         * man/man1/man.man1: Likewise.
10550         * man/man1/manpath.man1: Likewise.
10551         * man/man1/whatis.man1: Likewise.
10552         * man/man1/zsoelim.man1: Likewise.
10553         * man/man5/manpath.man5: Likewise.
10554         * man/man8/accessdb.man8: Likewise.
10555         * man/man8/catman.man8: Likewise.
10556
10557         * man-db.lsm: Reformatted as per the LSM.README.
10558
10559 Thu Jun 28 22:52:04 BST 2001  Colin Watson  <cjwatson@debian.org>
10560
10561         * src/man.c (try_db_section): Downgrade whatis refs warning to a
10562           debugging message, as it's rather noisy for a stable release.
10563
10564 Thu Jun 28 22:38:41 BST 2001  Colin Watson  <cjwatson@debian.org>
10565
10566         * src/check_mandirs.c (gripe_rwopen_failed): New function.
10567           (testmandirs): Use it.
10568           (purge_missing): New function to purge database entries whose
10569           associated manual pages have been deleted.
10570         * src/check_mandirs.h: Prototype purge_missing().
10571
10572         * src/mandb.c (main): New --no-purge option. Unless it is used,
10573           purge_missing() is called on each database before calling mandb().
10574           Don't call straycats() until after the temporary database has been
10575           moved to its permanent location. Make sure all cleanup code is
10576           called with dropped privileges.
10577           Add statistics message for purged entries, and separate messages
10578           for the benefit of translations.
10579           When --test is given, only assume --quiet if --debug wasn't given.
10580           (usage): Describe --no-purge.
10581
10582         * src/man.c: Move extension's storage to ...
10583         * src/globbing.c: ... here.
10584           (look_for_file): Constify string arguments.
10585         * src/man.h: Move prototype of look_for_file() to ...
10586         * src/globbing.h: ... here (new file).
10587
10588         * src/manp.c (pathappend): Only append the new element(s) if any
10589           were left after removing duplicates.
10590           (read_config_file): Make sure what we free was actually allocated.
10591
10592         * src/Makefile.in (mandb): Link with globbing.o.
10593
10594         * man/man8/mandb.man8 (OPTIONS): Document --no-purge.
10595           General textual cleanup.
10596
10597         * src/accessdb.c (main): Move content into a tighter scope.
10598
10599         * src/security.c (drop_effective_privs): Style nit.
10600
10601 Thu Jun 28 13:28:13 BST 2001  Colin Watson  <cjwatson@debian.org>
10602
10603         * man/man1/man.man1 (ENVIRONMENT): Document $MANWIDTH.
10604
10605 Thu Jun 28 13:15:04 BST 2001  Colin Watson  <cjwatson@debian.org>
10606
10607         * src/man.c (store_line_length, get_roff_line_length): New
10608           functions, adapted from Andries Brouwer's man.
10609           (main): Outside catman mode, find out and store the line length.
10610           (make_roff_command): Outside catman mode, retrieve the stored line
10611           length and feed a .ll request into the pipeline if it's
10612           non-standard. We let recent groff handle the page length.
10613           (display): Don't even consider saving the cat page if save_cat is
10614           already false.
10615           (get_preprocessors): If the database says no preprocessors are to
10616           be used, it's OK to save the cat page.
10617
10618 Thu Jun 28 01:44:02 BST 2001  Colin Watson  <cjwatson@debian.org>
10619
10620         * src/man_db.conf.in (SECTION): Remove guarantee that ties will be
10621           broken in lexical order within sections. It's rather complicated
10622           to be sure of that right now, and it should rarely matter.
10623
10624         * docs/ToDo: lexgrog learnt how to detect preprocessors ages ago.
10625
10626 Thu Jun 28 01:02:32 BST 2001  Colin Watson  <cjwatson@debian.org>
10627
10628         * src/manp.c (gripe_stat_file): Downgrade the warning if a manpath
10629           element doesn't exist to a debugging message (affects people
10630           without a /usr/local/share/man, for example).
10631           (read_config_file): Additional debugging message. Free home if it
10632           gets allocated.
10633
10634 Thu Jun 28 00:35:09 BST 2001  Colin Watson  <cjwatson@debian.org>
10635
10636         The caching cleanup I've been promising for weeks. Here be dragons.
10637
10638         * src/man.c (man): Only update database caches if --update is given.
10639           (main): --all no longer implies a database update (you can always
10640           use --all --update if you need that).
10641
10642         * man/man1/man.man1 (OVERVIEW): It's no longer necessarily man's job
10643           to keep the caches up to date; use --update to get that.
10644           (DEFAULTS): Likewise. Some rationale. Mention globbing fallback.
10645           (OPTIONS/--local-file): Fix typo.
10646           (OPTIONS/--update): New description. Only useful with setuid man.
10647         * manual/misc.me (Modes of operation): man will only update database
10648           entries if the --update flag is used.
10649
10650 Tue Jun 26 22:10:07 BST 2001  Colin Watson  <cjwatson@debian.org>
10651
10652         * src/lexgrog.l: More cleanup. No substantive changes.
10653         * include/manconfig.h.in: Likewise. Also bring xrealloc() prototype
10654           into sync.
10655
10656         * src/mandb.c (main): Allow root as well as MAN_OWNER to work on
10657           system manpaths.
10658
10659 Tue Jun 26 03:45:01 BST 2001  Colin Watson  <cjwatson@debian.org>
10660
10661         * src/man_db.conf.in (SECTION): Add a little more advice about where
10662           to list sections with extensions.
10663
10664         * src/manp.c (add_to_dirlist): Add SECTIONS as an alias for SECTION,
10665           since I keep getting it wrong and I came up with it in the first
10666           place. Both make sense in different situations.
10667
10668         * src/check_mandirs.c (splitline): Trim trailing spaces off names
10669           and descriptions. If the given base_name contains a comma, only
10670           use the part of the name before it as the target for pointers.
10671
10672         * src/whatis.c (get_whatis): Unroll recursion into a finite loop to
10673           avoid infinite recursion if the database contains a pointer loop.
10674           Add the page name as an argument so that a warning can be printed.
10675           (display): Pass the new argument to get_whatis().
10676           (apropos): Recommend 'mandb --create' rather than plain 'mandb' if
10677           the database gets corrupted.
10678
10679         * src/lexgrog.l: Ignore no-op groff requests (e.g. '.').
10680           New variable, fill_mode. Reset it when .nf is encountered, set it
10681           when .fi is encountered.
10682           (newline_found): If fill_mode is set, add 0x11 instead of a space.
10683
10684 Mon Jun 25 02:55:36 BST 2001  Colin Watson  <cjwatson@debian.org>
10685
10686         * docs/NEWS: Describe recent changes. Add dates of old releases.
10687
10688         * include/manconfig.h.in: Move check_mandirs.c prototypes to ...
10689         * src/check_mandirs.h: ... here (new file).
10690         * src/man.c: Include check_mandirs.h.
10691         * src/mandb.c: Likewise.
10692         * src/man.h (make_filename): Move prototype to check_mandirs.h.
10693
10694         * src/check_mandirs.c (test_manfile): Split parsing of file names
10695           into mandata structures into a new function ...
10696           (filename_info): ... this.
10697           (test_manfile): Calculate length of file name minus compression
10698           extension separately from the parsing, and do so whether COMP_SRC
10699           is defined or not.
10700
10701         * src/man.c (try_section): Use filename_info() to find out if the
10702           section of a glob-located file is different from the current
10703           section and is mentioned elsewhere in the configuration file. If
10704           so, ignore that file in the current section.
10705
10706 Mon Jun 25 01:30:24 BST 2001  Colin Watson  <cjwatson@debian.org>
10707
10708         * src/man.c (man_getopt): Conditionalize gxditview initialization on
10709           TROFF_IS_GROFF. As a bonus, this squashes a compiler warning.
10710           (man): Remove some unreferenced cruft, while I'm in the process of
10711           fixing up multi-character sections.
10712
10713         * src/Makefile.in: Build intermediate man.o and mandb.o objects, so
10714           that changing other objects just requires a relink.
10715
10716         * src/globbing.c (look_for_file): Print the layout in debugging mode
10717           only when it's first parsed.
10718
10719 Sun Jun 24 18:47:20 BST 2001  Colin Watson  <cjwatson@debian.org>
10720
10721         * configure.in (--with-db): Improve help output formatting.
10722
10723         * manual/intro.me (Arguments to configure): Document
10724           --enable-mandirs.
10725         * README: Update.
10726
10727         * manual/Makefile ($(manual).html): Improve grohtml invocation.
10728           (realclean): Remove generated .png files.
10729
10730 Sun Jun 24 17:22:53 BST 2001  Colin Watson  <cjwatson@debian.org>
10731
10732         * src/man.c (try_section): Break if a page has been found and --all
10733           wasn't given.
10734           (try_db): Print extension in debug mode. Compare against requested
10735           section if the extension is a section in its own right, to avoid
10736           duplication.
10737         * src/man_db.conf.in: It's SECTION, not SECTIONS.
10738
10739         * configure.in: --enable-mandirs=OS defines how the manual page
10740           hierarchy is laid out (GNU, HPUX, Solaris, IRIX). If unset,
10741           globbing behaves as before.
10742         * acconfig.h: Add MANDIR_LAYOUT.
10743         * src/globbing.c (parse_layout): New function.
10744           (look_for_file): Associate each glob with a layout.
10745
10746         * configure.in: Don't check for off_t (only used by gettext).
10747
10748 Sat Jun 23 15:23:14 BST 2001  Colin Phipps  <cph@cph.demon.co.uk>
10749
10750         * zsoelim/zsoelim.l (open_file): Supply a format string to error().
10751
10752 Sat Jun 23 15:15:41 BST 2001  Colin Watson  <cjwatson@debian.org>
10753
10754         * ult_src.c (ult_src): Restore the original mantree to the start of
10755           basename before calling test_for_include(), in case ult_softlink()
10756           went outside the mantree.
10757           (ult_softlink): Make debugging message print the absolute path.
10758
10759 Tue Jun 19 02:33:40 BST 2001  Colin Watson  <cjwatson@debian.org>
10760
10761         * src/man.c (man): Allow sections to be more than one character, and
10762           trim them for use in directory names.
10763         * src/manp.c (read_config_file): Read ~/.manpath first, as entries
10764           are added the other way around now.
10765
10766 Mon Jun 18 18:55:39 BST 2001  Colin Watson  <cjwatson@debian.org>
10767
10768         * src/manp.c (add_sections, get_sections): New functions.
10769           (add_to_dirlist): Recognize new SECTIONS directive.
10770         * src/manp.h (iterate_catlist, start_iterator): Remove (not used).
10771           (get_sections): New prototype.
10772         * src/man.c (get_section_list): Use get_sections() instead of
10773           std_sections if it returns a non-empty list.
10774         * src/man_db.conf.in: Add documentation of SECTIONS, and a default
10775           line. The documentation is still inaccurate (extensions don't work
10776           well yet).
10777         * include/manconfig.h.in (STD_SECTIONS): Reduce to only
10778           single-character sections; the rest will be set in the
10779           configuration file.
10780
10781         * src/manp.c (add_to_list): Add to the tail rather than the head
10782           (needed for SECTIONS, probably makes other things more intuitive).
10783           (read_config_file): Restore print_list() in debug mode.
10784
10785         * src/check_mandirs.c: Add copyright notice and change information.
10786         * src/lexgrog.l: Likewise.
10787         * src/man.c: Likewise.
10788         * src/mandb.c: Likewise.
10789
10790         * src/compression.c (get_ztemp): Remove redundant test.
10791
10792         * src/man.c (get_preprocessors_from_file): Change an = to ==.
10793
10794         * src/wrapper.c (main): Cosmetic improvements.
10795
10796 Sat Jun 16 19:22:51 BST 2001  Colin Watson  <cjwatson@debian.org>
10797
10798         * src/straycats.c (check_for_stray): Check that
10799           canonicalize_file_name() succeeded, not that it failed. (I'm
10800           pretty sure that this is the last instance of this now.)
10801
10802 Sat Jun 16 18:30:09 BST 2001  Colin Watson  <cjwatson@debian.org>
10803
10804         * libdb/db_store.c: Move id-favouring logic to a macro. If
10805           FAVOUR_STRAYCATS is set, make sure a WHATIS_MAN entry won't
10806           inadvertently replace a STRAY_CAT.
10807
10808         * configure.in: Don't strip binaries in LDFLAGS (GNU standards).
10809
10810         * src/check_mandirs.c (testmandirs): Check that opendir() succeeded,
10811           not that it failed!
10812           (testmandirs): Instead of initializing info.pointer here,
10813           initialize it ...
10814           (splitline): ... here.
10815           (testmandirs): Shuffle whatis logic some more, to make sure pages
10816           that really are in the filesystem don't end up as WHATIS_MAN. This
10817           reverts part of the change of 26 May 2001.
10818
10819         * man/man8/mandb.man8: Document the expected format of NAME sections
10820           for whatis parsing, and some common reasons why parsing fails.
10821
10822 Tue Jun 12 22:20:17 BST 2001  Colin Watson  <cjwatson@debian.org>
10823
10824         * docs/NEWS: More 2.3.19 stuff.
10825
10826 Sun Jun 10 14:05:10 BST 2001  Gordon Sadler  <gbsadler1@lcisp.com>
10827
10828         * man/man1/manpath.man1 (ENVIRONMENT): Replace 'semicolon' with
10829           'colon' throughout.
10830
10831 Sun Jun 10 13:59:04 BST 2001  Colin Watson  <cjwatson@debian.org>
10832
10833         * src/manp.c (pathappend): Fix infinite loop when adding a manpath
10834           entry which is a substring of an existing entry.
10835
10836 Sun Jun 10 13:49:02 BST 2001  Colin Watson  <cjwatson@debian.org>
10837
10838         * src/check_mandirs.c (testmandirs): Treat EROFS like EACCES while
10839           opening a database read-write (i.e. only print debug messages).
10840           (create_db): Likewise.
10841           src/man.c (open_cat_stream): Likewise.
10842           (try_db_section): Likewise.
10843
10844         * src/straycats.c (check_for_stray): Carry on gracefully rather than
10845           exiting if a straycat filter fails.
10846
10847         * src/manp.c (pathappend): Remove duplicate entries.
10848
10849         * src/lexgrog.l: Allow .LP, .PP, and .P as well as .br between
10850           whatis definitions.
10851
10852 Sat Jun  2 14:34:59 BST 2001  Colin Watson  <cjwatson@debian.org>
10853
10854         * configure.in: Give our English man pages the same date format as
10855           the other locales.
10856
10857         * src/straycats.c: Use 'col -bx' rather than 'col-bx'.
10858
10859 Mon May 28 14:56:35 BST 2001  Colin Watson  <cjwatson@debian.org>
10860
10861         * include/manconfig.h.in: Since it isn't sensible to define debug
10862           (-d options at run-time do just as well), remove the commented
10863           definition.
10864         * include/manconfig.h.in, src/catman.c, src/check_mandirs.c,
10865           src/compression.c, src/man.c, src/mandb.c, src/manpath.c,
10866           src/whatis.c: Remove instances of '#ifndef debug'.
10867         * src/util.c: debug is already declared extern in manconfig.h.
10868
10869 Mon May 28 14:30:38 BST 2001  Colin Watson  <cjwatson@debian.org>
10870
10871         * tools/README: Describe chconfig and install-manpage.
10872         * man/man5/manpath.man5, docs/ToDo: Document the DEFINE directive.
10873
10874         * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c,
10875           src/whatis.c: Remove redundant strtok() declaration.
10876         * src/check_mandirs.c: Declare strpbrk().
10877
10878         * src/*: Global style cleanup. Sorry about the large diff, but it
10879           had to happen sometime: I can't stick with the prevailing coding
10880           style when there are several to choose from! No meaningful code
10881           change, although I disentangled a few assignments from if
10882           conditions and rearranged a few other sections.
10883         * po/*: Update accordingly.
10884
10885 Sun May 27 18:32:41 BST 2001  Colin Watson  <cjwatson@debian.org>
10886
10887         * acinclude.m4 (MAN_CHECK_BDB): New macro to check for Berkeley DB.
10888         * configure.in: Use it.
10889
10890         * src/check_mandirs.c (test_manfile): Be more accurate about finding
10891           the " - " at the end of a series of whatis names, and make sure to
10892           skip commas between them. Add more commentary.
10893
10894         * src/man.c (open_cat_stream): Return NULL if the cat page is
10895           unwriteable, rather than wasting time compressing to /dev/null.
10896           (format_display_and_save): Give up if both outing and saving
10897           become false.
10898
10899 Sun May 27 18:00:00 BST 2001  Colin Watson  <cjwatson@debian.org>
10900
10901         * docs/NEWS: Preliminary entries for 2.3.19. Add current version
10902           number throughout as well as just "Major changes since ...".
10903         * manual/misc.me (Modes of operation): mandb doesn't necessarily
10904           have to be rerun any more, as the filesystem will be checked if
10905           the database doesn't return anything. man and mandb can be built
10906           for setuid operation but installed non-setuid now.
10907
10908 Sat May 26 15:33:37 BST 2001  Colin Watson  <cjwatson@debian.org>
10909
10910         * manual/README: Note that HTML output is disabled by default. I
10911           don't currently provide a pre-built PostScript manual anywhere.
10912         * manual/misc.me (Credits): Add Fabrizio.
10913         * manual/*: FHS updates. Various boring typo/syntax/whitespace
10914           fixes.
10915
10916 Sat May 26 15:14:29 BST 2001  Colin Watson  <cjwatson@debian.org>
10917
10918         * GNUmakefile.in, autogen.sh: Put 'timestamp' in stamp-h and
10919           stamp-h.in rather than the date.
10920
10921         * src/man.c (open_cat_stream): Open the cat file before forking in
10922           order to deal with errors better. Open to /dev/null without
10923           complaining if the cat file is unwriteable.
10924           (close_cat_stream): Only commit the temporary cat if it was
10925           created.
10926           (locate_page): Fall back to the filesystem if nothing was found in
10927           the database (since it might be out of date).
10928
10929         * src/man.c (try_db_section): If the database can't be opened
10930           read-write due to EACCES, only print a message in debug mode.
10931         * src/check_mandirs.c (testmandirs): Likewise.
10932           (create_db): Likewise.
10933
10934         * src/check_mandirs.c (test_manfile): Make sure separate whatis keys
10935           each get their own whatis entry.
10936
10937 Wed May 23 17:06:31 BST 2001  Colin Watson  <cjwatson@debian.org>
10938
10939         * configure.in: Fix PACKAGE and VERSION substitutions.
10940
10941 Wed May 23 15:51:06 BST 2001  Colin Watson  <cjwatson@debian.org>
10942
10943         * configure.in: Updates for autoconf 2.50.
10944           (AC_PREREQ): Require version 2.1.2.
10945           (AC_INIT): Avoid deprecated use with one argument.
10946           (man_ac_version): Don't work out the autoconf version any more;
10947           inline syntax is all that needed it, and any autoconf since 2.1.2
10948           will do.
10949           (AC_STDC_HEADERS): Now AC_HEADER_STDC.
10950           (AC_LINK_FILES): No longer needed with newer gettext.
10951           (AC_OUTPUT): Avoid deprecated use with arguments.
10952           Fix instances of underquoting throughout, as the new autoconf is
10953           less tolerant of this.
10954         * include/manconfig.h.in: Remove compatibility code for pre-1995
10955           autoconf versions.
10956
10957 Thu May 17 19:11:37 BST 2001  Colin Watson  <cjwatson@debian.org>
10958
10959         * src/man_db.conf.in: Improve documentation of MANDB_MAP.
10960
10961 Wed May 16 00:09:13 BST 2001  Colin Watson  <cjwatson@debian.org>
10962
10963         * tools/config.sub: Update to today's CVS.
10964
10965 Wed May 16 00:07:04 BST 2001  Colin Watson  <cjwatson@debian.org>
10966
10967         * A number of minor fixes from SuSE's diff:
10968
10969         * GNUmakefile.in: Don't prepend ../ to prefix before passing it to
10970           subdirs.
10971         * lib/cleanup.c: HUP and TERM signal handling was mistakenly acting
10972           on INT instead.
10973         * src/lexgrog.l: Replace a few instances of " \t\n" with
10974           "blank_eol".
10975         * src/man.c: Drop privileges before changing back to the original
10976           directory just before exiting (only matters for profiling).
10977         * src/util.c: Undefine MAX before redefining it.
10978         * po/POTFILES.in: Read src/lexgrog.c rather than src/lexgrog.l
10979           (gettext understands C better than lex).
10980         * po/de.po, po/es.po, po/fr.po: Remove a few stray '\r's.
10981
10982         * I'll look at the zlib bits of the patch soon. From a preliminary
10983           look I'll probably end up rewriting it - I'd prefer more of the
10984           compression stuff actually to go in src/compression.c.
10985
10986 Tue May 15 22:01:59 BST 2001  Colin Watson  <cjwatson@debian.org>
10987
10988         * src/man.c (get_section_list): Return std_sections if argument to
10989           -S was an empty string or if that or $MANSECT contained only
10990           colons. Previously, man would behave wrongly in the former case
10991           and segfault in the latter. Also remove a redundant xstrdup().
10992
10993 Mon May 14 23:46:25 BST 2001  Colin Watson  <cjwatson@debian.org>
10994
10995         * Version: 2.3.18.
10996
10997         * README: Add contact details.
10998
10999         * libdb/stamp-h: Removed.
11000         * GNUmakefile.in, libdb/Makefile.in: Updated accordingly.
11001
11002         * src/man_db.conf.in: FHS 2.1 has /usr/local/share/man as the
11003           location of locally installed man pages rather than
11004           /usr/local/man. Accordingly, the MANDB_MAP for /usr/local/man is
11005           now /var/cache/man/oldlocal, and /usr/local/share/man takes over
11006           /var/cache/man/local.
11007
11008         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update
11009           with msgmerge.
11010
11011 Mon May 14 22:18:32 BST 2001  Colin Watson  <cjwatson@debian.org>
11012
11013         * src/security.c: Count how many times drop_effective_privs() has
11014           been called, and don't actually regain privileges until
11015           regain_effective_privs() has been called an equal number of times.
11016           This should flush out several subtle bugs.
11017
11018         * src/mandb.c: Call manpath() rather than read_config_file() (this
11019           was changed while merging 2.3b12). Otherwise 'mandb --user-db'
11020           segfaults as manp never gets set.
11021
11022 Sun May 13 18:34:33 BST 2001  Colin Watson  <cjwatson@debian.org>
11023
11024         * GNUmakefile.in (dist): Don't install po/Makefile.in.
11025
11026         * src/stamp-h: Removed.
11027         * GNUmakefile.in, src/Makefile.in: Updated accordingly.
11028
11029         * GNUmakefile.in (distclean): Don't clean configure, src/lexgrog.c,
11030           zsoelim/zsoelim.c.
11031           (realclean): Clean configure here instead. realclean targets in
11032           subdirs already remove the other two.
11033         * zsoelim/Makefile.in (clean): Let realclean remove zsoelim.c.
11034
11035 Sun May 13 17:17:32 BST 2001  Colin Watson  <cjwatson@debian.org>
11036
11037         * man/Makefile.in: Another try to get NLS installation working
11038           properly. The last change was wrong when LINGUAS was unset.
11039
11040         * GNUmakefile.in (dist): Install docs/manpage.example.
11041
11042 Sun May 13 16:54:01 BST 2001  Colin Watson  <cjwatson@debian.org>
11043
11044         * man/Makefile.in: Exclude NLS directories without man pages, as CVS
11045           can't delete directories quite as fully as I'd like.
11046
11047         * configure.in: No subdirectory Makefiles need ALL_LINGUAS any more.
11048
11049         * manual/Makefile: Make the location of soelim variable so that
11050           distributions can e.g. use the version in the build directory.
11051
11052         * manual/Makefile, manual/README: Add an HTML target. Disabled by
11053           default as groff's HTML driver doesn't produce very good output
11054           yet (as of 1.16).
11055
11056         * include/Defines.in: Only remove /usr from the default sysconfdir
11057           if the prefix is exactly /usr, not something that happens to
11058           contain /usr (like the default /usr/local).
11059
11060 Sun May 13 13:39:17 BST 2001  Colin Watson  <cjwatson@debian.org>
11061
11062         * man-db.gnu, man-db.lsm: Mention move to SourceForge and the new
11063           URLs for the Debian package pool.
11064
11065         * man-db.gnu: New architectures (successful Debian ports as of
11066           today). New mailing list for announcements.
11067
11068 Sun May 13 13:18:56 BST 2001  Colin Watson  <cjwatson@debian.org>
11069
11070         * README: Document FHS changes; correct pointer to
11071           docs/INSTALL.autoconf.
11072
11073         * docs/INSTALL.autoconf: Update to instructions from automake 1.4.
11074
11075         * docs/COPYING: Minor fixes from GNU (FSF address, Y2K).
11076
11077 Sun May 13 13:00:17 BST 2001  Colin Watson  <cjwatson@debian.org>
11078
11079         * GNUmakefile.in (dist): Add include/sections.list.
11080
11081         * GNUmakefile.in, man/Makefile.in: Cause USE_NLS to be substituted
11082           properly from configure.
11083
11084         * include/Defines.in: Remove some old gencat definitions.
11085
11086         * docs/NEWS: Update in preparation for 2.3.18 release. Correct a few
11087           it's -> its typos in earlier entries.
11088
11089 Sun May 13 02:18:00 BST 2001  Colin Watson  <cjwatson@debian.org>
11090
11091         * autogen.sh: Create stamp-h.in.
11092
11093         * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update
11094           with msgmerge.
11095
11096 Sun May 13 02:03:05 BST 2001  Colin Watson  <cjwatson@debian.org>
11097
11098         * docs/ToDo: Most of Wilf's beta code is in now; mention SuSE.
11099
11100 Sun May 13 01:22:29 BST 2001  Colin Watson  <cjwatson@debian.org>
11101
11102         * docs/manpage.example: New file.
11103
11104 Sun May 13 01:19:47 BST 2001  Colin Watson  <cjwatson@debian.org>
11105
11106         * include/manconfig.h.in: Bump database version from 2.3.1 to 2.3.2.
11107         * libdb/db_ver.c (dbver_wr): Reformat.
11108           (dbver_rd): Downgrade warnings about wrong version numbers to
11109           debugging messages.
11110         * libdb/db_lookup.c (split_data): Fix fencepost error that would
11111           overlook a missing whatis field.
11112
11113         * src/man.c (try_db_section): Display warning if whatis refs are
11114           relied upon to find a page.
11115         * libdb/db_storage.h: Note that WHATIS_MAN and WHATIS_CAT are
11116           deprecated.
11117
11118         * src/accessdb.c (main): Give FHS_CAT_ROOT priority over CAT_ROOT.
11119         * man/man8/accessdb.man8 (DESCRIPTION): Document this.
11120         * man/de_DE.85591/man8/accessdb.man8 (DESCRIPTION): Likewise.
11121         * man/de_DE.ascii/man8/accessdb.man8 (DESCRIPTION): Likewise.
11122         * man/es_ES.88591/man8/accessdb.man8 (DESCRIPTION): Likewise.
11123         * man/it_IT.88591/man8/accessdb.man8 (DESCRIZIONE): Likewise.
11124
11125         * src/check_mandirs.c (testmandirs): Tidy up database opening code.
11126
11127         * src/mandb.c (mandb): Don't create a new database if opt_test is
11128           set.
11129           (main): If opt_test is set, just delete the temporary database
11130           rather than moving it into place.
11131         * man/man8/mandb.man8 (OPTIONS): Document --test.
11132           (FILES): Document FHS compliant database locations.
11133           (AUTHOR): Add myself.
11134
11135         * src/ult_src.c (ult_softlink): Remove overly-cautious check for
11136           non-local symlinks in mantrees.
11137
11138         * src/whatis.c (apropos): Remove a now redundant test that cont.dptr
11139           is non-NULL.
11140
11141 Sun May 13 01:00:47 BST 2001  Colin Watson  <cjwatson@debian.org>
11142
11143         * src/whatis.c (apropos): Complain and exit if a data pointer is
11144           NULL. For this, locally undefine BTREE to avoid using optimized
11145           functions, as they don't appear to provide enough error checking
11146           yet.
11147
11148 Fri May  4 03:59:08 BST 2001  Colin Watson  <cjwatson@debian.org>
11149
11150         * configure.in: Change PACKAGE from man-db to man_db.
11151
11152         * po/*.po: Update with msgmerge.
11153
11154         * release.sh: New file (quick release script).
11155
11156 Fri May  4 03:44:49 BST 2001  Colin Watson  <cjwatson@debian.org>
11157
11158         * acconfig.h: Remove Debian-specific entries.
11159
11160         * aclocal.m4: Remove, as it's another autogenerated file.
11161
11162         * autogen.sh: New file (very simple for now).
11163
11164 Fri May  4 03:34:54 BST 2001  Colin Watson  <cjwatson@debian.org>
11165
11166         * GNUmakefile.in (dist): Update set of installed files somewhat. No
11167           need to build man_db-nls.h any more.
11168
11169         * man/Makefile.in: Declare ALL_LINGUAS and LINGUAS.
11170
11171         * src/man.sh: Remove (obsoleted by src/wrapper.c).
11172
11173 Fri May  4 02:56:30 BST 2001  Colin Watson  <cjwatson@debian.org>
11174
11175         * README: Update for new NLS configuration methods. Reflect renaming
11176           of configuration file from man_db.config to man_db.conf.
11177
11178 Fri May  4 00:18:23 BST 2001  Colin Watson  <cjwatson@debian.org>
11179
11180         * stamp-h.in: Remove (generated by GNUmakefile).
11181
11182 Fri May  4 00:17:50 BST 2001  Colin Watson  <cjwatson@debian.org>
11183
11184         * GNUmakefile.in, configure.in, include/Defines.in,
11185           libdb/Makefile.in, libdb/db_delete.c, libdb/db_lookup.c,
11186           libdb/db_store.c, libdb/db_ver.c, man/Makefile.in,
11187           src/Makefile.in, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a,
11188           src/wrapper.c: Dispose of all the old catgets stuff. Replace with
11189           gettext idioms where appropriate.
11190
11191         * libdb/man_db-nls.h, src/man_db-nls.h: Remove (obsolete with
11192           gettext).
11193
11194         * include/config.h.in: Remove (generated by autoheader).
11195
11196 Thu May  3 01:17:08 BST 2001  Colin Watson  <cjwatson@debian.org>
11197
11198         * GNUmakefile.in: Strip .po from language names; fix it's -> its
11199           typo.
11200
11201         * configure.in: Stop trying to guess the package name and version
11202           number from the current directory name.
11203
11204 Wed May  2 18:38:49 BST 2001  Colin Watson  <cjwatson@debian.org>
11205
11206         * src/manp.c: Remove #include of security.h (now merged elsewhere).
11207           (pathappend): Constify second argument.
11208           (mkcatdirs): Eliminate DIRLIST; now takes mandir and catdir as
11209           arguments.
11210           (add_2_dirlist): Rename to add_to_dirlist(); return void, and
11211           otherwise eliminate use of DIRLIST. As mentioned below, we now use
11212           a linked list instead.
11213           (read_config_file): Update accordingly.
11214
11215         * src/security.c: *uid no longer static for now, as other objects
11216           use them.
11217         * src/man.c: Declare ruid and euid extern here now that security.h
11218           is gone.
11219
11220         * src/check_mandirs.c (update_db): Close dbf rather than database.
11221
11222 Wed May  2 17:27:22 BST 2001  Colin Watson  <cjwatson@debian.org>
11223
11224         * acinclude.m4: New file. Restore definitions inadvertently removed
11225           from aclocal.m4 a few changes ago.
11226         * aclocal.m4: Update accordingly with 'aclocal'.
11227
11228         * config.guess, config.sub: Move to tools directory.
11229
11230         * configure.in: Move gettext macros below AC_PROG_CC etc.
11231
11232         * configure.in: Remove Debian-specific code; build dependencies
11233           handle this now.
11234
11235 Wed May  2 16:41:28 BST 2001  Colin Watson  <cjwatson@debian.org>
11236
11237         * acconfig.h: Removed some definitions gettext used to need.
11238
11239         * Makefile.in (_root): Added ABOUT-NLS to the distribution.
11240
11241 Wed May  2 16:31:21 BST 2001  Colin Watson  <cjwatson@debian.org>
11242
11243         * config.guess, config.sub: New files, synced from today's CVS.
11244
11245 Wed May  2 16:28:02 BST 2001  Colin Watson  <cjwatson@debian.org>
11246
11247         * configure.in, include/Defines.in, man/Makefile.in: Remove use of
11248           curdate.
11249
11250         * man/it_IT.88591/man1/man.man1, man/ja_JP.eucJP/man1/man.man1,
11251           man/man1/man.man1: s/curdate/date/g.
11252
11253 Wed May  2 16:15:00 BST 2001  Colin Watson  <cjwatson@debian.org>
11254
11255         * po/POTFILES.in: Added src/accessdb.c and src/wrapper.c.
11256
11257 Wed May  2 15:53:45 BST 2001  Colin Watson  <cjwatson@debian.org>
11258
11259         * ABOUT-NLS, aclocal.m4, intl/*, po/ChangeLog, po/Makefile.in.in:
11260           Update to gettext 0.10.37 (from 0.10.32). Various additions and
11261           removals.
11262
11263         * GNUmakefile.in, libdb/Makefile.in, src/Makefile.in: Remove old
11264           gencat/xcat targets.
11265
11266 Wed May  2 01:33:04 BST 2001  Colin Watson  <cjwatson@debian.org>
11267
11268         * src/mandb.c (main): Initialize security properly, since we may be
11269           setuid, and drop privileges when creating temporary databases in
11270           user-supplied hierarchies. Thanks to Ethan Benson for reporting
11271           this vulnerability.
11272
11273         * man-db.gnu, man-db.lsm: Add myself as a developer; change
11274           maintainer.
11275
11276         * libdb/db_lookup.c, src/man.c: Cosmetic fixes.
11277         * src/accessdb.c (usage): Remove spurious space in output.
11278
11279 Wed May  2 01:02:19 BST 2001  Colin Watson  <cjwatson@debian.org>
11280
11281         * Merging in changes from Wilf's 2.3b12 beta release.
11282         * docs/ChangeLog: Folded in changelog comments.
11283
11284         * GNUmakefile.in, configure.in: Build configuration file.
11285         * */Makefile.in: Rearrange code for CPPFLAGS and similar.
11286
11287         * configure.in: Look for grep, seteuid(), setresuid().
11288         * include/config.h.in: Add HAVE_SETEUID and HAVE_SETRESUID.
11289         * include/manconfig.h.in: Add GREP and various grep flags.
11290         * src/whatis.c: Use GREP rather than "grep".
11291
11292         * src/man_db.config: Renamed to src/man_db.conf.in.
11293         * src/man_db.conf.in: Add commented out DEFINE directives.
11294         * docs/ToDo: Need to document DEFINE directive. (Also, I (cjwatson)
11295           checked in two other todo items by mistake earlier: inline
11296           pipelines and merging work done by Wilf and Andries.)
11297         * include/Defines.in: CPPFLAGS tweaks; rename config file; %.i rule.
11298         * include/comp_src.h.in: paths.h -> ./manconfig.h.
11299
11300         * src/security.c, src/man.c: Rewrite seteuid() handling; remove
11301           special "running as root" case.
11302         * src/security.h: Remove; combine previous contents with security.c.
11303         * src/man_db-nls.h: No longer need man_CHOWN.
11304         * include/manconfig.h.in: Add init_security() prototype.
11305
11306         * src/manp.c: Major rewrite. Replace static storage with linked
11307           list. Improve configuration file handling, replacing get_dirlist()
11308           with read_config_file(). Move some of the more deeply nested bits
11309           of read_config_file() into separate functions like
11310           add_mandb_map(). (cjwatson: This won't compile yet. Fabrizio also
11311           hacked on this heavily, including splitting part of get_dirlist()
11312           out into add_2_dirlist() and adding mkcatdirs(). I've merged these
11313           as best I can for now, but it's still unfinished.)
11314         * src/manp.h: Remove get_dirlist() prototype, add prototypes for
11315           read_config_file() and get_def().
11316         * src/man.c, src/mandb.c, src/straycats.c, src/whatis.c: Use new
11317           get_defs() functions to pull paths from config file rather than
11318           hard-coding them.
11319
11320 Fri Apr 27 22:39:34 BST 2001  Colin Watson  <cjwatson@debian.org>
11321
11322         * Merging in changes from Wilf's 2.3.11 release.
11323         * docs/ChangeLog, docs/NEWS: Folded in changelog comments.
11324
11325         * GNUmakefile.in: Added deroff and manual targets.
11326         * README: Added comment about manual; added notes on configure
11327           flags.
11328         * configure.in: Minor improvement for non-GNU makes.
11329
11330         * src/lexgrog.l, src/lexgrog.l-2.4a: Allow comments other than at
11331           the beginning of a line.
11332
11333         * src/manp.c: Replace has_subdirs() with has_mandir(): for $PATH
11334           components not in config, check for ../man as well as man subdirs.
11335
11336         * zsoelim/zsoelim.l: Use #defines for exit codes.
11337
11338         * GNUmakefile.in, README, docs/INSTALL.quick, src/man.c: Cosmetic
11339           rearrangements (whitespace, typos, etc.).
11340
11341 Fri Apr 27 21:36:11 BST 2001  Colin Watson  <cjwatson@debian.org>
11342
11343         * manual/*: Add the source code for the man_db manual from Wilf's
11344           FTP site.
11345
11346 Fri Apr 27 18:33:17 BST 2001  Colin Watson  <cjwatson@debian.org>
11347
11348         * src/accessdb.c (main): Close the database and set dbf to NULL if
11349           dbver_rd() fails.
11350         * src/check_mandirs.c (update_db): Likewise.
11351         * src/man.c (try_db): Likewise.
11352         * src/straycats.c (straycats): Likewise.
11353         * src/whatis.c (search): Likewise.
11354
11355 Fri Apr 27 18:10:47 BST 2001  Colin Watson  <cjwatson@debian.org>
11356
11357         * src/lexgrog.l: Detect grap (.G1) and vgrind (.vS).
11358         * include/manconfig.h.in: Add GRAP_FILTER and VGRIND_FILTER to
11359           filter enum.
11360
11361 Fri Apr 27 18:00:04 BST 2001  Colin Watson  <cjwatson@debian.org>
11362
11363         * New maintainer.
11364
11365         * man/man1/man.man1 (HISTORY): Update some dates, add myself.
11366         * man/it_IT.88591/man1/man.man1 (HISTORY): Likewise.
11367         * man/ja_JP.eucJP/man1/man.man1 (HISTORY): Likewise.
11368
11369         * man/de_DE.88591/man1/man.man1 (HISTORY): Update some dates.
11370         * man/de_DE.ascii/man1/man.man1 (HISTORY): Likewise.
11371         * man/es_ES.88591/man1/man.man1 (HISTORY): Likewise.
11372
11373         * ja_JP.ujis/man1/apropos.man1: Remove (superseded by ja_JP.eucJP).
11374         * ja_JP.ujis/man1/man.man1: Likewise.
11375         * ja_JP.ujis/man1/manpath.man1: Likewise.
11376         * ja_JP.ujis/man1/whatis.man1: Likewise.
11377         * ja_JP.ujis/man1/zsoelim.man1: Likewise.
11378         * ja_JP.ujis/man5/manpath.man5: Likewise.
11379         * ja_JP.ujis/man8/accessdb.man8: Likewise.
11380         * ja_JP.ujis/man8/catman.man8: Likewise.
11381         * ja_JP.ujis/man8/mandb.man8: Likewise.
11382
11383 Tue Apr 17 15:23:30 BST 2001  Colin Watson  <cjwatson@debian.org>
11384
11385         * End of the Great CVS Sync.
11386         * Debian release 2.3.17.1-3.
11387
11388         * src/ult_src.c (ult_src): Return an error when ult_softlink()
11389           fails.
11390
11391         * src/man.c: Use latin1 character set for C and POSIX locales.
11392
11393         * po/ja.po: Update Japanese translation.
11394         * man/ja_JP.eucJP/man1/apropos.man1: New file, updating Japanese
11395           translation in new character set.
11396         * man/ja_JP.eucJP/man1/man.man1: Likewise.
11397         * man/ja_JP.eucJP/man1/manpath.man1: Likewise.
11398         * man/ja_JP.eucJP/man1/whatis.man1: Likewise.
11399         * man/ja_JP.eucJP/man1/zsoelim.man1: Likewise.
11400         * man/ja_JP.eucJP/man5/manpath.man5: Likewise.
11401         * man/ja_JP.eucJP/man8/accessdb.man8: Likewise.
11402         * man/ja_JP.eucJP/man8/catman.man8: Likewise.
11403         * man/ja_JP.eucJP/man8/mandb.man8: Likewise.
11404
11405         * man/THANKS: Updated (new Japanese eucJP translation).
11406
11407         * src/man.c (main): Support LC_MESSAGES being set differently from
11408           other locale categories (internal_locale).
11409
11410         * src/man.c (main): Multiple locale preferences can be set with
11411           $LANGUAGE.
11412
11413         * src/version.c (ver): Remove previous maintainer address.
11414
11415         * configure.in: Find version number correctly.
11416
11417 Sun Apr  1 14:37:28 BST 2001  Colin Watson  <cjwatson@debian.org>
11418
11419         * Debian release 2.3.17.1-2.
11420
11421         * src/whatis.c (main): Disable regex searches if -w (wildcard)
11422           option is given.
11423
11424         * docs/ToDo: Using zlib rather than gzip would be good.
11425
11426 Sat Mar 31 18:07:46 BST 2001  Colin Watson  <cjwatson@debian.org>
11427
11428         * Debian release 2.3.17.1-1.
11429
11430         * src/check_mandirs.c (test_manfile): Check if the result of symlink
11431           and hard link resolution is in the cache before looking for .so
11432           links. This provides a substantial speedup when many symlinks
11433           exist in the mantree.
11434
11435         * src/catman.c (main): Initialize full locale by calling setlocale()
11436           with LC_ALL rather than LC_MESSAGES (GOTO Masanori). Remove manual
11437           getenv() calls accordingly.
11438         * src/man.c (main): Likewise.
11439         * src/mandb.c (main): Likewise.
11440         * src/manpath.c (main): Likewise.
11441         * src/whatis.c (main): Likewise.
11442
11443         * include/manconfig.h.in: Add 3perl to section names, following 3pm;
11444           Debian is using this to allow other packages to shadow pages from
11445           core Perl packages.
11446
11447 Wed Feb 28 21:02:41 GMT 2001  Colin Watson  <cjwatson@debian.org>
11448
11449         * Debian release 2.3.17-3.2.
11450
11451         * configure.in: More fixes for Debian troff and /dev/null input
11452           files. This restores detection of -mandoc macros.
11453
11454         * man/man1/man.man1 (OPTIONS): Typo: "It's" -> "Its".
11455         * man/man1/zsoelim.man1 (OPTIONS): Likewise.
11456
11457         * man/man1/man.man1 (OPTIONS): Mention that argument to -M must be
11458           the root of a mantree.
11459           (SEE ALSO): Add reference to man-db manual to explain the above.
11460
11461 Wed Feb 21 00:54:47 GMT 2001  Colin Watson  <cjwatson@debian.org>
11462
11463         * Debian release 2.3.17-3.1.
11464
11465         * src/man.c (local_man_loop): Fix format string vulnerability in
11466           printing of error message.
11467
11468         * src/whatis.c (get_whatis): Fix segfault if whatis reference is
11469           NULL.
11470
11471         * src/man.c (local_man_loop): chdir() to original working directory
11472           so that 'man -l' works again on relative paths to compressed
11473           pages.
11474
11475         * src/compression.c (decompress): free() file if the decompressor
11476           failed so that atexit() doesn't try to remove it again.
11477
11478         * src/mandb.c (main): Reverse sense of -s option to agree with the
11479           documented intent.
11480
11481         * configure.in: Work around change in the behaviour of Debian nroff,
11482           which no longer accepts /dev/null as an input file.
11483
11484         * GNUmakefile.in: Restore full clean rules.
11485
11486 Fri Apr  7 10:50:45 EET 2000  fab   (fpolacco@debian.org)
11487
11488         * Checked in by Colin Watson during SourceForge CVS sync.
11489
11490         * Upstream changes from Debian changelog (2.3.17-2):
11491           - Commented away call to distclean_root in GNUmakefile: need to
11492             leave the Makefile and configure in the tarball.
11493           - Found and fixed subtle bug which made wrapper uselessly linked
11494             with -ldb2. When invoked by root on a system which enables
11495             group.db, then the call to initgroups() segfaults due to the
11496             libc link to libdb!
11497
11498         * Other changes not mentioned in Debian changelog:
11499           - man-db.gnu: Update date and prerequisites (libdb2 becomes weak
11500             prerequisite).
11501           - man-db.lsm: New file.
11502           - src/lexgrog.l: Cosmetic changes.
11503           - src/wrapper.c: Add debugging code.
11504
11505 Fri Apr  7 10:50:45 EET 2000  fab   (fpolacco@debian.org)
11506
11507         * Checked in by Colin Watson during SourceForge CVS sync.
11508         * Version: 2.3.17.
11509         * Upstream changes from Debian changelog:
11510           - Corrected apparent disappearing of option -e in apropos.
11511           - Corrected wrong usage of undocumented option -X which produced
11512             error when passed to filters. This is now parametrized as
11513             optional argument, defaulting to use devX75.  Documented in
11514             usage : -X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12.
11515           - Applyed patch submitted by Tomohiro KUBOTA:
11516             - roff_device and LESSCHARSET are determined by user environment
11517               rather than language of manpage for English manpage.
11518             - roff_device "ascii8" is used for non-English/non-ISO-8859-1
11519               languages.
11520           - Added new check for libdb in configure.in
11521           - Added /usr/local/{share/}man to config file, due to bug in FHS,
11522             thanx to Gregor Hoffleit.
11523           - Added new message catalog po file for cs (czech) (4 new
11524             messages), thanx to Vladimir Michl.
11525           - tired of people continously complaining that man behaves
11526             differently than in RedHat (which is "The Reference Linux", you
11527             all know that), I'll add tbl as default filter for man. This
11528             will fix those three or four manpages that do not take the
11529             burden to declare their dependency on the tbl formatter (usually
11530             because upstream uses RedHat and so ...). Now what would I do if
11531             someone fill a bug against this because of wasting of CPU cicles
11532             for un-necessary filtering on the hundreds of pages that do not
11533             need tbl? I would certainly agree with them. Therefore I will
11534             fix this introducing scanning of manpages a la grog in mandb,
11535             and storing the result in the database.  ...[noise of hacking
11536             and debugging]...  Well, I did it (use accessdb to see it!). It
11537             took 4 weekend (stolen to the implementation of man 2.4) to
11538             complete and debug. Now you can announce the world that man-db
11539             2.3.17 knows in advance which filters to run when processing a
11540             manpage which is in the database.
11541
11542 Wed Mar 22 16:00:16 EET 2000  fab   (fpolacco@debian.org)
11543
11544         * Checked in by Colin Watson during SourceForge CVS sync.
11545         * Version: 2.3.16.
11546         * Upstream changes from Debian changelog:
11547           - Applyed patch submitted by Javier Fernandez-Sanguino Pena to
11548             permit search of trnlated manpages before giving the first
11549             english one found.
11550
11551 Mon Feb 28 22:09:09 EET 2000  fab   (fpolacco@debian.org)
11552
11553         * Checked in by Colin Watson during SourceForge CVS sync.
11554         * Version: 2.3.13.
11555         * Upstream changes from Debian changelog:
11556           - Applied patch to avoid disappearing of index file during
11557             regeneration. Thanx to Colin Phipps.
11558           - Applied patch to generate secure temporary file in straycat.
11559             Thanx to Colin Phipps.
11560
11561 Wed Feb 23 22:34:54 EET 2000  fab   (fpolacco@debian.org)
11562
11563         * Version: 2.3.12
11564
11565         * New maintainer.
11566
11567         * find the huge list of changes (in three years) in file
11568           debian/changelog.
11569
11570 Wed Sep 27 23:59:05 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11571
11572         * Version: 2.3b12
11573
11574         * src/manp.c: replace static storage with linked list
11575
11576         * src/security.h: removed/combined with security.c
11577
11578         * src/security.c, src/man.c: re-write seteuid() handling: 
11579         remove special "running as root" case
11580
11581         * src/whatis.c: use GREP rather than "grep"
11582
11583         * include/manconfig.h: many #DEFINE additions
11584
11585         * configure.in: look for grep, seteuid(), setresuid()
11586
11587         * GNUmakefile.in, */Makefile.in: minor modifications
11588
11589         * include/Defines.in: modifications
11590
11591         * src/man_db.config: renamed as src/man_db.conf.in
11592
11593         * src/man_db.conf.in: add commented out DEFINE directives.
11594
11595 Thu Sep 21 19:33:58 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11596
11597         * Version: 2.3.11
11598
11599         * manual/*: bundle the source code of the man_db manual
11600
11601 Wed Sep 20 16:17:19 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11602
11603         * src/manp.c: replace has_subdirs() with has_mandir(): for $PATH
11604         components not in config, check for ../man as well as man subdirs.
11605
11606         * various: small bug-fixes from Markus, 
11607         Joey (joey@infodrom.north.de), Lionel (cons@dxcern.cern.ch) 
11608
11609         * src/util.c: when checking man/cat timestamps, compare mod time of
11610         cat with latest of mod or create time of man: If untar new man
11611         page with old timestamp, still reformat.
11612
11613 Thu Jul 13 11:29:32 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11614
11615         * Version: 2.3.10
11616
11617         * src/apropos.c: fix for #undef REGEX regarding int regex
11618
11619         * src/lexgrog.l: default to new version.
11620
11621         * src/README.lexgrog: new.
11622
11623         * configure.in: all echo's through MAN_ECHO() for --quiet.
11624
11625         * various: apply patch from Carl Edman (cedman@princeton.edu),
11626         port to NeXTstep and misc small fixes.
11627
11628 Fri Jun 16 11:12:08 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11629
11630         * Version: 2.3.9
11631
11632 Wed Jun 14 17:08:41 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11633
11634         * src/man.c (make_display_command): fix command when ascii==1
11635
11636         * src/man.c (display): don't return 1 on skip if local_man_file==1
11637
11638         * man/Makefile.in: force make to resolve the program name strings
11639         (which are sed commands) once only.
11640
11641         * configure.in: don't exec pager (too many side effects)
11642
11643 Sun Jun  4 13:51:22 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11644
11645         * Version: 2.3.8
11646
11647         * various: apply patch from CERN to allow globbed support for
11648         HPUX, OSF and SOLARIS system manual page hierarchies.
11649
11650         * GNUmakefile.in: add hook for `make check'
11651
11652 Mon May 29 18:57:24 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11653
11654         * src/whatis.c (main): if $POSIXLY_CORRECT is in effect, 
11655         default to case-less extended regex searches for apropos 
11656         as specified by POSIX 1
11657
11658         * man/man1/apropos.man1: document above change.
11659
11660         * src/whatis.c (apropos, parse_name): ensure case-less
11661         matching on manual page name aswell as it's whatis for apropos.
11662
11663         * all manual pages: replace instances of program with %program%
11664         and arrange to do a sed replacement with the actual name of the
11665         program, chosen by the installer.
11666
11667         * zsoelim/zsoelim.l: fix recursion detector.
11668
11669         * src/lexgrog.l (newline_found): new.
11670
11671 Mon May 22 20:07:17 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11672
11673         * nls/de_DE.88591/*.m: from Lars Fenneberg (li@gimli.comlink.de)
11674
11675         * src/Makefile, libdb/Makefile: fix -DNLS
11676
11677         * src/man.c (LESS_PROMPT): Make " Manual page" a translatable 
11678         message.
11679
11680         * man/de_DE.ISO_8859-1: rename as man/de_DE.88591
11681         
11682         * nls/THANKS, man/THANKS: new.
11683         
11684         * src/whatis.c: If $POSIXLY_CORRECT, force apropos to do extended 
11685         regex matching.
11686
11687 Sat May 20 12:27:47 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11688
11689         * src/man.c: if -f or -k, simply execv() the program, passing
11690         the entire argv[] to it.
11691
11692         * man/man1/man.man1: document change.
11693
11694         * src/whatis.c: ignore -f, --whatis, -k and --apropos
11695
11696 Sat May 13 18:10:50 BST 1995  Markus Armbruster
11697
11698         * Version: 2.3.7
11699
11700         * lib/cleanup.c (pop_all_cleanups): new
11701         * src/man.c, src/security.c: use pop_all_cleanups() in children.
11702
11703         * general: use fork() instead of vfork() in situations where
11704         vfork() could cause problems.
11705
11706 Tue May  9 23:30:58 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11707
11708         * manual pages: aesthetic/grammer changes.
11709
11710         * flex files: process with flex-2.5.2
11711
11712 Mon May  8 11:15:07 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11713
11714         * include/manconfig.h.in: #define some exit codes.
11715         * all sources: use the codes.
11716         * English manual pages: add EXIT STATUS section where
11717         appropriate
11718
11719         * src/man.c (make_display_command): back out execing the pager
11720         as PAGER does not have to be a simple program name.
11721
11722         * configure.in: prepend "exec " to the default pager.
11723
11724         * src/mandb.c: fix stupid bug where global databases remain
11725         owned by the creator in all circumstances. Clean up.
11726
11727         * src/straycats.c, src/check_mandirs.c: homogenized and
11728         re-worded messages emitted by mandb.
11729  
11730 Mon May  8 11:15:07 BST 1995  Markus Armbruster
11731
11732         * lib/cleanup.c, lib/cleanup.h: new functions.  Install
11733         sighandler, initialise and operate a stack of cleanup funcs
11734         callable on exit().
11735
11736         * src/mandb.c, src/man.c: modify to use cleanup functions.
11737
11738 Tue Apr 25 20:21:51 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11739
11740         * Version: 2.3.6
11741
11742         * src/whatis.c: new, replaced with edited version from 2.4 alpha 
11743         source tree. Apropos now does _real_ word matches.
11744
11745         * man/man1/apropos.man1: remove description of option -e.
11746
11747 Mon Apr 24 17:26:54 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11748
11749         * src/man.c (get_section_list): Ignore empty $MANSECT.
11750         * src/man.c (main): if (!*pager) pager = CAT;
11751
11752         * libdb/db_storage.h, include/manconfig.h.in, src/check_mandirs.c,
11753           src/straycats.c: small modifications to fix broken
11754         FAVOUR_STRAYCATS behaviour and properly handle situation when 
11755         STRAYCAT and WHATIS_CAT share namespace. Move definition of
11756         FAVOUR_STRAYCATS to include/manconfig.h.in. From Zoltan.
11757
11758         * zsoelim/zsoelim.c: exit 1 on command line file open failure.
11759         
11760         * src/man.c (man_getopt): consolidate incompatible option parsing.
11761         * src/man.c (usage): update wrt. option parsing.
11762
11763         * src/man.c (display): only prompt/attempt display if found==1.
11764
11765         * src/man.c (make_display_command): exec the pager.
11766  
11767 Fri Apr 21 15:16:59 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11768
11769         * Version: 2.3.5 (public release)
11770
11771         * src/whatis.c: fix a couple of problems caused by whatis/apropos
11772         split.
11773
11774         * configure.in: remove determination of viable gencat program,
11775         always use our own.
11776
11777 Wed Apr 19 09:53:27 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11778
11779         * GNUmakefile.in: renamed Makefile to differentiate between
11780         GNU make and others.
11781
11782         * configure.in: create bogus ./makefile to catch non GNU make
11783         programs.
11784
11785 Mon Apr 17 11:06:32 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11786
11787         * Version: 2.3.4
11788
11789         * src/man.c (format_display_and_save): don't save cat if 
11790         formatting process fails and/or produces nothing.
11791
11792 Sat Apr  8 18:02:52 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11793
11794         * src/mandb.c: change #ifdef SECURE_MAN_UID to 
11795         #if defined(SECURE_MAN_UID) && defined(MAN_DB_UPDATES) as the 
11796         databases should be owned by their creators if man is not
11797         responsible for updating them.
11798
11799         * src/man.c: minor changes regarding MAN_DB_UPDATES
11800
11801         * include/manconfig.h.in: update CATMODE and DBMODE w.r.t.
11802         recent MAN_DB_UPDATES/MAN_CATS definitions.
11803
11804         * src/mandb.c: changes to operation. Work on a temporary copy of 
11805         the database, then rename() to actual database. Catch SIGINT,
11806         SIGTERM and remove the temp copy if necessary.
11807
11808         * src/compression.c (decompress): kill(getpid(), SIGINT) instead of 
11809         exit(0) if child (decompressing man page) fails. 
11810
11811         * src/straycats.c (check_for_stray): kill(getpid(), SIGINT) instead of
11812         exit(0) if child (decompressing cat page) fails.
11813
11814         * libdb/db_lookup.c (make_content): ndbm limit is 4k not 1k.
11815
11816 Mon Apr  3 20:52:06 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11817
11818         * docs/NEWS: new
11819
11820         * README: more Linux-system information.
11821
11822         * configure.in, acconfig.h: #define NDEBUG if !--enable-debug
11823
11824         * include/Defines.in: comment out @LEXLIB@, not required in link
11825           stage.
11826
11827 Sun Apr  2 17:42:02 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11828
11829         * Version: 2.3.3
11830
11831         * README: add sections referring to default preprocessors and
11832         system specific notes. 
11833
11834         * xcat/xcat.l, zsoelim,zsoelim.l, src/lexgrog.l: process with
11835         flex-2.5.1
11836  
11837 Fri Mar 31 17:12:44 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11838
11839         * src/whatis.c (display): add free(string)
11840
11841         * src/whatis.c, src/Makefile.in: produce separate object files for
11842         apropos and whatis so that the programs know which one they are
11843         regardless of actual program-filename.
11844
11845         * All Makefile.in, include/Defines.in: append CPPFLAGS supplied to
11846         ./configure or make to the standard $(CPPFLAGS) variable. 
11847         Allows configuring with unusual #include directories, eg. 
11848         CPPFLAGS=-I/usr/src/gdbm LDFLAGS=-L/usr/src/gdbm ./configure
11849
11850         * configure.in (--with-db=LIBRARY): override the default database
11851         interface library on systems having a choice. Options={db,gdbm,ndbm}
11852         
11853         * configure.in: Re: sec 5.6 of the autoconf manual, replace 
11854         (if test a=b -o a=c) with 
11855         (if test a=b || test a=c) 
11856
11857 Tue Mar 28 16:44:46 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11858
11859         * Version: 2.3b2
11860
11861         * lib/flock.c, lib/flock.h: New. flock() wrapper to fcntl() for
11862         systems that lack flock().
11863
11864         * xcat/xcat.l: #include "manconfig.h". For systems not supporting
11865         __inline__
11866
11867         * include/Defines.in (%.d : %.c): modify rule to account for C
11868         compilers other than gcc
11869
11870         * All Makefiles.in (cd $dir && $(MAKE)): change to $(MAKE) -C $dir
11871         * nls/Makefile.sub.in: merge into nls/Makefile.in
11872
11873 Mon Mar 27 22:42:53 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11874
11875         * src/globbing.c (look_for_file): don't rely on GLOB_NOMATCH as
11876         AIX doesn't have it.
11877
11878         * configure.in, include/manconfig.h.in (man_ac_version): new,
11879         replaces ac_version and is more robust
11880         * configure.in, aclocal.m4: rename non-autoconf macros so that
11881         future versions of autoconf won't clash
11882
11883         * gencat/gencat.c, gencat/genlib.c: tidy up header includes and
11884         remove unused variable definitions
11885
11886         * configure.in: check for gencat
11887
11888 Mon Mar 27 12:51:47 BST 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11889
11890         * Version 2.3b1
11891
11892         * src/man.c: small HAS_TROFF/NROFF_MISSING changes from Markus.
11893
11894 Thu Mar 23 18:09:46 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11895
11896         * src/man.c: man will only _create_ user db's if
11897         MAN_DB_CREATES is #defined (It is not defined by default)
11898
11899         * add ability to install programs/man pages with transformed names.
11900         ie --program-prefix=PREFIX, 
11901            --program-suffix=SUFFIX and
11902            --program-transform-name=EXP
11903         arguments to configure are now observed.
11904
11905         * src/man.c (try_db): store an info->addr==NULL entry in the 
11906         hashtable if we fail to access this db. Only try to open the 
11907         db once. If the db access succeeds, but the lookup fails to find 
11908         anything, store info==NULL in the hashtable.
11909
11910         * libdb/db_ver.c (dbver_rd): don't die if wrong version. Issue a
11911         message, return 1 and let the caller decide what to do. 
11912  
11913 Mon Mar 20 16:13:23 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11914
11915         * src/whatis.c (get_whatis): new. Use the pointer member of mandata
11916         structure to access the whatis string.
11917         (display): modify to use get_whatis().
11918         
11919         * src/checkmandirs.c (splitline): don't store whatis referenced
11920         `whatis' lines in the db.
11921
11922         * libdb/db_lookup.c (make_content): store a NULL whatis as "" rather
11923         than "-".
11924
11925 Sun Mar 19 16:37:58 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11926
11927         * src/lexgrog.l: wipe out roff comment lines (again).
11928
11929         * src/whatis.c: use BSD style regex if POSIX unavailable. Ignore
11930         --regex if neither available. Fix failed-regex-compilation error
11931         message.
11932
11933         * lib/regex.c, lib/regex.h: remove
11934         
11935         * configure.in: account for regex changes.
11936
11937         * libdb/db_delete.c (dbdelete): don't barf on delete request of a
11938         multi-key that is not listed in the main key, return NO_ENTRY.
11939
11940         * src/man.c (try_section): don't try to delete db entry for missing
11941         straycat. Return 0 and leave that to the caller.
11942
11943 Sat Mar 18 12:31:48 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11944
11945         * Replaced strncasecmp() calls with strncmp(). Removed partial 
11946         support for man dirs named .../MAN.
11947
11948         * lib/{alloca.c,putenv.c,memcmp.c}: new
11949         lib/{getopt.c,getopt1.c,getopt.h,error.c,xstrdup.c,xmalloc.c}:
11950         newer replacements
11951
11952         * All Makefile.in, include/Defines.in, include/manconfig.h.in:
11953         use standard (GNU coding) installation variables: 
11954         bindir, sysconfdir, man?ext, man?dir, localedir, manroot.
11955         These variables, along with prefix and exec_prefix may be specified
11956         on the `make' command line.
11957
11958         * configure.in: move definition of BINDIR and config_prefix to 
11959         include/Defines.in to allow dynamic evaluation. Rename config_prefix
11960         to sysconfdir.
11961
11962         * libdb/db_lookup.c (list_extensions): fix return count.
11963
11964         * libdb/db_delete.c (dbdelete): take account of situation 
11965         where there were multiple name entries and they are subsequently
11966         deleted. When deleting the last one (which still has a multi-key
11967         entry), delete the standard key too, rather than recomputing it's
11968         content (which would be nothing and cause a "corrupt db" message).
11969
11970 Fri Mar 17 23:36:44 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
11971
11972         * src/man.c (glob_for_file, make_names): remove
11973         src/globbing.c: new file
11974         lib/glob.c, lib/glob.h, lib/fnmatch.c, lib/fnmatch.h: replacements
11975         from GNU glob.tar.gz
11976         configure.in: glob changes. 
11977         Use POSIX glob replacement.
11978         Allow --extension to be used in globbing environment. Don't search
11979         for cats in alternate cat directory if no index.
11980
11981         * All Makefile.in: add standard (GNU coding) targets: all, clean, 
11982         mostlyclean, distclean, realclean, install, uninstall, TAGS, dist 
11983         Other configuration/goal modifications
11984
11985         * Makefile.in: force config.status to do selective re-creation
11986
11987         * src/zsoelim.l: cater for ".SH \f?NAME\f?"
11988
11989         * acconfig.m4 (AC_FUNC_PCLOSE), src/man.c (display): small changes
11990         from Markus
11991
11992         * Makefile.in, README: change `make all' to equal `make nls=off'
11993         rather than `make nls=all'
11994
11995         * include/Defines.in: move -DDEFAULT_MANROFFSEQ to
11996         include/manconfig.h
11997
11998         * include/manconfig.h: change inline parsing. Use autoconf-2.2
11999
12000 Thu Mar 16 12:38:15 GMT 1995  Markus Armbruster (armbru@pond.sub.org)
12001
12002         * Version: 2.2a20
12003         
12004         * zsoelim/zsoelim.l: general fixes
12005
12006         * configure.in: don't add -lc as library containing db routines.
12007
12008         * lib/glob.c: ultrix fixes
12009
12010         * lib/rename.c: replacement
12011
12012         * lib/strappend.c: small fix and copyright notice
12013
12014 Wed Mar 15 11:17:58 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12015
12016         * src/lexgrog.l: modifications to whatis parser, mainly for
12017         stray cats.
12018
12019         * src/man.c (main): add drop_effective_privs() and
12020         regain_effective_privs() around manpath configuration so that 
12021         users' `hidden' manpaths are found and used.
12022
12023         * substantial configuration changes regarding all Makefiles to
12024         allow `alternate build directory' support. man_db may be built
12025         in *any* directory. Aids multi-architecture builds and testing 
12026         of various configuration options.
12027
12028         * rationalised source files to #include "local_header" and
12029         #include <system_header>. CPPFLAGS uses -I- to limit -I paths
12030         to "" resolving only. Other alternate build directory mods.
12031
12032         * src/comp_src.h.in: moved to ./comp_src.h.in
12033         src/manconfig.h, src/path.h.in: combined into ./manconfig.h.in
12034
12035         * *ensure* that lib/{regex,fnmatch,getopt}.h are only #included
12036         if the replacement c source is used. Otherwise use system routines
12037         and system headers.
12038
12039         * ./configure.in, acconfig.h, aclocal.m4 (AC_FUNC_PCLOSE,
12040         BROKEN_PCLOSE): new autoconf macro 
12041
12042         * gencat is not installed by default. (cd gencat && make install)
12043
12044         * tools/mkcatdirs: re-written
12045         tools/checkman: new utility to check for duplicate manual pages
12046         across manual page hierarchies.
12047
12048         * docs/INSTALL, README: new
12049         
12050         * src/man.c (display): attempt to open tmp_cat_filename(), if
12051         unable, don't try to save cat.
12052         
12053 Sun Mar 12 18:12:13 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12054
12055         * Version 2.2a19
12056         
12057         * all source (main): replace mkprogname(%s) with 
12058         xstrdup(basename(%s))
12059
12060         * src/util.c (strappend): remove
12061         * lib/strappend.c: new
12062
12063 Mon Mar  6 20:05:27 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12064         
12065         * src/man.c (--local): re-enable support for compressed local
12066         files. eg `man -l foo.1.gz'
12067
12068         * src/man.c (make_roff_command): Check in alternate catdir then 
12069         mandir for external format script if ALT_EXT_FORMAT #defined.
12070
12071         * zsoelim/zsoelim.l: partial rewrite to mimick GNU soelim 
12072         `bad roff request' error behaviour.
12073
12074 Mon Mar  6 13:51:32 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12075
12076         * src/man.c: fix SEGV if arg --local used
12077
12078         * src/man.c (gripe_system): exit with errorcode of failed command
12079
12080 Sun Mar  5 20:54:13 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12081
12082         * Version 2.2a18
12083
12084         * src/catman.c (main): check individual cat directories for
12085         existence and perms.
12086         
12087         * src/man.c (commit_tmp_cat): fix SEGV 
12088
12089         * src/man.c: NO_MAN_UPDATES & NO_MAN_CATS #defined code
12090         regions for experimental CERN use, untested and incomplete.
12091
12092         * configure.in, src/Makefile, src/paths.h.in: undo bogus dependance
12093         on NLS for output device=latin1.
12094         
12095         * configure.in (--with-device=<device>): new option to select 
12096         default nroff output device. Test that nroff can handle selected
12097         output device (if any).
12098
12099 Thu Mar  2 19:30:45 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12100
12101         * src/lexgrog.l (too_big), (add_str_to_whatis), 
12102         (add_char_to_whatis): new functions
12103         (find_name): add extra argument.
12104         add string bounds checking, add new condition to terminate NAME
12105         section: <man_name>\n{W}*\n+.+ 
12106
12107         * src/check_mandirs.c, src/straycats.c, src/manconfig.h: change
12108         callers of find_name().
12109
12110         * src/man.c (try_db_section): warn of re-cache failure, but don't
12111         exit.
12112         lots of changes/simplifications w.r.t. global/user hierarchies.
12113         global_manpath == 1 for global hierarchy, global_manpath == 0 for 
12114         user. global_manpath is set once we know which hierarchy we are
12115         displaying from.
12116
12117 Tue Feb 28 13:34:15 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12118
12119         * src/man.c (display): fix SEGV.
12120         
12121         * src/util.c (strappend): allow realloc of NULL string.
12122
12123         * src/man.c: replace strappend(xstrdup("string"), ...) with
12124                              strappend(NULL, string, ...)
12125
12126         * src/straycats.c (check_for_stray): allow any supported
12127         straycat compression extension if COMP_SRC is #defined. 
12128         Replace static buffers with dynamic.
12129
12130         * src/check_mandirs.c, src/whatis.c: replace static buffers 
12131         with dynamic.
12132
12133         * src/util.c: (mkdbname): new function.
12134           src/*.c: replace static database[PATH_MAX] with mkdbname() calls.
12135
12136 Sun Feb 26 20:58:59 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12137
12138         * Version 2.2a17
12139
12140         * src/whatis.c: warn if no index or whatis db's available.
12141
12142         * src/man.c: Fixes to setuid/privs code regarding user manual 
12143         trees and ruid==0 from Markus.
12144
12145         * configure.in: add checks for AIX, USG, stdlib.h, MINIX, ISC_POSIX
12146
12147         * lib/glob.c: ensure that _POSIX_VERSION can be defined
12148
12149 Sun Feb 19 12:38:10 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12150         
12151         * Version 2.2a16
12152
12153         * Various portability fixes provided by Philippe Defert
12154         (defert@cern.ch)
12155         
12156         * FSSTND changes regarding /usr, /var/catman searching
12157
12158         * Some header file re-arrangement to aid user configuration.
12159
12160 Sun Feb 12 15:00:44 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12161
12162         * Version 2.2a15
12163
12164 Sat Feb  4 10:54:21 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12165
12166         * man(1), manpath(5): revisions.
12167  
12168 Thu Feb  2 23:36:20 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12169
12170         * src/catman.c (do_access): new
12171
12172         * src/man.c (do_chown): new
12173         catman changes, don't do_prompt() if print_where==1
12174
12175         * src/manp.c: changed an !is_directory() to is_directory() != 1
12176
12177 Sat Jan 28 09:39:07 1995 Markus Armbruster (armbru@pond.sub.org)
12178
12179         * man.c: **changes** ??
12180
12181 Sun Jan 22 16:15:04 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12182         
12183         * Version 2.2a14+
12184
12185         * configure.in, libdb/mydbm.h libdb/db_gdbm.c: if using gdbm, 
12186         explicitly test for gdbm_exists() rather than use header #defines.
12187
12188         * man/man1/mandb.man1, man/man1/catman.man1: moved to man/man8 and
12189         renamed.
12190
12191         * apropos(1), whatis(1), manpath(1), zsoelim(1), catman(8),
12192         mandb(8) manual pages: significant revisions.
12193
12194 Sat Jan 21 14:33:28 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12195
12196         * incorporate Markus' changes with my post 2.2a13 changes.
12197         
12198         * src/version.c (ver): fix, use fprintf() instead of error().
12199
12200 Thu 22 Dec 1994 15:12:38 +0100 1994 Markus Armbruster (armbru@pond.sub.org)
12201
12202         * src/man.c (make_roff_command, make_display_command, 
12203                      open_cat_stream, close_cat_stream, display,
12204                      find_cat_file, checked_system, 
12205                      get_preprocessors): new functions
12206
12207         * src/man.c (format_and_display, format_and_display_file,
12208                      display_cat_file, parse_roff_directive,
12209                      add_directive): removed functions
12210         
12211         * src/man.c (glob_for_file, make_name): made consistent.
12212
12213         * src/util.c (strappend): new function.
12214                      (do_system_command): changed/renamed to do_system().
12215
12216         * src/manp.c (global_catpath): replaced/fixed
12217         
12218         * src/security, src/fake_security (do_system_command_drop_privs):
12219           renamed to do_system_dropped_privs().
12220
12221         * lib/rename.c: new file 
12222
12223 Mon Jan  9 20:42:38 GMT 1995  Wilf. (G.Wilford@ee.surrey.ac.uk)
12224
12225         * nls/Makefile, man/Makefile: allow for bogus or non existent 
12226         native languages passed in $nls.
12227
12228         * src/man.c (do_prompt): replaced with less friendly but more
12229         portable version.
12230
12231         * inline directives replaced with __inline__ to be more ansi.  
12232
12233 Mon Dec 19 12:59:28 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12234         
12235         * Version: 2.2a14
12236
12237         * aclocal.m4, configure.in: don't define variable nroff_device
12238
12239         * src/Makefile, src/paths.h.in: define GNU_NROFF_DEVICE.
12240         If nls != off, GNU_NROFF_DEVICE=" -Tlatin1"
12241         else,          GNU_NROFF_DEVICE=" -Tascii"
12242
12243         * src/man.c, src/catman.c, src/security.c: #include <vfork.h> if
12244         available. _exit() from child rather than exit().
12245
12246 Sun Dec 18 17:54:22 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12247
12248         * src/util.c (basename): removed
12249         lib/basename.c: extracted from src/util.c
12250         configure.in: check for/replace basename function if necessary.
12251
12252         * src/catman.c (add_arg): replace strdup() with xstrdup().
12253
12254         * soelim/soelim.*: renamed zsoelim/zsoelim.*
12255         
12256         * manual pages: reflect soelim - zsoelim name change.
12257
12258 Fri Dec 16 12:17:48 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12259
12260         * configure.in: correctly determine db header and required library
12261
12262         * src/man.c (main, do_extern): pass manpath to whatis / apropos in
12263         case man was called with -M or -m.
12264
12265         * src/catman.c (main): interrogate $MANSECT for manual sections.
12266
12267         * man/man1/catman.man1, man/man1/man.man1 ($MANSEC): replace with
12268         the correct variable - $MANSECT.
12269
12270         * src/man.c: new option (-7 or --ascii) passes page through minimal
12271         latin1 to ascii translator. Only useful for nroff written in ascii
12272         and formatted with -Tlatin1.
12273
12274         * man/man1/man.man1: document it.
12275
12276         * src/man.c (make_command): new routine to piece together man's
12277         system() call. 
12278
12279 Thu Dec 15 13:52:42 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12280
12281         * Version: 2.2a13
12282
12283         * src/catman.c (parse_for_sec): only supply man with -L locale
12284         arguments if locale!=0x0
12285
12286         * src/Makefile: fix libmandb.a rule
12287
12288 Wed Dec 14 22:49:59 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12289         
12290         * Version 2.2a12
12291
12292         * major package restructure with creation of new subdirectories
12293         for xcat and the db routines. Allowed split up of single db source
12294         file into some constituent function parts.
12295
12296         * some Makefile restructuring to allow arbitrary ordering of 
12297         subdirectory builds.
12298
12299         * ./dblib/*, ./xcat/*: new or moved from src/.
12300
12301         * src/db_storage.c: moved and split up into ./dblib/*.c
12302           src/mydbm.h, db_storage.h: moved into ./dblib
12303           src/nls.h: moved to ./nls.h
12304           src/xcat.c, src/xcat.l, src/Register: moved into ./xcat
12305
12306 Wed Dec 14 00:17:11 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12307
12308         * src/manconfig.h: #include <stddef.h> for size_t declaration.
12309
12310         * src/checkmandirs.c (reset_db_time): remove use of strerror() in
12311         debug line for systems without it.
12312
12313         * src/manp.c: ensure no warnings given if quiet==1
12314
12315 Tue Dec 12 22:10:07 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12316
12317         * src/xcat.l: allow duplicate message id's to exist in single C
12318         source file, do not duplicate in the relative message file or
12319         src/man_db-nls.h. Warn of such duplications as they may be in error.
12320
12321 Tue Dec 12 19:05:21 GMT 1994  Markus Armbruster (armbru@pond.sub.org)
12322
12323         * configure.in: fix definition of BINDIR when --prefix not used
12324
12325         * src/man.c: replace "export foo=bar" with "foo=bar; export foo" in
12326         system() command
12327         
12328         * soelim/Makefile: do not backup old soelim before install
12329
12330         * lib/error.h: new
12331
12332         * convert all error message to the form 
12333                 error(int exitcode, int errno, char *message)
12334         where exitcode!=0 causes exit(exitcode) after message and errno!=0
12335         causes the error text to be appended to the message. All messages
12336         have "<program_name>: " prepended.
12337
12338         * all C source: #include "../lib/error.h" and replace prognam with
12339         program_name.
12340
12341         * src/db_storage.c (ndbm_flopen, btree_flopen): generalised
12342         (ndbm_trun_open, btree_trunc_open): removed
12343         (ndbm_flclose): new
12344
12345         * src/gripes.c: functions copied to relevant caller.
12346         src/gripes.c, src/gripes.h: removed
12347
12348 Sun Dec 11 15:16:42 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12349
12350         * Version: 2.2a11 (not released)
12351
12352         * src/man.c (main): putenv("LESSCHARSET=latin1"), remove from
12353         less_options[]
12354
12355         * src/lexgrog.l: translate \\[ ] (escaped space) to space,
12356                          accept '\" as *roff comment,
12357                          add a space at *roff end-of-line if necessary.
12358
12359 Sat Dec 10 21:37:41 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12360
12361         * man/man1/catman.man1: new
12362         
12363         * soelim/soelim.man1: new
12364
12365         * src/man.c (display_cat_file): if (COMP_SRC), support straycats
12366         with any supported compression extension or none at all.
12367         src/man.c (make_cat_file): replace execle() with execve().
12368
12369         * src/catman.c: added ARG_MAX support and use execve() instead of
12370         system(). This should now behave on systems with small execve() 
12371         argument capacity by batching more, but smaller, man jobs.
12372
12373         * Makefile: `make all' now equates to `make nls=all'
12374
12375 Thu Dec  8 00:03:12 GMT 1994  Wilf. (G.Wilford@ee.surrey.ac.uk)
12376
12377         * Version: 2.2a10
12378
12379         * src/catman.c: new utility.
12380         src/man.c (main): minor changes wrt --catman flag.
12381
12382         * src/paths.h.in (MAN_BIN): add definition for catman.
12383
12384         * dvi/: provide dvi files of the packages' manual pages.
12385
12386 Tue Dec  6 20:58:19 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12387
12388         * man/man.man1: addition of EXAMPLES section.
12389
12390         * src/man.c (do_prompt): change message.
12391         src/man.c (need_to_rerun): make -u really force an update.
12392         src/checkmandirs.c (reset_db_time): new function.
12393
12394         * src/mydbm.h, src/db_storage.c (ndbm_flopen, ndbm_trunc_flopen): 
12395         provide file locking mechanism for ndbm. 
12396         src/db_storage.c (btree_trunc_flopen): renamed (btree_trunc_open),
12397         add mode argument to open() call.
12398
12399         * src/db_storage.c (make_content): add `static' to declaration of
12400         (dash).
12401
12402         * src/man.c (try_db_section): ensure db found file entry is 
12403         consistent with the physical file, if not, update the db entry
12404         before proceeding. Cache consistency should be getting much better
12405         in a wide variety of circumstances now. This check is not performed
12406         for straycats.
12407
12408 Tue Dec  6 12:05:57 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12409
12410         * man/man.man1, man/mandb.man1: large changes.
12411         
12412         * aclocal.m4, configure.in (AC_PROG_GNU_ROFF): test for GNU nroff
12413         src/man.c: Do not use col with GNU nroff -Tlatin1 as (a) it is not
12414         needed: see grotty(1) and (b) it is not 8 bit clean. continuation
12415         dashes should now reappear.
12416
12417 Wed Nov 23 16:49:48 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12418
12419         * src/check_mandirs.c (test_manfile): Provide better checking for
12420         the existence of both foo.1 and foo.1.gz type problems. This should
12421         catch any problems earlier and relieve the db interface code of the
12422         job of identifying such problems.
12423
12424         * src/man.c (manopt_to_env): cater for $MANOPT option arguments 
12425         that contain spaces (for -r).
12426         src/man.c (man_getopt): revise, change duplicate option behaviour,
12427         modify -[tTZ] handling and add option -D.
12428         src/man/man1/man.man1: document.
12429
12430         * src/man.c: create LESS_OPTS and LESS_PROMPT and move their
12431         definitions to src/paths.h[.in].
12432
12433         * configure.in: append -s by default to whatever pager is found.
12434         favour db.h and -ldb above gdbm.h and -lgdbm.
12435         N.B.
12436                 db creates      index.bt
12437                 gdbm creates    index.db
12438                 ndbm creates    index.dir and index.pag
12439
12440 Wed Nov 23 16:46:59 GMT 1994  Zoltan Hidvegi (hzoli@cs.elte.hu)
12441
12442         * src/man.c: changes relating to (less_options) and (prompt). Add
12443         command line support for less' prompt: option -r.
12444
12445         * man/man1/man.man1: document it.
12446
12447 Sat Nov 19 20:19:39 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12448
12449         * Version: 2.2a9
12450
12451         * src/mydbm.h, src/db_storage.c: incorporate completely new
12452         database type: a binary tree method using the Berkeley db-1.85.1
12453         library. Currently experimental and is not used by default, it has
12454         the potential of enhanced speed and easy maintenance as it allows 
12455         storage of identical keys, thus reducing the amount of work necessary
12456         to store and lookup multi sectional manual pages such as manpath.1
12457         and manpath.5. During initial tests, the `walk through' algorithm, 
12458         used in apropos searches was 65% faster and the general database 
12459         open function is 100% faster when compared with gdbm-1.7.3.
12460
12461         * src/whatis.c (apropos): #define-optimised for btree database type.
12462
12463         * src/convert_name.c (convert_name): reorder actions to stop certain
12464         catfiles ending up with a double compression extension, for
12465         instance: foo.1.gz.gz.
12466
12467         * src/Makefile, src/man.c: enable -DNO_DEFAULT_TBL_OR_COL as an
12468         experiment.
12469
12470 Fri Nov 18 21:00:47 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12471
12472         * Version: 2.2a8 (not released)
12473
12474         * configure.in (config_file, config_prefix): Fix behaviour.
12475         
12476         * src/*.[cl], soelim/soelim.l: 
12477                 s,malloc,xmalloc,g
12478                 s,realloc,xrealloc,g 
12479                 s,strdup,xstrdup,g
12480         src/manconfig.h: remove redefinitions of malloc, realloc and strdup.
12481
12482 Thu Nov 17 22:01:11 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12483
12484         * src/lexgrog.l: changed catfile whatis extraction rules to be a
12485         little more forgiving. Increased char array size from 1024 to 2048.
12486
12487         * mkcatdirs: shell script to create relative cat dirs.
12488
12489         * src/$PROGS: replaced all occurances of `optional_argument' with
12490         `required_argument' in (long_options).
12491
12492         * src/man.c, src/compression.c, src/straycats.c: ensure that a
12493         failed child process is recognised and dealt with (normally exit(0)).
12494
12495         * src/man.c (make_cat_file): removed need to filter-then-copy if not
12496         setuid. [untested]
12497
12498         * src/man.c, src/mandb.c (main): optional profiling support if 
12499         __profile__ defined.
12500
12501         * configure.in (config_file, config_prefix): don't work unless
12502         --prefix=<something> is a command line option, temporarily setting
12503         them to /etc/man_db.config and /etc respectively.
12504
12505 Wed Nov 16 20:34:54 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12506
12507         * Version: 2.2a7
12508
12509         * src/man.c (format_and_display_file): Fix bug which caused 
12510         `man -l -' to fail. Produce sensible error message when -l file
12511         is inaccessable. Allow compressed manual pages to be specified when
12512         using -l (must have correct extension)
12513
12514         * soelim/soelim.l (main): ensure (progname) is the basename of
12515         argv[0] .
12516
12517         * src/manpath.c (main): remove local declaration of (quiet).
12518         add `--global' option.
12519
12520 Wed Nov 16 20:29:20 GMT 1994  Markus Armbruster (armbru@pond.sub.org)
12521
12522         * configure.in: if $prefix=/usr, put config file in /etc else
12523         put it in $prefix/etc
12524         src/manconfig.h (CONFIG_FILE): move to paths.h.in
12525
12526         * src/nls.h (LC_MESSAGES): define as (LC_ALL) in all cases where
12527         (LC_MESSAGES) is not defined in <locale.h>
12528
12529         * src/lexgrog.l: #include "manconfig.h" to redefine strdup() to
12530         xstrdup()
12531
12532 Tue Nov 15 21:38:19 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12533
12534         * src/manp.c (is_global_mandir): new
12535         src/man.c (locate_page): use it instead of (global_catpath)
12536
12537         * src/*.h: add suitable predicates to function prototype 
12538         declarations
12539         moved all function declarations to header files
12540         src/compression.h.in: renamed to comp_src.h.in
12541
12542 Mon Nov 14 18:17:48 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12543
12544         * Version: 2.2a6
12545         
12546         * src/hashtable.c, src/hashtable.h (struct nlist): replaced
12547         (union) member with (void *) and simplified. Modified users.
12548
12549         * src/man.c (make_cat_file): fixed NULL ptr reference in call to
12550         (execle)
12551         src/man.c: determined and fixed memory leaks using Checker.
12552
12553 Mon Nov 14 03:33:37 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12554
12555         * src/db_storage.c (replace_if_necessary, split_data, 
12556         list_extensions): new
12557         src/db_storage.c (free_content): replaced with (free_mandata_struct)
12558         all callers changed 
12559         src/db_storage.c (split_content_keep, split_content_temp): replaced
12560         with (split_content)
12561
12562 Sun Nov 13 13:50:46 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12563         
12564         * src/nls.h: change of macros, add (NLS_INIT, EXIT_FUNC)
12565         src/*.c: removed (NLS_CLOSE) macros, adjustments due to above
12566         src/version.c (close_catalogue): new 
12567         configure.in (AC_HAVE_FUNCS): (atexit, on_exit)
12568
12569         * getmandbver.c: removed
12570
12571 Sat Nov 12 14:18:02 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12572
12573         * src/security.h: new, contains security macros from src/manconfig.h
12574         src/manconfig.h: removed security macros
12575         src/security.c, src/security.h: replaced (SYSV_SAVED_IDS) with
12576         (BROKEN_LINUX_SAVED_IDS) 
12577
12578         * src/paths.h.in, src/compression.h.in, configure.in: changed
12579         compression defines
12580         src/paths.h.in: defined (STD_SECTIONS), got rid of (MANPATH_MAIN)
12581         src/*.c: removed all (MANPATH_MAIN) defines
12582         configure.in: added (COMP_CAT) and (COMP_SRC) definitions
12583         src/manconfig.h: removed (COMP_SRC) definition
12584
12585         * All manual pages: Fixed to be compatible with native *roff
12586         implementations having a request argument limit of 6
12587
12588         * src/db_storage.c (gripe_extract_data, gripe_corrupt_data):
12589         new routines
12590
12591         * All Makefiles: add (exec_prefix, mandir, bindir) where necessary
12592  
12593 Sat Nov 12 13:38:59 GMT 1994  Markus Armbruster (armbru@pond.sub.org)
12594
12595         * soelim/Makefile (install): made more portable
12596
12597         * src/manconfig.h: changes to (POSIX_SAVED_IDS) definition
12598
12599         * src/man.c (main): removed unnecessary #ifdef conditions regading
12600         (SECURE_MANUID)
12601
12602 Sat Nov 12 13:24:17 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12603
12604         * src/ult_src.c (ult_src): no longer follow an absolute .so include
12605         src/ult_src.c (test_for_include): new
12606
12607 Fri Nov 11 10:16:32 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12608
12609         * src/man.c (manopt_to_env): generalised
12610
12611         * src/man.c (do_extern): removed (gripe_alloc) call,
12612         modified callers
12613         src/manp.c: removed (gripe_alloc) calls, general tidy
12614         src/gripes.c (gripe_alloc): removed
12615
12616         * src/ult_src.c (ult_src): fixed loop when (buf) != NULL 
12617         changed absolute .so include actions
12618         configure.in (AC_HAVE_FUNCS): removed (memmove)
12619
12620         * src/mydbm.h (copy_datum): added references
12621         src/db_storage.c (copy_datum): added function
12622         Fixes for `native ndbm' data corruption by Markus Armbruster
12623
12624         * src/Makefile: removed dbver.o as dependency of manpath
12625
12626         * aclocal.m4 (AC_FUNC_SPRINTF_COUNT): new file and macro
12627         configure.in: use it
12628         acconfig.h: add (SPRINTF_CHARCOUNT)
12629         src/check_mandirs (add_dir_entries): use it
12630         src/whatis.c (display): use it
12631
12632         * src/check_mandirs.c (test_mandirs): added a (free(exists))
12633
12634         * src/straycats.c (check_for_stray): Fixes regarding straycats
12635         with no compression extension  
12636
12637 Fri Nov 11 00:29:15 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12638
12639         * lib/xmalloc.c, lib/xstrdup.c, lib/error.c: replaced
12640         lib/strdup.c: removed
12641         lib/strstr.c: replaced
12642         lib/strsep.c, lib/strspn.c, lib/strcspn.c, lib/ansidecl.h: new
12643         configure.in (AC_REPLACE_FUNCS): with respect to above
12644
12645         * src/check_mandirs.c (testmandirs): (free_hashtab) only if 
12646         necessary
12647
12648 Thu Nov 10 11:07:52 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12649         
12650         * Version: 2.2a5
12651
12652         * src/man.c (usage, man_getopt, parse_roff_directive, ditroff): 
12653         add `-Z' option
12654         man/man1/man.man1: document it
12655
12656 Wed Nov  9 20:16:35 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12657
12658         * configure.in (prefix, nroff, neqn, groff, soelim, CFLAGS, 
12659         LDFLAGS): portability changes.
12660         Suggestions from Markus Armbruster <armbru@pond.sub.org>
12661         gencat/Makefile (CFLAGS, LDFLAGS): definitions removed
12662
12663         * soelim/Makefile (install): procedural changes
12664
12665         * src/ult_src.c (ult_softlink): changes regarding S_ISLNK
12666
12667         * src/manconfig.h: #define __inline
12668
12669         * src/man.c, src/whatis.c, src/nls.c (LC_MESSAGES): define 
12670         as LC_ALL if necessary
12671
12672 Tue Nov  8 23:17:22 GMT 1994  Wilf.  (G.Wilford@ee.surrey.ac.uk)
12673
12674         * src/version.c (ver): aesthetic changes 
12675         * src/man.c, src/whatis.c, src/manpath.c, src/mandb.c (usage, ver): 
12676         calling changes
12677
12678         * src/version.h, src/update_db: removed
12679
12680         * src/convert_name.c (conver_name): argument changes
12681         src/man.c (format_and_display): caller of above changed
12682         (need_to_rerun, locate_page): new functions to split (man) 
12683         (format_and_display_nosave): renamed to format_and_display_file
12684
12685         * soelim/soelim.l (usage, ver): new functions 
12686         removal of NLS dependence
12687
12688         * Version: 2.2a4