changeset 11045:402c3a5c7180 draft

(svn r15385) -Fix: Saving of char* to configuration file did not work due to incorrect parameter order and no handling of NULL.
author peter1138 <peter1138@openttd.org>
date Sat, 07 Feb 2009 00:29:35 +0000
parents 245be18513f4
children 6aabd80be58f
files src/settings.cpp
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -567,7 +567,13 @@
 			case SLE_VAR_STRB: strcpy(buf, (char*)ptr); break;
 			case SLE_VAR_STRBQ:seprintf(buf, lastof(buf), "\"%s\"", (char*)ptr); break;
 			case SLE_VAR_STR:  strcpy(buf, *(char**)ptr); break;
-			case SLE_VAR_STRQ: seprintf(buf, "\"%s\"", lastof(buf), *(char**)ptr); break;
+			case SLE_VAR_STRQ:
+				if (*(char**)ptr == NULL) {
+					buf[0] = '\0';
+				} else {
+					seprintf(buf, lastof(buf), "\"%s\"", *(char**)ptr);
+				}
+				break;
 			case SLE_VAR_CHAR: buf[0] = *(char*)ptr; buf[1] = '\0'; break;
 			default: NOT_REACHED();
 			}