From owner-svn-src-stable-8@FreeBSD.ORG Mon Apr 12 21:04:36 2010 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A6F6106566C; Mon, 12 Apr 2010 21:04:36 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6EC2F8FC1B; Mon, 12 Apr 2010 21:04:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CL4aBK039925; Mon, 12 Apr 2010 21:04:36 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CL4a2g039920; Mon, 12 Apr 2010 21:04:36 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201004122104.o3CL4a2g039920@svn.freebsd.org> From: Andriy Gapon Date: Mon, 12 Apr 2010 21:04:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206504 - stable/8/usr.bin/indent X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 21:04:36 -0000 Author: avg Date: Mon Apr 12 21:04:35 2010 New Revision: 206504 URL: http://svn.freebsd.org/changeset/base/206504 Log: MFC r205989: indent(1): new option, -ta, to treat all *_t identifiers as types Modified: stable/8/usr.bin/indent/args.c stable/8/usr.bin/indent/indent.1 stable/8/usr.bin/indent/indent_globs.h stable/8/usr.bin/indent/lexi.c Directory Properties: stable/8/usr.bin/indent/ (props changed) Modified: stable/8/usr.bin/indent/args.c ============================================================================== --- stable/8/usr.bin/indent/args.c Mon Apr 12 20:54:56 2010 (r206503) +++ stable/8/usr.bin/indent/args.c Mon Apr 12 21:04:35 2010 (r206504) @@ -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}, Modified: stable/8/usr.bin/indent/indent.1 ============================================================================== --- stable/8/usr.bin/indent/indent.1 Mon Apr 12 20:54:56 2010 (r206503) +++ stable/8/usr.bin/indent/indent.1 Mon Apr 12 21:04:35 2010 (r206504) @@ -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 Modified: stable/8/usr.bin/indent/indent_globs.h ============================================================================== --- stable/8/usr.bin/indent/indent_globs.h Mon Apr 12 20:54:56 2010 (r206503) +++ stable/8/usr.bin/indent/indent_globs.h Mon Apr 12 21:04:35 2010 (r206504) @@ -204,6 +204,8 @@ int function_brace_split; /* split f * 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 */ Modified: stable/8/usr.bin/indent/lexi.c ============================================================================== --- stable/8/usr.bin/indent/lexi.c Mon Apr 12 20:54:56 2010 (r206503) +++ stable/8/usr.bin/indent/lexi.c Mon Apr 12 21:04:35 2010 (r206504) @@ -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 */