Add a patch from Josh Zenker to fix perl highlight
[enscript.git] / NEWS
1
2                       What's new in GNU enscript
3                       --------------------------
4
5 Summary of changes in enscript version 1.6.6:
6
7 * Add afm/MustRead.html, containing licensing information for Adobe
8   AFM files.  (Savannah bug #35883)
9
10 * Sync all translations from the Translation Project.  Please visit
11   http://translationproject.org/ to help translate Enscript!
12
13 * Add documented but missing '-w' option as an alias for '--language'.
14   (Savannah bug #30651)
15
16 * Apply sliceprint patch from Debian. (Savannah bug #31259)
17
18 \f
19 Summary of changes in enscript version 1.6.5.2:
20
21 * Fix CFG_FATAL macro in util.c; this prevents a segmentation fault
22   when the configuration file contains unknown parameters. (Savannah
23   bug #28769)
24
25 * Fix segmentation fault with line lengths over 90 characters.
26   (Savannah bug #29198)
27
28 \f
29 Summary of changes in enscript version 1.6.5.1:
30
31 * Typo corrections in the manual pages.
32
33 * Reorganise source tree to use a single ChangeLog file.
34
35 * Actually ship f90.st in the tarball.
36
37 * Reorganise INSTALL and README.
38
39 \f
40 Noteworthy changes in enscript version 1.6.5:
41
42 * New maintainer.
43
44 * Licensing change: GNU Enscript is now distributed under version 3 or
45   later of the GNU GPL.
46
47 * Build system fixes - distcheck now passes.
48
49 * At least four security bug fixes:
50   - CAN-2004-1184
51   - CAN-2004-1185
52   - CAN-2004-1186
53   - CVE-2008-3863, CVE-2008-4306
54
55 * Syntax highlighting fixes.
56   - shell escaping rules from Shawn McMahon.
57   - JavaScript regexps now recognised.
58   - New highlighting rules for Fortran 90 from David Bowler.
59
60 See changelogs for more detailed notes.
61
62 \f
63 Noteworthy changes in enscript version 1.6.4:
64
65 * Unknown - to be filled in at a later date.
66
67 \f
68 Noteworthy changes in enscript version 1.6.3:
69
70 * Changes in the highlighting / pretty printing
71
72   - The `States*' config file options have changed.  The new options
73     are:
74       - StatesBinary            specify an absolute path for `states'
75       - StatesColor             use colors in the highlighting outputs?
76       - StatesConfigFile        config file name (enscript.st)
77       - StatesHighlightStyle    highlighting style
78       - StatesPath              path from which the states is looking
79                                 up the state definition files (.st)
80
81   - Support for user defined local highlighting definitions and styles.
82   - new option `--style=STYLE' to specify the highlighting style
83   - Verbose highlighting for the C, C++, and Objective-C languages.
84     In the verbose highlighting, some mathematical constructs (&&, ||,
85     !=, etc.) are replaced with the corresponding mathematical symbols
86     (logical and, logical or, not equal, etc.).  The mode can be
87     enabled with option `--style=emacs_verbose'.
88   - renamed `--pretty-print' and `--help-pretty-print' options to
89     `--highlight' and `--help-highlight'
90
91 * states:
92
93   - Support for state inheritance.
94
95 * new highlighting rules:
96
97   - bash, csh, ksh, tcsh, zsh
98                 Unix shells
99   - m4          m4 macro preprocessor
100   - skill       Cadence Design Systems lispy language
101   - vrml        Virtual Reality Modeling Language (VRML97)
102   - rfc         fix broken page breaks in RFCs and in Internet Drafts
103   - inf         GUI INF Script language
104   - matlab      Matlab files
105   - outline     Emacs' outline text
106   - tex         TeX/LaTeX source files.
107   - diffs       side diff files
108   - fortran_pp  fortran 77 with preprocessor
109   - wmlscript   WMLScript language
110
111   - new output language `ansi' to print color outputs on color xterm,
112     etc.
113
114 * new encodings:
115
116   - 88599       ISO-8859-9 (ISO Latin5)
117   - 885910      ISO-8859-10 (ISO Latin6)
118
119 * new options:
120
121   - -3, -4, -5, -6, -7, -8, -9  select 3-9 columns
122   - --nup-columnwise            layout pages in the N-up printing
123                                 columnwise
124   - --swap-even-page-margins    swap left and right side margins for
125                                 even numbered pages
126   - --extended-return-values    encode more status information in the
127                                 return value of the program
128   - --footer=STRING             specify the page footer string
129
130 * misc:
131
132   - It is possible to specify the font encoding in the ^@font{}
133     escape.  But, it allows only `ps' or the enscript's global input
134     encoding values.  For example, ^@font{Symbol@7:ps}b^@font{default}
135     prints the beta symbol
136   - New escape ^@bgcolor{} to change the text background color.
137   - New fancy headers `squeeze' and `enscript-color'.
138   - Minor fixes in the 88593 and 88594 encodings.
139   - New highlighting style `msvc'.
140   - Support for the matrix printers.  Try `enscript -fMatrix10' ;-)
141   - Fixed some buffer overrun bugs.  Now all buffer space for unknown
142     items (filenames, user-supplied tokens, etc.) is allocated
143     dynamically.
144   - Removed the `--list-options' option.  It was an old debugging
145     option.  I can remember when I have used or updated it.
146
147 \f
148 Noteworthy changes in enscript version 1.6.1:
149
150 * new options:
151
152   - --ps-level=LEVEL, PostScriptLevel
153                         set the PostScript language level that
154                         enscript should use for its output
155   - --rotate-even-pages
156                         Rotate each even-numbered page 180 degrees.
157
158 * misc
159
160   - updated C, C++, and Objective-C highlighting
161   - set the states to process the stdin if argument "-" is given
162   - bug and portability fixes
163
164 \f
165 Noteworthy changes in enscript version 1.6:
166
167 * new options:
168
169   - StatesPath          define absolute path for the states program
170   - GeneratePageSize    specify wheter the PageSize page device
171                         setting is generated to the output
172   - -C, --line-numbers  option takes an optional argument to specify
173                         the number of the first line in the input
174   - -W, --language=LANG set ouput language to LANG
175   - --h-column-height=HEIGHT
176                         set the horizontal column height to HEIGHT
177                         PostScript points
178   - --mark-wrapped-lines[=STYLE], MarkWrappedLines
179                         mark wrapped lines in the printout with STYLE
180   - --margins=LEFT:RIGHT:TOP:BOTTOM
181                         adjust page marginals
182   - --nup-xpad=NUM      set the page x-padding of N-up printing to NUM
183   - --nup-ypad=NUM      set the page y-padding of N-up printing to NUM
184   - --word-wrap         wrap long lines from word boundaries
185
186 * new highlighting rules:
187
188   - ada         Ada95 programming language
189   - asm         assembler listings
190   - awk         awk scripting language
191   - delphi      Delphi programming language
192   - diff        diff files
193   - diffu       unified diff files
194   - elisp       Emacs Lisp
195   - fortran     Fortran77 programming language
196   - haskell     Haskell programming language
197   - idl         CORBA interface definition language
198   - java        Java programming language
199   - javascript  JavaScript language
200   - pascal      Pascal programming language
201   - perl        Perl programming language
202   - postscript  PostScript
203   - python      Python programming language
204   - sh          Bourne shell scripts
205   - sql         Sybase 11 SQL
206   - vba         Visual Basic (for Applications)
207
208   - improved C, C++ and Objective-C highlighting
209
210 * new special escapes:
211
212   - ^@bggray{GRAY} change text's background color
213   - ^@escape{CODE} changes the escape character
214
215 * new encodings:
216
217   - 88594       ISO-8859-4 (ISO Latin4)
218   - 88597       ISO-8859-7 (ISO Greek)
219
220 * misc:
221
222   - interpret formatting escapes from the page header strings
223   - page header string can contain left, center and right aligned
224     fields
225   - support for HTML, RTF (Rich Text Format) and overstrike output
226     languages
227   - fixed tabulator character handling with variable width fonts
228   - added support for regular expression character syntax tables in
229     the states program
230   - generates the PageSize page device setting to the PostScript
231     output -- this should make the printer to select the correct paper
232     tray automatically
233   - replaced all stdarg functions with macros
234   - fixed N-up printing to cooperate with the page margins
235   - renamed the ISO-8859-* input encoding names to conform their
236     ISO names
237 \f
238 Noteworthy changes in enscript version 1.5:
239
240 * new options:
241
242   -A ALIGN, --file-align=ALIGN
243                         align separate input files to even ALIGN page
244                         count
245   -E, --pretty-print    pretty print program source files with states
246   -U NUM, --nup=NUM     print NUM logical pages on each output page
247                         (N-up printing)
248   --help-pretty-print   describe all supported --pretty-print
249                         languages and file formats
250   --slice               print vertical slices of input files
251   --toc                 print table of contents
252
253 * config file options:
254
255   - TOCFormat           set the table-of-contents line format
256   - NoJobHeaderSwitch   set the spooler switch which disables job
257                         header (-h)
258   - OutputFirstLine     set output's fist line
259   - StatesColorModel    define color model for states
260   - StatesConfigFile    set states' config file
261   - StatesHighlightLevel
262                         define highlight level for states
263
264 * new utilities:
265
266   - sliceprint  print documents with long lines
267   - states      awk like state machine to highlight program listings
268   - many2html   convert files to HTML.  Program supports all file
269                 formats which can be pretty-printed with enscript.
270
271 * new encodings:
272
273   - koi8                Adobe Standard Cyrillic Font KOI8 charset
274   - 88595               ISO-8859-5 (ISO Cyrillic)
275   - asciifise           7 bit ascii with fi and se encodings for {|}[\]
276                         (old asciiscands)
277   - asciidkno           7 bit ascii with dk and no encodings for {|}[\]
278
279 * misc
280
281   - ^@color{r g b} special escape
282   - if input file (all input files) does not exist, enscript doesn't
283     generate any output
284   - -E, --pretty-print highlighting for: C, ChangeLog, C++, mail,
285     Makefile, nroff output, Objective-C, Scheme, States, Synopsys,
286     Tcl, Verilog, VHDL
287
288 \f
289 Noteworthy changes in enscript version 1.4:
290
291 * new and changed options:
292
293   -a, --pages           select pages to print
294   -e, --escapes         option takes an optional argument which
295                         changes the escape character
296   -h, --no-job-header   supress the job header page
297   --title               sets the name of stdin
298   -I, --filter          set input filter
299   -j, --borders         print borders around columns
300   -k, --page-prefeed    enable page prefeed
301   -K, --no-page-prefeed disable page prefeed
302   --highlight-bars      enable highlight bars
303   --highlight-bar-gray  set the gray-level for highlight bars
304   --printer-options     pass extra options to the printer command
305   --ul-style            specify how the underlay strings are printed
306
307   - renamed option `--page-header' to `--header'
308   - renamed option `--pass-through-ps-files' to `--pass-through'
309
310 * config file options:
311
312   - AcceptCompositeCharacters
313   - AppendCtrlD
314   - FormFeedType        what to do when a formfeed character is
315                         encountered from input
316   - EscapeChar          specify the escape character
317   - UnderlayStyle       how underlays are printed: outline / filled
318
319 * new fancy headers: mp, frame
320
321 * escapes:
322
323   - font        works now over page boundaries
324   - ps          include raw PostScript code to the output
325   - shade       new escape to highlight text regions
326   - setfilename
327   - setpagenumber
328   - newpage
329
330 * new encodings:
331   - hp8         HP Roman-8
332
333 * internationalization support with the GNU gettext
334
335 * changed to use GNU Automake
336
337 * program renamed from genscript to enscript
338
339 * new utility scripts:
340   - diffpp - pretty-print diff outputs
341
342 \f
343 Noteworthy changes in enscript version 1.3:
344
345 * new encodings:
346   - 88593       ISO-8859-3
347   - pslatin1    PostScript interpreter's ISOLatin1Encoding
348
349 * new fancy header: edd, a2ps
350
351 * option changes:
352   - option -Z, --pass-through-ps-files no longer wraps PS document
353     inside enscript prolog and epilog.
354
355   - renamed some options to conform the GNU coding standards:
356       --output-file     =>      --output
357       --queue           =>      --printer
358       --tab-size        =>      --tabsize
359
360   - new command line / config file options:
361     -z, --no-formfeed
362     --ul-angle                  UnderlayAngle
363     --ul-position               UnderlayPosition
364     --non-printable-format      NonPrintableFormat
365
366 * added some customization options to header description files:
367     %Format             format and define string constants according
368                         to format string
369     %HeaderHeight       explicit set the fancy header height
370     %FooterHeight       allocate space for the page footer
371
372   Note!  If you have defined your own fancy header, it will probably
373   not work on enscript-1.3 without modifications.  Following constants
374   are removed from the enscript prolog so you must define them with
375   the `%Format' comment:
376
377     usadatestr = %Format: usadatestr    %W
378     eurdatestr = %Format: eurdatestr    %E
379     findatestr = %Format: findatestr    %F
380     timestr    = %Format: timestr       %C
381     fmodstr    = %Format: fmodstr       $D{%a %b %e %T %Y}
382
383   Check `lib/*.hdr' to see them in action.
384
385 * the library directory has changed from `<prefix>/lib/enscript' to
386   `<prefix>/share/enscript'
387
388 * new Makefile targets: check, uninstall
389
390 * enscript must no longer be installed before it can be tested; you
391   can print files directly after you have compiled enscript.
392
393 * support for Windows95/NT via the Win32 api