about summary refs log tree commit diff stats
path: root/src/tools/env.c
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-01-22 00:13:12 +0800
committerGitHub <noreply@github.com>2025-01-21 17:13:12 +0100
commitd882a5c8fe84bced3ddce9f0ae10baf6357d64e0 (patch)
treec9783dcc9598b1ab74ca41cfbe44431ba8d93d05 /src/tools/env.c
parent044dec0bfa0f3f8f62f7703d6b0a8600c1354dc5 (diff)
downloadbox64-d882a5c8fe84bced3ddce9f0ae10baf6357d64e0.tar.gz
box64-d882a5c8fe84bced3ddce9f0ae10baf6357d64e0.zip
[ENV] Optimized BOX64ENV log a bit (#2277)
Diffstat (limited to 'src/tools/env.c')
-rw-r--r--src/tools/env.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/tools/env.c b/src/tools/env.c
index dc31dbe7..1e68d6ff 100644
--- a/src/tools/env.c
+++ b/src/tools/env.c
@@ -261,6 +261,7 @@ static void initializeEnvFile(const char* filename)
         int v = strtol(val, &p, 0);                 \
         if (p != val && v >= min && v <= max) {     \
             current_env.is_##name##_overridden = 1; \
+            current_env.is_any_overridden = 1;      \
             current_env.name = v;                   \
         }                                           \
     }
@@ -270,6 +271,7 @@ static void initializeEnvFile(const char* filename)
         int64_t v = strtoll(val, &p, 0);            \
         if (p != val) {                             \
             current_env.is_##name##_overridden = 1; \
+            current_env.is_any_overridden = 1;      \
             current_env.name = v;                   \
         }                                           \
     }
@@ -278,9 +280,11 @@ static void initializeEnvFile(const char* filename)
     {                                               \
         if (strcmp(val, "0")) {                     \
             current_env.is_##name##_overridden = 1; \
+            current_env.is_any_overridden = 1;      \
             current_env.name = 1;                   \
         } else {                                    \
             current_env.is_##name##_overridden = 1; \
+            current_env.is_any_overridden = 1;      \
             current_env.name = 0;                   \
         }                                           \
     }
@@ -290,6 +294,7 @@ static void initializeEnvFile(const char* filename)
         uintptr_t v = (uintptr_t)strtoll(val, &p, 0); \
         if (p != val) {                               \
             current_env.is_##name##_overridden = 1;   \
+            current_env.is_any_overridden = 1;        \
             current_env.name = v;                     \
         }                                             \
     }
@@ -297,6 +302,7 @@ static void initializeEnvFile(const char* filename)
     else if (!strcmp(key, #NAME))                         \
     {                                                     \
         current_env.is_##name##_overridden = 1;           \
+        current_env.is_any_overridden = 1;                \
         if (current_env.name) box_free(current_env.name); \
         current_env.name = strdup(val);                   \
     }
@@ -362,26 +368,31 @@ static void internalEnvFileEntry(const char* entryname, const box64env_t* env)
     if (env->is_##name##_overridden) {         \
         box64env.name = env->name;             \
         box64env.is_##name##_overridden = 1;   \
+        box64env.is_any_overridden = 1;        \
     }
 #define INTEGER64(NAME, name, default)       \
     if (env->is_##name##_overridden) {       \
         box64env.name = env->name;           \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define BOOLEAN(NAME, name, default)         \
     if (env->is_##name##_overridden) {       \
         box64env.name = env->name;           \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define ADDRESS(NAME, name)                  \
     if (env->is_##name##_overridden) {       \
         box64env.name = env->name;           \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define STRING(NAME, name)                   \
     if (env->is_##name##_overridden) {       \
         box64env.name = env->name;           \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
     ENVSUPER()
 #undef INTEGER
@@ -439,6 +450,7 @@ void LoadEnvVariables()
             box64env.name = default;                      \
         } else {                                          \
             box64env.is_##name##_overridden = 1;          \
+            box64env.is_any_overridden = 1;               \
         }                                                 \
     }
 #define INTEGER64(NAME, name, default)       \
@@ -446,24 +458,28 @@ void LoadEnvVariables()
     if (p) {                                 \
         box64env.name = atoll(p);            \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define BOOLEAN(NAME, name, default)         \
     p = getenv(#NAME);                       \
     if (p) {                                 \
         box64env.name = p[0] != '0';         \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define ADDRESS(NAME, name)                  \
     p = getenv(#NAME);                       \
     if (p) {                                 \
         box64env.name = (uintptr_t)atoll(p); \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
 #define STRING(NAME, name)                   \
     p = getenv(#NAME);                       \
     if (p) {                                 \
         box64env.name = strdup(p);           \
         box64env.is_##name##_overridden = 1; \
+        box64env.is_any_overridden = 1;      \
     }
     ENVSUPER()
 #undef INTEGER
@@ -476,7 +492,8 @@ void LoadEnvVariables()
 
 void PrintEnvVariables()
 {
-    printf_log(LOG_INFO, "BOX64ENV: Variables overridden via env and/or RC file:\n");
+    if (box64env.is_any_overridden)
+        printf_log(LOG_INFO, "BOX64ENV: Variables overridden via env and/or RC file:\n");
 #define INTEGER(NAME, name, default, min, max) \
     if (box64env.is_##name##_overridden)       \
         printf_log(LOG_INFO, "\t%s=%d\n", #NAME, box64env.name);