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