Module Name: src Committed By: rillig Date: Mon May 22 23:01:27 UTC 2023
Modified Files: src/tests/usr.bin/indent: edge_cases.c lsym_do.c lsym_funcname.c Log Message: tests/indent: refine a few tests To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/indent/edge_cases.c cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/indent/lsym_do.c cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/indent/lsym_funcname.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/indent/edge_cases.c diff -u src/tests/usr.bin/indent/edge_cases.c:1.1 src/tests/usr.bin/indent/edge_cases.c:1.2 --- src/tests/usr.bin/indent/edge_cases.c:1.1 Sun Apr 24 10:36:37 2022 +++ src/tests/usr.bin/indent/edge_cases.c Mon May 22 23:01:27 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: edge_cases.c,v 1.1 2022/04/24 10:36:37 rillig Exp $ */ +/* $NetBSD: edge_cases.c,v 1.2 2023/05/22 23:01:27 rillig Exp $ */ /* * Tests for edge cases in the C programming language that indent does not @@ -7,7 +7,8 @@ /* * Digraphs are replacements for the characters '[', '{' and '#', which are - * missing in some exotic restricted source character sets. + * missing in some exotic restricted source character sets. They are not used + * in practice, therefore indent doesn't need to support them. * * See C99 6.4.6 */ @@ -28,12 +29,15 @@ void digraphs(void) { /* same as 'array[subscript]' */ -// $ XXX: The indentation is completely wrong. -// $ XXX: The space between 'array' and '<' doesn't belong there. +// $ Indent interprets everything before the second ':' as a label name, +// $ therefore the statement is indented that far to the left. +// $ +// $ The space between 'array' and '<' comes from the binary operator '<'. number = array <:subscript:>; /* same as '(int){ initializer }' */ -// $ XXX: The space between '%' and '>' doesn't belong there. +// $ The opening '<' and '%' are interpreted as unary operators. +// $ The closing '%' and '>' are interpreted as a binary and unary operator. number = (int)<%initializer % >; } //indent end Index: src/tests/usr.bin/indent/lsym_do.c diff -u src/tests/usr.bin/indent/lsym_do.c:1.6 src/tests/usr.bin/indent/lsym_do.c:1.7 --- src/tests/usr.bin/indent/lsym_do.c:1.6 Sat May 13 06:52:48 2023 +++ src/tests/usr.bin/indent/lsym_do.c Mon May 22 23:01:27 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_do.c,v 1.6 2023/05/13 06:52:48 rillig Exp $ */ +/* $NetBSD: lsym_do.c,v 1.7 2023/05/22 23:01:27 rillig Exp $ */ /* * Tests for the token lsym_do, which represents the keyword 'do' that starts @@ -86,3 +86,27 @@ variants(void) } while (0); } //indent end + +//indent run -bl +void +variants(void) +{ + do + stmt(); + while (0); + + do + { + stmt(); + } while (0); + + do /* comment */ + stmt(); + while (0); + + while (0) + do + { + } while (0); +} +//indent end Index: src/tests/usr.bin/indent/lsym_funcname.c diff -u src/tests/usr.bin/indent/lsym_funcname.c:1.4 src/tests/usr.bin/indent/lsym_funcname.c:1.5 --- src/tests/usr.bin/indent/lsym_funcname.c:1.4 Sun Apr 24 10:36:37 2022 +++ src/tests/usr.bin/indent/lsym_funcname.c Mon May 22 23:01:27 2023 @@ -1,10 +1,8 @@ -/* $NetBSD: lsym_funcname.c,v 1.4 2022/04/24 10:36:37 rillig Exp $ */ +/* $NetBSD: lsym_funcname.c,v 1.5 2023/05/22 23:01:27 rillig Exp $ */ /* - * Tests for the token lsym_funcname, which is an identifier that is followed - * by an opening parenthesis. - * - * TODO: Document how lsym_funcname is handled differently from lsym_word. + * Tests for the token lsym_funcname, which is the name of a function, but only + * in a function definition, not in a declaration or a call expression. * * See also: * lsym_word.c