Просмотр исходного кода

[FL-1799] Require the trailing slash for root paths (#2486)

* Require the trailing slash
* Fix the swapped storages
* Fix root paths
Astra 2 лет назад
Родитель
Сommit
9fbf327028
1 измененных файлов с 16 добавлено и 6 удалено
  1. 16 6
      applications/services/storage/storage_processing.c

+ 16 - 6
applications/services/storage/storage_processing.c

@@ -33,12 +33,22 @@ static StorageType storage_get_type_by_path(FuriString* path) {
     StorageType type = ST_ERROR;
     const char* path_cstr = furi_string_get_cstr(path);
 
-    if(memcmp(path_cstr, STORAGE_EXT_PATH_PREFIX, strlen(STORAGE_EXT_PATH_PREFIX)) == 0) {
-        type = ST_EXT;
-    } else if(memcmp(path_cstr, STORAGE_INT_PATH_PREFIX, strlen(STORAGE_INT_PATH_PREFIX)) == 0) {
-        type = ST_INT;
-    } else if(memcmp(path_cstr, STORAGE_ANY_PATH_PREFIX, strlen(STORAGE_ANY_PATH_PREFIX)) == 0) {
-        type = ST_ANY;
+    if(furi_string_size(path) == 4) {
+        if(memcmp(path_cstr, STORAGE_EXT_PATH_PREFIX, strlen(STORAGE_EXT_PATH_PREFIX)) == 0) {
+            type = ST_EXT;
+        } else if(memcmp(path_cstr, STORAGE_INT_PATH_PREFIX, strlen(STORAGE_INT_PATH_PREFIX)) == 0) {
+            type = ST_INT;
+        } else if(memcmp(path_cstr, STORAGE_ANY_PATH_PREFIX, strlen(STORAGE_ANY_PATH_PREFIX)) == 0) {
+            type = ST_ANY;
+        }
+    } else if(furi_string_size(path) > 4) {
+        if(memcmp(path_cstr, EXT_PATH(""), strlen(EXT_PATH(""))) == 0) {
+            type = ST_EXT;
+        } else if(memcmp(path_cstr, INT_PATH(""), strlen(INT_PATH(""))) == 0) {
+            type = ST_INT;
+        } else if(memcmp(path_cstr, ANY_PATH(""), strlen(ANY_PATH(""))) == 0) {
+            type = ST_ANY;
+        }
     }
 
     return type;