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