From 8355311364cd883440c3fd5a9904689725bc4a84 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Fri, 1 Apr 2022 04:07:42 +0300 Subject: [PATCH] fixed config save routine: was missing bnact handling --- src/cfgfile.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/cfgfile.c b/src/cfgfile.c index b125fd8..e183a65 100644 --- a/src/cfgfile.c +++ b/src/cfgfile.c @@ -54,6 +54,7 @@ enum { RMCFG_ALL, RMCFG_OWN }; #define NUM_EXTRA_LINES (NUM_CFG_OPTIONS + MAX_CUSTOM + MAX_BUTTONS * 3 + MAX_AXES + 16) static int parse_bnact(const char *s); +static const char *bnact_name(int bnact); static int add_cfgopt(int opt, int idx, const char *fmt, ...); static int add_cfgopt_devid(int vid, int pid); static int rm_cfgopt(const char *name, int mode); @@ -604,6 +605,15 @@ int write_cfg(const char *fname, struct cfg *cfg) } } + for(i=0; ibnact[i] != BNACT_NONE) { + add_cfgopt(CFG_BNACT_N, i, "bnact%d = %s", i, bnact_name(cfg->bnact[i])); + } else { + sprintf(buf, "bnact%d", i); + rm_cfgopt(buf, RMCFG_ALL); + } + } + for(i=0; ikbmap_str[i]) { add_cfgopt(CFG_KBMAP_N, i, "kbmap%d = %s", i, cfg->kbmap_str[i]); @@ -686,6 +696,17 @@ static int parse_bnact(const char *s) return -1; } +static const char *bnact_name(int bnact) +{ + int i; + for(i=0; bnact_strtab[i].name; i++) { + if(bnact_strtab[i].act == bnact) { + return bnact_strtab[i].name; + } + } + return "none"; +} + static struct cfgline *find_cfgopt(int opt, int idx) { int i;