diff options
author | hwspeedy <ns@bigbear.dk> | 2024-05-04 09:48:26 +0200 |
---|---|---|
committer | hwspeedy <ns@bigbear.dk> | 2024-05-04 09:48:26 +0200 |
commit | b1868207ac267e97df98c652250ac829798720dd (patch) | |
tree | 62a1d7ae04f02b1f2504c548d0312c2103663ccd /modules/computer/environment.c | |
parent | 7aa9647ff46ffbfe292fabe943056fc01b419d41 (diff) |
FIX Imrove UX - Enviroment Variables sorted - Fixes #27
Diffstat (limited to 'modules/computer/environment.c')
-rw-r--r-- | modules/computer/environment.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/modules/computer/environment.c b/modules/computer/environment.c index bdec7456..b8243afe 100644 --- a/modules/computer/environment.c +++ b/modules/computer/environment.c @@ -19,6 +19,8 @@ #include "hardinfo.h" #include "computer.h" +gint comparEnv (gpointer a, gpointer b) {return strcmp( (char*)a, (char*)b );} + static gchar *_env = NULL; void scan_env_var(gboolean reload) { @@ -27,17 +29,32 @@ void scan_env_var(gboolean reload) gchar **envlist; gchar *st; gint i; + GList *list=NULL, *a; g_free(_env); + //read environment to GList _env = g_strdup_printf("[%s]\n", _("Environment Variables") ); for (i = 0, envlist = g_listenv(); envlist[i]; i++) { st=strwrap(g_getenv(envlist[i]),80,':'); - _env = h_strdup_cprintf("%s=%s\n", _env, envlist[i], st); + list = g_list_prepend(list, g_strdup_printf("%s=%s\n", envlist[i], st)); g_free(st); } g_strfreev(envlist); + //sort + list=g_list_sort(list,(GCompareFunc)comparEnv); + + while(list){ + _env = h_strdup_cprintf("%s", _env, (char *)list->data); + + //next and free + a=list; + list=list->next; + free(a->data); + g_list_free_1(a); + } + SCAN_END(); } |