Translated using Weblate (Italian)
[oweals/minetest.git] / src / filesys.cpp
index dc34b6b560798baaf795146d1a5ab261c3760099..0bc351669d0e744f5255648c0dd0e37ec94fcb31 100644 (file)
@@ -309,7 +309,7 @@ bool RecursiveDelete(const std::string &path)
                strcpy(argv_data[0], "/bin/rm");
 #endif
                strcpy(argv_data[1], "-rf");
-               strncpy(argv_data[2], path.c_str(), 10000);
+               strncpy(argv_data[2], path.c_str(), sizeof(argv_data[2]) - 1);
                char *argv[4];
                argv[0] = argv_data[0];
                argv[1] = argv_data[1];
@@ -691,6 +691,12 @@ std::string AbsolutePath(const std::string &path)
 const char *GetFilenameFromPath(const char *path)
 {
        const char *filename = strrchr(path, DIR_DELIM_CHAR);
+       // Consistent with IsDirDelimiter this function handles '/' too
+       if (DIR_DELIM_CHAR != '/') {
+               const char *tmp = strrchr(path, '/');
+               if (tmp && tmp > filename)
+                       filename = tmp;
+       }
        return filename ? filename + 1 : path;
 }