opt_bacc.c revision 1.2
11.2Srillig/* $NetBSD: opt_bacc.c,v 1.2 2021/10/16 06:02:18 rillig Exp $ */ 21.1Srillig/* $FreeBSD$ */ 31.1Srillig 41.1Srillig/* 51.2Srillig * Test the options '-bacc' and '-nbacc'. 61.2Srillig * 71.2Srillig * The option '-bacc' forces a blank line around every conditional compilation 81.2Srillig * block. For example, in front of every #ifdef and after every #endif. 91.2Srillig * Other blank lines surrounding such blocks are swallowed. 101.1Srillig * 111.2Srillig * The option '-nbacc' TODO. 121.1Srillig */ 131.1Srillig 141.2Srillig 151.2Srillig/* Example code without surrounding blank lines. */ 161.2Srillig#indent input 171.1Srilligint a; 181.2Srillig#if 0 191.1Srilligint b; 201.2Srillig#endif 211.1Srilligint c; 221.1Srillig#indent end 231.1Srillig 241.1Srillig/* 251.1Srillig * XXX: As of 2021-10-05, the option -bacc has no effect on declarations since 261.1Srillig * process_decl resets prefix_blankline_requested unconditionally. 271.1Srillig */ 281.2Srillig#indent run -bacc 291.2Srilligint a; 301.2Srillig/* $ FIXME: expecting a blank line here */ 311.2Srillig#if 0 321.2Srilligint b; 331.2Srillig#endif 341.2Srillig/* $ FIXME: expecting a blank line here */ 351.2Srilligint c; 361.2Srillig#indent end 371.1Srillig 381.2Srillig/* 391.2Srillig * With '-nbacc' the code is unchanged since there are no blank lines to 401.2Srillig * remove. 411.2Srillig */ 421.2Srillig#indent run -nbacc 431.1Srilligint a; 441.2Srillig#if 0 451.1Srilligint b; 461.2Srillig#endif 471.1Srilligint c; 481.2Srillig#indent end 491.1Srillig 501.1Srillig 511.2Srillig/* Example code containing blank lines. */ 521.2Srillig#indent input 531.1Srilligint space_a; 541.1Srillig 551.2Srillig#if 0 561.2Srillig 571.2Srilligint space_b; 581.2Srillig 591.1Srillig#endif 601.1Srillig 611.1Srilligint space_c; 621.1Srillig#indent end 631.1Srillig 641.2Srillig#indent run -bacc 651.2Srilligint space_a; 661.2Srillig/* $ FIXME: expecting a blank line here */ 671.1Srillig#if 0 681.2Srillig 691.2Srillig/* $ FIXME: expecting NO blank line here */ 701.2Srilligint space_b; 711.1Srillig#endif 721.1Srillig 731.2Srilligint space_c; 741.2Srillig#indent end 751.1Srillig 761.2Srillig/* The option '-nbacc' does not remove anything. */ 771.2Srillig#indent run -nbacc 781.1Srilligint space_a; 791.1Srillig 801.1Srillig#if 0 811.1Srillig 821.1Srilligint space_b; 831.1Srillig 841.1Srillig#endif 851.1Srillig 861.1Srilligint space_c; 871.2Srillig#indent end 881.1Srillig 891.2Srillig/* 901.2Srillig * Preprocessing directives can also occur in function bodies. 911.2Srillig */ 921.2Srillig#indent input 931.1Srilligconst char * 941.1Srilligos_name(void) 951.1Srillig{ 961.1Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 971.1Srillig return "BSD"; 981.1Srillig#else 991.1Srillig return "unknown"; 1001.1Srillig#endif 1011.1Srillig} 1021.1Srillig#indent end 1031.1Srillig 1041.2Srillig#indent run -bacc 1051.2Srillig/* $ XXX: The '*' should not be set apart from the rest of the return type. */ 1061.2Srilligconst char * 1071.2Srilligos_name(void) 1081.2Srillig{ 1091.2Srillig/* $ FIXME: expecting a blank line here. */ 1101.2Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 1111.2Srillig/* $ FIXME: expecting NO blank line here. */ 1121.1Srillig 1131.2Srillig return "BSD"; 1141.2Srillig#else 1151.2Srillig/* $ FIXME: expecting NO blank line here. */ 1161.1Srillig 1171.2Srillig return "unknown"; 1181.1Srillig#endif 1191.2Srillig/* $ FIXME: expecting a blank line here. */ 1201.2Srillig} 1211.2Srillig#indent end 1221.1Srillig 1231.2Srillig#indent run -nbacc 1241.1Srilligconst char * 1251.1Srilligos_name(void) 1261.1Srillig{ 1271.1Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 1281.1Srillig return "BSD"; 1291.1Srillig#else 1301.1Srillig return "unknown"; 1311.1Srillig#endif 1321.1Srillig} 1331.1Srillig#indent end 134