From: Gerhard Sittig Date: Sun, 21 Aug 2022 11:54:58 +0000 (+0200) Subject: srd: add support for SIGROKDECODE_PATH environment variable X-Git-Url: https://sigrok.org/gitweb/?a=commitdiff_plain;h=1105c425345961fa527a7994845bc487b1c7bdf5;hp=ec5fc441e38e59a57cd508abf420e30fc3c28e0d;p=libsigrokdecode.git srd: add support for SIGROKDECODE_PATH environment variable The optional SIGROKDECODE_DIR environment variable accepts a single directory specification. The SIGROKDECODE_PATH variable accepts a list of directories to search protocol decoders. The list separator is platform dependent (colon or semicolon). Empty items are explicitly ignored. Both variables get evaluated. Behaviour remains backwards compatible, just gets extended for improved usability. --- diff --git a/srd.c b/srd.c index 6bff918..35ec5f2 100644 --- a/srd.c +++ b/srd.c @@ -285,6 +285,22 @@ SRD_API int srd_init(const char *path) return ret; } } + env_path = g_getenv("SIGROKDECODE_PATH"); + if (env_path) { + char **dir_list, **dir_iter, *dir_item; + dir_list = g_strsplit(env_path, G_SEARCHPATH_SEPARATOR_S, 0); + for (dir_iter = dir_list; *dir_iter; dir_iter++) { + dir_item = *dir_iter; + if (!dir_item || !*dir_item) + continue; + ret = srd_decoder_searchpath_add(dir_item); + if (ret != SRD_OK) { + Py_Finalize(); + return ret; + } + } + g_strfreev(dir_list); + } /* Initialize the Python GIL (this also happens to acquire it). */ PyEval_InitThreads();