expose current_include_dirs
authorMatthias Kramm <kramm@quiss.org>
Sat, 7 Feb 2009 22:42:38 +0000 (23:42 +0100)
committerMatthias Kramm <kramm@quiss.org>
Sat, 7 Feb 2009 22:42:38 +0000 (23:42 +0100)
lib/as3/files.c
lib/as3/files.h

index 580c9db..fc4ab6d 100644 (file)
@@ -49,11 +49,6 @@ static void dbg(const char*format, ...)
 }
 
 
-typedef struct _include_dir {
-    char*path;
-    struct _include_dir*next;
-} include_dir_t;
-
 int current_line=1;
 int current_column=0;
 char* current_filename=0;
@@ -134,7 +129,7 @@ char is_absolute(char*filename)
     return 0;
 }
 
-char*find_file(char*filename)
+char*find_file(const char*filename)
 {
     include_dir_t*i = current_include_dirs;
     FILE*fi = 0;
@@ -154,6 +149,8 @@ char*find_file(char*filename)
             if(fi) {
                 fclose(fi);
                 return p;
+            } else {
+                free(p);
             }
             i = i->next;
         }
index 5d6420b..d73c0f3 100644 (file)
 #ifndef __avm2_files_h__
 #define __avm2_files_h__
 
+typedef struct _include_dir {
+    char*path;
+    struct _include_dir*next;
+} include_dir_t;
+
 extern int current_line;
 extern int current_column;
 extern char* current_filename;
 extern char* current_filename_short;
+extern include_dir_t* current_include_dirs;
 
 void add_include_dir(char*dir);
 
-char*find_file(char*filename);
+char*find_file(const char*filename);
 void enter_file(const char*name, const char*filename, void*state);
 FILE* enter_file2(const char*name, const char*filename, void*state);
 void* leave_file();