Home | History | Annotate | Line # | Download | only in indent
      1 /* $NetBSD: opt_psl.c,v 1.8 2022/04/24 09:04:12 rillig Exp $ */
      2 
      3 /*
      4  * Tests for the options '-psl' and '-npsl' ("procedure definition in separate
      5  * line").
      6  *
      7  * The option '-psl' starts a new line for the function name in a function
      8  * definition.
      9  *
     10  * The option '-npsl' puts the function name in the same line as its return
     11  * type.
     12  */
     13 
     14 /* Single-line function declarations are not affected by these options. */
     15 //indent input
     16 void function_declaration(void);
     17 //indent end
     18 
     19 //indent run -psl
     20 void		function_declaration(void);
     21 //indent end
     22 
     23 //indent run-equals-prev-output -npsl
     24 
     25 
     26 /*
     27  * Multi-line function declarations are affected by these options since indent
     28  * wrongly assumes they were function definitions, not declarations.
     29  *
     30  * Before 1990, when C90 added function prototypes, this case was rare since
     31  * function definitions consisted only of the return type (defaulting to
     32  * 'int'), the function name and the list of parameter names, without
     33  * parameter types or type qualifiers like 'const'.
     34  */
     35 //indent input
     36 void function_declaration(
     37 void);
     38 //indent end
     39 
     40 //indent run -psl
     41 void
     42 function_declaration(
     43 		     void);
     44 //indent end
     45 
     46 /*
     47  * In a function definition (which indent wrongly assumes here), in contrast
     48  * to a declaration, the function name is not indented to column 17.
     49  */
     50 //indent run -npsl
     51 void function_declaration(
     52 			  void);
     53 //indent end
     54 
     55 
     56 /*
     57  * In a function definition, in contrast to a declaration, the function name
     58  * is not indented to column 17 since the other function definitions are too
     59  * far away.
     60  */
     61 //indent input
     62 void function_definition(void) {}
     63 //indent end
     64 
     65 //indent run -psl
     66 void
     67 function_definition(void)
     68 {
     69 }
     70 //indent end
     71 
     72 //indent run -npsl
     73 void function_definition(void)
     74 {
     75 }
     76 //indent end
     77