2026-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Prepare release 26.04 for publication.

	* pdfmark.ms (PUB): Add 2026 as year of publication.
	* configure.ac (AC_INIT): Increment argument corresponding to...
	(PACKAGE_VERSION): ...this; set its new value to 26.04, and...
	(PACKAGE_BASE_VERSION): ...associate it with groff-1.24.0.

2026-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Facilitate build-time obfuscation of author's address.

	* pdfmark.ms (author@address): New conditionally defined string; if
	defined as pdfroff command line option, override default assignment...
	(AI): ...for this document property.

2026-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a front-matter layout defect.

	* cover.ms (CS): Add initialization for...
	(DD): ...this; set zero vertical space before and after displays.
	(pub@enum): Use centred adjustment, when colleccting...
	(pub@revised): ...this list of publication years; capture result in...
	(pub@preformat.revlist, pub@preformat.copyright): ...this pair of new
	diversions; ultimately, write the resultant output, by calling...
	(pub@post): ...this, thus ensuring correct centring.
	(CE): Revert to full adjustment, before calling...
	(pub@licensing): ...this.

2026-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update dependencies for compilation of a distribution.

	* Makefile.in (docdist): Correct previous omission of...
	(pdfmark.pdf, $(pdf-manpages)): ...these missing prerequisites.
	(srcdist, bindist, docdist, mandist, tmacdist): Reorganize dependency
	specifications; place in consistent order for all targets; do not
	depend on mercurial to generate prerequisite content of...
	(SRCDIST_FILES): ...this variable; specify it explicitly, or by GNU
	make function/variable expansion; incorporate content of...
	(SRCDIST_SUBDIRS): ...this new variable; define it; also inccorporate
	prerequisites which were originally specified by...
	(EXTRA_SRCDIST_FILES): ...this; it is no longer required; delete it.
	(SRCDIST_DIRNAME): New variable; it specifies the name which is to
	used for the top directory in a source distribution; define it.
	($(RELEASE)-%.tar): Interpret dist_transform before manifest.

2026-04-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct manual page errors in pdfnote synopsis.

	* man/groff_pdfmark.7.man (Synopsis) <.pdfnote>: Correct balancing
	of brackets around optional macro arguments; adjust argument spacing.
	* man/groff_pdfnote.7.man (Usage): Make it consistent.

2026-04-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Manual page wording improvements.

	* man/groff_toc.7.man: General revisions, throughout.

2026-04-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Document each of the provided appendix layout macros.

	* pdfmark.ms (Appendix C, Subsection C.4): Add content; include...
	(Subsections C.4.1, C.4.2): ...content relating to these previously
	specified bare subsection headings, and also to...
	(Subsection C.4.3): ...this new subsection.

2026-04-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add an appendix level reference dictionary entry.

	* pdfmark.ms (FDL-TYPESETTING): New temporary-use string;
	define, and use it as the title argument in the XH-APPENDIX
	macro call, which opens Appendix B. Also associate it with...
	(PDFBOOKMARK.NAME): ...this, as it is defined immediately after
	this same XH-APPENDIX macro call; save it by assignment to...
	(FDL-TYPESETTING-LINK): ...this new persistent string, and call...
	(pdfhref D): ...this, to create a corresponding PDF reference
	dictionary entry.

2026-04-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use appendix subsection numbering macro consistently.

	* pdfmark.ms (XH-APPENDIX-NH): Make all calls consistent;
	always specify the optional arguments, thus avoiding any need
	to call XH directly, to specify the associated heading text.

2026-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Delete extraneous trailing white-space.

	* man/pdfroff.7.man man/groff_toc.7.man: /[ ^I]$/s/[ ^I]*$//

2026-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update distribution details in manual pages.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_mspdf.7.man
	* man/groff_pdfmark.7.man man/groff_opmode.7.man man/groff_omit.7.man
	* man/groff_pdfhref.7.man man/groff_pdfnote.7.man man/groff_toc.7.man
	* man/groff_sanitize.7.man (Authors): Update details of project
	hosting and distribution resources.

2026-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adapt to accommodate renamed "an-end" macro.

	* tmac/anpdf.tmac (anpdf-atend): Make call of...
	[d an-end] (an-end): ...this undocumented macro conditional on its
	existence; although undocumented, it was originally required to be
	invoked by an end-of-input trap, but groff-1.24 renamed it as...
	[d an*end-document] (an*end-document): ...this; call it
	instead, on condition that it exists, but only if...
	[!d an-end]: ...this does not.

2026-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Do not use unpredictable SY/YS macros in manual pages.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_mspdf.7.man
	* man/groff_pdfmark.7.man man/groff_toc.7.man man/groff_omit.7.man
	* man/groff_pdfhref.7.man man/groff_sanitize.7.man
	* man/groff_pdfnote.7.man man/groff_opmode.7.man (SY, YS): Delete all
	references; there is no guarantee that they will be supported by any
	particular manual page formatter, and even when they are, their
	behaviour is unpredictable; (it isn't even consistent across groff
	version boundaries); replace all instances of "SY" usage with...
	(BR): ...this standard macro, accompanied by standard troff layout
	adjustment and hypenation control requests.

2026-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Prefer normal control character for "ne" requests.

	* pdfmark.ms tmac/float.tmac man/groff_pdfhref.7.man
	* man/groff_pdfnote.7.man man/groff_sanitize.7.man ('ne): Replace
	all requests, specified in this form, with...
	(.ne): ...this preferred alternative.

2026-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct an appendix heading level reference inconsistency.

	* pdfmark.ms (XH-APPENDIX-NH-SN): Replace all references...
	(XH-APPENDIX-NH-HL): ...with this numeric register reference; this
	corrects an inconsistency, introduced by 2026-03-24 revision of...
	* tmac/appendix.tmac: ...this macro file.

2026-04-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate references to deprecated font name "C".

	* pdfmark.ms man/groff_mspdf.7.man
	* man/groff_toc.7.man man/groff_pdfmark.7.man man/groff_pdfnote.7.man
	* man/groff_sanitize.7.man ("\fC"): Replace all references...
	("\f(CR"): ...with this non-deprecated alternative.

2026-04-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate input text following "\c" escapes.

	* pdfmark.ms: Correct three input lines, where significant content
	followed a "\c" line continuation excape; one of these was the result
	of a malformed "CW" macro invocation, one due to punctuation following
	a redefined "\**" string interpolation, and the third resulting from
	unintended junk following an explicit "\c" escape.

2026-03-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Exclude trailing spaces from file names in mso requests.

	* Makefile.in (pdfmark.pdf): Add dependency on...
	* tmac/redirect.tmac: ...this new file; it provides...
	(redirect, request-redirector): ...these new macros; included...
	* tmac/spdf-toc.tmac: ...here, to redirect calls to...
	(mso): ...this request; groff-1.24 has changed its behaviour, such
	that any white-space which appears between the end of its file name
	argument, and the start of any trailing comment, is considered to be
	a significant part of the file name; simple removal of such space is
	ugly, whereas redirection removes its significance, thus preserving
	the former behaviour.

2026-03-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Remove a redundancy introduced by 2025-10-14 change.

	* tmac/spdf.tmac (spdf:XH.refmark): Delete macro; it is not needed.
	(spdf:XH.finalize): Revert to previous implementation.

2026-03-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up appendix subsection numbering macro.

	* tmac/appendix.tmac (XH-APPENDIX-NH): Reorganize code.
	(XH-APPENDIX-NH-HL): New public numeric register; assign value,
	and use it to specify an effective subsection heading level.
	(XH-APPENDIX-SN-NO-DOT, XH-APPENDIX-SN-DOT): New public strings;
	define them, and use the latter, together with the assigned
	heading level, and optional macro arguments, to specify,
	and lay out the desired heading text.

2026-03-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adopt a more public-style appendix number register name.

	* tmac/appendix.tmac (XH-APPENDIX): On assignment of...
	(appendix.number): ...this named register, replace its name with...
	(XH-APPENDIX-NUMBER): ...this alternative; update all references.

	* pdfmark.ms tmac/fdl-setup.tmac fdl-typesetting.ms
	* fdl/fdl-v1.3.ms.in (appendix.number): Update all references; use...
	(XH-APPENDIX-NUMBER): ...this replacement register name.

2026-03-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Document the method used to typeset the GNU FDL.

	* pdfmark.ms (Appendix B): Add; its content is mostly defined in...
	* fdl-typesetting.ms: ...this new file; source it.

	* Makefile.in (pdfmark.pdf): Add dependency on...
	(fdl-typesetting.ms): ...this additional named file; to locate it...
	(PDFROFF): ...add include path specification.

	* tmac/sanitize.tmac (sanitize:esc-generic, sanitize:esc-delimited):
	Add support for configuration as substitution filters, as alternative
	to their default behaviours as elimination filters.

	* pdfmark.ms (FDL-APPENDIX-NUMBER): New string; define it.
	(sanitize:esc-h, sanitize:esc-h.subst): New PDF outline filter
	specification strings; define them accordingly, deriving from...
	(sanitize:esc-delimited): ...this filter implementation.
	(FDL-APPENDIX-CONTEXT): Redefine it, in terms of yet another...
	(FDL-APPENDIX-TITLE): ...new string; define it.

2026-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement more robust handling of blank lines in FDL.

	* fdl/Makefile.sub (txt2roff): Do not require blank lines to be
	completely devoid of content; accept /^[ \t]*$/ regex matches.
	[qs_tag == "BL"]: Use in preference to regex match, for front-matter.
	(FDL-IP, FDL-SH): Mark immediately preceding blank lines, using...
	(FDL-BL): ...this mark-up macro.

2026-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve handling of section headings within appendices.

	* tmac/appendix.tmac: Ensure spdf.tmac is loaded.
	<XH-APPENDIX> (XH-APPENDIX.PSINCR): Initialize on first entry;
	use it on subsequent entries, to restore original value of...
	(PSINCR): ...this; scale it down on exit.
	(XH-APPENDIX-NH-h1): Clear residual heading level.
	<XH-APPENDIX-NH> [\n(.$ > 2]: Handle additional arguments.
	(SH, XH-APPENDIX-NH-hl-local): Adjust for PSINCR scaling.
	(GROWPS): Do not adjust; hence, there is no requirement for...
	(XH-APPENDIX-GROWPS-DEFAULT): ...this; delete all references.
	(XH-APPENDIX-SH-DOT, XH-APPENDIX-SH-NO-DOT): New strings;
	define them to record last assigned section number.

	* fdl/fdl-v1.3.ms.in <FDL-SH> (SH): Adjust for PSINCR scaling.

2026-01-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve implementation of toc macro argument handling.

	* tmac/toc-base.tmac (toc) [d \\$0.\\$1]: Do not propagate arguments
	to defined handler, directly as ".\\$0.\\$1 \\$*"; rather assign the
	composed handler name to a local macro string variable, shift $1 out
	of the way, invoke the handler via the locally stored name, passing
	any remaining arguments using the "\\$@" syntax, so that any quoted
	grouping is preserved, before deleting the local variable.
	(toc.put.null, toc.put.tty, toc.put.file): Rename them as...
	(toc!put.null, toc!put.tty, toc!put.file): ...these, respectively;
	this protects against inadvertent identification as publicly visible
	action handlers; update all internal references, and adopt "\\$@"
	syntax for argument propagation.

	* tmac/toc-class.tmac (toc.classify, toc.activate, toc.exclude)
	(toc.select): Adopt "\\$@" syntax for argument propagation.

	* tmac/fdl-setup.tmac (FDL-XH): Do not use '"' as internal delimiter
	within \h'\w"0."u' motion specification; it may be misinterpreted when
	subsequently passed as a toc macro argument, propagated using "\\$@"
	syntax; substitute \h'\w!0.!u', as a safer alternative.

2026-01-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Explain the use of table of contents classification macros.

	* pdfmark.ms (Section 4.4.4): Add content; it describes and explains
	the use of the extended capabilities, which are provided by...
	* tmac/toc-class.tmac: ...this supplementary macro package.

2025-12-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Note obsolescence of cited table of contents example.

	* pdfmark.ms (Section 3.1.2.3): Note that given example of...
	(XH-UPDATE-TOC): ...this macro substitution is no longer in use.

2025-12-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a minor typo and apply some layout tweaks.

	* pdfmark.ms: Add some widow/orphan line avoidance controls.
	(Section 2.6.1): Correct terminal punctuation on final sentence, of
	final paragraph; had comma, but should have been period.

2025-12-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust format of table of contents entries.

	* pdfmark.ms (TC-LEADER): Reduce spacing of leader dots.
	(TC-MARGIN): Allocate additional space for printing page numbers.

2025-12-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Suggest some extra table of contents interpolation macros.

	* pdfmark.ms (Appendix C, Section C.3.6): Add content; suggest...
	(toc.heading, toc.reset, toc.load): ...these convenience macros; offer
	working, as-built implementations.

2025-12-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Discuss side effects of table of contents interpolation.

	* pdfmark.ms (Section 4.4.3.1): New section; this explains default
	text colour effects arising from use of the pdfhref macro to specify
	table of contents entries, suggesting techniques for mitigation of any
	undesirablity of such effects.  This explanation is expanded further,
	with accompanying as-built mitigating macro implementation...
	(Appendix C, Section C.3.5): ...here.

2025-12-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Discuss binding of groff_toc with the ms and pdfmark macros.

	* pdfmark.ms (Section 4.4.3): Add content; this provides an overview
	of the development of simple, generalized binding macros for extending
	the groff_toc macro framework, for use in conjunction with the ms and
	pdfmark macros; the concepts are developed further in...
	(Appendix C, Sections C.3, C.3.1, C.3.2, C.3.3, C.3.4): ...these
	appendix sections; illustration is provided through references to, and
	incorporation of, as-built macro listings.

2025-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Introduce techniques for using the groff_toc macro framework.

	* pdfmark.ms (Section 4.4.2): Add content; this provides an overview
	of basic macro framework extensions which the user will be required to
	implement, in order to make effective use of the groff_toc framework.

2025-11-25  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe the basic features of the groff_toc macro framework.

	* pdfroff.ms (Section 4.4.1): Add content; it provides an overview
	of the features supported by, and the macros implemented within...
	* tmac/toc-base.tmac: ...this auxiliary macro package.

2025-11-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Establish a convention for marking references in appendices.

	* pdfmark.ms (PDFHREF.APPENDIX): New reference context; bind it to...
	(appendix): ...this new "pdfhref K" reference formatting keyword.
	(PDFHREF.INFO.APPENDIX): New "pdfhref M" content specification; use it
	within appendices, as a "PDFHREF.INFO" replacement alias for...
	(PDFHREF.INFO.LOCAL): ...this.

2025-11-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Document specialized page advance macro implementation.

	* pdfmark.ms (Appendix C, Section C.2): Add content; incorporate...
	(NEW-RECTO-PAGE, HD): ...as-built macro listings.

	* tmac/newpage.tmac (HD): Tidy implementation, as-documented.

2025-11-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up and document locally defined text-style macros.

	* pdfmark.ms (EM, CWB, CWI, CWBI, \*[=]): Tidy implementation.
	(Appendix C, Section C.1): Document them, incorporating the full
	forms of their as-built macro listings.
	(Section 4.1.6): Adjust tracking to preserve layout, following a
	change in text flow, resulting from increased font size...
	(EM): ...in this amended macro; further, consequentially...
	(Section 4.2.3.1): ...adjust wording, for similar effect.

2025-11-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement an enhanced method for floating keep placement.

	* Makefile.in (pdfmark.pdf): Add dependency on...
	* tmac/float.tmac: ...this new file; it implements...
	(float): ...this new macro; it supports capture of any text block
	within a diversion, which may be subsequently output at a specific
	position, within the running text flow, while also reserving space
	above and/or below, for avoidance of widow and orphan lines.
	* pdfmark.ms: Import it, and then...
	(Section 4.2.3): ...use it.

2025-10-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Create a tentative outline for pdfmark.pdf appendix C.

	* pdfmark.ms (Appendix B): Add heading as placeholder.
	(Appendix C): Likewise; additionally, include sub-headings for...
	(C.1, C.2, C.3, C.3.1, C.3.2, C.3.3, C.3.4, C.3.5, C.3.6, C.4)
	(C.4.1, C.4.2, C.4.3): ...these numbered sub-sections, with...
	(text-style-macros, new-recto-page, toc-compilation, toc-collector)
	(toc-outline, toc-refmark, toc-pageref, toc-colour, toc-extras)
	(appendix-macros, xh-appendix-macro, xh-appendix-numbering): ...this
	set of pdfhref reference mark names, respectively.
	(TC-VS1): Reduce leading over level 1 TOC entries, from 1.3v to 1v.
	(TC-HS1): Adjust its initial definition, and...
	(XH-APPENDIX-SP): ...specify a value for this register, preceding...
	(Appendix B): ...this placeholder heading.
	(Appendix C): Include introductory text, and local table of contents.

2025-10-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Create an outline for pdfmark.pdf section 4.4

	* pdfmark.ms (Section 4.4): Amend title; add introductory content,
	followed by bare numbered sub-headings for each of...
	(Sections 4.4.1, 4.4.2, 4.4.3, 4.4.4): ...these sub-sections, with...
	(toc-usage, toc-interpretation, mspdf-toc-binding, selective-toc):
	...these pdfhref reference names, respectively, while retaining...
	(toc-alternatives): ...this, as parent section reference name.

2025-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update pdfroff(1) on-line manual page URI.

	* pdfmark.ms (pdfroff.1.uri): Direct to new hosting domain...
	(groff-pdfmark.uri): ...by redefining this, expressed in terms of...
	(groff-pdfmark.domain): ...this new string; it reflects relocation of
	the download host to savannah.nongnu.org

2025-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a repeated spelling error.

	* pdfmark.ms: g/desireable/s//desirable/

2025-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use the TC-DEFINE macro where appropriate.

	* pdfmark.ms (TC-VS1, TC-VS2, TC-VS3): Use...
	(TC-DEFINE): ...this macro to define them; this avoids potential
	problems arising from trailing space, which may be introduced by
	careless use of .ds; also use it to add new definitions for...
	(TC-HS0, TC-HS1, TC-HS2): ...each of these.

2025-10-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct an over-escaped table of contents heading reference.

	* pdfmark.ms (.pdfhref O 1 \\*[TOC]): Don't delay evaluation; use...
	(.pdfhref O 1 \*[TOC]): ...immediate evaluation syntax instead.

2025-10-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add some table of contents convenience macros.

	* tmac/spdf-toc.tmac (toc.reset, toc.colour, toc.load): New macros.
	(toc!load-select, toc!load-exclude, toc!load-clear): New internal-use
	option handlers for toc.load; they are called to manipulate...
	(toc!load.filters): ...this internal list of active filters.
	(toc.color): New alias for toc.colour.
	* pdfmark.ms: Use them.

2025-10-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Factor out document-local FDL formatting macros.

	* pdfmark.ms (FDL-SETUP, FDL-BACKUP-AND-REPLACE, FDL-TI-START)
	(FDL-SH-START, FDL-XH, FDL-XH-UPDATE-TOC, FDL-RESTORE): Factor out
	inline macro definitions; these have been relocated to...
	* tmac/fdl-setup.tmac: ...this new file; include it.

	* Makefile.in (pdfmark.pdf): Specify additional dependency...
	* tmac/fdl-setup.tmac: ...on this.

2025-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add support for numbered sub-headings within appendices.

	* tmac/appendix.tmac (XH-APPENDIX-GROWPS-DEFAULT): New register;
	define it globally, recording the original value assigned to...
	(GROWPS): ...this ms global register; it is temporarily modified by...
	(XH-APPENDIX-NH): ...this new macro; it emulates the behaviour of the
	".NH n" form of the ms macro, to introduce numbered sub-headings
	within appendices.

	* tmac/spdf.tmac (spdf:XH.refmark): New macro; it is called by...
	(spdf:XH.finalize): ...this, to clean up extraneous space, when any
	heading reference is entered into a PDF document outline.

2025-10-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Enhance the utility of appendix heading macros.

	* tmac/appendix.tmac (appendix.number): Relocate initialization...
	(XH-APPENDIX-NUMBER-FORMAT): ...to here.
	(XH-APPENDIX-SP): New register, defined by caller, and used...
	(XH-APPENDIX): ...here, to control output of, and vertical spacing
	around, the appendix title.

2025-10-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Factor out document-local appendix setup macros.

	* pdfmark.ms (XH-APPENDIX, XH-APPENDIX-NUMBER-FORMAT): Factor
	out inline macro definitions; these have now been relocated to...
	* tmac/appendix.tmac: ...this new file; include it.

	* Makefile.in (pdfmark.pdf): Specify additional dependency...
	* tmac/appendix.tmac: ...on this.

2025-10-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct an advancing page number tracking defect.

	* tmac/newpage.tmac (NEW-RECTO-PAGE) [\n(%% > 0]: Deduce new page
	number from the "%%" register, rather than from "%".

2025-10-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Factor out document-local page advance macros.

	* pdfmark.ms (NEW-RECTO-PAGE, HD): Factor out inline macro
	definitions; these have now been relocated to...
	* tmac/newpage.tmac: ...this new file.

	* Makefile.in (pdfmark.pdf): Specify additional dependency...
	* tmac/newpage.tmac: ...on this.

2025-10-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Be consistent in the choice of macros used for displays.

	* pdfmark.ms: Use ".DS I" throughout, in preference to ".ID"; also,
	use ".fam C" in preference to ".CW", within such displays.

2025-10-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid widow lines, orphan liness, and split displays.

	* pdfmark.ms: Encapsulate vulnerable displays within "KS".."KE" pairs,
	and insert "ne" requests, as appropriate.

2025-10-01  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust footnote marker spacing from running text.

	* pdfmark.ms (\**): When placed over punctuation, insert space
	equivalent to "\|" before footnote marker, throughout.

2025-10-01  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust terminology when referring to strategy.

	* pdfmark.ms (Section 4): Dispense with...
	(formatting stratagem): ...this terminology; it conveys an implied
	connotation of deceitful intent.  For preference, substitute...
	(formatting strategy): ...this neutral alternative.

2025-09-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add support for pdfhref destination namespaces.

	* tmac/pdfmark.tmac (pdf*href-N): New macro; it initiates handling
	of a new "pdfhref N ..." operation, subsequently completed by ...
	(pdf*href-N.callback): ...this new callback macro; it resumes handling
	of the "pdfhref N ..." operation, on the return path from...
	(pdf*href.getopts): ...this, after processing optional arguments.
	(pdf:href.namespace.push, pdf:href.namespace.pop): New internal-use
	macros; they manage an active namespace stack, as recorded in...
	(pdf:href.namespace.stack): ...this new string; it records a list of
	stack entries, separated by spaces, and duplicated top entry in...
	(pdf:href.namespace.active): ...this additional new string.
	(pdf*href) [pdf*href-L]: Add reference name mapping call to...
	(pdf:href-N.qualified): ...this new internal-use macro; it maps
	references, specified by "pdfhref D ...", into any active namespace.
	(pdf*href.namespace.map): New internal-use macro; it associates
	namespace properties with any "pdfhref L ..." reference, for which
	the reference name includes a namespace qualifier; map...
	(pdf:href-D.alias): ...this new string to the unqualified reference
	name, whence it is subsequently dereferenced through...
	(pdf*href-L.link): ...this, and is then ultimately cleared by...
	(pdf:href.options.clear): ...this; update default list of optional
	values which must be deleted.

	* man/pdfhref.7.man (pdfhref N ...): Document it; new sub-section,
	"Linking to Reference Marks in External Files", explains its usage,
	and the mechanics of its interaction with...
	(pdfhref L ...): ...this.

2025-09-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement TOC entry classification and selective output macros.

	* tmac/toc.tmac: Original file renamed...
	* tmac/toc-base.tmac: ...to this.

	* tmac/toc-class.tmac: New file; it implements...
	(toc.activate, toc.classify, toc.classified, toc.exclude)
	(toc.select): ...these new public-use macros, together with...
	(toc!define.list, toc!selection, toc!selection.match)
	(toc!selection.default, toc!selector, toc!selector.redirect)
	(toc!selection.verify, toc!selection.verify.classified): ...these
	private, internal-use macros, with additional support from...
	(toc!selection.matched): ...this internal-use string.

	* Makefile.in (pdfmark.ms): Remove specified dependency on...
	(toc.tmac): ...this renamed file; substitute dependencies on...
	(toc-base.tmac, toc-class.tmac): ...these replacement files.

	* man/groff_toc.7.man (USAGE, EXAMPLES): Document...
	(activate, classified, classify, exclude, select): ...these
	supplementary .toc macro operations.

2025-08-31  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Do some table of contents binding macro housekeeping.

	* tmac/spdf.tmac tmac/spdf-toc.tmac: Add guard logic, to avoid
	interpretation of contents more than once.

	* tmac/spdf-toc.tmac: Load spdf.tmac and toc.tmac
	(XH-UPDATE-TOC) [defined(PHASE) && PHASE > 0]: Redefine self on first
	call, such that it becomes a "do nothing" macro; hence delete...
	(XH-UPDATE-TOC-ULTIMATE): ...this new macro; it will never be used.
	(XH-UPDATE-TOC) [!defined(PHASE) || PHASE < 1]: Rename...
	(XH-UPDATE-TOC-ULTIMATE): ...this, such that it replaces...
	(XH-UPDATE-TOC): ...this; immediately call this replacement, passing
	the original arguments, in an apparently recursive manner; properly
	handle effects of calling within a diversion.
	(toc.outline): Internal-use registers...
	(toc.outline.current, toc.indent): ...renamed as...
	(toc#outline.current, toc#indent): ...these, respectively.
	(toc.refmark, toc.pageref): Strings...
	(toc.refmark.tag, toc.refmark.text): ...renamed as...
	(toc@refmark.tag, toc@refmark.text): ...these, respectively.
	(XH-UPDATE-TOC): After replacement by...
	(XH-UPDATE-TOC-ULTIMATE): ...this, do not use...
	(toc.refmark.text): ...this, for temporary storage; use...
	(\\$0.text): ...this, instead.

2025-08-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve interoperation of TOC data collection with pdfroff.

	* tmac/toc.tmac (toc.file): Add more comments; explain use of...
	(pdfroff option toc_file): ...this, and its suppression during...
	[pdfroff.phase > 0]: ...any such phase of pdfroff operation.
	(toc.put.null): New macro; it is used to simulate redirection of
	toc_file output to /dev/null, thus suppressing data collection in...
	[pdfroff.phase > 0]: ...this processing state.

2025-06-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add a forward reference relating to custom keyword usage.

	* pdfmark.ms (Section 2.5.5.4): When describing...
	(.pdfhref K ...): ...this capability, add a forward reference to...
	(Section 4.3.3): ...this recently added section, identified by...
	(keyword-map): ...this named reference mark.

2025-06-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clarify the intent of $GROFF_GHOSTSCRIPT_INTERPRETER.

	* man/groff_pdfhref.7.man (ENVIRONMENT): Amend description of...
	(GROFF_GHOSTSCRIPT_INTERPRETER): ...this variable; add a paragraph to
	clarify that it should name a Ghostscript compatible program, and it
	cannot specify an alternative, incompatible command, for which...
	(PDFROFF_POSTPROCESSOR_COMMAND): ...this may be used.

2025-05-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Capitalize "PostScript" correctly and consistently.

	* tmac/pdfmark.tmac: The Adobe trademark is correctly capitalized
	as "PostScript"; correct alternative capitalizations, to preserve
	correctness, and consistency with other (correct) usage elsewhere,
	throughout the groff-pdfmark distribution.

2025-05-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Capitalize "Ghostscript" correctly and consistently.

	* pdfmark.ms pdfroff.sh: Consistently adopt the "Ghostscript" style
	of capitalization, to maintain consistency with the style of Artifex
	documentation; propagate this throughout groff-pdfmark.

2025-05-26  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid duplicate coding of pdfhref option parsing loops.

	* tmac/pdfmark.tmac: Implement various layout adjustments.
	(pdf:href.getopts): New macro; it encapsulates several lines of
	duplicated macro code, which was previously repeated in each of...
	(pdfbookmark, pdf*href, pdf*href-D, pdf*href-M): ...these; use it,
	in place of such previously duplicated code, whence nominate for
	callback, and factor out following code, in each case, to...
	(pdfbookmark.callback, pdf*href.callback, pdf*href-D.callback)
	(pdf*href-M.callback): ...these new macros, respectively.

2025-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Suppress pdfhref control messages during document output.

	* tmac/pdfmark.tmac: When loading, at top level, define...
	[pdfroff.phase>0] (pdf*href.export): ...this to do nothing; else...
	[!pdfroff.phase] (pdf*href.export): ...define it as previously.
	(pdf*href-K) [1-pdfroff.phase]: Test is redundant; remove it.

2025-05-03  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Recognize "gswin64c" as a valid GhostScript interpreter name.

	* Makefile.in (GHOSTSCRIPT_PROGRAM_NAMES): Add "gswin64c" ahead of
	"gswin32c"; the former is the preferred program name on contemporary
	MS-Windows systems, (64-bit), while the latter is still required for
	use on any legacy (32-bit) MS-Windows system; resolves bug #67080.

2025-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Prepare new release for publication.

	* configure.ac (AC_INIT): Increment version to 25.04
	* pdfmark.ms (PUB): Add 2025 as new year of publication.

2025-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update hosting provider references to reflect project relocation.

	* configure.ac: Update copyright notice.
	(MANPAGE_URI_ROOT, MANPAGE_URI_PATH): These need not be configuration
	parameters; delete them, and reassign suitably modified values...
	* Makefile.in (MR_HOST_3_URI_ROOT, MR_HOST_3_URI_PATH): ...to these,
	directly, replacing all references to OSDN.net with the corresponding
	savannah.nongnu.org paths, to which hosting has been relocated.
	(PROJECT_HOST_URL): New macro; it identifies the new hosting home
	page; define it.

	* configure.ac (MANPAGE_DATE_FORMAT): Similarly, delete this, and
	substitute its original value directly, into the expression for...
	* Makefile.in (MANPAGE_DATE): ...this.

	* man/groff_mspdf.7.man man/groff_omit.7.man man/groff_opmode.7.man
	* man/groff_pdfhref.7.man man/groff_pdfmark.7.man man/groff_toc.7.man
	* man/groff_pdfnote.7.man man/groff_sanitize.7.man man/pdfroff.1.man
	* man/pdfroff.7.man (PROJECT_HOST_URL, AUTHOR_MT_ADDRESS)
	(MANPAGE_URI_ROOT, MANPAGE_URI_PATH): Use them, as appropriate.

2025-04-26  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add pdfhref link management documentation.

	* pdfmark.ms (Section 4.3): Add content.

2025-04-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Propagate custom pdfhref formatting keyword definitions.

	* pdfroff.sh (WRKFILE): Interpret records tagged with...
	(gropdf-info:href-keydef): ...this label; incorporate into...
	(REFFILE): ...this auxiliary file.

	* tmac/pdfmark.tmac (pdfroff.phase): Implement pdfroff integration
	hook; assign default register value, if it has not been predefined.
	(pdf*href-M) [pdf*href.export]: Add "-link" qualifier.
	(pdf*href-K): Augment it, to conditionally call...
	(pdf*href-K.export): ...this new internal-use macro; initially define
	it as a "no-op", until after definition of built-in keywords, then
	augment it to pass a "-keydef" qualifier in a call to...
	(pdf*href.export): ...this; adapt it to incorporate "-link",
	"-keydef", and other arbitrary qualifiers, as appropriate, into...
	(gropdf-info:href): ...these generated pdfroff records.

2025-04-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Simplify implementation of pdfroff macro.

	* tmac/pdfroff.tmac (pdfroff.phase): Always define it, at top
	level; do not defer definition to the first call, if any,  to...
	(pdfroff): ...this; hence simplify it; do not redefine it within
	its first-time call, thus making its dynamic replacement by...
	(pdfroff@action): ...this unnecessary; rename it to replace...
	(pdfroff): ...this; make it a silent "no-op" when...
	[\n(.$]: ...called without arguments.

2025-04-22  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Apply several minor document layout adjustments.

	* pdfmark.ms (DS I): Substitute...
	(ID): ...this equivalent macro, throughout.
	(ID...DE, QS...QE): Suppress excess vertical space before, and after.
	(ne): Add strategic non-breaking requests, at appropriate locations,
	to avoid single widow lines following automatic page breaks.
	(KS...KE): Use to avoid breaking some short paragraphs.

2025-04-21  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust pdfmark.pdf PORPHANS setting.

	* pdfmark.ms (PORPHANS): Set an explicit value of two lines.

2025-04-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid potential indefinitely recursive file name resolution.

	* Makefile.in (%.eps): Set dependency on...
	(${abs_srcdir}/artwork/%.eps): ...this, rather than on...
	(${srcdir}/artwork/%.eps): ...this, which may be susceptible to an
	indefinitely recursive resolution failure.

2025-04-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add an in-tree copy of the GNU General Public Licence.

	* gpl-v3.0.txt: New file; it provides a copy of the relevant licence,
	which we are required to include, but, following segregation from the
	GNU roff distribution, is no longer automatically inherited thence.

2024-12-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Apply a minor cover sheet layout tweak.

	* cover.ms (AI): Increase downward displacement of "@" glyph.

2024-11-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_pdfnote.7 manual page source file.

	* man/groff_pdfnote.7.man: New file.
	* Makefile.in (manpages): Add groff_pdfnote.7 to build goals.

2024-11-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_pdfhref.7 manual page source file.

	* man/groff_pdfhref.7.man: New file.
	* Makefile.in (manpages): Add groff_pdfhref.7 to build goals.

2024-11-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_pdfmark.7 manual page source file.

	* man/groff_pdfmark.7.man: New file.
	* Makefile.in (manpages): Add groff_pdfmark.7 to build goals.

2024-10-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update automated preparation for distribution.

	* Makefile.in (mandist): Include all generated manual pages.
	[mandist] (dist_transform): Adjust experssion to accommodate all.
	(docdist): Include all generated PDF manual pages.
	(gpgsum): Avoid overwrite prompt.

2024-10-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Set version number for new release.

	* configure.ac (AC_INIT): Increment argument corresponding to...
	(PACKAGE_VERSION): ...this configuration variable, to 24.10.

2024-10-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_sanitize.7 manual page source file.

	* man/groff_sanitize.7.man: New file.
	* Makefile.in (manpages): Add groff_sanitize.7 to build goals.

2024-10-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Support substitutions for dual-token escape sequences.

	* tmac/sanitize.tmac (sanitize): Add internal call to...
	(sanitize:esc-auto.assign): ...this new auxiliary helper macro;
	it dynamically binds a handler for any input escape sequence in...
	(sanitize:esc-char.subst): ...this new filter identification string.
	(sanitize:esc-auto.assign.init, sanitize:esc-auto.assign.scan)
	(sanitize:esc-auto.assign.handler, sanitize:esc-auto.assign.void)
	(sanitize:diag): New helper macros; they facilitate implementation...
	(sanitize:esc-auto.assign): ...of this.

2024-10-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Strip delimited argument escape sequences from sanitized text.

	* tmac/sanitize.tmac (sanitize:esc-s, sanitize:esc-v): New macros;
	each of these is implemented, internally, as an alias for...
	(sanitize:esc-delimited): ...this new generic handler macro.
	(sanitize:scan.delimiter.push, sanitize:scan.delimiter.pop): New
	helper macros; they are used by...
	(sanitize:esc-delimited): ...this, to save, and subsequently restore,
	effective escape sequence delimiter context, in...
	(sanitize:scan.delimiter.stack): ...this new string.
	(sanitize:esc-generic): Refactored; it now uses...
	(sanitize:skip-handler): ...this new string; it defines a template,
	used for redirection of control to one, or other of...
	(sanitize:skip-(, sanitize:skip-[): ...these, as appropriate.

2024-10-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve handling of groff special characters in sanitized text.

	* tmac/sanitize.tmac (sanitize:esc-(hy): Redefine as a string, with
	value equivalent to a single ASCII hyphen-minus; now used by...
	(sanitize:esc(??.subst): ...this new macro; it handles substitutions
	for two-character escapes of the form "\(??", on behalf of...
	(sanitize:esc-(): ...this; add a sanity check, to ensure that the
	input text residual comprises no fewer than two characters, as needed
	to complete the "\(??" escape sequence; otherwise simplify, delegating
	handling of the entire substitution operation to...
	(sanitize:esc-(??.subst): ...this; it is also used by...
	(sanitize:esc-[): ...this new macro; it also performs two-character
	escape substitution, for the alternative groff "\[??]" form, such that
	escapes of both "\(??" and "\[??]" forms are substituted congruently.
	(sanitize:esc-(mi, sanitize:esc-(en): New strings; they define
	substitutions for "\(mi" and "\(en", respectively; both are aliases...
	(sanitize:esc-(hy): ...for this; thus all three result in substitution
	of a single ASCII hyphen-minus glyph.
	(sanitize:esc-(em): New string; it defines a substitution for the
	"\(em" escape, such that it is replaced by a conjoined pair of ASCII
	hyphen-minus glyphs.

2024-10-07  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve filtering of groff special tokens from sanitized text.

	* tmac/sanitize.tmac (sanitize:scan.reject): New string; with
	default value of "'\&\%\:'", it specifies a list of groff special
	tokens, enclosed within a matching pair of arbitrary delimiting
	tokens, ("'" in this default case), which are to be filtered out
	of sanitized text, and thus discarded from this context.
	(sanitize:scan.subst): New string; with default value comprising
	the space-separated list of quoted macro arguments, "'\-'-'",
	and "'\ \~' '", this specifies a collection of special token
	substitution groups, arbitrarily delimited by the "'" token.
	(sanitize:scan.filter): New macro; called by...
	(sanitize): ...this, it interprets, and applies the effect of...
	(sanitize:scan.reject, sanitize:scan.subst): ...these filters.

2024-10-03  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve escape sequence detection when sanitizing text.

	* tmac/sanitize.tmac (sanitize:scan.execute): Incorporate a test
	for groff's escape character; substitute string "^[".
	(sanitize): Test for "^[", rather than groff's escape character,
	to identify the start of any potential escape sequence.

2024-09-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Create obfuscation hook for manpage author's e-mail address.

	* Makefile.in (AUTHOR_MT_ADDRESS): New macro; define it with its
	default value representing the author's true e-mail address.
	(manpage_update_script) [@AUTHOR_MT_ADDRESS@]: Expand it.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_opmode.7.man
	* man/groff_omit.7.man man/groff_toc.7.man (MT): Substitute...
	(@AUTHOR_MT_ADDRESS@): ...this, in place of author's actual e-mail
	address, as appropriate.

2024-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update macro files copyright notices.

	* tmac/anpdf.tmac tmac/omit.tmac tmac/opmode.tmac
	* tmac/pdfmark.tmac tmac/pdfroff.tmac tmac/sanitize.tmac
	* tmac/spdf-toc.tmac tmac/spdf.tmac tmac/strcase.tmac tmac/toc.tmac:
	Make all copyright notices consistent; identify all as originating
	from within the groff-pdfmark project.

2024-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Address build-time warnings generated by groff.

	* Makefile.in (PDFROFF): Enable all available warnings; hence...
	* pdfmark.ms (FDL-TI-START): ...correct issues identified therein;
	in particular, do not use "z" scaling indicator in ".vs" request, and
	fix ambiguously nested ".ie"/".el" conditional blocks.

2024-08-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_opmode.7 manual page source file.

	* man/groff_opmode.7.man: New file.
	* tmac/opmode.tmac (.OP): Update "usage" comment; make it consistent
	with actual behaviour, as it is documented in the manual page.

	* Makefile.in (manpages): Add groff_opmode.7 to build goals.

2024-08-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve stylesheet formatting of e-mail addresses.

	* cover.ms (.AI): Adjust vertical alignement of "<", "@",
	and ">" glyphs, for improved appearance.

2024-08-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_omit.7 manual page source file.

	* man/groff_omit.7.man: New file.
	* Makefile.in (manpages): Add groff_omit.7 to build goals.

2024-08-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement a free-standing "omitted sections" API.

	* tmac/omit.tmac: New file; it implements the OMIT macro,
	factored out from, and adapted from original implementation...
	* tmac/spdf.tmac: ...here, whence use it.

	* Makefile.in (pdfmark.pdf): Add build-time dependency...
	* tmac/omit.tmac: ...on this.

2024-08-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Remove inappropriate discretionary hyphenation points.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_toc.man (.UR):
	Delete '\%' prefix from URI argument; it was intended to prevent
	hyphenation, but it actually allows insertion of a discretionary
	hyphen, and line break, within the bracketted URI output string,
	between the opening angle bracket and the URI itself.

2024-08-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Drop synopsis section from groff_toc.7 manual page.

	* man/groff_toc.7.man: Add paragraph marks.
	(Synopsis): Delete section; fold its relevant content into...
	(Usage): ...this alternative section, as appropriate; correct...
	(.toc error): ...this malformed syntax specification.
	(Authors): Some minor wording improvement.

2024-08-05  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use boiler-plate to standardize manpdf fallback macros.

	* Makefile.in (AWK, GREP, USORT): New macros, defined by...
	* configure.ac (AC_PROG_AWK, AC_PROG_GREP): ...these, and...
	(SORT, UNIQ): ...these AC_PATH_PROG substitutions.

	* Makefile.in (manpdf_fallbacks): New macro; it represents...
	* man/manpdf-fallbacks.in: ...this new file; it implements in-line
	fallbacks for each non-standard -manpdf extension macro; it also
	implements a fallback for groff-1.23's .MR macro, for use on any
	platform which lacks it, and defines host URI mappings for PDF
	renditions of project-local manual pages.

	* Makefile.in (manpage_update_script): Add substitutions for...
	(@ENUMERATE_MR_REFERENCES@, @IMPORT_LOCAL_FALLBACK_MACROS@): ...each
	of these place-holders; appropriate content is generated by...
	(usort_awk, refgen_script, refmap_script, mxmap_script, mxgen_script):
	...these new in-line scripts, extracting content as appropriate, from
	the boiler-plate defined within the file which is represented by...
	(manpdf_fallbacks): ...this new macro; it is used by...
	(%.mr, %.mx): ...these new build rules; make them prerequisites...
	(all-manpages, all-pdf-manpages): ...for both of these.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_toc.man
	(@ENUMERATE_MR_REFERENCES@, @IMPORT_LOCAL_FALLBACK_MACROS@): Use them
	in place of, and to avoid duplication of, content abstracted from...
	* man/manpdf-fallbacks.in: ...here.

	* tmac/anpdf.tmac (MX-HOST): Make it consistent with usage as...
	* man/manpdf-fallbacks.in: ...specified here.

2024-07-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add a convenience makefile rule to build everything.

	* Makefile.in (all-inclusive): New build goal; it incorporates...
	(all, all-manpages, all-pdf-manpages): ...all of these.

2024-07-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a malformed manpage reference.

	* man/pdfroff.1.man (.MR gs 1): Should use...
	(.MR gs @MAN1EXT@): ...this preferred form; correct it.

2024-07-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Configure project-hosted manpage URI references.

	* tmac/anpdf.tmac (MX-HOST): Rename original macro, as...
	(MR-HOST): ...this; update references accordingly, and then...
	(MX-HOST): ...redefine as new; this replacement version now maps
	individual manpage references to specific MR-HOST URI indicies.

	* configure.ac (MANPAGE_URI_ROOT, MANPAGE_URI_PATH): New AC_SUBST
	variables; together, they specify the groff-pdfmark project URI.

	* Makefile.in (MANPAGE_URI_ROOT, MANPAGE_URI_PATH): Use them to...
	(MR_HOST_3_URI_ROOT, MR_HOST_3_URI_PATH): ...define these new macros,
	respectively; substitute their values into generated manpages, via...
	(manpage_update_script): ...this internal sed script, mapping to...
	(MR_HOST_3_URI, MR_HOST_3_DIR): ...these tags, respectively.

	* man/pdfroff.7.man
	* man/groff_toc.7.man [groff && MR-HOST defined]: Expand...
	(MR_HOST_3_URI, MR_HOST_3_DIR): ...these substitution tags, through...
	(MR-HOST-3-URI): ...this troff string, assigning to MR-HOST index 3.
	(pdfroff.@MAN1EXT@): Map it to MR-HOST index 3, using...
	(MX-HOST): ...this.

	* man/pdfroff.7.man (groff_pdfmark.@MAN7EXT@): Also map this, and...
	(groff_toc.@MAN7EXT@): ...this, to MR-HOST index 3, again using...
	(MX-HOST): ...this.

2024-07-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Differentiate groff-pdfmark and groff package versions.

	* configure.ac (AC_INIT): Specify YY.MM style groff-pdfmark version.
	(GROFF_PACKAGE_VERSION): New AC_SUBST variable; define it to represent
	the groff version, with which groff-pdfmark is nominally associated.
	(MANPAGE_DATE_FORMAT): New AC_SUBST variable; define it to specify
	the default date format for use in groff-pdfmark manual pages.

	* Makefile.in (PACKAGE_BASE_VERSION): Use GROFF_PACKAGE_VERSION.
	(MANPAGE_DATE): Use MANPAGE_DATE_FORMAT.

2024-07-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Support internal references to manpage headings.

	* tmac/anpdf.tmac (SR, RK): New macros; define them in terms of...
	(anpdf-ref-heading, anpdf-ref-kern): ...these new macros, and...
	(anpdf-ref-kern-list): ...this new string.

	* man/pdfroff.1.man man/pdfroff.7.man
	* man/groff_toc.7.man [!manpdf] (SR, RK): Define fallbacks.
	(SR, RK): Use them.

2024-07-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Remap some special escape tokens in sanitized text.

	* tmac/sanitize.tmac (sanitize:scan-space-token.remap): New macro;
	define it, intending it exclusively for conditional internal use by...
	(sanitize) ["\ ", "\~", "\0"]: ...this, to substitute ASCII SP.
	(sanitize) ["\-"]: Explicitly substitute ASCII hyphen-minus.

2024-07-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use explicit naming for manpage outline reference marks.

	* tmac/anpdf.tmac (anpdf-reload-man): Increase...
	(PDFHREF.VIEW.LEADING): ...this, for manpage title reference marks.
	(anpdf-ref, anpdf-ref-outline): New macros; together, they generate
	explicit reference mark names, to associate with manpage headings.
	(anpdf-sh-wrapper): Use them.

2024-06-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct manpage page trap and end macro handling.

	* tmac/anpdf.tmac (anpdf-atend): New macro; assign it...
	(anpdf-reload-man): ...here, as end macro replacement for...
	(an-end): ...this default groff_man(7) internal end macro.
	(anpdf-reload-man): Append groff_pdfhref(7) page trap handler to...
	(PT): ...this groff_man(7) page trap hook.

2024-06-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate some compatibility mode redundancy.

	* tmac/anpdf.tmac (anpdf-reload-man): Use "de1" as defining request;
	thus, within it, "do" requests are redundant; remove them.

2024-06-07  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Do not override user preferences in manpage sources.

	* man/pdfroff.1.man man/pdfroff.7.man
	* man/groff_toc.7.man (CS, CT, MF): Do not assign overriding values;
	groff_man(7) defaults may be adjusted by alternative assignments in
	man.local, but ultimate reassignment is the prerogative of the user.

	* man/groff_pdfroff.1.man (*groff_pdfroff_1_CS, *groff_pdfroff_1_CT)
	(*groff_pdfroff_1_MF): Backup stores not required; delete references.

	* man/groff_pdfroff.7.man (*groff_pdfroff_7_CS, *groff_pdfroff_7_CT)
	(*groff_pdfroff_7_MF): Backup stores not required; delete references.

	* man/groff_toc.7.man (*groff_toc_7_CS, *groff_toc_7_CT)
	(*groff_toc_7_MF): Backup stores not required; delete references.

2024-06-07  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Some manual page formatting adjustments.

	* man/pdfroff.1.man man/pdfroff.7.man man/groff_toc.7.man: Some
	miscellaneous input file format adjustments, output font ajustments,
	and discretionary hyphenation control changes.

2024-05-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Include control character in macro usage annotations.

	* tmac/anpdf.tmac (Usage): Consistently include "." as control
	character, in every comment which specifies the usage synopsis for
	every internal, and public API macro.

2024-05-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Support alternative manpage URI host specifications.

	* tmac/anpdf.tmac (MX-HOST): New macro; define it, and use it to...
	(anpdf-manpage-provider-0, anpdf-manpage-provider-1): ...define these
	two built-in default manpage URI templates.
	(anpdf-manpage-reference): Use...
	(anpdf-manpage-provider-1): ...this as nominal default, but let...
	(MX:\\$1.\\$2): ...this manpage-specific numeric index override it.
	(anpdf-manpage-reference): Interpret and apply...
	(MF): ...this, inline; apply italic corrections as required; hence...
	(anpdf-ic): ...this internal template is not required; delete it.

2024-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Validate link destination name assignments.

	* tmac/pdfmark.tmac (pdfhref): In internal-use macros...
	(pdf*href-D, pdf*href.set): ...accept only destination name arguments
	which are valid as groff identifiers.

2024-04-25  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add groff_toc.7 manual page.

	* man/groff_toc.7.man: New file.
	* Makefile.in (manpages): Add reference to...
	(groff_toc.7): ...this.

2024-04-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Create example macros for groff_toc integration.

	* pdfroff.ms (XH-UPDATE-TOC, toc.outline, toc.refmark)
	(toc.pageref, toc.end): Factor out; relocate to, and include...
	* tmac/spdf-toc.tmac: ...this new file.

	* Makefile.in (pdfmark.pdf): Add dependency on...
	(spdf-toc.tmac): ...this.

2024-04-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Reorganize manpage sources; add pdfroff.7

	* man: New directory; relocate...
	* pdfroff.1.man: ...this file, without change, to...
	* man/pdfroff.1.man: ...here.

	* man/pdfroff.7.man: New file.

	* Makefile.in [vpath] (%.man): Note change of directory.
	(all-manpages, all-pdf-manpages): New make goals; alias to...
	(manpages, pdf-manpages): ...these respectively; use them...
	(%:%.man, %.pdf:%.man): ...here, converting each of these normal
	pattern rules to static pattern rules, respectively.
	(manpage_update_script): Add translation for...
	(SITE_TMACDIR): ...this.

2024-04-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adopt standard man-pages(7) styling conventions.

	* tmac/anpdf.tmac [-dMF=R] (anpdf-ic): Kludge it, so that it
	is interpreted as if it were -dMF=B, when processed within...
	(MR): ...this macro's context.

	* pdfroff.1.man (pdfroff): Set all references in bold type.
	(awk, gawk, groff, gs, mawk, mktemp, nawk, sed, groff_tmac): add
	manual section references, as appropriate, and set all using...
	(MR): ...this; replicate all, as an enumerated list, under...
	(See also): ...this section heading.
	(-rCS, -rCT, -dMF) [\n(.g]: Preserve initial settings, on entry,
	and subsequently restore them, on exit; internally...
	(CS, CT): ...set both to one, for standards conformance.
	(MF): Keep initial setting, until TH has been evaluated, then
	set it to "B", for standard conformant evaluation of...
	(MR): ...this, on every occasion of its use.

2024-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	A minor pdfroff.1 manpage correction.

	* pdfroff.1.man (TH): s/groff/groff-pdfmark/
	(AUTHORS): Refer to author's "OSDN web-site", in preference
	to "OSDN site".

	* Makefile.in (MANPAGE_DATE): New user overridable variable,
	specifying the publication date for all generated manual pages;
	define it, by shell substitution, to reflect current date.
	(manpage_update_script): Use it, in substitution for...
	(MDATE): ...this field value.

2024-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Revisit dynamic identifier names with invalid content.

	* tmac/pdfmark.tmac (pdf*href.format): Simplify change from
	2024-03-25; test identifier for validity, as "while" condition,
	then break loop if no matching macro identifier defined.
	(pdfbookmark, pdf*href, pdf*href-D, pdf*href-M, pdfnote): Use
	corresponding while loop control logic.

2024-04-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe duplex printing layout adjustment techniques.

	* pdfmark.ms (Section 3.1.3, Section 4.2): Add content.
	(PO): Compute initial value, to balance left and right margins.
	[duplex] (PO): Tweak assignment syntax; add sanity checks.
	[duplex] (BT): Assign alternating PO, only as required.
	(PG-ADVANCE-TO-ODD): Simplify, and rename it as...
	(NEW-RECTO-PAGE): ...this; update references.

2024-04-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate trailing white-space from document source.

	* pdfmark.ms pdfroff.sh tmac/pdfmark.tmac tmac/s.tmac
	* fdl/fdl-v1.3.txt fdl/Makefile.sub: Delete all extraneous
	white-space, where present, from the end of every input line.

2024-03-25  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid dynamic identifier names with invalid content.

	* tmac/pdfmark.tmac (pdf*href.format): Verify each potential
	formatting keyword, read from the input data stream, as a valid
	groff identifier, before attempting to match it.

2023-12-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Designate the GNU Free Documentation License as invariant.

	* cover.ms (pub@licensing): Update grant of permissions to copy,
	distribute, and/or modify, to declare Appendix A, the content of
	which is the GNU Free Documentation License, as "invariant", thus
	forbidding its modification in any redistributed publication of
	the associated document.

2023-12-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Propagate FDL section headings to outline and TOC.

	* pdfmark.ms (FDL-XH-UPDATE-TOC): New helper macro, used by...
	(FDL-XH): ...this new document-local macro variant; define them.
	* fdl/fdl-v1.3.ms.in (FDL-SH): Some heading format adjustments.
	[d FDL-XH]: Invoke it.

2023-12-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid necessity to repeat document meta-data.

	* pdfmark.ms (mso): Include...
	* cover-info.ms: New file; complementary to cover.ms, when included by
	document source, it defines alternative implementations of CS, AU, and
	CE macros, which extract title and author meta-data from within inline
	CS ... CE blocks, propagating their content to PDF meta-data...
	(.pdfinfo /Title, .pdfinfo /Author): ...specs, respectively.

	* pdfmark.ms (.pdfinfo): Delete previously redundant...
	(/Title, /Author): ...meta-data assignments.

	* Makefile.in (tmacdir): Add direct ${srcdir} reference.
	(pdfmark.pdf): Assert additional build-time dependencies on...
	* cover.ms cover-info.ms: ...each of these.

2023-12-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct some misplaced line continuation marks.

	* pdfmark.ms (Sections 2.5.5.4, 3.1.2.3): In constructs...
	(.CWI ... \c, .CWB ... \c): ...adjust placement of "\c" mark, to
	ensure that macro expansion results in its ultimate location at
	the bitter end of the resultant output line fragment.

2023-05-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Some typographic and grammatical man page corrections.

	* pdfroff.1.man (option --no-kill-null-pages): s/where/whence/ as
	argument descriptor; s/any/all/ as valid argument value.

2023-05-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use RCS keywords more consistently.

	* tmac/opmode.tmac tmac/pdfmark.tmac tmac/pdfroff.tmac
	* tmac/spdf.tmac tmac/toc.tmac ($Id$, $RCSfile$): Add annotations.

2023-05-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Provide pdfroff binding macros for rendering man pages.

	* tmac/anpdf.tmac: New file; it is a wrapper around andoc.tmac,
	supporting use of -man only; (currently, -mdoc is not supported).

	* Makefile.in (man2pdf): Use it.
	(MAN2PDF_FLAGS): Enable features, controlled by addition of...
	(CS, CT): ...these registers; set both to 1.

	* tmac/sanitize.tmac (sanitize:esc-f): New alias; map it to...
	(sanitize:esc-generic): ...this, making its handling analogous to...
	(sanitize:esc-F): ...this.

	* tmac/strcase.tmac: New file; it retrospectively emulates...
	(.stringup, .stringdown): ...this pair of new groff-1.23 requests.

	* pdfroff.sh (MANPDF_OPTIONS): New internal-use variable; it provides
	a hook capability, whereby '-manpdf' triggers processing of '\" hints
	in man page source, causing nominated preprocessors to be invoked.

	* pdfroff.1.man: Various layout, and grammatical adjustments;
	reserve vertical space, as required, to avoid widow and orphan lines.
	(PDFROFF_POSTPROCESSOR_COMMAND): Disallow a page break within text
	specifying the default command.

2023-05-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe method of finished document assembly.

	* pdfmark.ms (Section 4.1.7): Add content.
	(Section 4.1.4): Omit "$" prompt from "pdfroff" command example,
	to maintain consistency with all earlier, and new examples.

2023-05-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe method of document body formatting.

	* pdfmark.ms (Section 4.1.6): Add content.

2023-05-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe default method of table of contents generation.

	* pdfmark.ms (Section 4.1.5): Add content.

2023-05-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate a macro loading order dependency.

	* tmac/opmode.tmac [!rPDFOPMODE] (OPMODE): Define it, otherwise...
	[rPDFOPMODE] (OPMODE): ...alias it, to make them equivalent.

2023-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe provisions for formatting front-matter.

	* pdfmark.ms (Section 4.1.4): Add content.

2023-04-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe in-document optional processing hints support.

	* pdfmark.ms (Section 4.1.3): Add content.

2023-04-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe pdfroff's reference resolution procedure.

	* pdfmark.ms (Section 4.1.2): Add content.

2023-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add description of pdfroff operating principles.

	* pdfmark.ms (Section 4.1.1): Add content, and subsequent link
	target headings, as required to satisfy planned forward references.
	(Section 4.2): Modify heading text, to clarify relationship to...
	(Section 4.1.2): ...this planned content.

2023-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Handle hyphenation special characters in PDF outlines.

	* tmac/sanitize.tmac (sanitize): Interpret "\%" specially.
	(sanitize:esc-(, sanitize:esc-(hy): New macros; they add generic
	support for "\(xx", and specialization for "\(hy", respectively.

2023-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Manage page break placement within the table of contents.

	* pdfmark.ms (toc.end): New document-local macro; initially define
	with no content, and subsequently remap as an alias for KE, after
	first use, to close a not-yet-opened KS/KE block, within...
	(toc.outline): ...this; use toc.end in place of KE, to close any
	previously opened KS/KE block, then insert KS to open a new block,
	prior to output of any TOC entry at outline-level one.
	(toc end): Add after inclusion of TOC file, to close its final,
	residually open KS/KE block.

2023-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add PDF publishing process introduction.

	* pdfmark.ms (Section 4): Add introductory text.
	(Section 4.1): Insert new subsection, with introductory content,
	referring to the pdfroff command; increment following subsection
	numbers accordingly.

2023-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement a standardized snapshot distribution procedure.

	* configure.ac (AC_INIT): Assign package name and version.
	(chmod): Perform AC_PATH_PROG assignment to "CHMOD" AC_SUBST variable.

	* Makefile.in: Perform some cosmetic clean-up.
	(PACKAGE_TARNAME, PACKAGE_VERSION, CHMOD): Use autoconf assignments.
	(pdfroff-posix, pdfroff-win32): New build targets; they build variants
	of pdfroff suitable for POSIX, and MS-Windows, respectively, using...
	(CHMOD): ...this autoconf-assigned program, to make them executable.
	(dist): New primary build target; it delegates operations to...
	(srcdist, bindist, docdist, mandist, tmacdist): ...these subsidiary
	build targets; implement them; they employ programs identified by...
	(TAR_CMD, ZIP_CMD, ZIP_EXT): ...these new make variables; define them,
	permitting user override, subject to GNU tar, and XZ compatibility.

2023-04-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement a duplex printing layout capability.

	* pdfmark.ms [duplex] (BT): Augment macro definition, to alternate
	left and right margin widths, between even and odd numbered pages;
	activated by "-duplex" option to pdfroff command, (i.e. define a
	string called "uplex", with "-duplex=true", for example).
	[duplex && pdfroff] (preserve_blank_pages): Suggest it for...
	[body]: ...this document assembly component.

2023-04-03  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Support in-document hints for --no-kill-null-pages option.

	* pdfroff.sh [--no-kill-null-pages]: Record option argument in...
	(preserve_blank_pages): ...this shell variable; defer its evaluation
	until processing of in-document hints, during reference resolution.
	(safe_hints): Add "preserve_blank_pages" to authorized list.

2023-04-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Number pages contiguously, including front-matter page count.

	* pdfmark.ms (PG-ADVANCE-TO-ODD): New macro; it advances the effective
	page number to next available odd-numbered page, while suppressing the
	display of the page number on that page; use it to number the starting
	page number for the document text, accounting for the number of pages
	which are already occupied by front-matter, and table of contents.
	(HD): Define groff-ms hook, to restore normal page numbering sequence,
	after use of PG-ADVANCE-TO-ODD to establish a starting page number.
	(XH-APPENDIX): Simplify it, by use of PG-ADVANCE-TO-ODD; this offers
	the added benefit of starting each appendix at an odd page number.

2023-03-31  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve selectivity of pdfroff's blank-page removal feature.

	* pdfroff.sh (--no-kill-null-pages): Accept an optional argument,
	with permitted values of "all", "body", or "toc"; interpret to set...
	(TC_FILTER, BD_FILTER): ...these new internal-use variables, which
	subsequently establish the scope of operation for...
	(PDFROFF_COLLATE): ...this internal filter.

	* pdfroff.1.man (--no-kill-null-pages): Document argument usage.

	* tmac/spdf.tmac (TC) [PHASE>1]: Make it a no-op.

2023-03-29  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Append GNU Free Documentation Licence to document body.

	* fdl: New directory.
	* fdl/fdl-v1.3.txt: New file; it is an unmodified verbatim copy of
	the original FDL plain-text document, imported from groff sources.

	* fdl/Makefile.sub: New file; it implements an inline txt2roff filter,
	suitable for creating a generic groff-marked-up copy of the FDL.

	* fdl/fdl-v1.3.ms.in: New file; it provides boiler-plate mark-up to
	map txt2roff generic mark-up for use with groff-ms.

	* Makefile.in: Include fdl/Makefile.sub, configured by...
	(txt2roff_srcdir, txt2roff_tmac_suffix): ...these unconditional...
	[fdl-v1.3.ms] (TXT2ROFF_PREFIX): ...and this conditional assignment.
	(pdfmark.pdf): Add dependency on fdl-v1.3.ms

	* pdfmark.ms (Appendix A): Define and use...
	(XH-APPENDIX, XH-APPENDIX-NUMBER-FORMAT): ...these new local macros,
	to set up the appendix heading, and page numbering format; include
	generated file fdl-v1.3.ms, subject to formatting specified by...
	(FDL-SETUP, FDL-BACKUP-AND-REPLACE, FDL-SH-START, FDL-TI-START)
	(FDL-RESTORE): ...these temporary local macros, which also use...
	(fdl:replacement.tag, fdl:title.block): ...these temporary strings...
	(fdl:title.lines): ...and this temporary numeric register.
	(TC-MARGIN): Increase its width, to accommodate up to seven digits.
	(XH-UPDATE-TOC) [%%]: Use as pageref, when defined; it represents the
	true page number, when \n% has been temporarily reset to one, as it is
	by XH-APPENDIX, after saving its original value in \n(%%, to suppress
	page numbering at particular locations within the document body.

2023-03-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add a copyright assignment page to document front-matter.

	* cover.ms: Add template content, supported by...
	(PUB, ASSERT-RIGHTS, FDL-REFERENCE): ...these new public macros...
	(pub@initial, pub@collect, pub@revised, pub@enum, pub@rights)
	(pub@post, au@assert-rights, au@asserted, au@uk-asserted): ...these
	new internal-use helper macros, additionally augmented by...
	(pub@preformat.content): ...this new temporary diversion...
	(FDL-SECTION, FDL-SECTION-TITLE, pub@copyright, pub@series, pub@last)
	(pub@revlist, au@pronoun, ASSERT-RIGHTS@his, ASSERT-RIGHTS@her)
	(au@plural, au@pending, au@list): ...these new strings, and...
	(au@count, pub@revcount): ...these new counter registers.
	(au@next): Extend it, to assign, and manage...
	(au@count, au@list, au@pending): ...these.

	* pdfmark.ms (ASSERT-RIGHTS, FDL-REFERENCE, PUB): Use them.

2023-03-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Ignore potentially unsafe pdfroff hint assignments.

	* pdfroff.sh (safe_hints): New shell variable; it enumerates the
	names of hint variables which are deemed to be safe for assignment.
	(safer_hint): New shell function; it ensures that assignments are made
	for variables which are enumerated as "safe"; use it to evaluate all
	hints which are identified during pdfhref reference resolution.

2023-03-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Fix a constant-width font usage inconsistency.

	* pdfmark.ms (Section 2.5.5.4): Consistently use '\f(CI', not '\fI',
	for named argument identification in document mark-up examples.

2023-03-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct some minor typographic errors.

	* pdfroff.1.man (See also): Identify...
	(groff-pdfmark): ...this as reference manual distriutor.
	(Environment): In reference to GROFF_AWK_INTERPRETER, correct
	spelling of 'continues'; s/continue/continues/

2023-03-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Support safe mode TOC record collection within pdfroff.

	* pdfroff.sh [pdfroff-option:set]: Evaluate early, relocating...
	[toc_relocation=enabled]: ...this option set-up to, and adding...
	[toc_file=<file_name>]: ...this assignment at end of first reference
	resolution loop pass, and updating toc_file content at end of this,
	and every subsequent pass of this loop.

	* tmac/toc.tmac (toc file) [pdfroff]: Emit 'toc_file' hint.
	[!pdfroff]: Fall back to unsafe mode file output.

	* Makefile.in (%.pdf: %.ms): Remove "-U" option from 'pdfroff'
	command invocation; it is no longer required.

2023-03-16  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add support for in-document pdfroff option hints.

	* tmac/pdfroff.tmac: New macro file; it defines...
	(pdfroff): ...a default implementation for this new macro, and...
	(PDF-TOC-ONLY, PDF-BODY-TEXT): ...these (effectively constant)
	processing phase indicating register values.

	* tmac/spdf.tmac (TC): Use pdfroff macro, when defined, to set...
	[toc_relocation=enabled]: ...this pdfroff operating mode option.

	* Makefile.in (pdfmark.ms): Add a further dependency on...
	(pdfroff.tmac): ...this new macro file.

	* pdfroff.sh (GROFF_STYLE): Append "-mpdfroff" option.

2023-03-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Generalize support for phased output mode control.

	* tmac/spdf.tmac (OP, OPMODE): Factor out definitions; relocate to...
	* tmac/opmode.tmac: ...this additional new macro file.

	* tmac/spdf.tmac (opmode.tmac): Source it.

	* Makefile.in (pdfmark.ms): Add a further dependency on...
	(opmode.tmac): ...this new macro file.

2023-03-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate warnings emanating from document source.

	* pdfmark.ms (\s): Use 'z' units, not 'p', throughout.
	(toc.refmark): Separate collected text for TOC entry into...
	(toc.refmark.tag): ...this pdfhref destination name tag, and...
	(toc.refmark.text): ...this additional text; when passed to...
	(toc.pageref): ...here, quote it for expansion in pdfhref.
	(pdf-publishing): Do not encode reference in terms of...
	(XR): ...this; it requires the semantics of...
	(XR-NO-PREFIX): this, hence use it; do not redefine...
	(PDFHREF.PREFIX): ...this; it is no longer required.
	(CW): Quote arguments with embedded tabs.

2023-03-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate warnings emanating from pdfmark macros.

	* tmac/pdfmark.tmac (pdf*href.format): On entry, initialize...
	(PDFHREF.TEXT): ...this string, without any content, then append...
	(PDFHREF.PREFIX): ...this, only if it has been, and remains defined.
	(pdf:note.newline): Ensure it is defined, on package load.

2023-03-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Eliminate warnings emanating from TOC macros.

	* tmac/toc.tmac (toc.file): Do not attempt to close...
	[toc#stream > 0] (toc!stream): ...this file stream, when...
	(toc#stream): ...this register has not been defined.

2023-03-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up ugly spacing within pdfroff manpage.

	* pdfroff.1.man (PDFWRITER): Be more verbose, in order to provide
	more opportunities for word wrapping between unbreakable words.

2023-03-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Do not try to read a nonexistent pdfroff temporary file.

	* pdfroff.sh [--no-reference-dictionary] (WRKFILE): This will never
	be written; assign it to /dev/null (or its MS-Windows equivalent), so
	that subsequent read attempts may succeed, albeit reading nothing.

2023-03-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Make the --emit-ps option work correctly.

	* pdfroff.sh.in [--emit-ps] (PDFWRITER): New variable; define it,
	to select "ps2write" for GhostScript output; do not redefine...
	(PDFROFF_POSTPROCESSOR_COMMAND): ...this; when it is subsequently
	invoked, use "-sDEVICE=$PDFWRITER", with "pdfwrite" as default.

	* pdfroff.1.man (PDFWRITER): Document it.

2023-03-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Accept user-specified build-time pdfroff options.

	* Makefile.in (PDFROFF_FLAGS): New macro; undefined unless specified
	by the user, at build time; honour it when defined.

2023-03-10  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Specify associated GNU troff package name and version.

	* Makefile.in (PACKAGE_BASE_TARNAME, PACKAGE_BASE_VERSION):
	New macros; define, and combine them to additionally define...
	(PACKAGE): ...this; it is required to complete the definition of...
	(pdfdocdir): ...this locally-named, autoconf assigned macro.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Use consistent quoting of document titles in references.

	* pdfroff.1.man (See also): Add quotes around the title of the primary
	groff manual, making it consistent with that of the reference guide to
	PDF document publishing.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Revise text and format of manpage 'apropos' description.

	* pdfroff.1.man (Name): Improve wording; italicize...
	(groff): ...this name.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Tidy manpage synopsis, particularly for troff-mode output.

	* pdfroff.1.man (Synopsis): Optimize order of entries; coalesce font
	alternation argument lists, where practicable; do not use '\~' escape.
	(Options): Similarly, avoid using '\~'.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Explicitly forbid hyphenation of specific names.

	* pdfroff.1.man (pdfmark): Do not rely on the 'hw' request.
	(groff, pdfmark, pdfroff, pdf??.*): Prefix with '\%'; additionally,
	protect derived forms, with arbitrary suffixes, and with path name
	prefixes; allow non-hyphenated breaks after directory separators.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add legacy support for "MR" manpage macro.

	* pdfroff.1.man [!.g or !d MR] (MR): New macro; define it locally,
	to minimally emulate the formal macro introduced in groff-1.23.

2023-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adapt manpage compatibility-mode save for legacy use.

	* pdfroff.1.man (.cp): Do not refer to this number register; use...
	(_C): ...this new compatibility-mode-safe register; set it equal to...
	(.C): ...this, using compatibility-mode-safe assignment syntax, then
	use a compatibility-mode bypass request, to rename it as...
	(*groff_pdfroff_1_man_C): ...this.

2023-03-07  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Suppress noisy "invalid substring index" warnings.

	* tmac/sanitize.tmac (sanitize:scan.execute): On reaching...
	(sanitize:residual) [sanitize:residual.length < 1]: ...this expected
	state, residual substring extraction will fail; do not attempt it.

2023-03-07  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid misinterpretation of comments in "eo" scope.

	* tmac/sanitize.tmac (eo): Move all macros to normal scope; double up
	all escapes which require deferred evaluation; remove scope.

2023-02-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Do not emit redundant 'pdfhref Z' records.

	* pdfroff.sh [grohtml-info] (pdfhref Z): Adapt awk script, to emit...
	(pdfhref Z 0 0 0): ...this conditionally, only if at least one prior
	record has been emitted; delete unconditional emission, which caused
	the anomaly reported as groff issue #63133.

2023-02-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up Z-shell initialization logic.

	* pdfroff.sh [ZSH_VERSION]: Tidy initialization code for...
	(NULLCMD, emulate sh): ...these; bring it more into alignment with
	contemporary GNU autoconf usage.

2023-02-23  G. Branden Robinson  <g.branden.robinson@gmail.com>

	Document new groff-pdfmark source repository location.

	* pdfroff.1.man (Authors): Note URI for Keith Marshall's new primary
	development site; (cf. https://savannah.gnu.org/bugs/?63827).

2023-02-19  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Suppress reference dictionary processing for manpages.

	* Makefile.in (%.pdf: %.man): Within build procedure, add...
	(--no-reference-dictionary, --no-toc-relocation): ...this pair of
	options, when invoking the 'pdfroff' command.
	(GROFF_MANFLAGS): Rename macro as...
	(MAN2PDF_FLAGS): ...this.

2023-02-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Tidy "see also" section layout in pdfroff manpage.

	* pdfroff.1.man (See also): Eliminate ugly TP macro usage, when
	referring to "Portable Document Format Publishing with GNU Troff".

2023-02-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement build-time infrastructure for manpage updates.

	* Makefile.in (%.man): Specify as implicit prerequisite for...
	(%, %.pdf): ...these implicit build goals; implement separate build
	rules for each, with both procedures based on...
	(manpage_update_script): ...this inline sed script; output for...
	(%.pdf): ...this is filtered through pdfroff, directed by...
	(GROFF_MANFLAGS): ...these user-defineable options.

2023-02-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct pdfroff operation with no input files specified.

	* pdfroff.sh [while $#]: At end of loop...
	[$# == 1]: ...before discarding this final argument, ensure that...
	[INPUT_FILES]: ...this includes at least one file, or "-" flag...
	[!INPUT_FILES]: ...otherwise, append one extra "-" argument.

2023-02-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve pdfroff's "-T<dev>" option handling.

	* pdfroff.sh (-Tpdf): Accept as implicit default; remap it to...
	(-Tps): ...this former default, as required for subsequent GhostScript
	processing; if specified explicitly, assume that it implies...
	(--emit-ps): ...this ultimate output option.

	* pdfroff.1.man (Options) [-Tpdf, -Tps]: Document modified behaviour.

2023-02-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement build-time procedure for pdfroff script generation.

	* Makefile.in (PDFROFF): New macro; map to local build.
	(path_search_setup_posix, path_search_setup_win32): New computed
	macros; they differentiate between building for POSIX and MS-Windows.
	(pdfmark.pdf): Add build-time dependency on local build of...
	(pdfroff): ...this; add rule to build it, by invocation of...
	(pdfroff_generator_script): ...this inline sed script, run via...
	(SED): ...this new configuration-determined macro, to substitute...
	(PACKAGE_TARNAME, PACKAGE_VERSION): ...these package specific, and...
	(RC, EXT, AWK_PROGRAM_NAMES, GHOSTSCRIPT_PROGRAM_NAMES): ...these
	build-time user-overrideable macro values, in place of...

	* pdfroff.sh (PROVIDER, VERSION, GROFF_AWK_INTERPRETERS)
	(GROFF_GHOSTSCRIPT_INTERPRETERS): ...these respective place holders,
	subject to combination of "PACKAGE_VERSION", "RC", and "EXT" as one.
	(SHOW_VERSION) [--version selected]: Add "PROVIDER" place holder.
	(PATH_SEARCH_SETUP): Replace with MS-Windows specific code between...
	(BEGIN_PATH_SEARCH_SETUP, END_PATH_SEARCH_SETUP): ...these markers...
	[POSIX build]: ...delete markers, and MS-Windows code, whereas...
	[MS-Windows build]: ...delete markers only.

	* configure.ac (AC_PROG_SED): Evaluate it, to define...
	(SED): ...this makefile substitution.

2023-01-29  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement robust double-quoting of pdfnote content.

	* tmac/pdfmark.tmac (PDFNOTE.QUOTED): New string, referring to...
	(pdf:note.quote, pdf:note.quoted, pdf:note.special): ...these new
	internal strings; they implement the interface, in terms of...
	(pdf*note.pre-pdfmark.compose.hook): ...additional mapping of...
	(pdf:note.special.compose): ...this new string, mapped to...
	(pdf:note.special): ...this, ultimately remapped by...
	(pdf*note.pre-pdfmark.post.hook): ...this, to...
	(pdf:note.special.final): ...this new string.

	* pdfmark.ms: Update to use...
	(PDFNOTE.QUOTED): ...this, via document-local alias...
	(""): ...named thus; document it in footnote.

2023-01-22  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve operation of pdfnote macro, and document it.

	* tmac/pdfmark.tmac: Tidy layout.
	(pdfnote): Support new -C, -I, -O, and -DP options, via...
	(pdf:note-C, pdf:note-I, pdf:note-O, pdf:note-DP): ...these new
	option handler macros, respectively; interpret "--" as inhibitor.
	(PDFNOTE.LEADING): New numeric register; define it to set downward
	displacement of annotation icons, from the top of the current text.
	(PDFNOTE.OFFSET): New string; it defines a numeric expression for
	computation of annotation icons offset from the left side of the page.
	(PDFNOTE.HEIGHT, PDFNOTE.WIDTH): Adjust, reflecting actual usage.
	(PDFNOTE.NEWLINE, PDFNOTE.PILCROW): New pre-defined strings; they
	serve as the user-visible interfaces for insertion of each of...
	(pdf:note.newline, pdf:note.pilcrow): ...these context-neutral
	internal strings, which, in turn, are defined in terms of...
	(pdf:note.newline.compose, pdf:note.newline.final): ...this pair of
	internal context-specific alternatives, which are activated by...
	(pdf*note.pre-pdfmark.compose.hook, pdf*note.pdfmark.post.hook):
	...these new hook macros; map them, on invocation of...
	(pdfnote): ...this, such that they become associated with...
	(pdf*pre-pdfmark.compose.hook, pdf*pre-pdfmark.post.hook): ...these
	new hooks, respectively; define do-nothing default handlers, and...
	(pdf*pdfmark.end.hook): ...this reset handler.
	(pdfmark): Invoke hooks, in context.

	* pdfmark.ms (pdfnote): Document it; add content for...
	(Section 2.6): ...this previously declared, but empty section.
	(Sections 2.6.1, 2.6.2, 2.6.3): Add new subsections.

2023-01-06  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust margins, and internal spacing, of block-quote content.

	* pdfmark.ms (PI, QI, DI): Explicitly define, setting each to 3n.
	(IP): Add explicit adjustments for individual instances.

2023-01-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve formatting of interpolated em-dash punctuation.

	* pdfmark.ms (em): New string; define and use it in place of the \(em
	escape, to achieve British style spacing around em-dash punctuation.

2022-12-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Tweak table of contents layout.

	* pdfmark.ms (toc.outline): Compute section number indentation to
	align each nested level with the title text of its containing level.
	(XH-UPDATE-TOC) [toc.outline.current=1]: Increment font size; adjust
	section number field width to preserve text alignment with computed
	indentation for any contained level two section reference entries.
	(toc.pageref) [toc.outline.current=1]: Reset font size at end.
	(TC-VS1): Add extra vertical space above level one headings.

	* Makefile.in (pdfmark.toc): Delete explicit dependencies, and rules
	for explicit generation; it will be generated implicitly, when...
	(pdfroff.pdf): ...this is being updated, but it is not required when
	this is already up to date w.r.t. all of its prerequisites.

2022-12-29  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct several typographic errors.

	* pdfmark.ms: s/accomodate/accommodate/; s/analagous/analogous/;
	s/assocated/associated/; s/ouput/output/; s/preceed/precede/

2022-03-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up extraneous trailing white-space.

	* pdfmark.ms: Delete all white-space at end-of-line, throughout.

2022-03-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid keeps for widow and orphan line control.

	* pdfmark.ms (KS, KE): Avoid using these for widow and orphan line
	control; in particular do not include any section heading within such
	a construct, as it may result in incorrect page numbering within the
	generated table of contents; instead, use "ne" requests, with...
	(\n[PD]u): ...this form for paragraph distance references used
	consistently, in preference to...
	(\n(PDu): ...this.

2022-03-29  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement a more effective TOC generation strategy.

	* tmac/toc.tmac: New file; it implements a basic, extensible,
	table of contents generator macro framework; use it...
	* pdfmark.ms (XH-UPDATE-TOC): ...here; modify it to generate...
	(pdfmark.toc): ...this new file, subsequently included and used by...
	(toc.outline, toc.refmark, toc.pageref): ...these new document-local
	toc.tmac extending macros, to generate TOC in-line, superseding...
	(TC): ...use of this spdf.tmac macro; delete reference.
	[TOC] (PDFHREF.TEXT.COLOUR): Set it to match...
	(\n[.m]): ...this.

	* Makefile.in (pdfmark.pdf): Update dependencies, requiring...
	(pdfmark.toc): ...this new intermediate file; add rules to generate
	it, by performing a separate pre-processing pass over...
	(pdfmark.ms): ...this primary source file.
	(clean): Remove "*.toc" files.

2022-03-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Preserve pdfhref link text colour specification.

	* tmac/pdfmark.tmac (pdf*href)
	[d PDFHREF.TEXT.COLOUR & !d PDFHREF.TEXT.COLOR]: Redefine...
	(PDFHREF.TEXT.COLOR): ...this, by specifying it as an alias for...
	(PDFHREF.TEXT.COLOUR): ...this; otherwise...
	[d PDFHREF.TEXT.COLOR & !d PDFHREF.TEXT.COLOUR]: Redefine...
	(PDFHREF.TEXT.COLOUR): ...this, by specifying it as an alias for...
	(PDFHREF.TEXT.COLOR): ...this; otherwise...
	[!d PDFHREF.TEXT.COLOUR & !d PDFHREF.TEXT.COLOR]: Redefine...
	(PDFHREF.TEXT.COLOR): ...this, by assignment of default value, and...
	(PDFHREF.TEXT.COLOUR): ...this, as an alias for it.

2022-03-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Maintain separation of in-document pdfroff hints.

	* pdfroff.sh (pdfroff-option:set): Quote collected hints, as returned
	by sed, to preserve separating newlines; without this, all hints will
	be evaluated as if representing a single, possibly malformed command,
	which is unlikely to have the desired effect.

2022-03-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Always set the PHASE indicator when formatting body text.

	* pdfroff.sh (BODY_FORMAT): Do not clear it, when...
	[--no-toc-relocation]: ...this option is active; we require...
	[-rPHASE=2]: ...this, even when PHASE=1 is omitted.

2022-03-26  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve handling of pdfbookmark names.

	* tmac/pdfmark.tmac (pdfbookmark): Define...
	(PDFBOOKMARK.NAME): ...this, on entry, rather than on final output.
	(pdfbookmark) [-N]: Add support; suppress automatic name generation,
	and use specified bookmark name instead; separate name sequencing from
	bookmark cache sequencing; transfer automatic name sequencing to...
	(pdf:bm.ix): ...this new auto-incrementing register, retaining...
	(pdf:bm.nr): ...this for cache sequencing; make it auto-increment.

2022-03-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Place outline references before generating TOC entries.

	* tmac/spdf.tmac (spdf:XH.format, spdf:XN.format): Do not call...
	(XH-UPDATE-TOC): ...this directly; instead, call it indirectly from...
	(spdf:XH.finalize): ...here, whence call it after invoking...
	(pdfhref O): ...this.

2022-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Document "ms" section headings support features.

	* pdfmark.ms (Section 3.1.2): Update and expand; refer to...
	(XH, XN): ...this pair of section heading specification macros.
	(Subsection 3.1.2.1): Add content to document them.
	(Subsection 3.1.2.2): Add content; document...
	(XH-INIT, XN-INIT): ...this pair of user-definable macros.
	(Subsection 3.1.2.3): Add content; document...
	(XH-UPDATE-TOC): ...this user-redefinable macro.
	(Subsection 3.1.2.4): Add content; document...
	(XH-REPLACEMENT, XN-REPLACEMENT): ...these user-redefinable macros.

	* tmac/spdf.tmac (XN): Correct comment typo; should refer to...
	(NH <n>): ...this, rather than implied use after self.

2022-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add discussion of "ms" document structure.

	* pdfmark.ms (Section 3.1.1): Add content.
	(Section 4): Add cross-reference label, named...
	(pdf-publishing): ...thus.

2022-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add footnote concerning choice of layout macro package.

	* pdfmark.ms (Section 3): Add footnote #16.

2022-02-26  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct page trap macro assignment syntax.

	* pdfmark.ms (Section 2.5.6.1): Insert missing initial period...
	(pfdhref I -PT ...): ...introducing this macro usage example.

2022-02-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Document reference text custom formatting capabilities.

	* pdfmark.ms (Section 2.5.5.4): Replace and expand content; explain
	operation of the default reference text formatting macro, and use of
	'pdfhref K', to implement user-defined formatting keywords.

2022-02-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add support for custom location keyword interpretation.

	* pdfmark.tmac (pdf*href.format): Generalize keyword interpreter.
	(pdf*href-K): New internal macro; it implements the interpreter for
	"pdfhref K ..." macro calls; use it to map location keywords to...
	(PDFHREF.FILEREF, PDFHREF.PAGEREF, PDFHREF.SECTREF): ...these; thus...
	(pdf*href.format.file, pdf*href.format.page, pdf*href.format.section):
	...these become redundant; delete them.

	* pdfmark.ms (pdfhref K): Document it; add keeps, to avoid potential
	widow lines in following paragraphs.

2021-12-31  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe automatic pdfhref annotation capability.

	* pdmark.ms (Section 2.5.5.3): Add content; introduce and explain
	the default provisions, with examples, for the automatic generation
	of reference text to describe pdfhref links.

2021-12-31  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Fix a "pdfhref" arguments evaluation bug.

	* pdfmark.tmac: Squeeze unnecessary vertical space.
	(pdf*href) [.$]: Do not delay assignment of arguments to...
	(PDFHREF.DESC): ...this; deferring the evaluation of \$*, until...
	(pdf*href.format): ...here, is too late; it interprets the wrong \$*,
	resulting in failure of the intended arguments override feature;
	additionally, quote PDFHREF.DESC, only when NOT overridden.

2021-12-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe explicit pdfhref annotation capability.

	* pdfmark.ms (Section 2.5.5.2): Add content; show, by example, how
	text within a link "hot-spot" may be explicitly specified at time of
	link placement.

2021-12-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Describe pdfhref colour management mechanism.

	pdfmark.ms (Section 2.5.5.1): Add content; state purpose and use of...
	(PDFHREF.BORDER, PDFHREF.COLOUR, PDFHREF.TEXT.COLOUR): ...these.

2021-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a statement with inverted logic.

	* pdfmark.ms (Section 2.5.6): Insert missing "not", in opening
	paragraph; links become problematic when they do not function as
	expected, not when they do!

2021-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid unwanted line-breaks at hard hyphenation points.

	* pdfmark.ms: Ensure that all explicitly hyphenated words are prefixed
	by "\%", to make hard hyphens non-breaking.

2021-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Set initial view to page width.

	* pdfmark.ms (pageview): Add /View /FitH specification for /Page 1.

2021-11-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Widow and orphan line adjustments.

	* pdfmark.ms: Add vertical space reservations, or specify keeps, as
	appropriate, to avoid widow lines and orphaned examples, when a short
	paragraph precedes an example; adjust paragraph spacing, as necessary
	around keeps.

2021-11-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust spacing following footnote markers at end-of-sentence.

	* pdfmark.ms (FZ): New document-local macro; define it such that it
	behaves as FE, augmented to preserve the effect of sentence spacing,
	when invoked with arguments having end-of-sentence punctuation.
	[GhostScript 8.14.\**, MSYS.\**]: Follow with FS ... FZ.

2021-11-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adjust footnote marker position over punctuation.

	* pdfmark.ms ["," or "." followed by "\**"]: Suppress horizontal
	spacing in way of the punctuation mark, causing the footnote marker to
	be positioned above it.

2021-11-15  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct paragraph spacing irregularities.

	* pdfmark.ms [QS followed by IP, QS followed by LD]
	[DE followed by QE, QE followed by LP]: Each of these combinations
	results in doubling of the normal inter-paragraph vertical spacing at
	the location of the combination; suppress the excess.

2021-11-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Implement publication system management infrastructure.

	* configure.ac Makefile.in: New files; they support independent
	publication per GNU autoconf build-system conventions.

2021-11-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Create free-standing groff-pdfmark publication system.

	* cover.ms pdfmark.ms pdfroff.1.man
	* pdfroff.sh: Import from GNU Troff project.

	* tmac/pdfmark.tmac tmac/s.tmac tmac/sanitize.tmac tmac/spdf.tmac
	* artwork/gnu.eps: Import, and relocate.

2021-10-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Adapt to accommodate global XH and XN implementations.

	cf. <https://savannah.gnu.org/bugs/?58946#comment13>

	* spdf.tmac (XH-INIT, XN-INIT, XH-UPDATE-TOC): Delete definitions;
	the defaults, provided by s.tmac, are now sufficient.
	(XH-REPLACEMENT, XN-REPLACEMENT): Define these, rather than...
	(XH, XN): ...these, respectively.

2021-10-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Make a minor layout adjustment.

	* pdfmark.ms (Section 2.4.3): Add a vertical space reservation, to
	avoid a widow line at the end of the paragraph explaining use of...
	(PDFHREF.Y): ...this computed register, in the definition of...
	(PDFBOOKMARK.VIEW): ...this.

2021-10-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clarify references to use of the -Tpdf option.

	* pdfmark.ms (Section 2, Section 3.1): Add footnotes, indicating that
	only "-Tps" and "-Tpdf" output formats are supported, and that "-Tpdf"
	may avoid a separate step, to convert from PostScript to PDF.

2021-10-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Work around misplacement of link "hot-spots" in footnotes.

	* pdfmark.ms (pdfhref-nobreak): New document-local macro; used instead
	of "pdfhref", this forces paragraph adjustment before placement of any
	unbreakable link text, for which line-wrap may be required.  Currently
	observed only within footnotes, without adjustment, the "hot-spot" for
	the link may be placed 1v above its associated text.

2021-10-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Link footnote reference marks to footnote text.

	* pdfmark.ms (FP): Redefine locally; replace s.tmac default.
	(FF): Do not redefine; our FP replacement macro does not use it.
	[d FS-MARK] (FS-MARK): Redefine locally; map it to...
	(pdf:fn.mark): ...this locally defined macro.
	[!d FS-MARK] (@FS): Rename s.tmac implementation as...
	(pdf:fn.record): ...this, then redefine @FS itself, to call...
	(pdf:fn.mark, pdf:fn.record): ...these, in respective order.
	(groff-1.19.1, GhostScript-8.14): Update footnote reference syntax.
	(Ghostscript-8.14, MSYS): Emulate sentence space after footnote mark.
	(*): Replace s.tmac string definition; make it equivalent to "\c",
	after renaming its original implementation as...
	(pdf:fn.index): ...this; synchronize references with changes to...
	(pdf:fn.index.count): ...this new locally defined register; it is
	auto-incremented by one, as each footnote is placed.

2021-10-01  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Incorporate user-defined TOC leader style.

	* pdfmark.ms: Make some comment tidy-up adjustments.
	(TC-LEADER, TC-MARGIN): Define them, to take advantage of new
	s.tmac features; cf. <https://savannah.gnu.org/bugs/?61157>.

2021-09-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Factor a further unnecessary macro out of spdf.tmac

	* spdf.tmac (XR): Remove it; relocate it to...
	* pdfmark.ms (XR): ...here.

2021-09-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add comments to annotate locally-defined font change macros.

	* pdfmark.ms (EM): Annotate this locally-defined emphasis macro...
	(CWB, CWI, CWBI): ...these constant width font interpolation macros...
	(=): ...and this locally-defined IP tag variant string.

2021-09-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update defunct internet URL references.

	* pdfmark.ms (pdfmark-manual): Adobe moved the document (again);
	update the document reference macro, to follow the URL relocation.
	(www.mingw.org): The MinGW Project has relinquished this domain;
	update the URL reference, to follow web-site relocation to...
	(mingw.osdn.io): ...here.

2021-09-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Factor document-specific bloat out of spdf.tmac

	* spdf.tmac: Reorganize; add many comments.
	(XN): Retained, but reimplemented, to serve as...
	(XH, XN): ...both of these; add callback hooks for...
	(XH-INIT, XN-INIT, XH-UPDATE-TOC): ...these; provide no-op stubs;
	factor out TOC collection code, delegating to XH-UPDATE-TOC.
	(opt*XN-N, opt*XN-S, opt*XN-X): Rename internal macros to...
	(de spdf:XH-N, de spdf:XH-S, de spdf:XH-X): ...these, respectively.
	(AN, @AN, IE, IS, LU, NN, PXREF, SAME-PAGE, XM): Delete; we do not
	require these; if users do, they should define their own.
	(pdf@toc): Delete internal macro; fold body into...
	(TC): ...this.

	* pdfmark.ms (XH-UPDATE-TOC): Implement callback; it is based on...
	(XN): ...original implementation of this, factored out of spdf.tmac,
	but with significant simplification, to remove unnecessary code.
	(XNVS1, XNVS2, XNVS3): Tighten vertical spacing.

2021-09-04  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Reduce potential for user-space exposure of "ms" internals.

	* spdf.tmac (@NH): Append to s.tmac macro; assign...
	(spdf:nh*hl): ...this new internal register; alias it to...
	(.NH): ...this new public name, hence making it track...
	(nh*hl): ...this s.tmac internal numeric register.
	(XN): Use \n[.NH] instead of \n[nh*hl].

2021-09-03  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Sanitize text for use in PDF document outlines.

	* sanitize.tmac: New file; it implements...
	(sanitize): ...this new macro; interprets its first argument as a
	string name, and copies its remaining arguments to the named string,
	discarding specific embedded troff escape sequences; currently...
	(\F): ...only this is identified as "specifically discardable".

	* pdfmark.am (TMACFILES): Add sanitize.tmac

	* spdf.tmac (mso): Include sanitize.tmac
	(xn*ref, xn*argc): Rename all occurrences...
	(spdf:refname, spdf:argc): ...to these, respectively.
	(XN): Stop inserting $* directly into PDF outlines; instead, use...
	(spdf:bm.text): ...this new string; this is locally defined by...
	(spdf:bm.define): ...this new macro; passed the original $* from
	XN, this itself, is locally defined as a redirectable alias for...
	(spdf:bm.basic): ...this new local macro; it simply copies $*,
	passed from XN, to the string named by its first argument, (which is
	always spdf:bm.text), so reproducing previous behaviour.
	(opt*XN-S): New macro; defined for internal use only, it adds a "-S"
	option to XN, such that, when specified, it temporarily redirects...
	(spdf:bm.define): ...this macro mapping alias to...
	(sanitize): ...this.

	* pdfmark.ms (XN): Add "-S" option for all headings which include...
	(\F[C]...\F[]): ...this escape sequence.

2021-08-21  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Define, and use registered trade mark strings.

	* pdfmark.ms (Adobe, Acrobat, Distiller, PostScript, Microsoft):
	Define as strings.  Each expands to its own name, followed by the
	registered trademark symbol, as a superscript, and optional trailing
	punctuation, below the superscript.  Use each as required.

2021-08-21  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Prefer "-ize" to "-ise" where etymology permits.

	* pdfmark.ms: For all verbs, and their derivative nouns, for which
	British English allows either "-ise" or "-ize" as ending, prefer the
	"-ize" form of verb, and "-ization" form of noun, throughout.

2021-08-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Correct a spelling error.

	* pdfmark.ms (Section 2.5.3.1): Fix typo: s/exanple/example/.

2021-08-20  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Space out section headings in pdfmark.ms source.

	* pdfmark.ms (.NH): Precede each instance by one null request, to
	improve readability.

2021-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Refine pdfroff "missing ghostscript" diagnostic.

	* pdfroff.sh [$GS = ":"]: Fix typo: s/connot/cannot/; refine text.

2020-12-25  G. Branden Robinson <g.branden.robinson@gmail.com>

	* pdfmark.am (PDFROFF): Call pdfroff without
	`--keep-temporary-files` option.  Temporary directories are
	created with mktemp(1) and files with an embedded process
	identifier, which frustrates reproducible builds.

	See <https://savannah.gnu.org/bugs/?57218>.

2018-02-28  Werner LEMBERG  <wl@gnu.org>

	* pdfmark.am (pdfmark.pdf): Use $(GROFF_V).

2018-02-28  Werner LEMBERG  <wl@gnu.org>

	* pdfmark.am (pdfroff): Use $(AM_V_GEN) to silence file generation.

2015-08-22  Bernd Warken  <groff-bernd.warken-72@web.de>

	* pdfroff.1.man: Rename `pdfroff.man'.

	* pdfmark.am: Add `Last update'.  Setup Emacs mode.

2015-08-05  Bernd Warken  <groff-bernd.warken-72@web.de>

	* pdfmark.am: Add `Last update'.  Setup Emacs mode.

2015-04-03  Werner LEMBERG  <wl@gnu.org>

	* pdfroff.man: Make it work in compatibility mode.

2014-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Deduce "--no-toc-relocation" from input stream (revisited).

	* pdfroff.sh (WRKFILE): Correct malformed sed expression.

	* spdf.tmac (TC): Prefer value of pdfroff's PHASE register to defined
	state of pdf:href.map, when choosing to emit control record to...
	(toc_relocation): ...enable this.

2014-10-13  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Deduce "--no-toc-relocation" from input stream.

	* pdfroff.sh (WRKFILE): Scan it for "pdfroff-option:set" records;
	apply settings; check for equivalent of "--no-toc-relocation" option.

	* spdf.tmac (TC): Emit "pdfroff-option:set toc-relocation=enabled".

2014-10-12  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid spurious user visible control messages on stderr.

	* pdfroff.sh (REFCOPY): Ensure that at least one pdfhref mark of type
	'Z' will remain in the reference map, after all references have been
	resolved; this is required, to suppress writing of reference control
	records to stderr during the final PDF output processing phase.

2014-09-04  Bernd Warken  <groff-bernd.warken-72@web.de>

	* all pdfmark source files: Copying (remove last updates and
	replace years with package years) and Emacs setup.

2014-03-30  Steffen Nurpmeso  <sdaoden@yandex.com>

	* Makefile.sub: Put straight error-prevention prefixes for `rm'.

2014-03-29  Steffen Nurpmeso  <sdaoden@yandex.com>

	* Makefile.sub: Handle examples separately, controlled by
	$(make{_,_install_,_uninstall_}examples).

2013-01-28  Deri James  <deri@chuzzlewit.myzen.co.uk>

	* pdfmark.tmac (pdfmark, pdf:composed): Use `\!' instead of `\X'.

	With the old pdfmark there are gaps between two of the lines, but
	with the new version they disappear.  The use of `.br' and `.in 0'
	is arbitrary any request which causes an implicit break could be
	used.  Two breaks together only produce one line break, but if there
	is an intervening `\X' then the second break finds the line buffer
	not empty and generates another line break.

	Using `\!' does alter the position of the pdfmark lines in the
	intermediate file sent to grops (the pdfmark lines are output
	immediately rather than being serialised through the output line
	processing), but this has no effect since the contents of the
	pdfmark line stay the same.  It is the contents which determine
	where bookmarks jump to not the position of the record in the input
	stream to grops.

	I initially used `.output', but hit a snag if a pdfbookmark occurs
	before the document starts to output (message saying to insert an
	explicit `.br'), this is quite likely for things like `.pdfinfo
	/Author' which occur at the top of the document.  So I'm using the
	`\!' escape.

2012-09-20  Werner LEMBERG  <wl@gnu.org>

	Simplify environment handling.

	Suggested by Ivan Shmakov <oneingray@gmail.com>.

	* Makefile.sub (PDFROFF): Don't use export.

2011-12-26  Mike Frysinger  <vapier@gentoo.org>

	Fix parallel build race failure.

	Sometimes building in parallel will fail in the pdfmark directory:

	  make[2]: Entering directory '.../contrib/pdfmark'
	  rm -f pdfroff
	  rm -f pdfmark.pdf
	  sed -f ... ./pdfroff.sh >pdfroff
	  ...; ./pdfroff ... pdfmark.ms >pdfmark.pdf
	  /bin/sh: ./pdfroff: Permission denied
	  chmod +x pdfroff
	  make[2]: *** [pdfmark.pdf] Error 126

	This is because the generated pdf files use the local generated
	pdfroff helper script, but they don't depend directly upon it, so
	make tries to create the two in parallel and randomly falls over.

	* Makefile.sub: Have all the .pdf files explicitly depend on the
	`pdfroff' helper script.

2010-12-23  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Update copyright notices; pdfmark.tmac bug-fix.

	* pdfmark.tmac: Update copyright notices.
	(pdf*href.mark.resolve): Avoid premature removal, by aliasing to...
	(pdf*href.mark.begin): ...this, rather than renaming.

	* pdfroff.sh, pdfroff.man: Update copyright notices.

2010-12-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Clean up handling of temporary files directory.

	* .cvsignore (pdfroff-*): Ignore sub-directories matching this.
	* Makefile.sub (MOSTLCLEANDIRADD): Schedule them for removal.

2010-12-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Address potential temporary file security vulnerabilities.

	* pdfroff.sh (GROFF_TMPDIR): Use mktemp(1) to assign it, if possible;
	fall back to ${TMPDIR}, ${TMP} or ${TEMP} if unsuccessful.
	* pdfroff.man: Document it.

2009-08-16  Colin Watson  <cjwatson@debian.org>

	Make pdfroff's GhostScript invocation safer.

	* pdfroff.sh (PDFROFF_POSTPROCESSOR_COMMAND): Add `-dSAFER' option.
	* pdfroff.man: Document it.

2008-12-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid phantom line wrapping in pdfhref hot-spots.

	* pdfmark.tmac (pdf*href.mark.end): Emit hot-spot end markers within
	scope of `\Z', to prevent possible output line length overflow which
	may occur only in the layout computation passes, but not in the final
	output pass.  Problem observed and identified by Nick Stoughton; it
	causes some hot-spots to be displaced from their proper locations.

2007-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Avoid stray newlines in folded pdfmark literal content.

	* pdfmark.tmac (pdf*pdfmark.dispatch.wrapped): New string; define it
	when accumulating long literal content; make it undefined otherwise.
	(PDFMARK.FOLDWIDTH, PDFMARK.FOLDWIDTH.MAX): Reserve space for two
	extra characters, to accommodate a space and an escaped newline,
	while accumulating literal content, in case folding is required.
	(pdf*pdfmark.dispatch) [pdf*pdfmark.dispatch.wrapped]: Add them.

2007-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfmark.tmac (pdfbookmark): Don't evaluate within diversions; defer
	placement until diversion is copied out at top level.

2007-02-06  Eric S. Raymond  <esr@snark.thyrsus.com>

	* pdfroff.man: Update .UR/.UE and .MT/.ME to latest changes in
	an-ext.tmac.

2007-01-30  Werner LEMBERG  <wl@gnu.org>

	* pdfroff.man: Updated.

2007-01-21  Werner LEMBERG  <wl@gnu.org>

	* pdfroff.man: Revised, based on a patch from Eric Raymond.  It now
	uses the new macros from an-ext.tmac.  This is the first of a series
	of man patches which Eric has contributed.

2006-07-30  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfroff.sh (PDFROFF_KILL_NULL_PAGES): Require `%%BeginPageSetup' on
	PostScript output line immediately following `%%Page:'.

2006-07-29  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfroff.sh (PDFROFF_KILL_NULL_PAGES): Require `sed' to match a more
	explicit regular expression, for detection of redundant pages.

2006-07-14  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfroff.sh (PDFWRITE): Local shell variable replaced...
	(PDFROFF_POSTPROCESSOR_COMMAND): by this new  environment variable...
	(GROFF_GHOSTSCRIPT_INTERPRETER): with this bound to it.
	(PDFROFF_COLLATE, PDFROFF_KILL_NULL_PAGES): New environment variables.
	(--no-kill-null-pages): New command line option; implement it, and...
	(--help): Add description for it.

	* pdfroff.man (PDFROFF_POSTPROCESSOR_COMMAND): Document it.
	(PDFROFF_COLLATE, PDFROFF_KILL_NULL_PAGES): Document them.
	(--no-kill-null-pages): Document it.

2006-07-14  Zvezdan Petkovic  <zpetkovic@acm.org>

	* pdfroff.sh (--emit-ps): New command line option; implement it.
	(--help): Add description for it.

	* pdfroff.man (--emit-ps): Document it.

2006-06-11  Werner LEMBERG  <wl@gnu.org>

	* pdfroff.man: Add `.ig' block after NAME section to make mandb
	happy.

2006-03-31  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Split `pdfmark' output as required, to avoid excessively long
	`ps:exec' intermediate output records.

	* pdfmark.tmac (pdfmark): Macro extended to deploy ...
	(pdf*pdfmark.limit): New macro; use it to define ...
	(PDFMARK.FOLDWIDTH, PDFMARK.FOLDWIDTH.MAX): New registers.
	(pdf*compose.first, pdf*compose.next, pdf*compose.literal): New
	macros; each will be aliased as required to ...
	(pdf*compose): ... this, to dynamically construct ...
	(pdf:composed.line, pdf:composed.literal): ... these new strings.
	(pdf:compose.test): New dynamically constructed string; use it to
	detect parenthesised literals in pdfmark content, so folding can be
	avoided within them, subject to honouring of `PDFMARK.FOLDWIDTH'.
	(pdf*length.increment): New macro; it triggers output folding when ...
	(pdf:length): ... this new register exceeds `PDFMARK.FOLDWIDTH.MAX'.
	(pdf*pdfmark.post.first, pdf*pdfmark.post.next): New macros; each will
	be aliased as required to ...
	(pdf*pdfmark.post): ... this, and invoked by ...
	(pdf*pdfmark.dispatch): ... this new macro; use it to define ...
	(pdf:composed): ... this dynamically constructed macro; use ...
	(pdf*end): ... this new macro to terminate it.

2006-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Incorporate portability recommendations by Ralf Wildenhues
	<ralf.wildenhues@gmx.de>

	* pdfroff.sh: Avoid unsafe quoting in variable substitutions of
	the form "${VAR+"set"}"; remove outer quotes everywhere; prefix
	with `x' on each side of comparisons.
	($NULLCMD): Define when `$ZSH_VERSION' is set, i.e. when host
	has `/bin/sh -> zsh'; also...
	(emulate sh): Invoke, for this case.

	Enhancement/bug fix requested by Werner LEMBERG <wl@gnu.org>

	* pdfroff.sh (--help): Direct output to `stdout', not `stderr'.
	(--keep-temporary-files): New option; implement it.

	* pdfroff.man (OPTIONS): Document `--keep-temporary-files' option.
	(FILES): Note names and purpose of files it affects.

	* Makefile.sub (PDFROFF): Add `--keep-temporary-files' option;
	retain them in `GROFF_TMPDIR=.'.
	(CLEANADD): Include temporary files matching `pdf[0-9]*'.

2006-03-08  Werner LEMBERG  <wl@gnu.org>

	* pdfmark.ms: Update URL for Adobe Reference Manual.

2006-02-26  Claudio Fontana  <claudio@gnu.org>

	* Makefile.sub: Add DESTDIR to install and uninstall targets
	to support staged installations.

2006-02-25  Werner LEMBERG  <wl@gnu.org>

	* pdfmark.ms: Correct typo; reported by Thomas Klausner.

2006-02-24  Werner LEMBERG  <wl@gnu.org>

	* pdfmark.ms, pdfroff.sh: Replace legal/illegal with valid/invalid.

2005-06-22  Keith Marshall  <keith.d.marshall@ntlworld.com>

	pdfroff.sh portability enhancement.

	* pdfroff.sh (ARGLIST): Variable removed.
	(GROFF_STYLE): Use it for all groff invocations.
	(INPUT_FILES): Pass to all groff invocations, instead of ARGLIST.
	(CS_MACRO, CE_MACRO): Initialize independently.
	(CS_FILTER): Simplify quoting; it used to confuse some shells.
	(Source): CVS keyword removed; replaced by...
	(RCSfile, Revision): these.

2005-06-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfroff.sh (MATCH): Correct quoting.
	(Source): Add terminating `$' on CVS keyword.

2005-06-17  Zvezdan Petkovic  <zpetkovic@acm.org>

	* Makefile.sub: (RM): Define as `rm -f', for `make' programs
	which don't predefine it.

2005-06-16  Bernd Warken <groff-bernd.warken-72@web.de>

	* pdfroff.sh (NULLDEV): Correct misspelled instance of NULDEV.

2005-05-28  Werner LEMBERG  <wl@gnu.org>

	* Makefile.sub (.ms.pdf): Use `--stylesheet', not `--style'.

2005-05-26  Werner LEMBERG  <wl@gnu.org>

	* Makefile.sub, pdfmark.tmac, pdfroff.sh, spdf.tmac: Update postal
	address for Free Software Foundation.

2005-05-17  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Improve portability of `pdfroff' shell script.

	* pdfroff.sh: Add space in shebang, conforming to portability
	guidelines in `autoconf' docs.
	(searchpath): New shell function; use it instead of `type' command
	to locate prerequisite helper programs.

	* pdfroff.man: Document influence of `OSTYPE' and `PATH_SEPARATOR'
	environment variables.

	* Makefile.sub (pdfroff): Make it depend on SH_DEPS_SED_SCRIPT,
	from arch/misc/shdeps.sh; use it to customize PATH_SEPARATOR
	initialization code for `searchpath' function in pdfroff.sh.

2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Interim documentation update.

	* pdfmark.ms (GROFF-WEBSITE): New string; use it in references and
	examples.
	(Section 2.5): Add definitions of D and Z operators, for use with
	pdfhref macro.
	(Section 2.5.4): Complete description of pdfhref macro usage for
	`Linking to Internet Resources'; provide examples.

2005-05-14  Nick Stoughton  <nick@usenix.org>

	* pdfmark.tmac (LB): Renamed to ...
	(PDFLB): This to avoid conflicts with mm's LB macro.

2005-05-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Handle parsing anomalies in Cygwin's `ash', and similar, shells.

	* pdfroff.sh ($CAT, $GREP, $SED, $GROFF, $DIFF): Avoid interpreting
	misdirected error messages, which `type' sends to `stdout' in some
	shells, as a successful program file match.

	($AWK, $GS): Likewise; also ensure that multiple choice match
	prototypes are eval'ed as such, in case token splitting occurs
	before variable expansion.

2005-04-24  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Add support for folded outlines in PDF documents.

	* pdfmark.tmac (PDFOUTLINE.FOLDLEVEL): New register.
	(pdf:bm.emit): Use it.

	* pdfmark.ms: Document it.

2005-03-25  Werner LEMBERG  <wl@gnu.org>

	* Makefile.in: Removed.

2005-03-24  Werner LEMBERG  <wl@gnu.org>

	* Makefile: Renamed to...
	* Makefile.in: This.

2005-03-22  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* pdfroff.sh: Eliminate invalid program reference to $AWK, when
	invoked with `--no-reference-dictionary' option.

2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>

	* contrib/pdfmark/Makefile.sub (install_data): Use $(INSTALL_SCRIPT)
	to install `pdfroff'.
	* contrib/pdfmark/pdfroff.man (opte): New macro.
	Use it to remove spurious equal signs from SYNOPSIS.

2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>

	Provide `pdfroff' shell script, and manpage to document it;
	runs multiple groff passes, to format PDF documents.

	* pdfroff.sh: New shell script template;
	* pdfroff.man: New man page to document it.

	Integrate `pdfmark' into normal groff build system;
	install macro `pdfmark' packages, build and install `pdfroff',
	and PDF format documentation.

	* Makefile.sub: Rewritten.
	* pdfmark.tmac: Modified.
	(pdfhref): New macro operators, `D' and `Z'.
	(pdf*href-D, pdf*href-Z): New macros: implement them.
	(pdf*href.mark.resolve, pdf*href.mark.emit, pdf*href.mark.flush):
	Modified macro algorithm, to eliminate inconsistencies between
	`grohtml' representations of `opminy' from differing groff versions.
	(pdf*href.mark, pdf*href.mark.release, pdf*href.mark.close):
	deleted (redundant macros).
	(PDFHREF.LEADING): Default value changed (was 2.5p; now -1.0p).
	Global comment updates.

	* TODO: Updated.

2004-12-10  Werner LEMBERG  <wl@gnu.org>

	* TODO: Updated.

2004-12-08  Keith Marshall  <keith.d.marshall@ntlworld.com>

	First import of pdfmark files.

________________________________________________________________________

Copyright (C) 2004-2025 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
fill-column: 78
mode: change-log
version-control: never
End:

vim:set autoindent textwidth=78:
