summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-01-15 11:01:02 +0100
committerDaniel Friesel <derf@finalrewind.org>2011-01-15 11:01:02 +0100
commit11d7a68de63112305d833e802db0b4654c846b77 (patch)
treeacbfba53acc4b802b1e49ab2c3902d1417660377
parent9c1f7c9b7fc346c1b09338788e06ba70128820ca (diff)
Check XDG_CONFIG_HOME for feh/keys as well
-rw-r--r--src/keyevents.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/keyevents.c b/src/keyevents.c
index 91fa8a4..8e7251d 100644
--- a/src/keyevents.c
+++ b/src/keyevents.c
@@ -84,7 +84,9 @@ static void feh_set_parse_kb_partial(fehkey *key, int index, char *ks) {
}
void init_keyevents(void) {
- char *home, *confpath;
+ char *home = NULL;
+ char *confhome = NULL;
+ char *confpath = NULL;
char line[128];
char action[32], k1[32], k2[32], k3[32];
struct __fehkey *cur_kb = NULL;
@@ -149,9 +151,17 @@ void init_keyevents(void) {
if (!home)
eprintf("No HOME in environment\n");
- confpath = estrjoin("/", home, ".config/feh/keys", NULL);
+ confhome = getenv("XDG_CONFIG_HOME");
+
+ if (confhome)
+ confpath = estrjoin("/", confhome, "feh/keys", NULL);
+ else
+ confpath = estrjoin("/", home, ".config/feh/keys", NULL);
+
conf = fopen(confpath, "r");
+ free(confpath);
+
if (!conf)
return;
@@ -279,7 +289,6 @@ void init_keyevents(void) {
}
}
fclose(conf);
- free(confpath);
}
static short feh_is_kp(fehkey *key, int sym, int state) {