From d37f34baba6762ef5f5481f9f6a48f888ef0c610 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Wed, 21 Sep 2022 09:50:12 -0700
Subject: [PATCH] Fix reading and writing of hotkey: sections in xtrn.ini

Section suffix is the decimal ASCII value, not the character itself.
Fix issue #440 as reported by Nelgin
---
 src/sbbs3/scfglib2.c | 2 +-
 src/sbbs3/scfgsave.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/scfglib2.c b/src/sbbs3/scfglib2.c
index 443fd95ece..3a9afe472f 100644
--- a/src/sbbs3/scfglib2.c
+++ b/src/sbbs3/scfglib2.c
@@ -581,7 +581,7 @@ BOOL read_xtrn_cfg(scfg_t* cfg, char* error, size_t maxerrlen)
 			return allocerr(error, maxerrlen, fname, "hotkey", sizeof(hotkey_t));
 		memset(cfg->hotkey[i],0,sizeof(hotkey_t));
 
-		cfg->hotkey[i]->key = list[i][7];
+		cfg->hotkey[i]->key = atoi(list[i] + 7);
 		SAFECOPY(cfg->hotkey[i]->cmd, iniGetString(ini, section, "cmd", "", value));
 	}
 	iniFreeStringList(list);
diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c
index 8d43ec5ba8..6c31edb641 100644
--- a/src/sbbs3/scfgsave.c
+++ b/src/sbbs3/scfgsave.c
@@ -923,7 +923,7 @@ BOOL write_xtrn_cfg(scfg_t* cfg, int backup_level)
 	}
 
 	for(uint i=0; i<cfg->total_hotkeys; i++) {
-		SAFEPRINTF(name, "hotkey:%c", cfg->hotkey[i]->key);
+		SAFEPRINTF(name, "hotkey:%u", cfg->hotkey[i]->key);
 		iniSetString(&ini, name, "cmd", cfg->hotkey[i]->cmd, NULL);
 	}
 
-- 
GitLab