]> git.sur5r.net Git - cc65/commitdiff
Deduct temporary library path name from library path name.
authorOliver Schmidt <ol.sc@web.de>
Mon, 10 Feb 2014 20:28:03 +0000 (21:28 +0100)
committerOliver Schmidt <ol.sc@web.de>
Mon, 10 Feb 2014 20:28:03 +0000 (21:28 +0100)
Actually there's no need to fiddle with any automatic temp file name generation as we can just modify the library path name to generate a perfect temporary library path name.

src/Makefile
src/ar65/library.c

index 5ac8ed7bd77deffd3897fb8ef31d0d8ab973c142..7bdd5206ab6fc018205932ef6ca1116b9a5b2a8c 100644 (file)
@@ -25,7 +25,7 @@ LD65_LIB = $(datadir)/lib
 LD65_OBJ = $(datadir)/lib
 LD65_CFG = $(datadir)/cfg
 
-CFLAGS += -MMD -MP -O -std=c89 -D_SVID_SOURCE -I common \
+CFLAGS += -MMD -MP -O -std=c89 -I common \
           -Wall -Wextra -Wno-char-subscripts $(USER_CFLAGS) \
           -DCA65_INC=$(CA65_INC) -DCC65_INC=$(CC65_INC) \
           -DLD65_LIB=$(LD65_LIB) -DLD65_OBJ=$(LD65_OBJ) -DLD65_CFG=$(LD65_CFG)
index 1f8a2425e946462180983f44392ff759f8e8635d..e68f23d3dac22b884102db279d35d703b4a81bee 100644 (file)
@@ -64,7 +64,7 @@
 
 /* Name of the library file */
 const char*             LibName = 0;
-static const char*      NewLibName = 0;
+static char*            NewLibName = 0;
 
 /* File descriptor for the library file */
 static FILE*            Lib = 0;
@@ -249,10 +249,9 @@ void LibOpen (const char* Name, int MustExist, int NeedTemp)
     if (NeedTemp) {
 
         /* Create the temporary library name */
-        NewLibName = tempnam (NULL, NULL);
-        if (NewLibName == 0) {
-            Error ("Cannot create temporary library file name: %s", strerror (errno));
-        }
+        NewLibName = xmalloc (strlen (Name) + strlen (".temp") + 1);
+        strcpy (NewLibName, Name);
+        strcat (NewLibName, ".temp");
 
         /* Create the temporary library */
         NewLib = fopen (NewLibName, "w+b");
@@ -386,7 +385,7 @@ void LibClose (void)
                    LibName, strerror (errno));
         }
 
-        /* Copy the new library to the new one */
+        /* Copy the temporary library to the new one */
         fseek (NewLib, 0, SEEK_SET);
         while ((Count = fread (Buf, 1, sizeof (Buf), NewLib)) != 0) {
             if (fwrite (Buf, 1, Count, Lib) != Count) {