From 3c79e6b042c76a2e86ac8f446a971e997f97c010 Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 31 Aug 2009 20:05:45 +0000 Subject: [PATCH] more generic fix for flex version --- panda/src/egg/lexer.lxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/panda/src/egg/lexer.lxx b/panda/src/egg/lexer.lxx index 775d7fd860..611707a995 100644 --- a/panda/src/egg/lexer.lxx +++ b/panda/src/egg/lexer.lxx @@ -162,7 +162,7 @@ eggyywarning(ostringstream &strm) { // Now define a function to take input from an istream instead of a // stdio FILE pointer. This is flex-specific. static void -input_chars(char *buffer, yy_size_t &result, int max_size) { +input_chars(char *buffer, int &result, int max_size) { nassertv(inp != NULL); if (*inp) { inp->read(buffer, max_size); @@ -193,7 +193,14 @@ input_chars(char *buffer, yy_size_t &result, int max_size) { Thread::consider_yield(); } #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