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