f49120f6775b4c57fc036d888131d56e9609a9bc
[platform/upstream/groff.git] / contrib / pdfmark / ChangeLog
1 2014-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
2
3         Deduce "--no-toc-relocation" from input stream (revisited).
4
5         * pdfroff.sh (WRKFILE): Correct malformed sed expression.
6
7         * spdf.tmac (TC): Prefer value of pdfroff's PHASE register to defined
8         state of pdf:href.map, when choosing to emit control record to...
9         (toc_relocation): ...enable this.
10
11 2014-10-13  Keith Marshall  <keith.d.marshall@ntlworld.com>
12
13         Deduce "--no-toc-relocation" from input stream.
14
15         * pdfroff.sh (WRKFILE): Scan it for "pdfroff-option:set" records;
16         apply settings; check for equivalent of "--no-toc-relocation" option.
17
18         * spdf.tmac (TC): Emit "pdfroff-option:set toc-relocation=enabled".
19
20 2014-10-12  Keith Marshall  <keith.d.marshall@ntlworld.com>
21
22         Avoid spurious user visible control messages on stderr.
23
24         * pdfroff.sh (REFCOPY): Ensure that at least one pdfhref mark of type
25         'Z' will remain in the reference map, after all references have been
26         resolved; this is required, to suppress writing of reference control
27         records to stderr during the final PDF output processing phase.
28
29 2014-09-04  Bernd Warken  <groff-bernd.warken-72@web.de>
30
31         * all pdfmark source files: Copying (remove last updates and
32         replace years with package years) and Emacs setup.
33
34 2014-03-30  Steffen Nurpmeso  <sdaoden@yandex.com>
35
36         * Makefile.sub: Put straight error-prevention prefixes for `rm'.
37
38 2014-03-29  Steffen Nurpmeso  <sdaoden@yandex.com>
39
40         * Makefile.sub: Handle examples separately, controlled by
41         $(make{_,_install_,_uninstall_}examples).
42
43 2013-01-28  Deri James  <deri@chuzzlewit.myzen.co.uk>
44
45         * pdfmark.tmac (pdfmark, pdf:composed): Use `\!' instead of `\X'.
46
47         With the old pdfmark there are gaps between two of the lines, but
48         with the new version they disappear.  The use of `.br' and `.in 0'
49         is arbitrary any request which causes an implicit break could be
50         used.  Two breaks together only produce one line break, but if there
51         is an intervening `\X' then the second break finds the line buffer
52         not empty and generates another line break.
53
54         Using `\!' does alter the position of the pdfmark lines in the
55         intermediate file sent to grops (the pdfmark lines are output
56         immediately rather than being serialised through the output line
57         processing), but this has no effect since the contents of the
58         pdfmark line stay the same.  It is the contents which determine
59         where bookmarks jump to not the position of the record in the input
60         stream to grops.
61
62         I initially used `.output', but hit a snag if a pdfbookmark occurs
63         before the document starts to output (message saying to insert an
64         explicit `.br'), this is quite likely for things like `.pdfinfo
65         /Author' which occur at the top of the document.  So I'm using the
66         `\!' escape.
67
68 2012-09-20  Werner LEMBERG  <wl@gnu.org>
69
70         Simplify enviroment handling.
71
72         Suggested by Ivan Shmakov <oneingray@gmail.com>.
73
74         * Makefile.sub (PDFROFF): Don't use export.
75
76 2011-12-26  Mike Frysinger  <vapier@gentoo.org>
77
78         Fix parallel build race failure.
79
80         Sometimes building in parallel will fail in the pdfmark directory:
81
82           make[2]: Entering directory '.../contrib/pdfmark'
83           rm -f pdfroff
84           rm -f pdfmark.pdf
85           sed -f ... ./pdfroff.sh >pdfroff
86           ...; ./pdfroff ... pdfmark.ms >pdfmark.pdf
87           /bin/sh: ./pdfroff: Permission denied
88           chmod +x pdfroff
89           make[2]: *** [pdfmark.pdf] Error 126
90
91         This is because the generated pdf files use the local generated
92         pdfroff helper script, but they don't depend directly upon it, so
93         make tries to create the two in parallel and randomly falls over.
94
95         * Makefile.sub: Have all the .pdf files explicitly depend on the
96         `pdfroff' helper script.
97
98 2010-12-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
99
100         Update copyright notices; pdfmark.tmac bug-fix.
101
102         * pdfmark.tmac: Update copyright notices.
103         (pdf*href.mark.resolve): Avoid premature removal, by aliasing to...
104         (pdf*href.mark.begin): ...this, rather than renaming.
105
106         * pdfroff.sh, pdfroff.man: Update copyright notices.
107
108 2010-12-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
109
110         Clean up handling of temporary files directory.
111
112         * .cvsignore (pdfroff-*): Ignore sub-directories matching this.
113         * Makefile.sub (MOSTLCLEANDIRADD): Schedule them for removal.
114
115 2010-12-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
116
117         Address potential temporary file security vulnerabilities.
118
119         * pdfroff.sh (GROFF_TMPDIR): Use mktemp(1) to assign it, if possible;
120         fall back to ${TMPDIR}, ${TMP} or ${TEMP} if unsuccessful.
121         * pdfroff.man: Document it.
122
123 2009-08-16  Colin Watson  <cjwatson@debian.org>
124
125         Make pdfroff's GhostScript invocation safer.
126
127         * pdfroff.sh (PDFROFF_POSTPROCESSOR_COMMAND): Add `-dSAFER' option.
128         * pdfroff.man: Document it.
129
130 2008-12-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
131
132         Avoid phantom line wrapping in pdfhref hot-spots.
133
134         * pdfmark.tmac (pdf*href.mark.end): Emit hot-spot end markers within
135         scope of `\Z', to prevent possible output line length overflow which
136         may occur only in the layout computation passes, but not in the final
137         output pass.  Problem observed and identified by Nick Stoughton; it
138         causes some hot-spots to be displaced from their proper locations.
139
140 2007-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
141
142         Avoid stray newlines in folded pdfmark literal content.
143
144         * pdfmark.tmac (pdf*pdfmark.dispatch.wrapped): New string; define it
145         when accumulating long literal content; make it undefined otherwise.
146         (PDFMARK.FOLDWIDTH, PDFMARK.FOLDWIDTH.MAX): Reserve space for two
147         extra characters, to accommodate a space and an escaped newline,
148         while accumulating literal content, in case folding is required.
149         (pdf*pdfmark.dispatch) [pdf*pdfmark.dispatch.wrapped]: Add them.
150
151 2007-04-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
152
153         * pdfmark.tmac (pdfbookmark): Don't evaluate within diversions; defer
154         placement until diversion is copied out at top level.
155
156 2007-02-06  Eric S. Raymond  <esr@snark.thyrsus.com>
157
158         * pdfroff.man: Update .UR/.UE and .MT/.ME to latest changes in
159         an-ext.tmac.
160
161 2007-01-30  Werner LEMBERG  <wl@gnu.org>
162
163         * pdfroff.man: Updated.
164
165 2007-01-21  Werner LEMBERG  <wl@gnu.org>
166
167         * pdfroff.man: Revised, based on a patch from Eric Raymond.  It now
168         uses the new macros from an-ext.tmac.  This is the first of a series
169         of man patches which Eric has contributed.
170
171 2006-07-30  Keith Marshall  <keith.d.marshall@ntlworld.com>
172
173         * pdfroff.sh (PDFROFF_KILL_NULL_PAGES): Require `%%BeginPageSetup' on
174         PostScript output line immediately following `%%Page:'.
175
176 2006-07-29  Keith Marshall  <keith.d.marshall@ntlworld.com>
177
178         * pdfroff.sh (PDFROFF_KILL_NULL_PAGES): Require `sed' to match a more
179         explicit regular expression, for detection of redundant pages.
180
181 2006-07-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
182
183         * pdfroff.sh (PDFWRITE): Local shell variable replaced...
184         (PDFROFF_POSTPROCESSOR_COMMAND): by this new  environment variable...
185         (GROFF_GHOSTSCRIPT_INTERPRETER): with this bound to it.
186         (PDFROFF_COLLATE, PDFROFF_KILL_NULL_PAGES): New environment variables.
187         (--no-kill-null-pages): New command line option; implement it, and...
188         (--help): Add description for it.
189
190         * pdfroff.man (PDFROFF_POSTPROCESSOR_COMMAND): Document it.
191         (PDFROFF_COLLATE, PDFROFF_KILL_NULL_PAGES): Document them.
192         (--no-kill-null-pages): Document it.
193
194 2006-07-14  Zvezdan Petkovic  <zpetkovic@acm.org>
195
196         * pdfroff.sh (--emit-ps): New command line option; implement it.
197         (--help): Add description for it.
198
199         * pdfroff.man (--emit-ps): Document it.
200
201 2006-06-11  Werner LEMBERG  <wl@gnu.org>
202
203         * pdfroff.man: Add `.ig' block after NAME section to make mandb
204         happy.
205
206 2006-03-31  Keith Marshall  <keith.d.marshall@ntlworld.com>
207
208         Split `pdfmark' output as required, to avoid excessively long
209         `ps:exec' intermediate output records.
210
211         * pdfmark.tmac (pdfmark): Macro extended to deploy ...
212         (pdf*pdfmark.limit): New macro; use it to define ...
213         (PDFMARK.FOLDWIDTH, PDFMARK.FOLDWIDTH.MAX): New registers.
214         (pdf*compose.first, pdf*compose.next, pdf*compose.literal): New
215         macros; each will be aliased as required to ...
216         (pdf*compose): ... this, to dynamically construct ...
217         (pdf:composed.line, pdf:composed.literal): ... these new strings.
218         (pdf:compose.test): New dynamically constructed string; use it to
219         detect parenthesised literals in pdfmark content, so folding can be
220         avoided within them, subject to honouring of `PDFMARK.FOLDWIDTH'.
221         (pdf*length.increment): New macro; it triggers output folding when ...
222         (pdf:length): ... this new register exceeds `PDFMARK.FOLDWIDTH.MAX'.
223         (pdf*pdfmark.post.first, pdf*pdfmark.post.next): New macros; each will
224         be aliased as required to ...
225         (pdf*pdfmark.post): ... this, and invoked by ...
226         (pdf*pdfmark.dispatch): ... this new macro; use it to define ...
227         (pdf:composed): ... this dynamically constructed macro; use ...
228         (pdf*end): ... this new macro to terminate it.
229
230 2006-03-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
231
232         Incorporate portability recommendations by Ralf Wildenhues
233         <ralf.wildenhues@gmx.de>
234
235         * pdfroff.sh: Avoid unsafe quoting in variable substitutions of
236         the form "${VAR+"set"}"; remove outer quotes everywhere; prefix
237         with `x' on each side of comparisons.
238         ($NULLCMD): Define when `$ZSH_VERSION' is set, i.e. when host
239         has `/bin/sh -> zsh'; also...
240         (emulate sh): Invoke, for this case.
241
242         Enhancement/bug fix requested by Werner LEMBERG <wl@gnu.org>
243
244         * pdfroff.sh (--help): Direct output to `stdout', not `stderr'.
245         (--keep-temporary-files): New option; implement it.
246
247         * pdfroff.man (OPTIONS): Document `--keep-temporary-files' option.
248         (FILES): Note names and purpose of files it affects.
249
250         * Makefile.sub (PDFROFF): Add `--keep-temporary-files' option;
251         retain them in `GROFF_TMPDIR=.'.
252         (CLEANADD): Include temporary files matching `pdf[0-9]*'.
253
254 2006-03-08  Werner LEMBERG  <wl@gnu.org>
255
256         * pdfmark.ms: Update URL for Adobe Reference Manual.
257
258 2006-02-26  Claudio Fontana  <claudio@gnu.org>
259
260         * Makefile.sub: Add DESTDIR to install and uninstall targets
261         to support staged installations.
262
263 2006-02-25  Werner LEMBERG  <wl@gnu.org>
264
265         * pdfmark.ms: Correct typo; reported by Thomas Klausner.
266
267 2006-02-24  Werner LEMBERG  <wl@gnu.org>
268
269         * pdfmark.ms, pdfroff.sh: Replace legal/illegal with valid/invalid.
270
271 2005-06-22  Keith Marshall  <keith.d.marshall@ntlworld.com>
272
273         pdfroff.sh portability enhancement.
274
275         * pdfroff.sh (ARGLIST): Variable removed.
276         (GROFF_STYLE): Use it for all groff invocations.
277         (INPUT_FILES): Pass to all groff invocations, instead of ARGLIST.
278         (CS_MACRO, CE_MACRO): Initialize independently.
279         (CS_FILTER): Simplify quoting; it used to confuse some shells.
280         (Source): CVS keyword removed; replaced by...
281         (RCSfile, Revision): these.
282
283 2005-06-17  Keith Marshall  <keith.d.marshall@ntlworld.com>
284
285         * pdfroff.sh (MATCH): Correct quoting.
286         (Source): Add terminating `$' on CVS keyword.
287
288 2005-06-17  Zvezdan Petkovic  <zpetkovic@acm.org>
289
290         * Makefile.sub: (RM): Define as `rm -f', for `make' programs
291         which don't predefine it.
292
293 2005-06-16  Bernd Warken <groff-bernd.warken-72@web.de>
294
295         * pdfroff.sh (NULLDEV): Correct misspelled instance of NULDEV.
296
297 2005-05-28  Werner LEMBERG  <wl@gnu.org>
298
299         * Makefile.sub (.ms.pdf): Use `--stylesheet', not `--style'.
300
301 2005-05-26  Werner LEMBERG  <wl@gnu.org>
302
303         * Makefile.sub, pdfmark.tmac, pdfroff.sh, spdf.tmac: Update postal
304         address for Free Software Foundation.
305
306 2005-05-17  Keith Marshall  <keith.d.marshall@ntlworld.com>
307
308         Improve portability of `pdfroff' shell script.
309
310         * pdfroff.sh: Add space in shebang, conforming to portability
311         guidelines in `autoconf' docs.
312         (searchpath): New shell function; use it instead of `type' command
313         to locate prerequisite helper programs.
314
315         * pdfroff.man: Document influence of `OSTYPE' and `PATH_SEPARATOR'
316         environment variables.
317
318         * Makefile.sub (pdfroff): Make it depend on SH_DEPS_SED_SCRIPT,
319         from arch/misc/shdeps.sh; use it to customize PATH_SEPARATOR
320         initialization code for `searchpath' function in pdfroff.sh.
321
322 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
323
324         Interim documentation update.
325
326         * pdfmark.ms (GROFF-WEBSITE): New string; use it in references and
327         examples.
328         (Section 2.5): Add definitions of D and Z operators, for use with
329         pdfhref macro.
330         (Section 2.5.4): Complete description of pdfhref macro usage for
331         `Linking to Internet Resources'; provide examples.
332
333 2005-05-14  Nick Stoughton  <nick@usenix.org>
334
335         * pdfmark.tmac (LB): Renamed to ...
336         (PDFLB): This to avoid conflicts with mm's LB macro.
337
338 2005-05-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
339
340         Handle parsing anomalies in Cygwin's `ash', and similar, shells.
341
342         * pdfroff.sh ($CAT, $GREP, $SED, $GROFF, $DIFF): Avoid interpreting
343         misdirected error messages, which `type' sends to `stdout' in some
344         shells, as a successful program file match.
345
346         ($AWK, $GS): Likewise; also ensure that multiple choice match
347         prototypes are eval'ed as such, in case token splitting occurs
348         before variable expansion.
349
350 2005-04-24  Keith Marshall  <keith.d.marshall@ntlworld.com>
351
352         Add support for folded outlines in PDF documents.
353
354         * pdfmark.tmac (PDFOUTLINE.FOLDLEVEL): New register.
355         (pdf:bm.emit): Use it.
356
357         * pdfmark.ms: Document it.
358
359 2005-03-25  Werner LEMBERG  <wl@gnu.org>
360
361         * Makefile.in: Removed.
362
363 2005-03-24  Werner LEMBERG  <wl@gnu.org>
364
365         * Makefile: Renamed to...
366         * Makefile.in: This.
367
368 2005-03-22  Keith Marshall  <keith.d.marshall@ntlworld.com>
369
370         * pdfroff.sh: Eliminate invalid program reference to $AWK, when
371         invoked with `--no-reference-dictionary' option.
372
373 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
374
375         * contrib/pdfmark/Makefile.sub (install_data): Use $(INSTALL_SCRIPT)
376         to install `pdfroff'.
377         * contrib/pdfmark/pdfroff.man (opte): New macro.
378         Use it to remove spurious equal signs from SYNOPSIS.
379
380 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
381
382         Provide `pdfroff' shell script, and manpage to document it;
383         runs multiple groff passes, to format PDF documents.
384
385         * pdfroff.sh: New shell script template;
386         * pdfroff.man: New man page to document it.
387
388         Integrate `pdfmark' into normal groff build system;
389         install macro `pdfmark' packages, build and install `pdfroff',
390         and PDF format documentation.
391
392         * Makefile.sub: Rewritten.
393         * pdfmark.tmac: Modified.
394         (pdfhref): New macro operators, `D' and `Z'.
395         (pdf*href-D, pdf*href-Z): New macros: implement them.
396         (pdf*href.mark.resolve, pdf*href.mark.emit, pdf*href.mark.flush):
397         Modified macro algorithm, to eliminate inconsistencies between
398         `grohtml' representations of `opminy' from differing groff versions.
399         (pdf*href.mark, pdf*href.mark.release, pdf*href.mark.close):
400         deleted (redundant macros).
401         (PDFHREF.LEADING): Default value changed (was 2.5p; now -1.0p).
402         Global comment updates.
403
404         * TODO: Updated.
405
406 2004-12-10  Werner LEMBERG  <wl@gnu.org>
407
408         * TODO: Updated.
409
410 2004-12-08  Keith Marshall  <keith.d.marshall@ntlworld.com>
411
412         First import of pdfmark files.
413
414 ________________________________________________________________________
415
416 Copyright (C) 2004-2014  Free Software Foundation, Inc.
417
418 Copying and distribution of this file, with or without modification,
419 are permitted in any medium without royalty provided the copyright
420 notice and this notice are preserved.
421
422 Local Variables:
423 version-control: never
424 coding: latin-1
425 End: