From 21684a66fec8d77d805f37f722c6a157adcd9c64 Mon Sep 17 00:00:00 2001
From: Darkvater <Darkvater@openttd.org>
Date: Sun, 29 Jan 2006 19:50:01 +0000
Subject: (svn r3475) - Fix: you couldn't remove an item from a list-type of
 config ingame from the configuration file. Whatever you did, upon restart of
 OpenTTD those items were still there. To fix this we initialize the first
 item to NULL in SaveList as it is rebuilt anyways fully.

---
 settings.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/settings.c b/settings.c
index ef0b2ed4a..babfd94a4 100644
--- a/settings.c
+++ b/settings.c
@@ -305,10 +305,10 @@ static bool ini_save(const char *filename, IniFile *ini)
 	f = fopen(filename, "w");
 	if (f == NULL) return false;
 
-	for(group = ini->group; group; group = group->next) {
+	for (group = ini->group; group != NULL; group = group->next) {
 		if (group->comment) fputs(group->comment, f);
 		fprintf(f, "[%s]\n", group->name);
-		for(item = group->item; item; item = item->next) {
+		for (item = group->item; item != NULL; item = item->next) {
 			if (item->comment) fputs(item->comment, f);
 			if(group->type==IGT_LIST)
 				fprintf(f, "%s\n", item->value ? item->value : "");
@@ -1057,8 +1057,9 @@ static void SaveList(IniFile *ini, const char *grpname, char **list, int len)
 	int i;
 	bool first = true;
 
-	if (!group)
-		return;
+	if (group == NULL) return;
+	group->item = NULL;
+
 	for (i = 0; i != len; i++) {
 		if (list[i] == NULL || list[i][0] == '\0') continue;
 
-- 
cgit v1.2.3-70-g09d2