*/}}
Browse Source

Make sure on linux file actually backs up...

YimingWu 2 months ago
parent
commit
7940c0cadf
2 changed files with 14 additions and 11 deletions
  1. 10 6
      la_data.c
  2. 4 5
      la_util.c

+ 10 - 6
la_data.c

@@ -3452,8 +3452,12 @@ int laPackUDF(laUDF *udf, int UseInstanceList, int DoBackup){
     char FilePath[1024]={0};
 
     if(DoBackup){
-        char BackupPath[1024]; sprintf(BackupPath,"%s~",udf->FileName->Ptr);
-        laCopyFile(BackupPath,udf->FileName->Ptr);
+        char BackupPath[1024]; sprintf(BackupPath,"%s~",SSTR(udf->FileName));
+        if(laCopyFile(BackupPath,udf->FileName->Ptr)){
+            logPrintNew("UDF backup written to \"%s\".\n", BackupPath);
+        }else{
+            logPrintNew("Error trying to back up \"%s\".\n", SSTR(udf->FileName));
+        }
     }
 
     udf->DiskFile = fopen(udf->FileName->Ptr, "wb");
@@ -3473,7 +3477,7 @@ int laPackUDF(laUDF *udf, int UseInstanceList, int DoBackup){
     nuidSeekRef = la_Tell(udf);
     la_WritePointer(udf, 0); //Seek pos for nuid list;
 
-    printf("Packing %s:\n", udf->FileName->Ptr);
+    logPrint("Packing %s:\n", udf->FileName->Ptr);
 
     udf->CurrentH2Instance=udf->H2Instances.pFirst;
 
@@ -3484,7 +3488,7 @@ int laPackUDF(laUDF *udf, int UseInstanceList, int DoBackup){
         strSafeDestroy(&ps->Path);
         FreeMem(ps);
     }
-    printf("[ALL DONE]\n\n");
+    logPrint("[ALL DONE]\n\n");
 
     nuidActualSeek = la_Tell(udf);
 
@@ -3523,7 +3527,7 @@ int laExtractUDF(laUDF *udf, laManagedUDF* mUDF, int Mode, laListHandle *Parent)
     laUDFContentNode *ucni = Parent;
 
     ma_device_stop(&MAIN.Audio->AudioDevice);
-    laSpinLock(&MAIN.Audio->AudioStatusLock);
+    if(MAIN.InitArgs.HasAudio) laSpinLock(&MAIN.Audio->AudioStatusLock);
 
     MAIN.IsReadingUDF = 1;
 
@@ -3586,7 +3590,7 @@ int laExtractUDF(laUDF *udf, laManagedUDF* mUDF, int Mode, laListHandle *Parent)
 
     MAIN.IsReadingUDF = 0;
 
-    laSpinUnlock(&MAIN.Audio->AudioStatusLock);
+    if(MAIN.InitArgs.HasAudio) laSpinUnlock(&MAIN.Audio->AudioStatusLock);
 
     return EStatus;
 }

+ 4 - 5
la_util.c

@@ -2122,8 +2122,8 @@ int laCopyFile(char *to, char *from){
     int fd_to, fd_from; char buf[4096];
     ssize_t nread; int saved_errno;
 
-    fd_from = open(from, O_RDONLY); if (fd_from < 0) return -1;
-    fd_to = open(to, O_WRONLY|O_CREAT|O_EXCL, 0666); if (fd_to < 0) goto out_error;
+    fd_from = open(from, O_RDONLY); if (fd_from < 0) return 0;
+    fd_to = open(to, O_WRONLY|O_CREAT /* |O_EXCL */, 0666); if (fd_to < 0) goto out_error;
 
     while (nread=read(fd_from,buf,sizeof(buf)), nread>0) {
         char *out_ptr = buf; ssize_t nwritten;
@@ -2136,15 +2136,14 @@ int laCopyFile(char *to, char *from){
     if (nread == 0){
         if (close(fd_to)<0){ fd_to = -1; goto out_error;}
         close(fd_from);
-        /* Success! */
-        return 0;
+        return 1;
     }
 
 out_error:
     saved_errno = errno;
     close(fd_from); if (fd_to >= 0) close(fd_to);
     errno = saved_errno;
-    return -1;
+    return 0;
 #endif //linux
 }