From aea4169ddbfc8287304c52fc4b4f073036972af8 Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Mon, 24 Mar 2003 11:28:26 +0000 Subject: [PATCH] Support for using environment strings to change config Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@790 --- src/misc/setup.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/misc/setup.cpp b/src/misc/setup.cpp index 544ad6d9..52091726 100644 --- a/src/misc/setup.cpp +++ b/src/misc/setup.cpp @@ -111,7 +111,7 @@ const char* Section_prop::Get_string(const char* _propname){ return ((*tel)->GetValue())._string->c_str(); } } - return NULL; + return ""; } int Section_prop::Get_hex(const char* _propname){ for(it tel=properties.begin();tel!=properties.end();tel++){ @@ -254,6 +254,22 @@ void Config::ParseConfigFile(const char* configfilename){ } } +void Config::ParseEnv(char ** envp) { + for(char** env=envp; *env;env++) { + char copy[1024]; + strncpy(copy,*env,1024); + if(strncasecmp(copy,"DOSBOX_",7)) + continue; + char* sec_name = ©[7]; + char* prop_name = strrchr(sec_name,'_'); + *prop_name++=0; + Section* sect = GetSection(sec_name); + if(!sect) + continue; + sect->HandleInputline(prop_name); + } +} + void Config::SetStartUp(void (*_function)(void)) { _start_function=_function; }