-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
614 lines (426 loc) · 21.2 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
Release notes for GNU indent version 2.2.9, Aug 2002
* Matthias <moh@itec.uni-klu.ac.at> and Eric Lloyd <ewlloyd@neta.com>
Added support for -brf to place function opening brace after function
declaration.
* Cristalle Azundris Sabon <cristalle@azundris.com>
Added --preprocessor-indentation (ppi) if set, will indent nested
preprocessor-statements with n spaces per level. Overrides -lps.
* D.Ingamells <indent@dingamells.fsnet.co.uk> Added option break-function-decl-args-end
(bfde) to break the function arguments list before the closing bracket.
-bdfa now causes a break after the opening bracket and before the first
argument so that the first argument and subsequent argments are indented
one indentation step instead of being aligned with the opening bracket.
Release notes for GNU indent version 2.2.8, March 2002
* Fixed bug where file got truncated if backup file was not writable.
* Cleaned up several problems of building with the gettext package.
* Added lots of internationalisation translations.
* The indent profile file (normally in ./.indent.pro or ~/.indent.pro)
can now be specified by the environment variable $INDENT_PROFILE
Release notes for GNU indent version 2.2.7, November 2001
* Compilation under cygwin should be fixed.
* Added support for i18n. Note for non GNU Linux/UNIX users, this
requires building the code in the intl directory. For GNU Linux and
other UNIX-like systems this will happen automatically, but for other
platforms the make files in the miscel directory have not been updated
to handle this. Versions of these make files will be made available
once a generous soul provides an update.
Release notes for GNU indent version 2.2.6, November 2000
* New option --break-function-decl-args (-bfda).
This causes each argument of a function declaration to be put on
a seperate line, aligned with the opening parathesis of the function.
For example,
void
udi_pio_trans(udi_pio_trans_call_t *callback,
udi_cb_t *gcb,
udi_pio_handle_t handle,
udi_buf_t *buf,
void *mem_ptr)
* The option -diN does not any longer indent procedure names
(when also using -npsl). Nested function are still indented however.
* New options --no-space-after-for (-nsaf), --no-space-after-if (-nsai)
and --no-space-after-while (-nsaw) to remove the space directly following
`for', `if' and `while' respectively.
* Nested functions (a gcc extension) were indented wrong.
* --blank-lines-after-declarations (-bad) caused blank lines to be
inserted in the middle of C-style comments when a multiple line
comment was used after a declaration.
* The option --dont-line-up-parentheses (-nlp) was broken, sometimes
causing long lines that were broken twice or more being indented
too little.
* Renamed long option --blank-lines-after-block-comments to
--blank-lines-before-block-comments. This was a very old bug.
The equivalent short option is still -bbb.
Idem for --no-blank-lines-after-block-comments.
* New option --cuddle-do-while (-cdw).
This causes the `while' in a do-while loop to cuddle up to the
immediately preceding `}'. For example,
do {
x--;
} while (x);
* New option --no-tabs (-nut) causes indent to replace all TABS with
the appropriate space in the output. Unlike using --tab-size 1,
this has no influence on the column where comments start.
* --line-comments-indentationN/-dN now works again.
* Sometimes an extra blank line was inserted between two parts of a
long, broken line. This should be fixed now.
* The priority of breaking lines at a point that doesn't help, is now
set at minus infinity. The means that instead of getting
if (
extremely_long.
struct_element)
because breaking after a '.' has a very low priority, you'll now get
if (extremely_long.
struct_element)
* The option --format-comments (-fca) was broken, it did not remove leading
'*' in comments like: "/* this , this now becomes: "/* this <- one */".
* <- one */" instead of "/* this * <- one */".
Adjacent spaces are now always eaten and not only when they are at the
start of a line: "/* a b. c d */" becomes now "/* a b. c d */".
Two spaces are left after a dot.
* A typo in indent.c caused types inside a sizeof() to be marked as a
declaration. This caused a blank line to be put after them in some
cases (when using the --blank-lines-after-declarations (-bad)).
* A backslash-newline, outside a macro definition or string, was treated
as two seperate characters, breaking compilation when the newline was
repositioned. Now the backslash is simply eaten.
Release notes for GNU indent version 2.2.5, Januari 2000
* When using --dont-break-procedure-type, indent wrongly joined
lines of a procedure declaration ending in a '(' and followed
by a comment. In the case of a C++-style comment that even
broke compilation.
int func( /* hello */
char c)
{
became
int func( /* hello */ char c)
{
* Added missing README.VMS to tar ball. Added support for VMS'
DECC compiler. (Patch by forrest.cahoon@merrillcorp.com).
* New option --space-after-parentheses (-prs) causes parentheses
to be printed with spaces: if ( foo( i + 1 ) == 1 ).
* --braces-on-if-line (-br) caused indentation of statements
after case: label to be indented wrongly (not relative to the
start of the case: label). This fix means that when you use -br
together with -cliN where N is not 0, then your code will change:
subtract the value for -cli from -cbi to get the same results
for { braced } case statements.
The correct meaning when using -br is now:
switch (i) {
<--cliN-->case x:
<--iN-->statement;
<--cliN-->case y:
<--cbiN-->{
<--iN-->statement;
Without -br it still is:
switch (i)
<--bliN-->{
<--cliN-->case x:
<--iN-->statement;
<--cliN-->case y:
<--cbiN-->{
<--iN-->statement;
* Indentation options now accept negative values for greater flexibility.
Release notes for GNU indent version 2.2.4, November 1999
* When using numbered backup files, setting environment variable
VERSION_WIDTH now allows to use left zero padding (ie file.~001~).
(Patch by Chris F.A. Johnson <bq933@torfree.net>)
* --braces-on-if-line (-br) caused a '{' brace on the same line as a '}'
not to be put automatically on the next line, as it should because
the following { block } is not related to the previous { block } in
any way.
* Unpaired braces in `#if ..{.. #else/#elif ..{.. #endif }' constructs
was broken for #elif and when there were spaces after the #.
* Spelling, typo and general little improvements of indent.texinfo.
Now using Texinfo 4.0 markup.
(Patch by Kragen Sittler <sittler@day.erim-int.com>)
Release notes for GNU indent version 2.2.3, October 1999
* Fixed bit-fields with types other then `int' (no type still won't work).
Fixed support for public:, private: and protected: labels.
* Forgot to include the indent.dsp file in 2.2.2 (win32)
Release notes for GNU indent version 2.2.2, September 1999
* Added support for win32 (need VC++)
* Indent was sometimes adding a blank line at the top of an indented
file when indenting multiple files at once. This bug has been fixed.
Release notes for GNU indent version 2.2.1, September 1999
* Indent got confused when a function declaration contained an enum
and did not contain a colon before using a '{' inside the function.
enum foobar <-- returns enum
func (enum foobar) <-- or uses an enum as parameter
{
if (1)
{ <-- uses '{' before any ';' was used
func (1);} <-- fails here
... etc.
* A new option to stop `make' from rebuilding your whole project
after running `indent':
-pmt, --preserve-mtime :
Preserve modification time on output files.
* Backup files now keep the same modification time as the
original.
* New -c++, --c-plus-plus option to allow better C++ formatting:
Recognizes C++ keywords, including the GNU extension operators <?= and >?=.
(Patch by Malekith <malekith@topnet.pl>)
Note: In general C++ still does NOT work!
* EBCDIC charset support for BS2000/POSIX (Siemens mainframe OS).
Contributed by <Martin.Kraemer@MchP.Siemens.De>.
Release notes for GNU indent version 2.2.0, July 1999
* Indent was detecting `const' errornous as function qualifier
in some cases. Resulting in
void foo(fmt)
constchar *fmt;
{
}
* Compiles again with old K&R compilers.
* The `GetText' macros `N_' and `_' do not get a space appended anymore.
Release notes for GNU indent version 2.1, June 1999
* Merged in the changes made by Joseph Arceneaux from 1.9.1 -> 2.0.
Thus: 1.10.0 == 1.9.1 + Carlo's patches
2.0 == 1.9.1 + Joseph's patches
2.1.0 == 1.9.1 + Joseph's patches + Carlo's patches.
Below you can find the release notes of 2.0, which thus also apply to 2.1:
The maintenance is now officially transfered to Carlo Wood.
* GNU indent is now a lot more precise in honouring the --line-lengthN
option: It now joins lines when they fit on one line, and it won't
produce lines that are longer then the specified line length anymore
(except when no reasonable break point was found).
* Two new options to accommodate breaking long lines:
-hnl, --honour-newlines :
Prefer to break long lines at positions where the lines were broken
in the input file.
-nhnl, --ignore-newlines:
Don't prefer that.
-bbo, --break-before-boolean-operator :
Prefer to break long lines before the boolean operators && and ||.
-nbbo, --break-after-boolean-operator :
Prefer to break long lines after the boolean operators && and ||.
* The default is now not to indent the braces of struct, union and enum.
A new option -sbiN or --struct-brace-indentationN allows to indent it
nevertheless.
Release notes for GNU indent version 2.0, November 1998
* indent withstands the U. Wisconsin fuzz test. (See
http://www.cs.wisc.edu/Dienst/UI/2.0/Describe/ncstrl.uwmadison/CS-TR-95-1268
for details.)
* indent compiles with gcc -Wall and MSVC++ with no warnings.
* C++ code is handled to a great extent. There is no special switch
or option. However, there are still several cases which are not
handled as well as they should be, and there are no options
controlling C++ formatting specifically.
There is only one case I'm aware of in which the output of indent
breaks compilation; this is nested templates such as:
Aaa<int, Bbb<int> > anotherAB;
are transformed into:
Aaa < int, Bbb < int >>anotherAB;
which is problematic for some compilers. This is, in my opinion,
the fault of the incredibly brain-dead design of C++, and it's not
clear when or if indent will deal properly with this example.
* Wide strings and characters are now handled.
* The manual page, indent.1, has been removed from the distribution
because it is not supported and is seriously out of date (it
corresponds to indent 1.4).
* The "-bbb" option, which forces blanklines before boxed comments,
has been re-instated.
* Trailing spaces are removed from output.
* Line-breaking behaviour has been improved.
* The troff option has been removed.
* You may now put either C ("/* ... */") or C++ ("// ...") comments in
the indent profile. Options within comments are ignored.
* The K&R style of leaving procedure names on the same line as their
type is now better supported (the option "-psl").
* The "-l" option now works more consistently. This may change some
behaviour by breaking lines where they were not broken before.
Specifying an argument of "0" will turn off this option.
* The unused options "-ps" and "-nps" were removed.
* When `indent' completes its work successfully, it exits with a value
of 0. Otherwise, one of the following values is returned:
1 : This means `indent' was incorrectly invoked.
2 : Errors occurred during formatting, but processing continued.
3 : An unrecoverable error occured during the processing of an input
file. If there are more input files, indent will proceed to
process them, but will return the error value 3.
4 : A serious internal error occured. All processing is terminated.
5 : A system error during processing occurred. In this case,
`indent' terminates.
Release notes for GNU indent version 1.10, May 1999.
* New maintainer.
New build environment, using automake now.
VMS support is removed (sorry).
* Many bug fixes - if you had problems before, try this version!
* New options have been added:
"-bls" ("--braces-after-struct-decl-line")
"-brs" ("--braces-on-struct-decl-line")
"-cbiN" ("--case-brace-indentationN")
"-piN" ("--paren-indentationN")
* Generated and thus up to date man page (indent.1).
Release notes for GNU indent version 1.9.
* All reported bugs have been fixed.
* A new option "-lc" ("--comment-line-length") was added.
* Please read the section "BUG REPORTS" in the README file.
* Unless "interesting" bugs appear, this will be the last release of
indent version 1. The next release planned is version 2, which will
(hopefully) integrate support for C++, and possibly Objective C.
Additionally, a couple more OS's may be supported.
* A volunteer is now working on the `review' program, which examines C
code and produces the options that GNU `indent' would use to produce
code in that style.
Release Notes for GNU indent version 1.8.
* VMS and MS-DOS are now supported. Thanks to MEHRDAD@glum.dev.cf.ac.uk
and hnyman@lesti.hut.fi for their contributions.
Please note that I have no way of testing this code, and with slight
modifications, have installed it "as is".
Also, note that these systems do not use `configure'. See the file
VMS-README for details of the VMS installation. For the MS-DOS
version, it is expected that the compiler will recognize the define
__MSDOS__ as being set.
* C++ comments are now recognized. More C++ support will be
forthcoming, possibly along with support for Objective C.
* Formatting can be disabled for sections of code by placing that code
between lines containing the comments /* *INDENT-OFF* */ and
/* *INDENT-ON* */ (this also works in C++ comments). See the info
node "Disabling Formatting" for more info.
* The processing of comments has been changed. See the info node on
"Comments" for a description.
* The default (i.e., GNU) behaviour of struct handling has been
slightly changed.
* All reported bugs have been fixed.
Release Notes for GNU indent version 1.7.
* All reported bugs have been fixed, except some of those dealing with
comments. I have completely rewritten the comment handling code in
indent, but since this produces rather different comment formats
(mostly, it makes several comment-related options actually work) I
am waiting for the next release of indent to install this.
To see what the differences in the comment handling will be, compare
the file `comments.texinfo' to the section on comments in the info
node for indent.
It is possible that I have lost some bug reports, as some of my mail
falls into a crack between two machines. In the future, please be
sure to use the address "bug-gnu-utils@prep.ai.mit.edu".
* All errors and warnings are output on the standard error stream,
and conform to the GNU error message format.
* There is now more support for small (i.e., 16-bit) machines.
* There have been slight changes to the default behaviour, namely:
- Column 1 comments are not formatted.
- Preprocessor spaces are removed.
* When "-lps" is specified, whitespace preceding the '#' character is
left untouched, as well as following whitespace.
* When the tabsize is specified as 1 or 0 (e.g., "-ts 0"), spaces are
used instead of tabs. There may be bugs in this behaviour, but they
should vanish with the new comment code.
Release Notes for GNU indent version 1.6.
* All reported bugs have been fixed.
* The makefiles have been, hopefully, improved (see the file `README'
for installation procedure). Essentially, it is sufficent to type
"make" to build indent. `indent' is distributed with `configure'
just as other GNU software. Thus, in conformance with the GNU
standards, "configure; make" should function properly and `indent'
should fit properly in a GNU software tree. However, it is my hope
that for most users, "make" is all they will have to type.
Release Notes for GNU indent version 1.5.
* All reported bugs (and some unreported ones) have been fixed.
* The default behaviour of `indent' has changed slightly to be more
compatible with Emacs' C-mode. In particular, where version 1.4
produced code looking like:
struct token_data
{
enum token_data_type type;
union
{
struct
{
char *text;
}
u_t;
}
u;
};
version 1.5 now generates the following:
struct token_data
{
enum token_data_type type;
union
{
struct
{
char *text;
}
u_t;
}
u;
};
* There is a new option, "-lps" ("--leave-preprocessor-space") which
causes `indent' to leave the space between the `#' and the command
on preprocessor lines.
* `indent' now understands spaces between options and their arguments.
It is thus now possible to type: "indent -ip 4 latex.c"
Such spaces are also understood in a profile.
* indent 1.5 uses a configuration script generated by autoconf. It
examines the system to produce a host-dependent makefile. This has
changed little with regard to building indent; typing "make" will
build `indent'. See the file "README" for details of this process.
* The file "indent.1" is a man document for indent 1.4 sent to me by
vogel@c-17igp.wpafb.af.mil. The GNU project uses texinfo for its
documentation system, so this man page will remain officially
unsupported. However, I will continue to distribute it as long as it
appears reasonably up to date.
* Thanks to the folks that sent me patches.
Release Notes for GNU indent version 1.4.
Essentially, this version fixes bugs in version 1.3.
Release Notes for GNU indent version 1.3. For more details, read the
manual.
* All reported bugs have been fixed.
* The manual has been upgraded somewhat.
* Command line syntax has changed with regard to input and output files.
The command:
indent *.c
for each file iguana.c, will indent iguana.c into iguana.c, after
first making a backup copy.
indent liver_oil.c -o gullet.c
cat liver_oil.c | indent -o gullet.c
indent liver_iol.c -st > gullet.c
Each of the above will indent "liver_oil.c" into "gullet.c". The
"-st" ("--standard-output") option can only be used when the
standard input, or only a single input file is specified.
It is also possible to use the standard input by specifying the single
filename "-" on the command line. In this case, no other files may
be specified.
* indent now makes GNU-style backup files.
This behaviour is controlled by two environment variables,
VERSION_CONTROL and SIMPLE_BACKUP_SUFFIX.
VERSION_CONTROL determines what kinds of backups are made. If it's
value is "numbered", then the first modification of some file
"eraserhead.c" will yield a backup file "eraserhead.c.~1~", the
second modification will yield "eraserhead.c.~2~", and so on. It
does not matter if the version numbers are not a sequence; the next
version will be one greater than the highest in that directory.
If the value of VERSION_CONTROL is "numbered_existing", then such
numbered backups will be made if there are already numbered backup
versions of the file. Otherwise, the backup name will be that of
the original file with "~" (tilde) appended. E.g., "eraserhead.c~".
If the value of VERSION_CONTROL is "simple", then the backup name
will be that of the original file with "~" appended, regardless of
whether or not there exist numbered versions in the directory.
For simple backups, the value of SIMPLE_BACKUP_SUFFIX will be used
rather than "~" if it is set.
If VERSION_CONTROL is unset, "numbered_existing" is assumed. For
lisp lovers, "nil" is equivalent to "numbered_existing" and "t" is
equivalent to "numbered".
Finally, if VERSION_CONTROL is "none" or "never", backups are not
made. I suggest you avoid this behaviour.
Note also that backup files are made in the directory of the source
file, not the current directory (where indent was invoked).
* Only one indent profile is read. indent searches first for a
profile in the current directory and reads that if found.
Otherwise, indent looks for a profil in the home directory.
* "-nip" is now handled. This is equivalent to "-ip0".
* The long name for "-bs" has been changed from "--Bill_Shannon" to
"--blank_after_sizeof".
Release notes for GNU indent version 1.7
The default style of indent is now the GNU style. The option "-gnu"
is still recognized. To obtain the original indent default, use
"-orig". It is possible to obtain the original defaults by compiling
args.c with -DBERKELEY_DEFAULTS.
Long options are now handled, prefaced by either "+" or "--".
A new option, "-ts", allows specification of tab sizes.
All reported bugs have been fixed.
The man format of documentation is no longer included. indent.texinfo
is the official document, in accordance with GNU standards.
Investigate the program "texi2roff" for generating a MAN page.