diff --git a/src/preprocessor.h b/src/preprocessor.h index 3eaed8a55463fb145b705bf2dc281fc715a792af..2249f41606ce09b935ab8b33c4ce69680a86ee0c 100644 --- a/src/preprocessor.h +++ b/src/preprocessor.h @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: preprocessor.h,v 1.64 2004/04/22 15:43:51 grubba Exp $ +|| $Id: preprocessor.h,v 1.65 2004/06/13 18:00:15 grubba Exp $ */ /* @@ -1562,24 +1562,26 @@ static ptrdiff_t lower_cpp(struct cpp *this, string_builder_putchar(&tmp, 0); tmp.s->len--; - - switch(tmp.s->size_shift) { - case 0: - calc_0(this, (p_wchar0 *)tmp.s->str, tmp.s->len, 0); - break; - case 1: - calc_1(this, (p_wchar1 *)tmp.s->str, tmp.s->len, 0); - break; - case 2: - calc_2(this, (p_wchar2 *)tmp.s->str, tmp.s->len, 0); - break; - default: - Pike_fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift); - break; + + if (!(nflags & CPP_REALLY_NO_OUTPUT)) { + switch(tmp.s->size_shift) { + case 0: + calc_0(this, (p_wchar0 *)tmp.s->str, tmp.s->len, 0); + break; + case 1: + calc_1(this, (p_wchar1 *)tmp.s->str, tmp.s->len, 0); + break; + case 2: + calc_2(this, (p_wchar2 *)tmp.s->str, tmp.s->len, 0); + break; + default: + Pike_fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift); + break; + } + if(SAFE_IS_ZERO(Pike_sp-1)) nflags|=CPP_NO_OUTPUT; + pop_stack(); } free_string_builder(&tmp); - if(SAFE_IS_ZERO(Pike_sp-1)) nflags|=CPP_NO_OUTPUT; - pop_stack(); pos += lower_cpp(this, data+pos, len-pos, nflags, auto_convert, charset); break;