{
        fprintf(stderr,
                "%s:%d:warning: ignoring unsupported character '%c'\n",
-               current_file->name, yylineno, chr);
+               cur_filename, yylineno, chr);
 }
 %}
 
 
        if (prev_token != T_EOL && prev_token != T_HELPTEXT)
                fprintf(stderr, "%s:%d:warning: no new line at end of file\n",
-                       current_file->name, yylineno);
+                       cur_filename, yylineno);
 
        if (current_file) {
                zconf_endfile();
 
 #include <stdlib.h>
 #include <string.h>
 
+#include "internal.h"
 #include "list.h"
 #include "lkc.h"
 #include "preprocess.h"
 {
        va_list ap;
 
-       fprintf(stderr, "%s:%d: ", current_file->name, yylineno);
+       fprintf(stderr, "%s:%d: ", cur_filename, yylineno);
        va_start(ap, format);
        vfprintf(stderr, format, ap);
        va_end(ap);
 
 static char *do_filename(int argc, char *argv[])
 {
-       return xstrdup(current_file->name);
+       return xstrdup(cur_filename);
 }
 
 static char *do_info(int argc, char *argv[])
 static char *do_warning_if(int argc, char *argv[])
 {
        if (!strcmp(argv[0], "y"))
-               fprintf(stderr, "%s:%d: %s\n",
-                       current_file->name, yylineno, argv[1]);
+               fprintf(stderr, "%s:%d: %s\n", cur_filename, yylineno, argv[1]);
 
        return xstrdup("");
 }