]> git.sur5r.net Git - cc65/commitdiff
Changed the order of directories that are searched for files. 4/head
authorGreg King <gregdk@users.sf.net>
Sat, 4 May 2013 03:25:06 +0000 (23:25 -0400)
committerGreg King <gregdk@users.sf.net>
Mon, 6 May 2013 12:11:01 +0000 (08:11 -0400)
src/ld65/filepath.c
src/ld65/filepath.h
src/ld65/main.c

index efed463eed1c4d4e6264247434016071fe09d892..d112c0733da14dfe7f09bddfffce70f0e5cc6c12 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2003-2010, Ullrich von Bassewitz                                      */
+/* (C) 2003-2013, Ullrich von Bassewitz                                      */
 /*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
@@ -48,6 +48,10 @@ SearchPath*      LibSearchPath;         /* Library path */
 SearchPath*      ObjSearchPath;         /* Object file path */
 SearchPath*      CfgSearchPath;         /* Config file path */
 
+SearchPath*      LibDefaultPath;        /* Default Library path */
+SearchPath*      ObjDefaultPath;        /* Default Object file path */
+SearchPath*      CfgDefaultPath;        /* Default Config file path */
+
 
 
 /*****************************************************************************/
@@ -64,31 +68,35 @@ void InitSearchPaths (void)
     ObjSearchPath = NewSearchPath ();
     CfgSearchPath = NewSearchPath ();
 
+    LibDefaultPath = NewSearchPath ();
+    ObjDefaultPath = NewSearchPath ();
+    CfgDefaultPath = NewSearchPath ();
+
     /* Always search all stuff in the current directory */
     AddSearchPath (LibSearchPath, "");
     AddSearchPath (ObjSearchPath, "");
     AddSearchPath (CfgSearchPath, "");
 
-    /* Add some compiled in search paths if defined at compile time */
+    /* Add specific paths from the environment. */
+    AddSearchPathFromEnv (LibDefaultPath, "LD65_LIB");
+    AddSearchPathFromEnv (ObjDefaultPath, "LD65_OBJ");
+    AddSearchPathFromEnv (CfgDefaultPath, "LD65_CFG");
+
+    /* Add paths relative to a main directory defined in an env. var. */
+    AddSubSearchPathFromEnv (LibDefaultPath, "CC65_HOME", "lib");
+    AddSubSearchPathFromEnv (ObjDefaultPath, "CC65_HOME", "obj");
+    AddSubSearchPathFromEnv (CfgDefaultPath, "CC65_HOME", "cfg");
+
+    /* Add some compiled-in search paths if defined at compile time. */
 #if defined(LD65_LIB)
-    AddSearchPath (LibSearchPath, STRINGIZE (LD65_LIB));
+    AddSearchPath (LibDefaultPath, STRINGIZE (LD65_LIB));
 #endif
 #if defined(LD65_OBJ)
-    AddSearchPath (ObjSearchPath, STRINGIZE (LD65_OBJ));
+    AddSearchPath (ObjDefaultPath, STRINGIZE (LD65_OBJ));
 #endif
 #if defined(LD65_CFG)
-    AddSearchPath (CfgSearchPath, STRINGIZE (LD65_CFG));
+    AddSearchPath (CfgDefaultPath, STRINGIZE (LD65_CFG));
 #endif
-
-    /* Add specific paths from the environment */
-    AddSearchPathFromEnv (LibSearchPath, "LD65_LIB");
-    AddSearchPathFromEnv (ObjSearchPath, "LD65_OBJ");
-    AddSearchPathFromEnv (CfgSearchPath, "LD65_CFG");
-
-    /* Add paths relative to a main directory defined in an env var */
-    AddSubSearchPathFromEnv (LibSearchPath, "CC65_HOME", "lib");
-    AddSubSearchPathFromEnv (ObjSearchPath, "CC65_HOME", "obj");
-    AddSubSearchPathFromEnv (CfgSearchPath, "CC65_HOME", "cfg");
 }
 
 
index 45d9a90c75489f88a8b3ca854850c7b6232d6d8c..4d267b1562ef21a6a898f8a1a57615fa21aa29ef 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2003-2010, Ullrich von Bassewitz                                      */
+/* (C) 2003-2013, Ullrich von Bassewitz                                      */
 /*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
@@ -53,6 +53,10 @@ extern SearchPath*      LibSearchPath;          /* Library path */
 extern SearchPath*      ObjSearchPath;          /* Object file path */
 extern SearchPath*      CfgSearchPath;          /* Config file path */
 
+extern SearchPath*      LibDefaultPath;         /* Default Library path */
+extern SearchPath*      ObjDefaultPath;         /* Default Object file path */
+extern SearchPath*      CfgDefaultPath;         /* Default Config file path */
+
 
 
 /*****************************************************************************/
index 6759705233234a81ecfffefd2fd4e8892767e875..0f7eaa07fcfc827e0cf83abe63b1cede2ccc2177 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                          */
 /*                                                                          */
 /*                                                                          */
-/* (C) 1998-2010, Ullrich von Bassewitz                                      */
+/* (C) 1998-2013, Ullrich von Bassewitz                                      */
 /*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
@@ -178,10 +178,16 @@ static void LinkFile (const char* Name, FILETYPE Type)
 
         case FILETYPE_LIB:
             PathName = SearchFile (LibSearchPath, Name);
+            if (PathName == 0) {
+                PathName = SearchFile (LibDefaultPath, Name);
+            }
             break;
 
         case FILETYPE_OBJ:
             PathName = SearchFile (ObjSearchPath, Name);
+            if (PathName == 0) {
+                PathName = SearchFile (ObjDefaultPath, Name);
+            }
             break;
 
         default:
@@ -295,13 +301,15 @@ static void OptConfig (const char* Opt attribute ((unused)), const char* Arg)
     }
     /* Search for the file */
     PathName = SearchFile (CfgSearchPath, Arg);
+    if (PathName == 0) {
+        PathName = SearchFile (CfgDefaultPath, Arg);
+    }
     if (PathName == 0) {
         Error ("Cannot find config file `%s'", Arg);
-    } else {
-        CfgSetName (PathName);
     }
 
     /* Read the config */
+    CfgSetName (PathName);
     CfgRead ();
 }
 
@@ -487,6 +495,9 @@ static void OptTarget (const char* Opt attribute ((unused)), const char* Arg)
 
     /* Search for the file */
     PathName = SearchFile (CfgSearchPath, SB_GetBuf (&FileName));
+    if (PathName == 0) {
+        PathName = SearchFile (CfgDefaultPath, SB_GetBuf (&FileName));
+    }
     if (PathName == 0) {
         Error ("Cannot find config file `%s'", SB_GetBuf (&FileName));
     }
@@ -715,4 +726,3 @@ int main (int argc, char* argv [])
 
 
 
-