SourceForge has been redesigned. Learn more.

[5d23cd]: / ChangeLog  Maximize  Restore  History

Download this file

1169 lines (820 with data), 44.3 kB

2008-02-27  Keith Marshall  <>

	Correct defect in french language message catalogue source.

	* msgs/ (USAGE4): Message definition was prematurely terminated
	by extraneous quote; replaced by escaped newline.

2008-02-27  Keith Marshall  <>

	Define message catalogue installation path relative to `localedir'.

	* aclocal.m4 (MAN_NLS_LOCALE_CACHE_INIT): Don't single quote
	assignment for `man_cv_locale'; double quote it instead to allow
	expansion of shell variable `${withval}'.
	(MAN_NLS_LOCALE_DIRECTORY): Remove these...
	(locale, locale_path, locale_prefix): ...disused AC_SUBST variables;
	replace them with these...
	(nl_catfile, nl_catdir, localedir): alternatives.

	* configure: Regenerated.

	* msgs/ (install): Use these...
	(nl_catfile, nl_catdir, localedir): AC_SUBST variables.

2008-02-25  Keith Marshall  <>

	Improved Win32 path name handling and `man.conf' location.

	* src/win32/wincmds.c (win32run_command_sequence): Function renamed...
	(win32_run_command_sequence): this.

	* src/win32/winposix.c (win32path_transform): Function renamed...
	(win32_path_transform): ...and reimplemented as this; the transform is
	now performed in the wide character domain, to avoid misidentification
	of `\`, occurring as a trail byte in a muiltbyte character sequence.
	(win32path_is_absolute): Function renamed and reimplemented...
	(win32_path_is_absolute): this; also now uses the wide character
	domain, but no longer implicitly normalises `\' in the path argument,
	so caller must now explicitly call `win32_path_transform' if needed.
	(win32_map_posix_path_name): New function.
	(win32_mbsconv, win32_mbsconv_len): New `static inline' functions.
	(win32_wcsconv, win32_wcsconv_len): New `static inline' functions.
	(is_dirsep): New `static inline' function.
	(wcs_normalised_path): New `static' function.
	(approot_len): New `static inline' function.
	(win32_application_root_length): New `static inline' function.
	(dirname_len, dirname_strip): New `static inline' functions.
	(win32_application_root): New `static' function.

	* src/compat.h: Address `src/win32' function updates...
	(IS_ABSOLUTE_PATH) [_WIN32]: Use `win32_path_is_absolute'.
	(RUN_COMMAND_SEQUENCE) [_WIN32]: Use `win32_run_command_sequence'.
	(MAP_POSIX_PATH_NAME) [_WIN32]: Define; use `win32_map_posix_path_name'.
	(MAP_POSIX_PATH_NAME) [!_WIN32]: Define; substitute its own argument.
	(POSIX_STYLE_PATH) [_WIN32]: Use `win32_path_transform'.

	* src/manpath.c (add_to_list): Use `POSIX_STYLE_PATH' to normalise the
	effective path name, when evaluating the current working directory.

	* src/man-config.c (default_config_files) [_WIN32]: Add alternative
	path names, to map application relative config file locations.
	(read_config_file): Use `MAP_POSIX_PATH_NAME' to resolve possible
	locations for the config file.

2008-02-23  Keith Marshall  <>

	Bug fix for missing quote in `test', arising from previous commit.

	* aclocal.m4 (MSYS_AC_PREFIX_CANONICALISE): Add missing quote.
	* configure: Regenerated.

2008-02-23  Keith Marshall  <>

	Canonicalise `prefix' and `exec_prefix' specifications for
	building on Win32, using MSYS.

	* aclocal.m4 (MSYS_AC_PREFIX_CANONICALISE): New helper macro...
	(MSYS_AC_CANONICAL_PREFIX): New macro; uses it.

	* configure: Regenerated.

2008-02-10  Keith Marshall  <>

	Correct some cross-compilation anomalies.
	Add catopen/catgets support for MinGW builds.

	* (AR): Use AC_PATH_TOOL to select host specific tool.

	* aclocal.m4 (catopen, catgets): Use AC_SEARCH_LIBS to locate them.
	(MAN_PROG_GENCAT): Don't canonicalise the `gencat' path name for the
	host file system; use AC_PATH_TOOL, to select a host specific variant
	to run on the build system.

	* configure: Regenerated.

	* src/ (LIBS): Define; use AC_SUBST value.
	(man): Add missing $(EXEEXT); don't depend on $(LIBS); create as $@.
	(all, CLEANFILES): Correct `man' reference; use `man$(EXEEXT)'.

	* src/win32/ (AR): Define; use AC_SUBST value.

	* man2html/ (man2html): Create as $@.

2007-08-01  Keith Marshall  <>

	Correct a potential buffer overrun and memory leak.

	* src/man-getopt.c (mysetenv) [!HAVE_SETENV]: Correct size of buffer
	allocated for constructing argument to `putenv'; was 2*strlen(name)+2;
	should be strlen(name)+strlen(value)+2.  Free this buffer after use,
	if `putenv' makes a distinct copy.

2007-08-01  Keith Marshall  <>

	* (DISTDIRS): Add `misc'.
	(distdir): `cd' to destination directory, before running `ln -s'.

2007-08-01  Keith Marshall  <>

	Resolve conflicts from man-1.6e import, for merge into trunk.
	Retain all imported updates, except...

	* All files (MAN-1-6E-MINGW-MERGED): Tag assigned.

	* (AC_INIT): Update version number.
	(AC_CHECK_HEADERS): Add check for `sys/termios.h'.

	* configure, Regenerated.

	* Keep my previous changes.
	(manhtml, messages): Add `source' as prerequisite.

	* src/ Keep my previous changes.
	(LDFLAGS): Use definition established by `configure'.
	(manfile.$OBJEXT): Add dependencies on `gripes.h' and `gripedefs.h'.
	(paths.h): Remove obsolete build rule.

	* src/man.c (TERMIOS_HEADER): New conditional include; renamed to...
	(HAVE_SYS_TERMIOS_H): ...this, as defined by AC_CHECK_HEADERS.

	* src/man-getopt.c (get_options_from_argvec): Add `-D' option.
	(HTMLHTMLPAGER): Typo in comment; keep my previous correction...
	(HTMLPAGER): this.

	* src/manpath.c (PATH_SEPARATOR_CHAR): Keep my previous change;
	use in place of explicit ':'; add SOH as fallback.
	(add_to_mandirlist_x): Correct expected offset for `.', in `lang[]'.
	(manpath): New environment variable; add as preferred synonym for...
	(MANPATH): ...this.

	* src/util.c (__CYGWIN32__): Revert my previous change; use...
	(__CYGWIN__): ...this instead, but keep my additional test for...
	(_WIN32): ...this.
	(NO_EXEC) [debug & 1]: Report using `fatal()' instead of `gripe()'.

	* msgs/ Keep my previous changes.
	(LC_ALL): Set to `en_US.UTF-8', when running `gencat'.

	* man2html/ Keep my previous changes.
	(install) [DESTDIR]: Invert sense of test, for `mkinstalldirs'.

	* man2html/man2html.c (version.h): Keep my modified include.

2007-07-26  Keith Marshall  <>

	Import man-1.6e sources on MAN-IMPORT `vendor' branch.

	* All files (MAN-1-6E): Tag assigned on branch.

2006-03-22  Keith Marshall  <>

	Prepare `man-1.6-mingw-beta-1' release.

	* (AC_INIT): Set PACKAGE_VERSION argument.
	* configure: Regenerated.

	* All files (MAN-1-6-MINGW-BETA-1): Tag assigned.

2006-03-20  Keith Marshall  <>

	* aclocal.m4: Reorganise macro grouping; comments added.
	(SQ): Macro renamed to...
	(m4_sq): ...this; all callers updated.
	(m4_pad, m4_chop): New utility macros.
	(MAN_STANDARD_ENABLE): Keep cache variable name lower case, and...
	(MAN_FSSTND_ENABLE): Adjust FHS override case to match.
	(MAN_CONFDIR_DEFAULT): Remove trailing slash.
	(MAN_CONFDIR): Remove support for `--with-confdir' option.
	Instead, use `MAN_AC_CASE_OPTION'; inherit from `--sysconfdir'.
	AC_REQUIRE `MAN_FHS_ENABLE'; override `--sysconfdir' default.
	Prefer `AC_ARG_ENABLE', replacing...
	`--with-config' option with `--enable-config-file';
	`--with-sections' option with `--enable-sections';
	`--with-man1ext' option with `--enable-man1ext';
	`--with-man5ext' option with `--enable-man5ext';
	`--with-man8ext' option with `--enable-man8ext';
	`--with-languages' option with `--enable-languages'.

	* configure: Regenerated.

2006-02-24  Keith Marshall  <>

	* src/compat.h (__GNU_LIBRARY__): Define for Cygwin;
	we need it, as we do for MinGW.

2006-02-23  Keith Marshall  <>

	* man/en/ (BROWSER, HTMLPAGER): Correct punctuation in, and use
	of `.B' and `.BR' requests, for documenting default commands.

2006-02-14  Keith Marshall  <>

	* src/ (version.h): Tidy command line quoting.
	(clean, distclean): Tidy logic for `*$(EXEEXT)' removal, to avoid
	ignored errors in `make'.
	(install): Use it; tidy backup logic for `man.conf', to avoid ignored
	error in `make install'.

	* man2html/ (top_builddir): Remove definition.
	(CFLAGS): Keep user/autoconf setting; don't augment locally.
	(.c.o): Replace default rule, to apply local flag settings.
	(version.h): New target; generate file locally.
	(man2html): Make object file dependent on `version.h'.

2006-02-08  Keith Marshall  <>

	* src/man.c, src/manpath.c, catopen/catopen.c (index): Omit function
	prototype when mapped to `strchr' function.

	* src/man.c, src/manpath.c, src/man-config.c, src/to_cat.c (rindex):
	Omit function prototype when mapped to `strrchr' function.

2006-02-01  Keith Marshall  <>

	* src/win32/ (GCC): Make it use AC_SUBSTed `CC'.

2006-01-24  Keith Marshall  <>

	Clean up `make' rules for installing message catalogues.

	* aclocal.m4 (MAN_PROG_GENCAT): Improve descriptive commentary.
	(MAN_NLS_LOCALE_CACHE_INIT): Always define `locale', even when NLS
	support is disabled; do not canonicalise to Win32 form.
	(MAN_NLS_LOCALE_DIRECTORY): Modified to define...
	(locale_prefix, locale_path): ...these; new AC_SUBST variables.

	* configure: Regenerated.

	* msgs/ (install): Rewrite all commands; based on...
	(locale, locale_prefix, locale_path): New AC_SUBSTed variables.
	( Improved reporting of `make' progress.

	* msgs/ Redundant file; deleted.

2006-01-16  Keith Marshall  <>

	Update for building message catalogues with relocated gencat.

	* aclocal.m4 (MAN_PROG_GENCAT): New macro...
	(man_tools_required): New AC_SUBST variable; defined by...

	* configure: Regenerated.

	* (gencat): Remove all references.
	(man_tools_required): Use it to specify tools to MAKE.

	* msgs/ Add copyright notice, etc.
	(GENCAT, MKMSGS): Define, and...
	(all): ...Use them; rewrite all commands; make dependent on...
	( New target.
	(gencat): Redundant target; delete and remove all dependencies.

	* msgs/, msgs/ Redundant files; deleted.

2006-01-04  Keith Marshall  <>

	Relocate gencat sources to tools directory.

	* gencat/ File deleted.
	* gencat/gencat.c, gencat/genlib.c: Files moved...
	* tools/gencat.c, tools/genlib.c: here.
	* gencat/gencat.h, gencat/msgcat.h: Files moved...
	* tools/gencat.h, tools/msgcat.h: here.
	* gencat: Directory pruned.

	* (gencat/Makefile): Reference removed.
	* configure: Regenerated.

	* tools/ (EXEFILES): Macro renamed...
	(all): Redefine in terms of...
	(all-default): New target; define rules to build DEFAULT_EXEFILES.
	(GENCAT_EXEFILES): New macro; declare `gencat' executables.
	(all-gencat): New target; define rules to build GENCAT_EXEFILES.
	(all-inclusive): New target; builds both all-default and all-gencat.

	* tools/gencat.c, tools/genlib.c: Use autoconf compatible conditional
	includes; avoid missing prototype warnings for static functions.

	* tools/genlib.c (bzero, bcopy): Redefine as macros.

2005-12-15  Keith Marshall  <>

	Enable autoconf hooks for making message catalogues.

	* aclocal.m4 (MAN_NLS_LANGUAGE_SELECTION): New AC_SUBST variables...
	(make_messages, make_install_messages): ...defined.

	* Use them.

	* configure: Regenerated.

2005-12-09  Keith Marshall  <>

	* src/win32/wincmds.c (win32_run_command_sequence): Adapt SHELL
	identification logic, to match that used in the `spawncli' function
	from the MinGW `execwrap' library.

2005-12-09  Keith Marshall  <>

	Improve `distclean' performance and integrity.

	(distclean): Use both of them; remove dependence on `clean'.
	(clean): Use `CLEANFILES'.

	* src/ (CLEANFILES, DISTCLEANFILES): New variables.
	(clean): Use `CLEANFILES'; add `*.stackdump' to list.
	(distclean, realclean): New targets; they are pseudonyms for...
	(spotless): ...use `CLEANFILES' and `DISTCLEANFILES';
	add `*.orig' and `*.rej' to list; remove dependence on `clean';
	recurse into `src/win32' subdirectory.

	* src/win32/ (distclean, realclean, spotless): Merge;
	add `*.orig' and `*.rej' to list of files to delete.
	(RCSfile): Add to EOF tag line.

	* gencat/ (distclean): Add `*.orig' and `*.rej' to list of
	files to be deleted.

	* msgs/ (clean): Add `*.stackdump' to list of files to be
	deleted; add `EXEEXT' suffix to `gencat'.
	(distclean, realclean): New targets; they are pseudonyms for...
	(spotless): ...add `clean' as prerequisite; add `*.orig' and `*.rej'
	to list of files to delete.

	* man2html/ (clean): Add `*.stackdump' to list of files to
	be deleted; add `EXEEXT' suffix to `man2html'.
	(distclean, realclean): New targets; they are pseudonyms for...
	(spotless): ...add `*.orig' and `*.rej' to list of files to delete.

	* tools/ (REALCLEANFILES): Remove.
	(realclean, spotless): Divorce from `extraclean'; merge with...
	(distclean): ...this.
	(extraclean, maintainer-clean): Delete all commands.
	(DISTCLEANFILES): Add `*.orig' and `*.rej'.
	(DISTCLEANDIRS): Select all `auto*' entities in `srcdir'.

2005-12-08  Keith Marshall  <>

	Update distribution clean-up and packaging rule sets.

	(clean, distclean): Rewrite all commands; loop on `CLEANDIRS'.
	(reallyclean): Target renamed...
	(realclean): this; it remains a pseudonym for `distclean'.
	(BUILD, DISTNAME): New variables; together they define the base name
	for the distribution tarball.
	(ZIPCMD, ZIPEXT): New variables; define the compression method for the
	distribution tarball; default: `gzip' with `.gz' suffix.
	(LN_S): New variable; defined by autoconf; required to use `ln -s'
	command to assemble the distribution file tree.
	(distdir): New variable; it defines the subdirectory name for...
	(distdir): New target; make distribution file tree image directory.
	(distpackage): New target; it packages the `distdir' file tree image.
	(dist): Rewrite commands; use `distdir' and `distpackage'.
	(DISTR): Redundant variable; deleted.
	(RCSfile): Added EOF tag, and `vim' mode line.

	* man/ Add file header, with copyright notification.
	(clean): Original target renamed...
	(clean-here): this; it operates in one subdirectory.
	(spotless): Original target renamed...
	(spotless-here): this; it operates in one subdirectory; have it
	clean up `patch' reject reports and backups.
	(clean): New target; it is a pseudonym for `cleansubdirs'.
	(distclean realclean spotless): New targets; all are pseudonyms for
	(RCSfile): Added EOF tag, and `vim' mode line.

	* gencat/ (distclean, realclean, spotless): New targets;
	all are pseudonyms for the same action; required to support the
	modified `distclean' operation in the top level `'.

2005-12-06  Keith Marshall  <>

	Update installation rules for autoconf compatibility.

	* aclocal.m4 (MAN_ID_ENABLE): New macro.
	to establish suid and sgid install preferences.
	(MAN_INSTALL_FLAGS): New macro; it passes the appropriate flags,
	established by MAN_SUID_ENABLE and MAN_SGID_ENABLE, to `make'.

	Use them.

	* configure: Regenerated.

	* mkinstalldirs: New file; adapted from GNU automake standard, with
	support for `--require' option added.

	* src/ Use braces for all directory name assignments.
	(dest_prefix, bin_destdir, sbin_destdir): New definitions.
	(install): Use them; use `mkinstalldirs'.
	(clean): Don't fail on anticipated false test for EXEEXT.
	(CFLAGS): Let autoconf supply defaults.
	(RCSfile): Keyword added, in EOF tagline.

	* man/ Use braces for all directory name assignments.
	(abs_top_srcdir): New definition; let autoconf supply it.
	(INSTALL): Eliminate duplicate `-c' option; (already supplied by
	(PREFIX): Removed.
	(dest_prefix, ALL_MANDIRS): New definitions.
	(install, installsubdirs): Use them; use `mkinstalldirs'.

	* man2html/ Use braces for all directory name assignments.
	(bindir, mandir): Use autoconf supplied definitions.
	(top_srcdir, prefix, exec_prefix, OBJEXT, EXEEXT, LN_S): New
	definitions; let autoconf supply them.
	(PREFIX): Removed.
	(man2html): Add EXEEXT suffix.
	(FORCE): New PHONY target.
	(README): New target; copy README to builddir, if required.
	(install, install-man-scripts, install-glimpse-stuff, install-hman):
	Use `mkinstalldirs'; add `srcdir' references; avoid attempts to
	install CVS directory images. 

2005-11-14  Keith Marshall  <>

	Define filename extensions for installed manpages.


	* (man1ext, man5ext, man8ext): Use MANSECT_FILENAME_EXT
	to define them.

	* configure: Regenerated.

2005-10-31  Keith Marshall  <>

	Configure C compiler warning options (bug fix).

	* aclocal.m4 (MAN_AC_PROG_CC_OPTIONS_INITIALISE): Extraneous `)'
	deleted; replaced by `,'.

	* configure: Regenerated.

2005-10-31  Keith Marshall  <>

	Configure C compiler warning options.


	* (CWARN, CWARNNP): Define, using macros

	* configure: Regenerated.

	* src/ (CWARN, CWARNNP): Let configure define them.
	* src/win32/ (CWARN): Let configure define it.
	* man2html/ (CWARN): Ditto.

	* tools/ (CWARN): Use MAN_AC_PROG_CC_WARN to define.
	* tools/configure: Regenerated.

	* tools/ (CWARN): Let tools/configure define it.

2005-10-13  Keith Marshall  <>

	* man/ (MANPAGE_SED_TRANSFORM): Add `browser' and
	`htmlpager' substitutions.

2005-10-13  Keith Marshall  <>

	Handle semicolon vs. colon selection for Win32 MANPATH.

	* aclocal.m4 (MAN_PATH_SEPARATOR): New macro; it defines the
	`@path_separator_char@' substitution value.

	* Use it.

	* configure: Regenerated.

	* src/ (path_separator_char): New substitution.
	* src/ (apropos, whatis): Use it.

2005-10-10  Keith Marshall  <>

	* aclocal.m4 (MAN_PROG_AWK): New macro.
	* (MAN_PROG_AWK): Use it...
	(AC_PROG_AWK): ...instead of this.

	* configure: Regenerated.

2005-10-06  Keith Marshall  <>

	* src/man.c (make_roff_command): Add note about version specific line
	length adjustment in groff versions 1.18 through 1.19.1.

2005-10-06  Keith Marshall  <>

	Make long option handling comply with autoconf standards.

	* aclocal.m4 (MAN_GETOPT_LONG): New macro.
	* Use it.

	* configure, Regenerated.

	* src/man-getopt.c (NOGETOPT): Delete references; replace with...
	(HAVE_GETOPT_H, HAVE_GETOPT_LONG): ...these, as appropriate.

2005-10-05  Keith Marshall  <>

	Avoid building Win32 components for non-Win32 hosts.

	* aclocal.m4 (WIN32_AC_NATIVE_HOST, WIN32_AC_NEED_LIBS): New macros.

	* (WIN32_AC_NEED_LIBS): Use it...
	(win32/libexec.a): specify this dependency.

	* configure: Regenerated.

	* src/Makefile (WIN32LIBS): Use autoconf substitution.

2005-10-05  Keith Marshall  <>

	Automatically detect and configure for cross compiling.

	* tools: New directory.

	* tools/ New file.

	* tools/configure: New file; generated.

	* src/makemsg.c: Remove...
	* tools/makemsg.c: here.
	(compat.h): No longer included.
	(config.h): Include conditionally.
	(index rindex): Conditionally define to use strchr & strrchr.



	* configure: Regenerated.

	* (tools): New target...
	(all): ...schedule it for `make' in tools directory.
	(clean, spotless): Add tools directory.
	(FORCE): New PHONY target; all primary targets require it.

	* src/ (BUILD_CC): Redundant variable; removed.
	(makemsg): Redundant target; removed.  Use version in tools directory,
	when required to execute.

	* msgs/ (top_builddir): Defined.
	(makemsg): Use version in tools directory.

	* msgs/README (makemsg): Refer to version in tools directory,
	not in src.

2005-09-05  Keith Marshall  <>

	Autoconfiscate `man-1.6' additions.

	* aclocal.m4 (man_path_transform): New macro; it defines the
	correlation between path names, and ther corresponding substitution
	variable names.
	(MANPATH_MAP_CANONICAL): Use `man_path_transform'.
	(MAN_LANGUAGE_LIST): Use `m4_normalize' instead of `m4_bpatsubst'.

	* (MANSECT_SEARCH_ORDER): Add 1p, 3p and 0p.
	(MANPATH_DEFAULT_INCLUDE): Add /usr/local/share/man, /usr/lib/*/man,
	/usr/share/*/man, /opt/*/man;  remove /opt/teTeX/man,
	/usr/lib/perl5/man, /usr/share/perl5/man, /usr/share/tcl-8.0/man,
	/usr/share/tk-8.0/man, usr/share/tix-4.1/man, /usr/share/coas/man.
	(MANPATH_MAP_ALIAS): Add /usr/local/man to /usr/local/share/man
	remapping for FHS.
	(MANPATH_MAP_DEFAULT): Minor table formatting change.
	(MAN_FILTER_PREFERRED): Add `lynx' as BROWSER, `lynx -dump' as
	fallback to CAT.

	* configure: Regenerated.

	* src/ (MANPATH): Remove substitution references for
	/opt/teTeX/man, /usr/lib/perl5/man, /usr/share/perl5/man,
	/usr/share/tcl-8.0/man, /usr/share/tk-8.0/man, usr/share/tix-4.1/man,

2005-08-22  Keith Marshall  <>

	Resolve conflicts from merge of `man-1.6' release.

	* Merge differences.
	(dist): GNU standard target retained.

	* configure: Keep PRE-MAN-1-6 `autoconfiscated' implementation.

	* man/ Merge differences.

	* man/*/makewhatis.8: Remove.

	* man2html/ Merge differences.
	(CFLAGS): Keep autoconf/VPATH compatible.
	(CWARN): Separate warning flags out of CFLAGS.
	(install): Keep MAN-1-6 implementation.

	* man2html/man2html.c: Merge differences.

	* src/ Merge differences.
	(CFLAGS, CWARN): Keep warning flags separate, per PRE-MAN-1-6.
	(GREPSILENT): Keep PRE-MAN-1-6 implementation; Win32 needs it for
	correct disposal of unwanted output; (can't assume /dev/null).
	(makemsg): Use $(srcdir) for VPATH support; pass CFLAGS and DEFS, so
	we can handle build platform specifics.
	(apropos, whatis): Remove pager reference, but keep `grepsilent'
	implementation, per PRE-MAN-1-6.

	* src/gripes.c, src/man-config.c, src/util.c: Merge differences.
	* src/man-getopt.c: Merge differences.
	(mysetenv): Use HAVE_SETENV to select `setenv' or `putenv' usage.
	(BROWSER, HTMLPAGER): Handle them.
	(HTMLHTMLPAGER and -D): Typo; correct it to...
	(HTMLPAGER and -H): ...this.

	* src/man.c: Merge differences.
	(do_global_apropos): Keep PRE-MAN-1-6 implementation of GREPSILENT.
	(do_win32, DO_WIN32): Make note to maybe move to `compat.h'.

	* src/ Keep PRE-MAN-1-6 implementation and formatting.
	(MANPATH): Added hooks for globbed MANPATH directories.

	* src/ Keep PRE-MAN-1-6 implementation and formatting.

2005-08-18  Keith Marshall  <>

	Import changes from official `man-1.6' release.

	* All files (PRE-MAN-1-6): Tag assigned prior to import.
	(MAN-1-6): Tag assigned on import.

2005-08-18  Keith Marshall  <>

	Fix handling of path names as topic selectors on Win32.

	* src/man.c (main): Handle non-option arguments as possible
	POSIX_STYLE_PATH specifications, converted as required for Win32.
	(man): Use IS_ABSOLUTE_PATH macro to check if `name' argument is an
	absolute path name, so we catch both POSIX and Win32 style path names;
	make `fullname' a POSIX_STYLE_PATH.

	* src/compat.h, src/win32/winposix.c (win32path_transform): Remove
	`const' qualifier from function return type.

2005-08-16  Keith Marshall  <>

	Add NLS support hooks for autoconf managed configure.

	(MAN_NLS_PREREQUSITES): New macros; check for prerequisite header
	files and library functions for NLS support.
	(MAN_NLS_LOCALE_DIRECTORY): New macro; identify the root of the
	message catalogue repository.
	macros; used internally by MAN_NLS_LOCALE_DIRECTORY only.
	(MAN_NLS_LANGUAGE_SELECTION): New macro; implement the
	`--with-languages=LIST' option for `configure'.
	(MAN_LANGUAGES_AVAILABLE): New macros; used internally by
	MAN_NLS_LANGUAGE_SELECTION to deduce and display the list of available
	languages, by inspecting the content of the `man' directory in the
	distributed package.
	complement AS_HELP_STRING, for displaying default choices, single
	quoted literals, and extended help messages.
	string changes.
	(MAN_NROFF_SGR_CHECK): Remove semicolon from `result' string.

	Deploy; (these also force the MAN_NLS_PREREQUISITES check).

	* configure: Regenerated.

	* src/compat.h (NONLS): Leave config.h to specify it.

	* Regenerated.

	* man/ Add VPATH support; use ${srcdir} references to make
	it work.

2005-08-05  Keith Marshall  <>

	* man/ja/ (@man_config_fils@): Typing error; corrected...
	(@man_config_file@): this.

2005-07-27  Keith Marshall  <>

	Set compiled location for `apropos' and `whatis'.

	* src/ (bindir, sbindir, prefix, exec_prefix): Defined.
	(stamp.h): Add substitution for ${bindir}.

	* src/ (APROPOS, WHATIS): Define in terms of ${bindir}.

2005-07-27  Keith Marshall  <>

	Configure compression and decompression filters.

	* aclocal.m4 (MAN_COMPRESS_WITH): New macro.

	* (COMPRESS): Define using MAN_COMPRESS_WITH; this sets
	the @compress@ and @compress_ext@ substitutions.
	symbol and @decompress@ substitution.
	(MAN_GREP_SILENT): Relocate; add comment.

	* configure, Regenerated.

2005-07-26  Keith Marshall  <>

	Avoid using `col' in conjunction with `groff'.

	* aclocal.m4 (MAN_DISABLE_COL_WITH_GROFF): New macro...
	* Use it.

	* configure: Regenerated.

	* src/ (@nocol@): Redundant substitution; removed.

2005-07-26  Keith Marshall  <>

	Handle nroff SGR output quirks for groff >= 1.18.

	* aclocal.m4 (MAN_NROFF_SGR_CHECK): New macro; used by...
	(MAN_FILTER_PREFERRED): Modified `help' string.
	(MAN_AC_PATH_COMMAND_RESOLVE): Use braces in ${#}, ${@}.


	* configure: Regenerated.

	* src/ Update note about groff colour support.

2005-07-08  Keith Marshall  <>

	Implement autoconf checks for filter programs.

	use them to implement...
	they provide a modified reimplementation of autoconf's AC_PATH_PROG,
	but preserving arguments which follow the resolved path, and offering
	the capability to override any previously cached result.  Use them to
	internal macros; use them to implement...

	to specify filter command substitutions for src/man.conf and

	* configure: Regenerated.

2005-07-08  Keith Marshall  <>

	* add accreditation for original authors.

2005-07-04  Keith Marshall  <>

	Define MANPATH_MAP and other general comment improvements.

	* aclocal.m4 (MAN_STANDARD_ENABLE): Improve comments.
	Use PREFIX instead of ${prefix}, in help string.
	(MANSECT_SEARCH_ORDER): Add comment.  Simplify help string.
	(MANPATH_DEFAULT_SUBST): MAP argument removed.  Add comment.  Improve
	text of "checking" message.
	New internal macros; they facilitate the implementation of
	(MANPATH_REMAP): New internal macro; it facilitates the implementation

	to define the default MANPATH_MAP, with FHS specific remap of /usr/man
	to /usr/share/man.

	* configure: Regenerated.

	* src/ (MANPATH_MAP): Define autoconf substitutions.

2005-06-27  Keith Marshall  <>

	* aclocal.m4 (MAN_STANDARD_ENABLE): New macro; used by...
	(MAN_FHS_ENABLE, MAN_FSSTND_ENABLE): New macros; they request
	FHS or FSSTND conformance, when configured with `--enable-fhs'
	or `--enable-fsstnd' respectively, (subject to `--enable-fhs'
	overriding `--enable-fsstnd').


	* configure: Regenerated.

	* src/ (FHS, FSSTND): New syntax.
	(MANBIN, MANPATH): Tidy column alignment.
	(MANBIN): Resolve location according to `${prefix}'.

2005-06-24  Keith Marshall  <>

	Configure automatic MANPATH generation feature.

	* aclocal.m4 (MANPATH_DEFAULT_SUBST): New macro; used by...

	* (MANPATH_DEFAULT_INCLUDE): Use it to specify the
	standard paths, and the optional paths, which are assigned to MANPATH
	by src/

	* configure: Regenerated.

	* src/man.conf (MANPATH): Transform the path name entries into
	autoconf substitution fields, to be filled out by configure; add space
	after initial `#', when key is occluded.
	(NOAUTOPATH, NOCACHE, MANDEFOPTIONS): Normally occluded; add space
	after occluding `#'.

	* src/ (stamp.h): Add dependency on src/man.conf;
	adapt sed script, in associated commands, to clean up __undef__(path)
	substitutions specified by the MANPATH_DEFAULT_INCLUDE macro.

2005-06-24  Keith Marshall  <>

	Configure MANSECT specification.

	* aclocal.m4 (MANSECT_SEARCH_ORDER): New macro.

	* (MANSECT_SEARCH_ORDER): Use it to specify the default
	man sections search order, as defined by the MANSECT key in
	src/ and src/

	* configure: Regenerated.

2005-06-24  Keith Marshall  <>

	* src/ Tidy layout.

2005-06-14  Keith Marshall  <>

	Add support for Win32 command invocation using a UNIXy shell.

	* src/win32: New directory.

	* src/winposix.c: Removed...
	* src/win32/winposix.c: ...and relocated to here.

	* src/win32/wincmds.c: New file; it spawns a UNIXy shell to execute a
	specified command sequence.

	* src/win32/quotearg.c: New file; adapted from "groff" code, it
	ensures that all arguments passed in a Win32 spawn or exec function
	call are properly quoted; (Microsoft's default behaviour is broken).

	* src/win32/execvw.c: New file; compile it to generate a wrapper for
	the "spawnvp" function, which ensures that all arguments are properly

	* src/win32/execlw.c: New file; compile it to generate a wrapper for
	the "spawnlp" function, redirecting its action through the wrapped
	"spawnvp" function.

	* src/win32/getenvp.c: New file; included for completness, it is
	required by execlw.c, when generating wrapper functions which pass an
	explicit "envp" argument; it is not required by "man".

	* src/win32/winexec.h: New file; it transparently redirects all calls
	to Microsoft's spawn and exec functions through appropriate wrappers,
	to ensure proper argument quoting.

	* src/win32/ New file; processed by configure to generate
	Makefile, it defines the rules for building a library of Win32 wrapper

	* src/ (win32/libexec.a): New target; use it to build a
	Win32 support function library in src/win32.
	(WIN32LIBS): New variable; it specifies the support libraries to be
	linked in a Win32 build.
	(WIN32LIBEXEC): New variable; it sets the name for the support
	library, (libexec.a), to be built in src/win32.
	(WIN32LIBOBJS): New variable; use it to define the list of object
	modules to include in WIN32LIBEXEC.
	(FORCE): New dummy target; use it to force building of WIN32LIBEXEC.

	* src/compat.h (RUN_COMMAND_SEQUENCE): New macro; it invokes the
	"win32run_command_sequence" function to spawn commands on Win32
	platforms, or the "system" function otherwise.

	* src/util.c (system1): Use RUN_COMMAND_SEQUENCE macro.

	* (process.h): Add check for header; it is required to
	use the Win32 spawn and exec functions.

	* configure: Regenerated.

2005-06-10  Keith Marshall  <>

	Configure silent output capability for "grep" command.

	* aclocal.m4 (MAN_GREP_SILENT): New macro.
	(WIN32_AC_NULLDEV): New macro; MAN_GREP_SILENT uses it to identify the
	name of the null device, used for redirection of discarded output from
	grep; this should be `nul' for Win32, or `/dev/null' elsewhere.


	* configure: Regenerated.

	* src/ (GREPSILENT): Correct quoting.

2005-06-09  Keith Marshall  <>

	Add autoconf support for configuration file specification.

	* aclocal.m4: New file; it defines package specific autoconf macros.

	* Add specification for man configuration file; it is
	defined using the MAN_CONFIG_FILE macro, and optionally also the

	* configure: Regenerated.

	* src/ (INCLUDES): Pass them to $(CC) in $(DEFS).
	(stamp.h): New dummy target; use it to update paths.h.

2005-06-06  Keith Marshall  <>

	* src/manpath.c (prmanpath): Use PATH_SEPARATOR_CHAR; previously it
	always used ':' to separate MANPATH components.

2005-06-06  Keith Marshall  <>

	WinPOSIX bug fixes and API enhancements.

	* src/winposix (win32posix): Function renamed...
	(win32path_transform): this.
	(win32path_is_absolute): New function; it checks if a specified Win32
	path name is absolute.

	* src/compat.h (isabspath): Macro renamed...
	(POSIX_STYLE_PATH): New macro; use it to invoke the
	win32path_transform function, when required.
	(PATH_SEPARATOR_CHAR): Fix it, for non-Win32 hosts; had ';',
	should be ':'.

	* src/manpath.c: Use POSIX_STYLE_PATH and IS_ABSOLUTE_PATH macros.

	* src/util.c: Use POSIX_STYLE_PATH macro.

2005-06-03  Keith Marshall  <>

	* man2html/ (top_builddir): New identifier; have autoconf
	supply its value.
	(CWARN): New identifier; define it as the warning flags, which were
	previously included in CFLAGS.
	(CFLAGS): Redefined; include $(CWARN), add -I$(top_builddir)/src
	(man2html): Make it depend on $(top_builddir)/src/version.h, rather
	than ../src/version.h.
	(hman): Locate in $(srcdir).

	* man2html/man2html.c (version.h): Don't specify path.

2005-06-03  Keith Marshall  <>

	Set package versioning from

	parameter values; PACKAGE_NAME=man, PACKAGE_VALUE=1.5m3.

	* configure: Regenerated.

	* version: Redundant file; removed.

	* src/ (package, version): New identifiers; initialise them
	from PACKAGE_NAME and PACKAGE_VERSION respectively.
	(version.h): Make it depend on; insert $(version).
	(apropos, whatis, makewhatis): Identify as $(package)-$(version).


	* man2html/ (package, version): New identifiers; initialise
	(hman): Identify as $(package)-$(version).
	(VPATH): Defined to autoconf specified $(srcdir).

2005-06-02  Keith Marshall  <>

	Make code in src directory compile on Win32/MinGW platform.

	* (AC_CONFIG_FILES): add src/man.conf.

	* configure: Regenerated.

	* src/ ( Use $(srcdir) to find it.

	* src/compat.h: New file; it defines platform specific dependencies
	for use within C compilation units.

	* src/makemsg.c (compat.h): Include unconditionally.
	(stdlib.h, unistd.h, string.h): Include conditionally.

	* src/man.c (compat.h): Include unconditionally.
	(locale.h, stdlib.h, string.h, sys/file.h, sys/stat.h, unistd.h):
	Previously included unconditionally; make them conditional.
	(strings.h): Include conditionally, unless we already have string.h.
	(GREPSILENT): Change from single character definition to string;
	format it using "%s".  (Rationale: UNIX SysV grep can't use -q or -s
	to suppress output; must redirect to null device stream).
	(setlocale): Some platforms don't define LC_MESSAGES; don't use it
	when we don't have it.  Similarly for LC_CTYPE.

	* src/manpath.c (compat.h): Include unconditionally.
	(stdlib.h, string.h, sys/types.h, sys/stat.h, unistd.h): Previously
	included unconditionally; make them conditional.
	(split, split2): Use win32posix() function to ensure that Win32 path
	names include only slashes, and no backslashes;
	Use PATH_SEPARATOR_CHAR, defined in compat.h, to locate point at which
	to split a path list; previously these assumed splitting at a colon.
	(add_to_list): Use isabspath(dir) macro, defined in compat.h, to check
	if dir is specified with absolute path name; previously required first
	character to be a slash.

	* src/man-config.c, src/to_cat.c (compat.h): Include unconditionally.
	(stdlib.h, string.h): Include conditionally; were previously included

	* src/man-getopt.c (compat.h): Include unconditionally.
	(stdlib.h, string.h, unistd.h): Include conditionally; were previously
	included unconditionally.
	(man_getopt): Use setenv() if configure defined HAVE_SETENV; else use
	putenv(); previously used dedicated logic for specific platforms.

	* src/gripes.c (compat.h): Include unconditionally.
	(stdarg.h, stdlib.h): Include conditionally; were previously included
	(mantexts): Don't declare it when NONLS is in effect.

	* src/glob.c (compat.h): Include unconditionally.
	(config.h): Included by compat.h; don't care if SHELL defined.

	* src/util.c (compat.h): Include unconditionally.
	(stdarg.h, stdlib.h, string.h, unistd.h): Include conditionally; were
	previously included unconditionally.
	(sys/stat.h, sys/types.h, sys/wait.h): Likewise.
	(man-config.h): Include unconditionally; previously not included.  It
	prototypes the getval() function, used to get the name of the SHELL,
	which _WIN32 will spawnlp() in system1().
	(winexec.h): Include it when configure says HAVE_PROCESS_H; it is a
	wrapper for process.h, to work around an argument parsing bug in
	Win32's spawnlp(), and similar functions.
	(mkprogname): Use win32posix() to avoid backslashes in Win32 style
	path names.
	(noprivileges): Don't call setreuid() or setregid() in _WIN32.
	(system1): Use spawnlp() rather than system(), in _WIN32, to invoke
	the man command pipeline.
	(my_system): Never use fork() in _WIN32; never run asynchronous _WIN32
	pipelines, therefore no need to call wait().
	(my_popen): FILE variable `r' unused in _WIN32; don't declare it.

	* src/winposix.c: New file; it defines the win32posix() function, used
	to replace backslashes with slashes, in Win32 path names.

2005-06-02  Keith Marshall  <>

	* src/ (INCLUDES): Add "-I.".
	(top_srcdir): Correct definition, and...
	(msg.c, gripedefs.h): ...use it to locate msgs/mess.en.
	(man.c, glob.c): Use $(srcdir) to locate source.

2005-06-01  Keith Marshall  <>

	Adaptation to autoconf configuration and build framework.

	* install-sh: New file;  autoconf generated configure requires it;
	source it from autoconf 2.59 distribution.

	*, src/ Add comments in file headers,
	to bring them up to a GPL conforming standard.
	Add standard autoconf path name substitutions; use them.
	(OBJEXT, EXEEXT): Added autoconf substitutions; use them.
	(VPATH): Defined to autoconf specified $(srcdir).

	* gencat/Makefile: Renamed...
	* gencat/ this; need it so for VPATH support.

2005-05-31  Keith Marshall  <>

	* All files: Tagged MAN-1-5M2-AC; this is the starting point for
	autoconf managed implementation.

2005-05-31  Keith Marshall  <>

	Switch to autoconf management of configure script.

	* All files: Tagged MAN-1-5M2-PRE-AC prior to switch.

	* New file; generated by autoscan; reorganised, and
	copyright notice added.

	* New file; generated by autoheader.

	* configure: Regenerated.

2005-05-31  Keith Marshall  <>

	* man/it/makewhatis.8 ($Id$): make it match man-1.5m2 release.

2005-05-26  Keith Marshall  <>

	Started recording ChangeLog entries.
	* ChangeLog: New file.

2005-05-26  Keith Marshall  <>

	Initial import based on man-1.5m2 distribution.

	* All files (MAN-IMPORT): Tag assigned for `vendor' branch.
	(MAN-1-5M2-MINGW): Tag assigned for initial state of `trunk'.