From 6fcb1994c88cc33677c04352ddd8d6448c22c908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Thu, 16 Dec 2021 15:49:17 +0100 Subject: Do not combine default and configuration process fields When reading a configuration file with the syntax previous to the screens update Settings_defaultScreens() will add the default fields and later ScreenSettings_readFields() will add the ones from the configuration file. This will duplicate some fields and corrupt the columns due to the boundless Command field. --- Settings.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Settings.c') diff --git a/Settings.c b/Settings.c index 278f0382..ee2fe1b5 100644 --- a/Settings.c +++ b/Settings.c @@ -242,8 +242,10 @@ static void ScreenSettings_readFields(ScreenSettings* ss, Hashtable* columns, co char** ids = String_split(trim, ' ', NULL); free(trim); - unsigned int i, j; - for (j = 0, i = 0; ids[i]; i++) { + /* reset default fields */ + memset(ss->fields, '\0', LAST_PROCESSFIELD * sizeof(ProcessField)); + + for (size_t j = 0, i = 0; ids[i]; i++) { if (j >= UINT_MAX / sizeof(ProcessField)) continue; if (j >= LAST_PROCESSFIELD) { -- cgit v1.2.3