Эх сурвалжийг харах

Z991239-5349 #comment 环境变量分隔符跨平台化

80374374 1 жил өмнө
parent
commit
c089e040ce

+ 7 - 6
Framework/spbase/sp_env.c

@@ -9,6 +9,7 @@
 #include "fileutil.h"
 #include "toolkit.h"
 #include <winpr/string.h>
+#include <winpr/environment.h>
 
 void set_ld_library_path(sp_env_t* env)
 {
@@ -54,9 +55,9 @@ void set_ld_library_path(sp_env_t* env)
         DbgWithLinkForC(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM, "getenv %s failed: %s", name, toolkit_strerror(result));
 		if (result == TOOLKIT_ENOENT) {
 			strcpy(new_ld_value, env->dir->bin_path);
-			strcat(new_ld_value, ":");
+			strcat(new_ld_value, ENV_SEP_STR);
             strcat(new_ld_value, env->dir->dep_path);
-            strcat(new_ld_value, ":");
+            strcat(new_ld_value, ENV_SEP_STR);
 			strcat(new_ld_value, dep_value);
 			toolkit_setenv(name, new_ld_value);
 		}
@@ -79,10 +80,10 @@ void set_ld_library_path(sp_env_t* env)
 
 	//remove old vendor path
 	if (result == 0 && (pos = strstr(ld_value, dep_value)) != NULL) {
-		if (pos > ld_value && --pos && pos[0] == ':') {
+		if (pos > ld_value && --pos && pos[0] == ENV_SEP_CHAR) {
 			pos[0] = '\0';
 			strcpy(new_ld_value, ld_value);
-			pos[0] = ':', pos++;
+			pos[0] = ENV_SEP_CHAR, pos++;
 			strcat(new_ld_value, pos + strlen(dep_value));
 		}
 		else if(pos == ld_value) {
@@ -97,8 +98,8 @@ void set_ld_library_path(sp_env_t* env)
     strcat(dep_value, SPLIT_SLASH_STR);
     strcat(dep_value, manu);
 
-	if(new_ld_value[strlen(new_ld_value)-1] != ':')
-		strcat(new_ld_value, ":");
+	if(new_ld_value[strlen(new_ld_value)-1] != ENV_SEP_CHAR)
+		strcat(new_ld_value, ENV_SEP_STR);
 	strcat(new_ld_value, dep_value);
 
     result = toolkit_setenv(RVC_DEP_PATH, dep_value);