aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhwspeedy <ns@bigbear.dk>2024-05-04 09:48:26 +0200
committerhwspeedy <ns@bigbear.dk>2024-05-04 09:48:26 +0200
commitb1868207ac267e97df98c652250ac829798720dd (patch)
tree62a1d7ae04f02b1f2504c548d0312c2103663ccd
parent7aa9647ff46ffbfe292fabe943056fc01b419d41 (diff)
FIX Imrove UX - Enviroment Variables sorted - Fixes #27
-rw-r--r--modules/computer/environment.c19
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();
}