about summary refs log tree commit diff stats
path: root/src/tools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-08-09 17:41:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-08-09 17:41:01 +0200
commit53756ee96609860b35359f4e5d3e801ed3212696 (patch)
treed7fa12cfa1a4f2695594351de6ca66e125a095de /src/tools
parent8a2ee1ed5980c8d208a362c00216d4fc5cdddb44 (diff)
downloadbox64-53756ee96609860b35359f4e5d3e801ed3212696.tar.gz
box64-53756ee96609860b35359f4e5d3e801ed3212696.zip
Improved Steam wine compatibility, not perfect, but better (thanks Hugo for the args)
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/rcfile.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c
index b105fa65..e2e14d3b 100644
--- a/src/tools/rcfile.c
+++ b/src/tools/rcfile.c
@@ -123,6 +123,7 @@ ENTRYSTRING_(BOX64_ENV1, new_env1)                      \
 ENTRYSTRING_(BOX64_ENV2, new_env2)                      \
 ENTRYSTRING_(BOX64_ENV3, new_env3)                      \
 ENTRYSTRING_(BOX64_ENV4, new_env4)                      \
+ENTRYSTRING_(BOX64_ARGS, new_args)                      \
 ENTRYBOOL(BOX64_RESERVE_HIGH, new_reserve_high)         \
 
 #ifdef HAVE_TRACE
@@ -499,6 +500,7 @@ void DeleteParams()
 extern int ftrace_has_pid;
 extern FILE* ftrace;
 extern char* ftrace_name;
+extern char* box64_new_args;
 void openFTrace(const char* newtrace);
 void addNewEnvVar(const char* s);
 void AddNewLibs(const char* libs);
@@ -521,7 +523,7 @@ void ApplyParams(const char* name)
 {
     if(!name || !params)
         return;
-    if(!strcmp(name, old_name)) {
+    if(!strcasecmp(name, old_name)) {
         return;
     }
     strncpy(old_name, name, 255);
@@ -647,6 +649,12 @@ void internal_ApplyParams(const char* name, const my_params_t* param) {
         addNewEnvVar(param->new_env4);
         printf_log(LOG_INFO, "Applying %s=%s\n", "BOX64_ENV4", param->new_env4);
     }
+    if(param->is_new_args_present) {
+        printf_log(LOG_INFO, "Adding \"%s\" arguments to command line\n", param->new_args);
+        if(box64_new_args)
+            box_free(box64_new_args);
+        box64_new_args = box_strdup(param->new_args);
+    }
     if(param->is_bash_present && FileIsX64ELF(param->bash)) {
         if(my_context->bashpath)
             free(my_context->bashpath);