svn commit: r334478 - in head/usr.bin/indent: . tests
Piotr Pawel Stefaniak
pstef at FreeBSD.org
Fri Jun 1 09:41:17 UTC 2018
Author: pstef
Date: Fri Jun 1 09:41:15 2018
New Revision: 334478
URL: https://svnweb.freebsd.org/changeset/base/334478
Log:
indent(1): don't indent typedef declarations as object declarations
Modified:
head/usr.bin/indent/indent.c
head/usr.bin/indent/indent_codes.h
head/usr.bin/indent/lexi.c
head/usr.bin/indent/tests/declarations.0
head/usr.bin/indent/tests/declarations.0.stdout
Modified: head/usr.bin/indent/indent.c
==============================================================================
--- head/usr.bin/indent/indent.c Fri Jun 1 09:32:42 2018 (r334477)
+++ head/usr.bin/indent/indent.c Fri Jun 1 09:41:15 2018 (r334478)
@@ -937,6 +937,7 @@ check_type:
}
goto copy_id; /* move the token into line */
+ case type_def:
case storage:
prefix_blankline_requested = 0;
goto copy_id;
@@ -955,7 +956,7 @@ check_type:
}
ps.in_or_st = true; /* this might be a structure or initialization
* declaration */
- ps.in_decl = ps.decl_on_line = true;
+ ps.in_decl = ps.decl_on_line = ps.last_token != type_def;
if ( /* !ps.in_or_st && */ ps.dec_nest <= 0)
ps.just_saw_decl = 2;
prefix_blankline_requested = 0;
Modified: head/usr.bin/indent/indent_codes.h
==============================================================================
--- head/usr.bin/indent/indent_codes.h Fri Jun 1 09:32:42 2018 (r334477)
+++ head/usr.bin/indent/indent_codes.h Fri Jun 1 09:41:15 2018 (r334478)
@@ -73,3 +73,5 @@
#define strpfx 33
#define storage 34
#define funcname 35
+#define type_def 36
+
Modified: head/usr.bin/indent/lexi.c
==============================================================================
--- head/usr.bin/indent/lexi.c Fri Jun 1 09:32:42 2018 (r334477)
+++ head/usr.bin/indent/lexi.c Fri Jun 1 09:41:15 2018 (r334478)
@@ -100,7 +100,7 @@ struct templ specials[] =
{"static", 10},
{"struct", 3},
{"switch", 7},
- {"typedef", 10},
+ {"typedef", 11},
{"union", 3},
{"unsigned", 4},
{"void", 4},
@@ -349,6 +349,9 @@ lexi(void)
case 10: /* storage class specifier */
return (storage);
+
+ case 11: /* typedef */
+ return (type_def);
default: /* all others are treated like any other
* identifier */
Modified: head/usr.bin/indent/tests/declarations.0
==============================================================================
--- head/usr.bin/indent/tests/declarations.0 Fri Jun 1 09:32:42 2018 (r334477)
+++ head/usr.bin/indent/tests/declarations.0 Fri Jun 1 09:41:15 2018 (r334478)
@@ -1,6 +1,8 @@
/* $FreeBSD$ */
/* See r303570 */
+typedef void (*voidptr) (int *);
+
static const struct
{
double x;
Modified: head/usr.bin/indent/tests/declarations.0.stdout
==============================================================================
--- head/usr.bin/indent/tests/declarations.0.stdout Fri Jun 1 09:32:42 2018 (r334477)
+++ head/usr.bin/indent/tests/declarations.0.stdout Fri Jun 1 09:41:15 2018 (r334478)
@@ -1,6 +1,8 @@
/* $FreeBSD$ */
/* See r303570 */
+typedef void (*voidptr) (int *);
+
static const struct {
double x;
double y, z;
More information about the svn-src-head
mailing list