]> git.sesse.net Git - vlc/blobdiff - src/modules/cache.c
A52: cease spamming
[vlc] / src / modules / cache.c
index ba3b6f4108d6dc519c46d43a236f78a7b9286e6b..c6997111e9da9a7fced3ded82ecc0b3976e1549a 100644 (file)
@@ -36,6 +36,7 @@
 #include <string.h>                                              /* strdup() */
 #include <vlc_plugin.h>
 #include <vlc_cpu.h>
+#include <errno.h>
 
 #include <sys/types.h>
 #ifdef HAVE_UNISTD_H
@@ -45,7 +46,7 @@
 
 #include "config/configuration.h"
 
-#include "vlc_charset.h"
+#include <vlc_fs.h>
 
 #include "modules/modules.h"
 
@@ -78,7 +79,7 @@ void CacheDelete( vlc_object_t *obj, const char *dir )
                   dir, CACHENAME_VALUES ) == -1 )
         return;
     msg_Dbg( obj, "removing plugins cache file %s", path );
-    utf8_unlink( path );
+    vlc_unlink( path );
     free( path );
 }
 
@@ -111,7 +112,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, const char *dir )
 
     msg_Dbg( p_this, "loading plugins cache file %s", psz_filename );
 
-    file = utf8_fopen( psz_filename, "rb" );
+    file = vlc_fopen( psz_filename, "rb" );
     if( !file )
     {
         msg_Warn( p_this, "cannot read %s (%m)",
@@ -452,34 +453,36 @@ void CacheSave (vlc_object_t *p_this, const char *dir,
         free (filename);
         return;
     }
+    msg_Dbg (p_this, "saving plugins cache %s", filename);
 
-    FILE *file = utf8_fopen (tmpname, "wb");
+    FILE *file = vlc_fopen (tmpname, "wb");
     if (file == NULL)
-        goto error;
+    {
+        if (errno != EACCES && errno != ENOENT)
+            msg_Warn (p_this, "cannot create %s (%m)", tmpname);
+        goto out;
+    }
 
-    msg_Dbg (p_this, "saving plugins cache %s", tmpname);
     if (CacheSaveBank (file, pp_cache, n))
-        goto error;
+    {
+        msg_Warn (p_this, "cannot write %s (%m)", tmpname);
+        clearerr (file);
+        fclose (file);
+        vlc_unlink (tmpname);
+        goto out;
+    }
 
 #ifndef WIN32
-    utf8_rename (tmpname, filename); /* atomically replace old cache */
+    vlc_rename (tmpname, filename); /* atomically replace old cache */
     fclose (file);
 #else
-    utf8_unlink (filename);
+    vlc_unlink (filename);
     fclose (file);
-    utf8_rename (tmpname, filename);
+    vlc_rename (tmpname, filename);
 #endif
-    return; /* success! */
-
-error:
-    msg_Warn (p_this, "cannot write %s (%m)", tmpname);
+out:
     free (filename);
     free (tmpname);
-    if (file != NULL)
-    {
-        clearerr (file);
-        fclose (file);
-    }
 }
 
 static int CacheSaveConfig (FILE *, const module_t *);