]> git.sur5r.net Git - cc65/blobdiff - src/ar65/library.c
Deduct temporary library path name from library path name.
[cc65] / src / ar65 / library.c
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) {