Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jun 2018 09:41:15 +0000 (UTC)
From:      Piotr Pawel Stefaniak <pstef@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334478 - in head/usr.bin/indent: . tests
Message-ID:  <201806010941.w519fFYP003330@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806010941.w519fFYP003330>