mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
glsl: Handle file numbering.
This commit is contained in:
parent
2d2d638444
commit
a64ba93aab
5 changed files with 25 additions and 3 deletions
|
|
@ -38,6 +38,7 @@ sl_pp_context_init(struct sl_pp_context *context)
|
|||
context->if_value = 1;
|
||||
memset(context->error_msg, 0, sizeof(context->error_msg));
|
||||
context->line = 1;
|
||||
context->file = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ struct sl_pp_context {
|
|||
char error_msg[SL_PP_MAX_ERROR_MSG];
|
||||
|
||||
unsigned int line;
|
||||
unsigned int file;
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -134,7 +134,26 @@ sl_pp_process_line(struct sl_pp_context *context,
|
|||
context->line = line;
|
||||
}
|
||||
|
||||
/* TODO: Do something with the file number. */
|
||||
if (file_number != -1) {
|
||||
unsigned int file;
|
||||
|
||||
str = sl_pp_context_cstr(context, file_number);
|
||||
if (_parse_integer(str, &file)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (context->file != file) {
|
||||
struct sl_pp_token_info ti;
|
||||
|
||||
ti.token = SL_PP_FILE;
|
||||
ti.data.file = file;
|
||||
if (sl_pp_process_out(pstate, &ti)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
context->file = file;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,9 +138,8 @@ sl_pp_macro_expand(struct sl_pp_context *context,
|
|||
(*pi)++;
|
||||
return 0;
|
||||
}
|
||||
/* TODO: Having the following built-ins hardcoded is a bit lame. */
|
||||
if (!strcmp(macro_str, "__FILE__")) {
|
||||
if (!mute && _out_number(context, state, 0)) {
|
||||
if (!mute && _out_number(context, state, context->file)) {
|
||||
return -1;
|
||||
}
|
||||
(*pi)++;
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ enum sl_pp_token {
|
|||
SL_PP_EXTENSION_DISABLE,
|
||||
|
||||
SL_PP_LINE,
|
||||
SL_PP_FILE,
|
||||
|
||||
SL_PP_EOF
|
||||
};
|
||||
|
|
@ -108,6 +109,7 @@ union sl_pp_token_data {
|
|||
int pragma;
|
||||
int extension;
|
||||
unsigned int line;
|
||||
unsigned int file;
|
||||
};
|
||||
|
||||
struct sl_pp_token_info {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue