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