summaryrefslogtreecommitdiffstats
path: root/win/tclWinInit.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-07 12:48:06 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-07 12:48:06 (GMT)
commita03f6be6938582565178e02aa1036f75bd164a22 (patch)
tree834be06e727add74f7f5ea38df5fc41c9a3a15bc /win/tclWinInit.c
parent82a85e5b1eb378f5a45526e1b098459f6b848f42 (diff)
parent67be0a6752a150bad176f36988e3af03f25cc4d3 (diff)
downloadtcl-a03f6be6938582565178e02aa1036f75bd164a22.zip
tcl-a03f6be6938582565178e02aa1036f75bd164a22.tar.gz
tcl-a03f6be6938582565178e02aa1036f75bd164a22.tar.bz2
Merge 8.7
Diffstat (limited to 'win/tclWinInit.c')
-rw-r--r--win/tclWinInit.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/win/tclWinInit.c b/win/tclWinInit.c
index 647b870..8fa176b 100644
--- a/win/tclWinInit.c
+++ b/win/tclWinInit.c
@@ -233,7 +233,7 @@ AppendEnvironment(
WideCharToMultiByte(CP_UTF8, 0, wBuf, -1, buf, MAX_PATH * 3, NULL, NULL);
if (buf[0] != '\0') {
- objPtr = Tcl_NewStringObj(buf, -1);
+ objPtr = Tcl_NewStringObj(buf, TCL_INDEX_NONE);
Tcl_ListObjAppendElement(NULL, pathPtr, objPtr);
TclWinNoBackslash(buf);
@@ -257,7 +257,7 @@ AppendEnvironment(
(void) Tcl_JoinPath(pathc, pathv, &ds);
objPtr = TclDStringToObj(&ds);
} else {
- objPtr = Tcl_NewStringObj(buf, -1);
+ objPtr = Tcl_NewStringObj(buf, TCL_INDEX_NONE);
}
Tcl_ListObjAppendElement(NULL, pathPtr, objPtr);
ckfree(pathv);
@@ -517,17 +517,24 @@ TclpSetVariables(
if (ptr == NULL) {
ptr = Tcl_GetVar2(interp, "env", "HOMEDRIVE", TCL_GLOBAL_ONLY);
if (ptr != NULL) {
- Tcl_DStringAppend(&ds, ptr, -1);
+ Tcl_DStringAppend(&ds, ptr, TCL_INDEX_NONE);
}
ptr = Tcl_GetVar2(interp, "env", "HOMEPATH", TCL_GLOBAL_ONLY);
if (ptr != NULL) {
- Tcl_DStringAppend(&ds, ptr, -1);
+ Tcl_DStringAppend(&ds, ptr, TCL_INDEX_NONE);
}
if (Tcl_DStringLength(&ds) > 0) {
Tcl_SetVar2(interp, "env", "HOME", Tcl_DStringValue(&ds),
TCL_GLOBAL_ONLY);
} else {
- Tcl_SetVar2(interp, "env", "HOME", "c:\\", TCL_GLOBAL_ONLY);
+ /* None of HOME, HOMEDRIVE, HOMEPATH exists. Try USERPROFILE */
+ ptr = Tcl_GetVar2(interp, "env", "USERPROFILE", TCL_GLOBAL_ONLY);
+ if (ptr != NULL && ptr[0]) {
+ Tcl_SetVar2(interp, "env", "HOME", ptr, TCL_GLOBAL_ONLY);
+ } else {
+ /* Last resort */
+ Tcl_SetVar2(interp, "env", "HOME", "c:\\", TCL_GLOBAL_ONLY);
+ }
}
}
@@ -607,7 +614,7 @@ TclpFindVariable(
*/
Tcl_DStringInit(&envString);
- envUpper = Tcl_WCharToUtfDString(env, -1, &envString);
+ envUpper = Tcl_WCharToUtfDString(env, TCL_INDEX_NONE, &envString);
p1 = strchr(envUpper, '=');
if (p1 == NULL) {
continue;