]> sigrok.org Git - libsigrok.git/blobdiff - src/resource.c
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / resource.c
index 1e8d9458a0709a6d1bdc7199186c4d276d93cf17..3164b94313f5cf82b31ec023a15c6283252c3e89 100644 (file)
@@ -55,10 +55,21 @@ SR_API GSList *sr_resourcepaths_get(int res_type)
                subdir = "sigrok-firmware";
 
                env = g_getenv("SIGROK_FIRMWARE_DIR");
-               if (!env)
-                       sr_dbg("SIGROK_FIRMWARE_DIR environment variable not set, ignoring.");
-               else
+               if (env)
                        l = g_slist_append(l, g_strdup(env));
+
+               env = g_getenv("SIGROK_FIRMWARE_PATH");
+               if (env) {
+                       char **dir_list, **dir_iter, *dir_item;
+                       dir_list = g_strsplit(env, G_SEARCHPATH_SEPARATOR_S, 0);
+                       for (dir_iter = dir_list; *dir_iter; dir_iter++) {
+                               dir_item = *dir_iter;
+                               if (!dir_item || !*dir_item)
+                                       continue;
+                               l = g_slist_append(l, g_strdup(dir_item));
+                       }
+                       g_strfreev(dir_list);
+               }
        }
 
        l = g_slist_append(l, g_build_filename(g_get_user_data_dir(), subdir, NULL));
@@ -128,7 +139,11 @@ static FILE *try_open_file(const char *datadir, const char *subdir,
        char *filename;
        FILE *file;
 
-       filename = g_build_filename(datadir, subdir, name, NULL);
+       if (subdir)
+               filename = g_build_filename(datadir, subdir, name, NULL);
+       else
+               filename = g_build_filename(datadir, name, NULL);
+
        file = g_fopen(filename, "rb");
 
        if (file)
@@ -408,5 +423,3 @@ SR_PRIV void *sr_resource_load(struct sr_context *ctx,
        *size = res_size;
        return buf;
 }
-
-/** @} */