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