opt_bacc.c revision 1.3
11.3Srillig/* $NetBSD: opt_bacc.c,v 1.3 2021/10/18 07:11:31 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.3Srillig#indent run-equals-input -nbacc 431.1Srillig 441.1Srillig 451.2Srillig/* Example code containing blank lines. */ 461.2Srillig#indent input 471.1Srilligint space_a; 481.1Srillig 491.2Srillig#if 0 501.2Srillig 511.2Srilligint space_b; 521.2Srillig 531.1Srillig#endif 541.1Srillig 551.1Srilligint space_c; 561.1Srillig#indent end 571.1Srillig 581.2Srillig#indent run -bacc 591.2Srilligint space_a; 601.2Srillig/* $ FIXME: expecting a blank line here */ 611.1Srillig#if 0 621.2Srillig 631.2Srillig/* $ FIXME: expecting NO blank line here */ 641.2Srilligint space_b; 651.1Srillig#endif 661.1Srillig 671.2Srilligint space_c; 681.2Srillig#indent end 691.1Srillig 701.2Srillig/* The option '-nbacc' does not remove anything. */ 711.3Srillig#indent run-equals-input -nbacc 721.1Srillig 731.2Srillig/* 741.2Srillig * Preprocessing directives can also occur in function bodies. 751.2Srillig */ 761.2Srillig#indent input 771.1Srilligconst char * 781.1Srilligos_name(void) 791.1Srillig{ 801.1Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 811.1Srillig return "BSD"; 821.1Srillig#else 831.1Srillig return "unknown"; 841.1Srillig#endif 851.1Srillig} 861.1Srillig#indent end 871.1Srillig 881.2Srillig#indent run -bacc 891.2Srillig/* $ XXX: The '*' should not be set apart from the rest of the return type. */ 901.2Srilligconst char * 911.2Srilligos_name(void) 921.2Srillig{ 931.2Srillig/* $ FIXME: expecting a blank line here. */ 941.2Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 951.2Srillig/* $ FIXME: expecting NO blank line here. */ 961.1Srillig 971.2Srillig return "BSD"; 981.2Srillig#else 991.2Srillig/* $ FIXME: expecting NO blank line here. */ 1001.1Srillig 1011.2Srillig return "unknown"; 1021.1Srillig#endif 1031.2Srillig/* $ FIXME: expecting a blank line here. */ 1041.2Srillig} 1051.2Srillig#indent end 1061.1Srillig 1071.2Srillig#indent run -nbacc 1081.1Srilligconst char * 1091.1Srilligos_name(void) 1101.1Srillig{ 1111.1Srillig#if defined(__NetBSD__) || defined(__FreeBSD__) 1121.1Srillig return "BSD"; 1131.1Srillig#else 1141.1Srillig return "unknown"; 1151.1Srillig#endif 1161.1Srillig} 1171.1Srillig#indent end 118