int current_line=1;
int current_column=0;
char* current_filename=0;
+char* current_filename_short=0;
include_dir_t* current_include_dirs=0;
#define MAX_INCLUDE_DEPTH 16
int line_stack[MAX_INCLUDE_DEPTH];
int column_stack[MAX_INCLUDE_DEPTH];
char* filename_stack[MAX_INCLUDE_DEPTH];
+char* shortfilename_stack[MAX_INCLUDE_DEPTH];
include_dir_t* includedir_stack[MAX_INCLUDE_DEPTH];
int include_stack_ptr = 0;
include_stack[include_stack_ptr] = state;
line_stack[include_stack_ptr] = current_line;
column_stack[include_stack_ptr] = current_column;
+ shortfilename_stack[include_stack_ptr] = current_filename_short = strdup(filename);
filename_stack[include_stack_ptr] = current_filename;
includedir_stack[include_stack_ptr] = current_include_dirs;
add_include_dir(get_path(fullfilename));
} else {
current_column = column_stack[include_stack_ptr];
current_line = line_stack[include_stack_ptr];
- free(current_filename);current_filename=0;
- current_filename = filename_stack[include_stack_ptr];
+ free(current_filename);current_filename = filename_stack[include_stack_ptr];
+ free(current_filename_short);current_filename_short = shortfilename_stack[include_stack_ptr];
current_include_dirs = includedir_stack[include_stack_ptr];
return include_stack[include_stack_ptr];
}