diff --git a/pandatool/src/vrml/vrmlLexer.lxx b/pandatool/src/vrml/vrmlLexer.lxx index e51459198b..fead9385b6 100644 --- a/pandatool/src/vrml/vrmlLexer.lxx +++ b/pandatool/src/vrml/vrmlLexer.lxx @@ -154,7 +154,14 @@ input_chars(char *buffer, int &result, int max_size) { } } #undef YY_INPUT -#define YY_INPUT(buffer, result, max_size) input_chars(buffer, result, max_size) + +// Define this macro carefully, since different flex versions call it +// with a different type for result. +#define YY_INPUT(buffer, result, max_size) { \ + int int_result; \ + input_chars((buffer), int_result, (max_size)); \ + (result) = int_result; \ +} int extract_int() { return strtol(yytext, NULL, 0); diff --git a/pandatool/src/xfile/xLexer.lxx b/pandatool/src/xfile/xLexer.lxx index 798fd2601f..b8658daa56 100644 --- a/pandatool/src/xfile/xLexer.lxx +++ b/pandatool/src/xfile/xLexer.lxx @@ -147,7 +147,14 @@ input_chars(char *buffer, int &result, int max_size) { } } #undef YY_INPUT -#define YY_INPUT(buffer, result, max_size) input_chars(buffer, result, max_size) + +// Define this macro carefully, since different flex versions call it +// with a different type for result. +#define YY_INPUT(buffer, result, max_size) { \ + int int_result; \ + input_chars((buffer), int_result, (max_size)); \ + (result) = int_result; \ +} // read_char reads and returns a single character, incrementing the // supplied line and column numbers as appropriate. A convenience