From: Michal Krol Date: Fri, 4 Sep 2009 09:39:30 +0000 (+0200) Subject: glsl: Output endof token after processing a directive. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ddd8ae7fbc643892b08ddf66c67bca36d42b53a6;p=mesa.git glsl: Output endof token after processing a directive. Some directives may output tokens as a result of their operation. --- diff --git a/src/glsl/pp/sl_pp_process.c b/src/glsl/pp/sl_pp_process.c index be01f9139c1..18289790d19 100644 --- a/src/glsl/pp/sl_pp_process.c +++ b/src/glsl/pp/sl_pp_process.c @@ -87,6 +87,7 @@ sl_pp_process(struct sl_pp_context *context, int found_eol = 0; unsigned int first; unsigned int last; + struct sl_pp_token_info endof; /* Directive name. */ name = sl_pp_context_cstr(context, input[i].data.identifier); @@ -99,17 +100,13 @@ sl_pp_process(struct sl_pp_context *context, switch (input[i].token) { case SL_PP_NEWLINE: /* Preserve newline just for the sake of line numbering. */ - if (sl_pp_process_out(&state, &input[i])) { - return -1; - } + endof = input[i]; i++; found_eol = 1; break; case SL_PP_EOF: - if (sl_pp_process_out(&state, &input[i])) { - return -1; - } + endof = input[i]; i++; found_eof = 1; found_eol = 1; @@ -170,6 +167,10 @@ sl_pp_process(struct sl_pp_context *context, /* XXX: Ignore. */ } } + + if (sl_pp_process_out(&state, &endof)) { + return -1; + } } break;