in reply to nodebug.pl
A possible solution would be to keep track of how many #ifs and #endifs you have seen. Something like this:#include <stdio.h> #ifdef DEBUG some code here #ifdef SOLARIS solaris-specific code here #endif /* SOLARIS */ this is still debug code #endif DEBUG this is normal code
my $state = 0; my $debug = 0;; while(<>) { $debug=1,$state++,next if /^\s*#if.*DEBUG/; $state++ if /^\s*#if/; $state-- if /^\s*#endif/; $debug=0,next if $debug && $state==0; print if $debug==0; }
|
|---|