The NetBSD Project

CVS log for src/usr.bin/indent/parse.c

[BACK] Up to [cvs.NetBSD.org] / src / usr.bin / indent

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.79 / (download) - annotate - [select for diffs], Sun Jun 18 06:56:32 2023 UTC (9 months, 1 week ago) by rillig
Branch: MAIN
CVS Tags: HEAD
Changes since 1.78: +52 -45 lines
Diff to previous 1.78 (colored) to selected 1.23 (colored)

indent: untangle code for handling the statement indentation

The expression 'psyms.level-- - 2' did too much in a single line, so
extract the '--' to a separate statement, to highlight the symmetry
between the 'sym' and 'ind_level' code.

No functional change.

Revision 1.78 / (download) - annotate - [select for diffs], Sat Jun 17 22:28:49 2023 UTC (9 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.77: +7 -7 lines
Diff to previous 1.77 (colored) to selected 1.23 (colored)

indent: miscellaneous cleanups

No binary change.

Revision 1.77 / (download) - annotate - [select for diffs], Wed Jun 14 20:46:08 2023 UTC (9 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.76: +12 -11 lines
Diff to previous 1.76 (colored) to selected 1.23 (colored)

indent: clean up the code, add a few tests

Revision 1.76 / (download) - annotate - [select for diffs], Wed Jun 14 19:05:40 2023 UTC (9 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.75: +13 -6 lines
Diff to previous 1.75 (colored) to selected 1.23 (colored)

indent: allow more than 128 brace levels

Revision 1.75 / (download) - annotate - [select for diffs], Wed Jun 14 17:52:45 2023 UTC (9 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.74: +3 -3 lines
Diff to previous 1.74 (colored) to selected 1.23 (colored)

indent: fix out-of-bounds read when reducing a statement

Since parse.c 1.73 from today. The parser symbol psym_stmt_list that was
removed in that commit acted as a stop symbol, so that psyms_reduce_stmt
would save a memory access.

Revision 1.74 / (download) - annotate - [select for diffs], Wed Jun 14 16:14:30 2023 UTC (9 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.73: +37 -35 lines
Diff to previous 1.73 (colored) to selected 1.23 (colored)

indent: clean up array indexing for parser symbols

With 'top' pointing to the actual top element, the array was indexed in
the closed range from 0 to top. All other arrays are indexed by the
usual half-open interval from 0 to len.

No functional change.

Revision 1.73 / (download) - annotate - [select for diffs], Wed Jun 14 07:20:55 2023 UTC (9 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.72: +4 -7 lines
Diff to previous 1.72 (colored) to selected 1.23 (colored)

indent: merge parser symbols for stmt and stmt_list

They were handled in exactly the same way.

Revision 1.72 / (download) - annotate - [select for diffs], Sat Jun 10 17:35:40 2023 UTC (9 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.71: +15 -22 lines
Diff to previous 1.71 (colored) to selected 1.23 (colored)

indent: fix stack overflow, add more tests

For several parser symbols, 2 symbols are pushed in a row, which led to
an out-of-bounds write.

Revision 1.71 / (download) - annotate - [select for diffs], Sat Jun 10 16:43:56 2023 UTC (9 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.70: +55 -61 lines
Diff to previous 1.70 (colored) to selected 1.23 (colored)

indent: miscellaneous cleanups

Revision 1.70 / (download) - annotate - [select for diffs], Fri Jun 9 07:20:30 2023 UTC (9 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored) to selected 1.23 (colored)

indent: format its own code

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jun 7 15:46:12 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.68: +50 -47 lines
Diff to previous 1.68 (colored) to selected 1.23 (colored)

indent: extract the stack of parser symbols to a separate struct

No functional change.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Jun 6 05:11:11 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.67: +64 -66 lines
Diff to previous 1.67 (colored) to selected 1.23 (colored)

indent: sort functions in call order

No functional change.

Revision 1.67 / (download) - annotate - [select for diffs], Tue Jun 6 04:37:26 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.66: +3 -7 lines
Diff to previous 1.66 (colored) to selected 1.23 (colored)

indent: compute indentation of 'case' labels on-demand

One less moving part to keep track of.

No functional change.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Jun 5 07:35:05 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.65: +5 -4 lines
Diff to previous 1.65 (colored) to selected 1.23 (colored)

indent: rename variables, clean up comments

No binary change.

Revision 1.65 / (download) - annotate - [select for diffs], Sun Jun 4 17:54:11 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.64: +18 -6 lines
Diff to previous 1.64 (colored) to selected 1.23 (colored)

indent: track the kind of '{' on the parser stack

Revision 1.64 / (download) - annotate - [select for diffs], Sat Jun 3 21:24:26 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.63: +38 -39 lines
Diff to previous 1.63 (colored) to selected 1.23 (colored)

indent: clean up handling of brace indentation

No functional change.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Jun 2 11:43:07 2023 UTC (9 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.62: +5 -8 lines
Diff to previous 1.62 (colored) to selected 1.23 (colored)

indent: fix formatting of declarations with preprocessing lines

Revision 1.62 / (download) - annotate - [select for diffs], Tue May 23 12:12:29 2023 UTC (10 months ago) by rillig
Branch: MAIN
Changes since 1.61: +3 -2 lines
Diff to previous 1.61 (colored) to selected 1.23 (colored)

indent: split debug output into paragraphs

The paragraphs separate the different processing steps: getting a token
from the lexer, processing the token, updating the parser state, sending
a finished line to the output.

Revision 1.61 / (download) - annotate - [select for diffs], Thu May 18 05:33:27 2023 UTC (10 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.60: +11 -7 lines
Diff to previous 1.60 (colored) to selected 1.23 (colored)

indent: manually wrap overly long lines

No functional change.

Revision 1.60 / (download) - annotate - [select for diffs], Thu May 18 04:23:03 2023 UTC (10 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.59: +171 -171 lines
Diff to previous 1.59 (colored) to selected 1.23 (colored)

indent: switch to standard code style

Taken from share/misc/indent.pro.

Indent does not wrap code to fit into the line width, it only does so
for comments.  The 'INDENT OFF' sections and too long lines will be
addressed in a follow-up commit.

No functional change.

Revision 1.59 / (download) - annotate - [select for diffs], Tue May 16 12:46:43 2023 UTC (10 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.58: +4 -4 lines
Diff to previous 1.58 (colored) to selected 1.23 (colored)

indent: allow comments in column 1 to be formatted

Revision 1.58 / (download) - annotate - [select for diffs], Mon May 15 20:12:28 2023 UTC (10 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.57: +3 -3 lines
Diff to previous 1.57 (colored) to selected 1.23 (colored)

indent: format its own code, extend some comments

With manual corrections, as there are still some bugs left.

No functional change.

Revision 1.57 / (download) - annotate - [select for diffs], Mon May 15 08:11:27 2023 UTC (10 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.56: +2 -3 lines
Diff to previous 1.56 (colored) to selected 1.23 (colored)

indent: remove redundant include lines

Revision 1.56 / (download) - annotate - [select for diffs], Mon May 15 07:28:45 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.55: +3 -3 lines
Diff to previous 1.55 (colored) to selected 1.23 (colored)

indent: clean up memory and buffer management

Remove the need to explicitly initialize the buffers.  To avoid
subtracting null pointers or comparing them using '<', migrate the
buffers from the (start, end) form to the (start, len) form.  This form
also avoids inconsistencies in whether 'buf.e == buf.s' or 'buf.s ==
buf.e' is used.

Make buffer.st const, to avoid accidental modification of the buffer's
content.

Replace '*buf.e++ = ch' with buf_add_char, to avoid having to keep track
how much unwritten space is left in the buffer.  Remove all safety
margins, that is, no more unchecked access to buf.st[-1] or appending
using '*buf.e++'.

Fix line number counting in lex_word for words that contain line breaks.

No functional change.

Revision 1.55 / (download) - annotate - [select for diffs], Sun May 14 12:12:02 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.54: +2 -10 lines
Diff to previous 1.54 (colored) to selected 1.23 (colored)

indent: remove foreign RCS IDs

Revision 1.54 / (download) - annotate - [select for diffs], Sat May 13 09:27:49 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.53: +3 -44 lines
Diff to previous 1.53 (colored) to selected 1.23 (colored)

indent: move debugging code to separate file

No functional change.

Revision 1.53 / (download) - annotate - [select for diffs], Fri May 12 22:38:47 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.52: +4 -4 lines
Diff to previous 1.52 (colored) to selected 1.23 (colored)

indent: rename placeholder symbol for parser stack

No functional change outside debug mode.

Revision 1.52 / (download) - annotate - [select for diffs], Fri May 12 22:36:15 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.51: +19 -11 lines
Diff to previous 1.51 (colored) to selected 1.23 (colored)

tests/indent: test pushing the placeholder symbol to the parser stack

Revision 1.51 / (download) - annotate - [select for diffs], Fri May 12 08:40:54 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.50: +3 -18 lines
Diff to previous 1.50 (colored) to selected 1.23 (colored)

indent: condense code for handling spaced expressions

No functional change outside debug mode.

Revision 1.50 / (download) - annotate - [select for diffs], Thu May 11 09:28:53 2023 UTC (10 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.49: +2 -10 lines
Diff to previous 1.49 (colored) to selected 1.23 (colored)

indent: remove buggy code for swapping tokens

It is not the job of an indenter to swap tokens, even if it's only about
placing comments elsewhere.  The code that swapped the tokens was
complicated, buggy and impossible to understand.

In -br (brace right) mode, indent no longer moves a '{' from the
beginning of a line to the end of the previous line, as that was handled
by the token swapping code as well.  This change is unintended, but it
will be easier to re-add that now that the code is simpler.

Revision 1.49 / (download) - annotate - [select for diffs], Fri Apr 22 21:21:20 2022 UTC (23 months ago) by rillig
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Changes since 1.48: +2 -2 lines
Diff to previous 1.48 (colored) to selected 1.23 (colored)

indent: remove FreeBSD IDs

Most of the IDs were empty anyway.

Revision 1.48 / (download) - annotate - [select for diffs], Sun Nov 7 18:26:17 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.47: +3 -4 lines
Diff to previous 1.47 (colored) to selected 1.23 (colored)

indent: various cleanups

Make several comments more precise.

Rename process_end_of_file to process_eof to match the token name.

Change the order of assignments in analyze_comment to keep the com_ind
computations closer together.

In copy_comment_wrap, use pointer difference instead of pointer addition
to stay away from undefined behavior.

No functional change.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Oct 29 23:48:50 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.46: +4 -8 lines
Diff to previous 1.46 (colored) to selected 1.23 (colored)

indent: remove redundant comments, remove punctuation from debug log

The comment about 'null stmt' between braces probably meant 'no
statements between braces'.

The comments at psym_switch_expr only repeated what the code says or had
been outdated 29 years ago already since opt.case_indent does not have
to be 'one level down'.

In the debug log, the quotes around the symbol names are not necessary
after a ':'. The parse stack also does not need this much punctuation.

Reducing a do-while loop to nothing instead of a statement saves a few
CPU cycles. It works because after each lbrace, a stmt is pushed to the
parser stack. This stmt can only ever be reduced to a stmt_list but
never be removed.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Oct 29 23:03:53 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.45: +7 -8 lines
Diff to previous 1.45 (colored) to selected 1.23 (colored)

indent: remove redundant comments

The comments only repeated what the constants for the parser symbols
already express in their names. In the past, the names of these
constants were inconsistent and misleading; back then, it made sense to
make the comments express the actual meaning of the constants.

Revision 1.45 / (download) - annotate - [select for diffs], Fri Oct 29 22:52:50 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.44: +20 -16 lines
Diff to previous 1.44 (colored) to selected 1.23 (colored)

indent: reduce indentation in parse, extract decl_level

No functional change.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Oct 28 22:20:08 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.43: +10 -19 lines
Diff to previous 1.43 (colored) to selected 1.23 (colored)

indent: clean up indentation, comments, reduce

No functional change.

Revision 1.43 / (download) - annotate - [select for diffs], Thu Oct 28 21:51:43 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.42: +13 -14 lines
Diff to previous 1.42 (colored) to selected 1.23 (colored)

indent: clean up comments and function names

Having accurate names for the lexer symbols and the parser symbols makes
most of the comments redundant. Remove these.

Rename process_decl to process_type, to match the name of the
corresponding lexer symbol. In this phase, it's just a single type
token, not a whole declaration.

No functional change.

Revision 1.42 / (download) - annotate - [select for diffs], Tue Oct 26 19:36:30 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.41: +4 -4 lines
Diff to previous 1.41 (colored) to selected 1.23 (colored)

indent: run indent on its own source code

With manual corrections afterwards, to compensate for the remaining bugs
in indent.

Without the type definitions in .indent.pro, the opening braces of the
functions kw_name and lexi_alnum would not be at the beginning of the
line.

Revision 1.41 / (download) - annotate - [select for diffs], Mon Oct 25 20:32:38 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.40: +3 -4 lines
Diff to previous 1.40 (colored) to selected 1.23 (colored)

indent: do not output token in debug mode

When the parse stack is manipulated, the text of the token is not
relevant anymore and may even be confusing, for example when parsing
if_expr, the token may contain "}".

Revision 1.40 / (download) - annotate - [select for diffs], Mon Oct 25 19:56:03 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.39: +6 -6 lines
Diff to previous 1.39 (colored) to selected 1.23 (colored)

indent: rename search_brace to search_stmt

No functional change.

Revision 1.39 / (download) - annotate - [select for diffs], Mon Oct 25 00:54:37 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.38: +100 -58 lines
Diff to previous 1.38 (colored) to selected 1.23 (colored)

indent: split type token_type into 3 separate types

Previously, token_type was used for 3 different purposes:

1. symbol types from the lexer
2. symbol types on the parser stack
3. kind of control statement for 'if (expr)' and similar statements

Splitting the 41 constants into separate types makes it immediately
clear that the parser stack never handles comments, preprocessing lines,
newlines, form feeds, the inner structure of expressions.

Previously, the constant switch_expr was especially confusing since it
was used for 3 different purposes: when returned from lexi, it
represented the keyword 'switch', in the parser stack it represented
'switch (expr)', and it was used for a statement head as well.

The only overlap between the lexer symbols and the parser symbols are
'{' and '}', and the keywords 'do' and 'else'. To increase confusion,
the constants of the previous token_type were in apparently random
order and before 2021, they had cryptic, highly abbreviated names.

No functional change.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Oct 24 22:28:06 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.37: +5 -5 lines
Diff to previous 1.37 (colored) to selected 1.23 (colored)

indent: split kw_do_or_else into separate constants

It was unnecessarily confusing to have the token types keyword_do_else,
keyword_do and keyword_else at the same time, without any hint in what
they differed.

Some of the token types seem to be used by the lexer while others are
used in the parse stack. Maybe all token types can be partitioned into
these groups, which would suggest to use two different types for them.
And if not, it's still clearer to have this distinction in the names of
the constants.

No functional change.

Revision 1.37 / (download) - annotate - [select for diffs], Sun Oct 24 19:14:33 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored) to selected 1.23 (colored)

indent: run indent on its own source code

With manual corrections afterwards. Indent still does not get
extra_expr_indent correctly, it also indents global variables after
tagged declarations too deep.

No functional change.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Oct 20 05:26:46 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.35: +53 -52 lines
Diff to previous 1.35 (colored) to selected 1.23 (colored)

indent: rename parser stack variables

No functional change.

Revision 1.35 / (download) - annotate - [select for diffs], Fri Oct 8 23:47:41 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.34: +3 -3 lines
Diff to previous 1.34 (colored) to selected 1.23 (colored)

indent: clean up comments, parentheses, debug messages, boolean operator

No functional change.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Oct 8 21:48:33 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.33: +8 -10 lines
Diff to previous 1.33 (colored) to selected 1.23 (colored)

indent: clean up 'parse', add test for dangling else

No functional change.

Revision 1.33 / (download) - annotate - [select for diffs], Thu Oct 7 22:56:49 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.32: +6 -6 lines
Diff to previous 1.32 (colored) to selected 1.23 (colored)

indent: rename opt.btype_2 to brace_same_line

No functional change.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Oct 7 21:52:54 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.31: +4 -1 lines
Diff to previous 1.31 (colored) to selected 1.23 (colored)

indent: let the code breathe a bit by inserting empty lines

No functional change.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Oct 7 21:43:20 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.30: +7 -6 lines
Diff to previous 1.30 (colored) to selected 1.23 (colored)

indent: clean up comments

No functional change.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Oct 7 21:38:25 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.29: +10 -21 lines
Diff to previous 1.29 (colored) to selected 1.23 (colored)

indent: remove redundant comments

No functional change.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Oct 5 06:55:24 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.28: +6 -6 lines
Diff to previous 1.28 (colored) to selected 1.23 (colored)

indent: fix Clang-Tidy warnings, clean up bakcopy

The comment above and inside bakcopy had been outdated for at least the
last 28 years, the backup file is named "%s.BAK", not ".B%s".

Prevent buffer overflow for very long filenames (sprintf -> snprintf).

Revision 1.28 / (download) - annotate - [select for diffs], Tue Oct 5 06:24:06 2021 UTC (2 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.27: +3 -4 lines
Diff to previous 1.27 (colored) to selected 1.23 (colored)

indent: rename local char variable, reduce scope of counters

No functional change.

Revision 1.27 / (download) - annotate - [select for diffs], Sun Sep 26 19:37:11 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.26: +23 -22 lines
Diff to previous 1.26 (colored) to selected 1.23 (colored)

indent: let indent format its own code -- in supervised mode

After running indent on the code, I manually selected each change that
now looks better than before. The remaining changes are left for later.
All in all, indent did a pretty good job, except for syntactic additions
from after 1990, but that was to be expected. Examples for such
additions are GCC's __attribute__ and C99 designated initializers.

Indent has only few knobs to tune the indentation. The knob for the
continuation indentation applies to function declarations as well as to
expressions. The knob for indentation of local variable declarations
applies to struct members as well, even if these are members of a
top-level struct.

Several code comments crossed the right margin in column 78. Several
other code comments were correctly broken though. The cause for this
difference was not obvious.

No functional change.

Revision 1.26 / (download) - annotate - [select for diffs], Sat Sep 25 20:56:53 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.25: +24 -25 lines
Diff to previous 1.25 (colored) to selected 1.23 (colored)

indent: un-abbreviate a few parser_state members, clean up comments

No functional change.

Revision 1.25 / (download) - annotate - [select for diffs], Sat Sep 25 17:36:51 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored) to selected 1.23 (colored)

indent: convert remaining ibool to bool

No functional change intended.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Sep 25 17:11:23 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

indent: prepare for lint's strict bool mode

Before C99, C had no boolean type. Instead, indent used int for that,
just like many other programs. Even with C99, bool and int can be used
interchangeably in many situations, such as querying '!i' or '!ptr' or
'cond == 0'.

Since January 2021, lint provides the strict bool mode, which makes bool
a non-arithmetic type that is incompatible with any other type. Having
clearly separate types helps in understanding the code.

To migrate indent to strict bool mode, the first step is to apply all
changes that keep the resulting binary the same. Since sizeof(bool) is
1 and sizeof(int) is 4, the type ibool serves as an intermediate type.
For now it is defined to int, later it will become bool.

The current code compiles cleanly in C99 and C11 mode, as well as in
lint's strict bool mode. There are a few tricky places:

In args.c in 'struct pro', there are two types of options: boolean and
integer. Boolean options point to a bool variable, integer options
point to an int variable. To keep the current structure of the code,
the pointer has been changed to 'void *'. To ensure type safety, the
definition of the options is done via preprocessor magic, which in C11
mode ensures the correct pointer types. (Add CFLAGS+=-std=gnu11 at the
very bottom of the Makefile.)

In indent.c in process_preprocessing, a boolean variable is
post-incremented. That variable is only assigned to another variable,
and that variable is only used in a boolean context. To provoke a
different behavior between the '++' and the '= true', the source code
to be indented would need 1 << 32 preprocessing directives, which is
unlikely to happen in practice.

In io.c in dump_line, the variables ps.in_stmt and ps.in_decl only ever
get the values 0 and 1. For these values, the expressions 'a & ~b' and
'a && !b' are equivalent, in all versions of C. The compiler may
generate different code for them, though.

In io.c in parse_indent_comment, the assignment to inhibit_formatting
takes place in integer context. If the compiler is smart enough to
detect the possible values of on_off, it may generate the same code
before and after the change, but that is rather unlikely.

The second step of the migration will be to replace ibool with bool,
step by step, just in case there are any hidden gotchas in the code,
such as sizeof or pointer casts.

No change to the resulting binary.

Revision 1.23 / (download) - annotate - [selected], Sat Sep 25 13:38:32 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.22: +1 -5 lines
Diff to previous 1.22 (colored)

indent: remove ifdef for lint

NetBSD lint does not need them anymore, FreeBSD does not have lint.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Sep 25 08:04:13 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored) to selected 1.23 (colored)

indent: group global variables for token buffer

No functional change.

Revision 1.21 / (download) - annotate - [select for diffs], Sat Sep 25 07:59:52 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.20: +2 -2 lines
Diff to previous 1.20 (colored) to selected 1.23 (colored)

indent: inline macro 'token'

No functional change.

Revision 1.20 / (download) - annotate - [select for diffs], Sat Sep 25 07:55:24 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored) to selected 1.23 (colored)

indent: group global variables for code buffer

No functional change.

Revision 1.19 / (download) - annotate - [select for diffs], Sat Sep 25 07:46:41 2021 UTC (2 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.18: +6 -6 lines
Diff to previous 1.18 (colored) to selected 1.23 (colored)

indent: rename variables of type token_type

The previous variable name 'code' conflicts with the buffer of the same
name.

No functional change.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Mar 12 23:10:18 2021 UTC (3 years ago) by rillig
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.17: +3 -5 lines
Diff to previous 1.17 (colored) to selected 1.23 (colored)

indent: use consistent indentation for 'else'

Half of the code used -ce, the other half the opposite -nce.

No functional change.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Mar 9 19:14:39 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.16: +39 -39 lines
Diff to previous 1.16 (colored) to selected 1.23 (colored)

indent: make token names more precise

The previous 'casestmt' was wrong since a case label is not a statement
at all.

The previous 'swstmt' was overly short, and wrong as well, since it
represents only the 'switch (expr)' part, which is not a complete switch
statement.  Same for 'ifstmt', 'whilestmt', 'forstmt'.

The previous word 'head' was not precise enough since it didn't specify
exactly where the head ends and the body starts.  Especially for
handling the dangling else, this distinction is important.

No functional change.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Mar 9 18:21:01 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.15: +65 -103 lines
Diff to previous 1.15 (colored) to selected 1.23 (colored)

indent: extract reduce_stmt from reduce

This refactoring reduces the indentation of the code, as well as
removing any ambiguity as to which 'switch' statement a 'break' belongs,
as there are no more nested 'switch' statements.

No functional change.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Mar 9 16:48:28 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.14: +13 -19 lines
Diff to previous 1.14 (colored) to selected 1.23 (colored)

indent: manually indent comments

It's strange that indent's own code is not formatted by indent itself,
which would be a good demonstration of its capabilities.

In its current state, I don't trust indent to get even the tokenization
correct, therefore the only safe way is to format the code manually.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Mar 7 11:32:05 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.13: +6 -5 lines
Diff to previous 1.13 (colored) to selected 1.23 (colored)

indent: in debug mode, output detailed token information

The main ingredient for understanding how indent works is the tokenizer
and the 4 buffers in which the text is collected.

Inspecting this debug log for the test comment-line-end makes it obvious
why indent messes up code that contains '//' comments.  The cause is
that indent interprets '//' as an operator, just like '&&' or '||'.  The
sequence '/////' is interpreted as a single operator as well, by the
way.

Since '//' is interpreted as an ordinary operator, any words following
it are plain identifiers, usually several of them in a row, which is a
syntax error.  Depending on the context, the operator '//' is either a
unary operator (no space around) or a binary operator (space around).
This explains why the word 'line-end' is expanded to 'line - end'.

No functional change outside of debug mode.

Revision 1.13 / (download) - annotate - [select for diffs], Sun Mar 7 10:56:18 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored) to selected 1.23 (colored)

indent: for the token types, use enum instead of #define

This makes it easier to step through the code in a debugger.

No functional change.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Mar 7 10:42:48 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.11: +2 -3 lines
Diff to previous 1.11 (colored) to selected 1.23 (colored)

indent: use all headers in all files

This is a prerequisite for converting the token types to an enum instead
of a preprocessor define, since the return type of lexi will become
token_type.  Having the enum will make debugging easier.

There was a single naming collision, which forced the variable in
scan_profile to be renamed.  All other token names are used nowhere
else.

No change to the resulting binary.

Revision 1.11 / (download) - annotate - [select for diffs], Sat Mar 6 20:30:06 2021 UTC (3 years ago) by rillig
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored) to selected 1.23 (colored)

indent: fix space-tab alignment in indent's own code

These parts are not fixed automatically by indent since they are in box
comments.

No functional change.

Revision 1.7.98.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:05:43 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.7.98.1: +4 -4 lines
Diff to previous 1.7.98.1 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.23 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.10 / (download) - annotate - [select for diffs], Sat Oct 19 15:44:31 2019 UTC (4 years, 5 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, is-mlppp-base, is-mlppp
Changes since 1.9: +4 -4 lines
Diff to previous 1.9 (colored) to selected 1.23 (colored)

use stdarg, annotate function as __printflike and fix broken formats.

Revision 1.7.98.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:10:20 2019 UTC (4 years, 9 months ago) by christos
Branch: phil-wifi
Changes since 1.7: +236 -243 lines
Diff to previous 1.7 (colored) to selected 1.23 (colored)

Sync with HEAD

Revision 1.1.1.2 / (download) - annotate - [select for diffs] (vendor branch), Thu Apr 4 20:39:17 2019 UTC (4 years, 11 months ago) by kamil
Branch: FREEBSD, CSRG
CVS Tags: r340138
Changes since 1.1.1.1: +54 -34 lines
Diff to previous 1.1.1.1 (colored) to selected 1.23 (colored)

FreeBSD indent r340138

Revision 1.9 / (download) - annotate - [select for diffs], Thu Apr 4 15:22:13 2019 UTC (4 years, 11 months ago) by kamil
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9
Changes since 1.8: +236 -245 lines
Diff to previous 1.8 (colored) to selected 1.23 (colored)

Upgrade indent(1)

Merge all the changes from the recent FreeBSD HEAD snapshot
into our local copy.

FreeBSD actively maintains this program in their sources and their
repository contains over 100 commits with changes.

Keep the delta between the FreeBSD and NetBSD versions to absolute
minimum, mostly RCS Id and compatiblity fixes.

Major chages in this import:

 - Added an option -ldi<N> to control indentation of local variable names.
 - Added option -P for loading user-provided files as profiles
 - Added -tsn for setting tabsize
 - Rename -nsac/-sac ("space after cast") to -ncs/-cs
 - Added option -fbs Enables (disables) splitting the function declaration and opening brace across two lines.
 - Respect SIMPLE_BACKUP_SUFFIX environment variable in indent(1)
 - Group global option variables into an options structure
 - Use bsearch() for looking up type keywords.
 - Don't produce unneeded space character in function declarators
 - Don't unnecessarily add a blank before a comment ends.
 - Don't ignore newlines after comments that follow braces.

Merge the FreeBSD intend(1) tests with our ATF framework.
All tests pass.

Upgrade prepared by Manikishan Ghantasala.
Final polishing by myself.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Feb 3 03:19:29 2019 UTC (5 years, 1 month ago) by mrg
Branch: MAIN
Changes since 1.7: +4 -2 lines
Diff to previous 1.7 (colored) to selected 1.23 (colored)

- add or adjust /* FALLTHROUGH */ where appropriate
- add __unreachable() after functions that can return but won't in
  this case, and thus can't be marked __dead easily

Revision 1.7 / (download) - annotate - [select for diffs], Thu Aug 7 11:14:09 2003 UTC (20 years, 7 months ago) by agc
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2, mjf-devfs2-base, mjf-devfs2, matt-premerge-20091211, matt-nb8-mediatek-base, matt-nb8-mediatek, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, matt-armv6-nbase, matt-armv6-base, matt-armv6, localcount-20160914, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase, hpcarm-cleanup-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, cherry-xenmp-base, cherry-xenmp, chap-midi-nbase, chap-midi-base, chap-midi, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: phil-wifi
Changes since 1.6: +29 -2 lines
Diff to previous 1.6 (colored) to selected 1.23 (colored)

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.

Revision 1.6 / (download) - annotate - [select for diffs], Sun May 26 22:53:38 2002 UTC (21 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: fvdl_fs64_base
Changes since 1.5: +5 -5 lines
Diff to previous 1.5 (colored) to selected 1.23 (colored)

Remove #ifndef'd __STDC__ code. ANSIfy.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Oct 19 03:17:27 1997 UTC (26 years, 5 months ago) by lukem
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, wrstuden-devbsize, netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, netbsd-1-6, netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2, netbsd-1-5, netbsd-1-4-base, netbsd-1-4-RELEASE, netbsd-1-4-PATCH003, netbsd-1-4-PATCH002, netbsd-1-4-PATCH001, netbsd-1-4, netbsd-1-3-base, netbsd-1-3-RELEASE, netbsd-1-3-PATCH003-CANDIDATE2, netbsd-1-3-PATCH003-CANDIDATE1, netbsd-1-3-PATCH003-CANDIDATE0, netbsd-1-3-PATCH003, netbsd-1-3-PATCH002, netbsd-1-3-PATCH001, netbsd-1-3-BETA, netbsd-1-3, minoura-xpg4dl-base, minoura-xpg4dl, comdex-fall-1999-base, comdex-fall-1999
Changes since 1.4: +223 -221 lines
Diff to previous 1.4 (colored) to selected 1.23 (colored)

WARNSify, fix .Nm usage, deprecate register, use <err.h>, KNFify (with indent!;)

Revision 1.4 / (download) - annotate - [select for diffs], Sat Oct 18 16:04:53 1997 UTC (26 years, 5 months ago) by mrg
Branch: MAIN
Changes since 1.3: +9 -5 lines
Diff to previous 1.3 (colored) to selected 1.23 (colored)

merge lite-2.

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jan 9 20:20:18 1997 UTC (27 years, 2 months ago) by tls
Branch: MAIN
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) to selected 1.23 (colored)

RCS ID police

Revision 1.2 / (download) - annotate - [select for diffs], Sun Aug 1 18:14:30 1993 UTC (30 years, 8 months ago) by mycroft
Branch: MAIN
CVS Tags: netbsd-1-2-base, netbsd-1-2-RELEASE, netbsd-1-2-PATCH001, netbsd-1-2-BETA, netbsd-1-2, netbsd-1-1-base, netbsd-1-1-RELEASE, netbsd-1-1-PATCH001, netbsd-1-1, netbsd-1-0-base, netbsd-1-0-RELEASE, netbsd-1-0-PATCH1, netbsd-1-0-PATCH06, netbsd-1-0-PATCH05, netbsd-1-0-PATCH04, netbsd-1-0-PATCH03, netbsd-1-0-PATCH02, netbsd-1-0-PATCH0, netbsd-1-0
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored) to selected 1.23 (colored)

Add RCS identifiers.

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Sun Jun 6 21:52:37 1993 UTC (30 years, 9 months ago) by mrg
Branch: FREEBSD, CSRG
CVS Tags: lite-2
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored) to selected 1.23 (colored)

4.4BSD-Lite2

Revision 1.1 / (download) - annotate - [select for diffs], Fri Apr 9 12:59:16 1993 UTC (30 years, 11 months ago) by cgd
Branch: MAIN
CVS Tags: netbsd-alpha-1, netbsd-0-9-base, netbsd-0-9-RELEASE, netbsd-0-9-BETA, netbsd-0-9-ALPHA2, netbsd-0-9-ALPHA, netbsd-0-9, netbsd-0-8
Diff to selected 1.23 (colored)

added, from net/2 (patch 124).

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>