indent(1): add a new option, -ta, to treat all *_t identifiers as types
Submitted by: Hans Petter Selasky Discussed with: bde MFC after: 10 days
This commit is contained in:
parent
6953f51a9d
commit
c58c7416c7
@ -157,6 +157,7 @@ struct pro {
|
||||
{"sc", PRO_BOOL, true, ON, &star_comment_cont},
|
||||
{"sob", PRO_BOOL, false, ON, &swallow_optional_blanklines},
|
||||
{"st", PRO_SPECIAL, 0, STDIN, 0},
|
||||
{"ta", PRO_BOOL, false, ON, &auto_typedefs},
|
||||
{"troff", PRO_BOOL, false, ON, &troff},
|
||||
{"ut", PRO_BOOL, true, ON, &use_tabs},
|
||||
{"v", PRO_BOOL, false, ON, &verbose},
|
||||
|
@ -80,6 +80,7 @@
|
||||
.Op Fl sob | Fl nsob
|
||||
.Ek
|
||||
.Op Fl \&st
|
||||
.Op Fl \&ta
|
||||
.Op Fl troff
|
||||
.Op Fl ut | Fl nut
|
||||
.Op Fl v | Fl \&nv
|
||||
@ -377,6 +378,9 @@ Default:
|
||||
Causes
|
||||
.Nm
|
||||
to take its input from stdin and put its output to stdout.
|
||||
.It Fl ta
|
||||
Automatically add all identifiers ending in "_t" to the list
|
||||
of type keywords.
|
||||
.It Fl T Ns Ar typename
|
||||
Adds
|
||||
.Ar typename
|
||||
|
@ -204,6 +204,8 @@ int function_brace_split; /* split function declaration and
|
||||
* brace onto separate lines */
|
||||
int use_tabs; /* set true to use tabs for spacing,
|
||||
* false uses all spaces */
|
||||
int auto_typedefs; /* set true to recognize identifiers
|
||||
* ending in "_t" like typedefs */
|
||||
|
||||
/* -troff font state information */
|
||||
|
||||
|
@ -249,6 +249,17 @@ lexi(void)
|
||||
last_code = ident; /* Remember that this is the code we will
|
||||
* return */
|
||||
|
||||
if (auto_typedefs) {
|
||||
const char *q = s_token;
|
||||
/* Check if we have an "_t" in the end */
|
||||
if (q[0] && q[1] &&
|
||||
(strcmp(q + strlen(q) - 2, "_t") == 0)) {
|
||||
ps.its_a_keyword = true;
|
||||
ps.last_u_d = true;
|
||||
goto found_auto_typedef;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This loop will check if the token is a keyword.
|
||||
*/
|
||||
@ -285,6 +296,7 @@ lexi(void)
|
||||
/* FALLTHROUGH */
|
||||
|
||||
case 4: /* one of the declaration keywords */
|
||||
found_auto_typedef:
|
||||
if (ps.p_l_follow) {
|
||||
ps.cast_mask |= (1 << ps.p_l_follow) & ~ps.sizeof_mask;
|
||||
break; /* inside parens: cast, param list or sizeof */
|
||||
|
Loading…
Reference in New Issue
Block a user