ps_ind_level.c revision 1.7
11.7Srillig/* $NetBSD: ps_ind_level.c,v 1.7 2023/05/15 14:55:47 rillig Exp $ */
21.1Srillig
31.1Srillig/*
41.1Srillig * The indentation of the very first line of a file determines the
51.1Srillig * indentation of the remaining code. Even if later code has a smaller
61.1Srillig * indentation, it is nevertheless indented to the level given by the first
71.1Srillig * line of code.
81.1Srillig *
91.1Srillig * In this particular test, the indentation is set to 5 and the tabulator
101.1Srillig * width is set to 8, to demonstrate an off-by-one error in
111.1Srillig * main_prepare_parsing that has been fixed in indent.c 1.107 from 2021-10-05.
121.1Srillig *
131.1Srillig * The declaration in the first line is indented by 3 tabs, amounting to 24
141.1Srillig * spaces. The initial indentation of the code is intended to be rounded down,
151.1Srillig * to 4 levels of indentation, amounting to 20 spaces.
161.1Srillig */
171.6Srillig//indent input
181.3Srillig			int indented_by_24;
191.1Srillig
201.1Srilligvoid function_in_column_1(void){}
211.6Srillig//indent end
221.1Srillig
231.1Srillig/* 5 spaces indentation, 8 spaces per tabulator */
241.6Srillig//indent run -i5 -ts8
251.3Srillig		    int		    indented_by_24;
261.1Srillig
271.7Srillig		    void	    function_in_column_1(void) {
281.1Srillig		    }
291.6Srillig//indent end
301.1Srillig
311.1Srillig
321.1Srillig/*
331.1Srillig * Labels are always indented 2 levels left of the code. The first line starts
341.1Srillig * at indentation level 3, the code in the function is therefore at level 4,
351.1Srillig * and the label is at level 2, sticking out of the code.
361.1Srillig */
371.6Srillig//indent input
381.1Srillig			int indent_by_24;
391.1Srillig
401.1Srilligvoid function(void) {
411.1Srilliglabel:;
421.1Srillig}
431.6Srillig//indent end
441.1Srillig
451.6Srillig//indent run -i8 -ts8 -di0
461.1Srillig			int indent_by_24;
471.1Srillig
481.7Srillig			void function(void) {
491.1Srillig		label:		;
501.1Srillig			}
511.6Srillig//indent end
521.2Srillig
531.2Srillig
541.2Srillig/* Test the indentation computation in code_add_decl_indent. */
551.6Srillig//indent input
561.2Srilligint level_0;
571.2Srillig{
581.2Srilligint level_1;
591.2Srillig{
601.2Srilligint level_2;
611.2Srillig{
621.2Srilligint level_3;
631.2Srillig{
641.2Srilligint level_4;
651.2Srillig}
661.2Srillig}
671.2Srillig}
681.2Srillig}
691.6Srillig//indent end
701.2Srillig
711.2Srillig/*
721.2Srillig * The variables are indented by 16, 21, 26, 31, 36.
731.2Srillig * The variables end up in columns 17, 22, 27, 32, 37.
741.2Srillig */
751.6Srillig//indent run -i5 -ts8 -di16 -ldi16
761.2Srilligint		level_0;
771.2Srillig{
781.2Srillig     int	     level_1;
791.2Srillig     {
801.2Srillig	  int		  level_2;
811.2Srillig	  {
821.2Srillig	       int	       level_3;
831.2Srillig	       {
841.2Srillig		    int		    level_4;
851.2Srillig	       }
861.2Srillig	  }
871.2Srillig     }
881.2Srillig}
891.6Srillig//indent end
901.2Srillig
911.2Srillig/*
921.2Srillig * The variables are indented by 7, 12, 17, 22, 27.
931.2Srillig * The variables end up in columns 8, 13, 18, 23, 28.
941.2Srillig */
951.6Srillig//indent run -i5 -ts8 -di7 -ldi7
961.2Srilligint    level_0;
971.2Srillig{
981.2Srillig     int    level_1;
991.2Srillig     {
1001.2Srillig	  int	 level_2;
1011.2Srillig	  {
1021.2Srillig	       int    level_3;
1031.2Srillig	       {
1041.2Srillig		    int	   level_4;
1051.2Srillig	       }
1061.2Srillig	  }
1071.2Srillig     }
1081.2Srillig}
1091.6Srillig//indent end
110