summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-12-04 15:12:12 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-12-04 15:12:12 (GMT)
commit19d35f4ef53660720d360042a30f3d9dafd5e5be (patch)
tree67fa2f16a142415270d6e1682f46288b6310666f
parent279358fa3f6fd886a5cf940ea9223c5a51d6f304 (diff)
downloadtcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.zip
tcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.tar.gz
tcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.tar.bz2
more eliminations of 'deprecated' calls
-rw-r--r--generic/tclBasic.c21
-rw-r--r--generic/tclCmdIL.c12
-rw-r--r--generic/tclEnv.c10
-rw-r--r--generic/tclIndexObj.c4
-rw-r--r--generic/tclInterp.c2
-rw-r--r--generic/tclMain.c10
-rw-r--r--generic/tclTest.c36
-rw-r--r--unix/dltest/pkgua.c6
-rw-r--r--unix/tclAppInit.c4
-rw-r--r--unix/tclUnixInit.c20
-rw-r--r--unix/tclUnixTest.c118
-rw-r--r--win/tclAppInit.c3
-rw-r--r--win/tclWinInit.c32
13 files changed, 139 insertions, 139 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 651625e..a4ac861 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -782,8 +782,8 @@ Tcl_CreateInterp(void)
*/
order.s = 1;
- Tcl_SetVar2(interp, "tcl_platform", "byteOrder",
- ((order.c[0] == 1) ? "littleEndian" : "bigEndian"),
+ Tcl_SetVar2Ex(interp, "tcl_platform", "byteOrder",
+ Tcl_NewStringObj((order.c[0] == 1) ? "littleEndian" : "bigEndian", -1),
TCL_GLOBAL_ONLY);
Tcl_SetVar2Ex(interp, "tcl_platform", "wordSize",
@@ -797,24 +797,13 @@ Tcl_CreateInterp(void)
* Set up other variables such as tcl_version and tcl_library
*/
- Tcl_SetVar(interp, "tcl_patchLevel", TCL_PATCH_LEVEL, TCL_GLOBAL_ONLY);
- Tcl_SetVar(interp, "tcl_version", TCL_VERSION, TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_patchLevel", NULL, Tcl_NewStringObj(TCL_PATCH_LEVEL, -1), TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_version", NULL, Tcl_NewStringObj(TCL_VERSION, -1), TCL_GLOBAL_ONLY);
Tcl_TraceVar2(interp, "tcl_precision", NULL,
TCL_GLOBAL_ONLY|TCL_TRACE_READS|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
TclPrecTraceProc, NULL);
TclpSetVariables(interp);
-#ifdef TCL_THREADS
- /*
- * The existence of the "threaded" element of the tcl_platform array
- * indicates that this particular Tcl shell has been compiled with threads
- * turned on. Using "info exists tcl_platform(threaded)" a Tcl script can
- * introspect on the interpreter level of thread safety.
- */
-
- Tcl_SetVar2(interp, "tcl_platform", "threaded", "1", TCL_GLOBAL_ONLY);
-#endif
-
/*
* Register Tcl's version number.
* TIP #268: Full patchlevel instead of just major.minor
@@ -822,9 +811,7 @@ Tcl_CreateInterp(void)
Tcl_PkgProvideEx(interp, "Tcl", TCL_PATCH_LEVEL, &tclStubs);
-#ifdef Tcl_InitStubs
#undef Tcl_InitStubs
-#endif
Tcl_InitStubs(interp, TCL_VERSION, 1);
if (TclTommath_Init(interp) != TCL_OK) {
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index ce79e20..441cf42 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -1518,16 +1518,16 @@ InfoLibraryCmd(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- const char *libDirName;
+ Tcl_Obj *libDirName;
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, NULL);
return TCL_ERROR;
}
- libDirName = Tcl_GetVar(interp, "tcl_library", TCL_GLOBAL_ONLY);
+ libDirName = Tcl_GetVar2Ex(interp, "tcl_library", NULL, TCL_GLOBAL_ONLY);
if (libDirName != NULL) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(libDirName, -1));
+ Tcl_SetObjResult(interp, libDirName);
return TCL_OK;
}
Tcl_SetResult(interp, "no library has been specified for Tcl",TCL_STATIC);
@@ -1641,17 +1641,17 @@ InfoPatchLevelCmd(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- const char *patchlevel;
+ Tcl_Obj *patchlevel;
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, NULL);
return TCL_ERROR;
}
- patchlevel = Tcl_GetVar(interp, "tcl_patchLevel",
+ patchlevel = Tcl_GetVar2Ex(interp, "tcl_patchLevel", NULL,
(TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG));
if (patchlevel != NULL) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(patchlevel, -1));
+ Tcl_SetObjResult(interp, patchlevel);
return TCL_OK;
}
return TCL_ERROR;
diff --git a/generic/tclEnv.c b/generic/tclEnv.c
index f2395e6..6d25d59 100644
--- a/generic/tclEnv.c
+++ b/generic/tclEnv.c
@@ -119,7 +119,7 @@ TclSetupEnv(
}
p2++;
p2[-1] = '\0';
- Tcl_SetVar2(interp, "env", p1, p2, TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "env", p1, Tcl_NewStringObj(p2, -1), TCL_GLOBAL_ONLY);
Tcl_DStringFree(&envString);
}
Tcl_MutexUnlock(&envMutex);
@@ -548,10 +548,10 @@ EnvTraceProc(
*/
if (flags & TCL_TRACE_WRITES) {
- const char *value;
+ Tcl_Obj *value;
- value = Tcl_GetVar2(interp, "env", name2, TCL_GLOBAL_ONLY);
- TclSetEnv(name2, value);
+ value = Tcl_GetVar2Ex(interp, "env", name2, TCL_GLOBAL_ONLY);
+ TclSetEnv(name2, Tcl_GetString(value));
}
/*
@@ -565,7 +565,7 @@ EnvTraceProc(
if (value == NULL) {
return "no such variable";
}
- Tcl_SetVar2(interp, name1, name2, value, 0);
+ Tcl_SetVar2Ex(interp, name1, name2, Tcl_NewStringObj(value, -1), 0);
Tcl_DStringFree(&valueString);
}
diff --git a/generic/tclIndexObj.c b/generic/tclIndexObj.c
index 4583a20..63e10f1 100644
--- a/generic/tclIndexObj.c
+++ b/generic/tclIndexObj.c
@@ -208,10 +208,6 @@ Tcl_GetIndexFromObjStruct(
entryPtr = NEXT_ENTRY(entryPtr, offset), idx++) {
for (p1 = key, p2 = *entryPtr; *p1 == *p2; p1++, p2++) {
if (*p1 == '\0') {
- if (p1 == key) {
- /* empty keys never match */
- continue;
- }
index = idx;
goto done;
}
diff --git a/generic/tclInterp.c b/generic/tclInterp.c
index 058714f..25c1339 100644
--- a/generic/tclInterp.c
+++ b/generic/tclInterp.c
@@ -2157,7 +2157,7 @@ SlaveCreate(
SlaveObjCmd, slaveInterp, SlaveObjCmdDeleteProc);
Tcl_InitHashTable(&slavePtr->aliasTable, TCL_STRING_KEYS);
Tcl_SetHashValue(hPtr, slavePtr);
- Tcl_SetVar(slaveInterp, "tcl_interactive", "0", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(slaveInterp, "tcl_interactive", NULL, Tcl_NewIntObj(0), TCL_GLOBAL_ONLY);
/*
* Inherit the recursion limit.
diff --git a/generic/tclMain.c b/generic/tclMain.c
index 5736881..e422806 100644
--- a/generic/tclMain.c
+++ b/generic/tclMain.c
@@ -270,16 +270,16 @@ Tcl_SourceRCFile(
Tcl_Interp *interp) /* Interpreter to source rc file into. */
{
Tcl_DString temp;
- CONST char *fileName;
+ Tcl_Obj *fileName;
Tcl_Channel chan;
- fileName = Tcl_GetVar2(interp, "tcl_rcFileName", NULL, TCL_GLOBAL_ONLY);
+ fileName = Tcl_GetVar2Ex(interp, "tcl_rcFileName", NULL, TCL_GLOBAL_ONLY);
if (fileName != NULL) {
Tcl_Channel c;
CONST char *fullName;
Tcl_DStringInit(&temp);
- fullName = Tcl_TranslateFileName(interp, fileName, &temp);
+ fullName = Tcl_TranslateFileName(interp, Tcl_GetString(fileName), &temp);
if (fullName == NULL) {
/*
* Couldn't translate the file name (e.g. it referred to a bogus
@@ -387,7 +387,7 @@ Tcl_Main(
path = Tcl_NewStringObj(Tcl_DStringValue(&appName), -1);
Tcl_SetStartupScript(path, encodingName);
}
- Tcl_SetVar(interp, "argv0", Tcl_DStringValue(&appName), TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "argv0", NULL, Tcl_NewStringObj(Tcl_DStringValue(&appName), -1), TCL_GLOBAL_ONLY);
Tcl_DStringFree(&appName);
argc--;
argv++;
@@ -409,7 +409,7 @@ Tcl_Main(
*/
tty = isatty(0);
- Tcl_SetVar(interp, "tcl_interactive", ((path == NULL) && tty) ? "1" : "0",
+ Tcl_SetVar2Ex(interp, "tcl_interactive", NULL, Tcl_NewIntObj((path == NULL) && tty),
TCL_GLOBAL_ONLY);
/*
diff --git a/generic/tclTest.c b/generic/tclTest.c
index caf4b1a..a0dcdc0 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -3915,14 +3915,14 @@ TestregexpObjCmd(
Tcl_SetIntObj(Tcl_GetObjResult(interp), 0);
if (objc > 2 && (cflags&REG_EXPECT) && indices) {
char *varName;
- const char *value;
+ Tcl_Obj *value;
int start, end;
char resinfo[TCL_INTEGER_SPACE * 2];
varName = Tcl_GetString(objv[2]);
TclRegExpRangeUniChar(regExpr, -1, &start, &end);
sprintf(resinfo, "%d %d", start, end-1);
- value = Tcl_SetVar(interp, varName, resinfo, 0);
+ value = Tcl_SetVar2Ex(interp, varName, NULL, Tcl_NewStringObj(resinfo, -1), 0);
if (value == NULL) {
Tcl_AppendResult(interp, "couldn't set variable \"",
varName, "\"", NULL);
@@ -3930,13 +3930,13 @@ TestregexpObjCmd(
}
} else if (cflags & TCL_REG_CANMATCH) {
char *varName;
- const char *value;
+ Tcl_Obj *value;
char resinfo[TCL_INTEGER_SPACE * 2];
Tcl_RegExpGetInfo(regExpr, &info);
varName = Tcl_GetString(objv[2]);
sprintf(resinfo, "%ld", info.extendStart);
- value = Tcl_SetVar(interp, varName, resinfo, 0);
+ value = Tcl_SetVar2Ex(interp, varName, NULL, Tcl_NewStringObj(resinfo, -1), 0);
if (value == NULL) {
Tcl_AppendResult(interp, "couldn't set variable \"",
varName, "\"", NULL);
@@ -4281,7 +4281,7 @@ StaticInitProc(
Tcl_Interp *interp) /* Interpreter in which package is supposedly
* being loaded. */
{
- Tcl_SetVar(interp, "x", "loaded", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "x", NULL, Tcl_NewStringObj("loaded", -1), TCL_GLOBAL_ONLY);
return TCL_OK;
}
@@ -4726,7 +4726,7 @@ GetTimesCmd(
double timePer;
Tcl_Time start, stop;
Tcl_Obj *objPtr, **objv;
- const char *s;
+ Tcl_Obj *s;
char newString[TCL_INTEGER_SPACE];
/* alloc & free 100000 times */
@@ -4848,7 +4848,7 @@ GetTimesCmd(
fprintf(stderr, "Tcl_SetVar of \"12345\" 100000 times\n");
Tcl_GetTime(&start);
for (i = 0; i < 100000; i++) {
- s = Tcl_SetVar(interp, "a", "12345", TCL_LEAVE_ERR_MSG);
+ s = Tcl_SetVar2Ex(interp, "a", NULL, Tcl_NewStringObj("12345", -1), TCL_LEAVE_ERR_MSG);
if (s == NULL) {
return TCL_ERROR;
}
@@ -4862,7 +4862,7 @@ GetTimesCmd(
fprintf(stderr, "Tcl_GetVar of a==\"12345\" 100000 times\n");
Tcl_GetTime(&start);
for (i = 0; i < 100000; i++) {
- s = Tcl_GetVar(interp, "a", TCL_LEAVE_ERR_MSG);
+ s = Tcl_GetVar2Ex(interp, "a", NULL, TCL_LEAVE_ERR_MSG);
if (s == NULL) {
return TCL_ERROR;
}
@@ -4956,23 +4956,23 @@ TestsetCmd(
const char **argv) /* Argument strings. */
{
int flags = PTR2INT(data);
- const char *value;
+ Tcl_Obj *value;
if (argc == 2) {
Tcl_SetResult(interp, "before get", TCL_STATIC);
- value = Tcl_GetVar2(interp, argv[1], NULL, flags);
+ value = Tcl_GetVar2Ex(interp, argv[1], NULL, flags);
if (value == NULL) {
return TCL_ERROR;
}
- Tcl_AppendElement(interp, value);
+ Tcl_AppendElement(interp, Tcl_GetString(value));
return TCL_OK;
} else if (argc == 3) {
Tcl_SetResult(interp, "before set", TCL_STATIC);
- value = Tcl_SetVar2(interp, argv[1], NULL, argv[2], flags);
+ value = Tcl_SetVar2Ex(interp, argv[1], NULL, Tcl_NewStringObj(argv[2], -1), flags);
if (value == NULL) {
return TCL_ERROR;
}
- Tcl_AppendElement(interp, value);
+ Tcl_AppendElement(interp, Tcl_GetString(value));
return TCL_OK;
} else {
Tcl_AppendResult(interp, "wrong # args: should be \"",
@@ -4988,23 +4988,23 @@ Testset2Cmd(
const char **argv) /* Argument strings. */
{
int flags = PTR2INT(data);
- const char *value;
+ Tcl_Obj *value;
if (argc == 3) {
Tcl_SetResult(interp, "before get", TCL_STATIC);
- value = Tcl_GetVar2(interp, argv[1], argv[2], flags);
+ value = Tcl_GetVar2Ex(interp, argv[1], argv[2], flags);
if (value == NULL) {
return TCL_ERROR;
}
- Tcl_AppendElement(interp, value);
+ Tcl_AppendElement(interp, Tcl_GetString(value));
return TCL_OK;
} else if (argc == 4) {
Tcl_SetResult(interp, "before set", TCL_STATIC);
- value = Tcl_SetVar2(interp, argv[1], argv[2], argv[3], flags);
+ value = Tcl_SetVar2Ex(interp, argv[1], argv[2], Tcl_NewStringObj(argv[3], -1), flags);
if (value == NULL) {
return TCL_ERROR;
}
- Tcl_AppendElement(interp, value);
+ Tcl_AppendElement(interp, Tcl_GetString(value));
return TCL_OK;
} else {
Tcl_AppendResult(interp, "wrong # args: should be \"",
diff --git a/unix/dltest/pkgua.c b/unix/dltest/pkgua.c
index 3da7dfc..e5a03c1 100644
--- a/unix/dltest/pkgua.c
+++ b/unix/dltest/pkgua.c
@@ -215,7 +215,7 @@ Pkgua_Init(
return code;
}
- Tcl_SetVar(interp, "::pkgua_loaded", ".", TCL_APPEND_VALUE);
+ Tcl_SetVar2Ex(interp, "::pkgua_loaded", NULL, Tcl_NewStringObj(".", -1), TCL_APPEND_VALUE);
cmdTokens = PkguaInterpToTokens(interp);
cmdTokens[cmdIndex++] =
@@ -290,7 +290,7 @@ Pkgua_Unload(
PkguaDeleteTokens(interp);
- Tcl_SetVar(interp, "::pkgua_detached", ".", TCL_APPEND_VALUE);
+ Tcl_SetVar2Ex(interp, "::pkgua_detached", NULL, Tcl_NewStringObj(".", -1), TCL_APPEND_VALUE);
if (flags == TCL_UNLOAD_DETACH_FROM_PROCESS) {
/*
@@ -300,7 +300,7 @@ Pkgua_Unload(
*/
PkguaFreeTokensHashTable();
- Tcl_SetVar(interp, "::pkgua_unloaded", ".", TCL_APPEND_VALUE);
+ Tcl_SetVar2Ex(interp, "::pkgua_unloaded", NULL, Tcl_NewStringObj(".", -1), TCL_APPEND_VALUE);
}
return TCL_OK;
}
diff --git a/unix/tclAppInit.c b/unix/tclAppInit.c
index dac782b..7bed424 100644
--- a/unix/tclAppInit.c
+++ b/unix/tclAppInit.c
@@ -160,9 +160,9 @@ Tcl_AppInit(
*/
#ifdef DJGPP
- Tcl_SetVar(interp, "tcl_rcFileName", "~/tclsh.rc", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_rcFileName", NULL, Tcl_NewStringObj("~/tclsh.rc", -1), TCL_GLOBAL_ONLY);
#else
- Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_rcFileName", NULL, Tcl_NewStringObj("~/.tclshrc", -1), TCL_GLOBAL_ONLY);
#endif
return TCL_OK;
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index f9015b7..e2037d7 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -840,7 +840,7 @@ TclpSetVariables(
if (!Tcl_CreateNamespace(interp, "::tcl::mac", NULL, NULL)) {
Tcl_ResetResult(interp);
}
- Tcl_SetVar(interp, "::tcl::mac::locale", loc, TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "::tcl::mac::locale", NULL, Tcl_NewStringObj(loc, -1), TCL_GLOBAL_ONLY);
}
}
CFRelease(localeRef);
@@ -851,9 +851,9 @@ TclpSetVariables(
CONST char *str;
CFBundleRef bundleRef;
- Tcl_SetVar(interp, "tclDefaultLibrary", tclLibPath, TCL_GLOBAL_ONLY);
- Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath, TCL_GLOBAL_ONLY);
- Tcl_SetVar(interp, "tcl_pkgPath", " ",
+ Tcl_SetVar2Ex(interp, "tclDefaultLibrary", NULL, Tcl_NewStringObj(tclLibPath, -1), TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_pkgPath", NULL, Tcl_NewStringObj(tclLibPath, -1), TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_pkgPath", NULL, Tcl_NewStringObj(" ", -1),
TCL_GLOBAL_ONLY | TCL_APPEND_VALUE);
str = TclGetEnv("DYLD_FRAMEWORK_PATH", &ds);
@@ -869,9 +869,9 @@ TclpSetVariables(
*p = ' ';
}
} while (*p++);
- Tcl_SetVar(interp, "tcl_pkgPath", Tcl_DStringValue(&ds),
+ Tcl_SetVar2Ex(interp, "tcl_pkgPath", NULL, Tcl_NewStringObj(Tcl_DStringValue(&ds), -1),
TCL_GLOBAL_ONLY | TCL_APPEND_VALUE);
- Tcl_SetVar(interp, "tcl_pkgPath", " ",
+ Tcl_SetVar2Ex(interp, "tcl_pkgPath", NULL, Tcl_NewStringObj(" ", -1),
TCL_GLOBAL_ONLY | TCL_APPEND_VALUE);
Tcl_DStringFree(&ds);
}
@@ -916,9 +916,9 @@ TclpSetVariables(
}
#ifdef DJGPP
- Tcl_SetVar2(interp, "tcl_platform", "platform", "dos", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_platform", "platform", Tcl_NewStringObj("dos", -1), TCL_GLOBAL_ONLY);
#else
- Tcl_SetVar2(interp, "tcl_platform", "platform", "unix", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_platform", "platform", Tcl_NewStringObj("unix", -1), TCL_GLOBAL_ONLY);
#endif
unameOK = 0;
@@ -929,8 +929,8 @@ TclpSetVariables(
GetSystemInfo(&sysInfo);
if (osInfo.dwPlatformId < NUMPLATFORMS) {
- Tcl_SetVar2(interp, "tcl_platform", "os",
- platforms[osInfo.dwPlatformId], TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_platform", "os",
+ Tcl_NewStringObj(platforms[osInfo.dwPlatformId], -1), TCL_GLOBAL_ONLY);
}
sprintf(buffer, "%d.%d", osInfo.dwMajorVersion, osInfo.dwMinorVersion);
Tcl_SetVar2(interp, "tcl_platform", "osVersion", buffer, TCL_GLOBAL_ONLY);
diff --git a/unix/tclUnixTest.c b/unix/tclUnixTest.c
index b6529c2..6ffc5e4 100644
--- a/unix/tclUnixTest.c
+++ b/unix/tclUnixTest.c
@@ -35,8 +35,8 @@
*/
typedef struct Pipe {
- TclFile readFile; /* File handle for reading from the pipe.
- * NULL means pipe doesn't exist yet. */
+ TclFile readFile; /* File handle for reading from the pipe. NULL
+ * means pipe doesn't exist yet. */
TclFile writeFile; /* File handle for writing from the pipe. */
int readCount; /* Number of times the file handler for this
* file has triggered and the file was
@@ -53,33 +53,24 @@ static Pipe testPipes[MAX_PIPES];
* The stuff below is used by the testalarm and testgotsig ommands.
*/
-static char *gotsig = "0";
+static CONST char *gotsig = "0";
/*
* Forward declarations of functions defined later in this file:
*/
-static void TestFileHandlerProc(ClientData clientData, int mask);
-static int TestfilehandlerCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestfilewaitCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestfindexecutableCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestgetopenfileCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestgetdefencdirCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestsetdefencdirCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
+static Tcl_CmdProc TestalarmCmd;
+static Tcl_CmdProc TestchmodCmd;
+static Tcl_CmdProc TestfilehandlerCmd;
+static Tcl_CmdProc TestfilewaitCmd;
+static Tcl_CmdProc TestfindexecutableCmd;
+static Tcl_ObjCmdProc TestgetdefencdirCmd;
+static Tcl_CmdProc TestgetopenfileCmd;
+static Tcl_CmdProc TestgotsigCmd;
+static Tcl_ObjCmdProc TestsetdefencdirCmd;
int TclplatformtestInit(Tcl_Interp *interp);
-static int TestalarmCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static int TestgotsigCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
-static void AlarmHandler(int signum);
-static int TestchmodCmd(ClientData dummy,
- Tcl_Interp *interp, int argc, CONST char **argv);
+static Tcl_FileProc TestFileHandlerProc;
+static void AlarmHandler(int signum);
/*
*----------------------------------------------------------------------
@@ -112,9 +103,9 @@ TclplatformtestInit(
(ClientData) 0, NULL);
Tcl_CreateCommand(interp, "testgetopenfile", TestgetopenfileCmd,
(ClientData) 0, NULL);
- Tcl_CreateCommand(interp, "testgetdefenc", TestgetdefencdirCmd,
+ Tcl_CreateObjCommand(interp, "testgetdefenc", TestgetdefencdirCmd,
(ClientData) 0, NULL);
- Tcl_CreateCommand(interp, "testsetdefenc", TestsetdefencdirCmd,
+ Tcl_CreateObjCommand(interp, "testsetdefenc", TestsetdefencdirCmd,
(ClientData) 0, NULL);
Tcl_CreateCommand(interp, "testalarm", TestalarmCmd,
(ClientData) 0, NULL);
@@ -167,7 +158,7 @@ TestfilehandlerCmd(
if (argc < 2) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
- " option ... \"", NULL);
+ " option ... \"", NULL);
return TCL_ERROR;
}
pipePtr = NULL;
@@ -194,7 +185,7 @@ TestfilehandlerCmd(
} else if (strcmp(argv[1], "clear") == 0) {
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " clear index\"", NULL);
+ argv[0], " clear index\"", NULL);
return TCL_ERROR;
}
pipePtr->readCount = pipePtr->writeCount = 0;
@@ -203,7 +194,7 @@ TestfilehandlerCmd(
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " counts index\"", NULL);
+ argv[0], " counts index\"", NULL);
return TCL_ERROR;
}
sprintf(buf, "%d %d", pipePtr->readCount, pipePtr->writeCount);
@@ -211,7 +202,7 @@ TestfilehandlerCmd(
} else if (strcmp(argv[1], "create") == 0) {
if (argc != 5) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " create index readMode writeMode\"", NULL);
+ argv[0], " create index readMode writeMode\"", NULL);
return TCL_ERROR;
}
if (pipePtr->readFile == NULL) {
@@ -259,30 +250,30 @@ TestfilehandlerCmd(
} else if (strcmp(argv[1], "empty") == 0) {
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " empty index\"", NULL);
+ argv[0], " empty index\"", NULL);
return TCL_ERROR;
}
while (read(GetFd(pipePtr->readFile), buffer, 4000) > 0) {
- /* Empty loop body. */
+ /* Empty loop body. */
}
} else if (strcmp(argv[1], "fill") == 0) {
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " fill index\"", NULL);
+ argv[0], " fill index\"", NULL);
return TCL_ERROR;
}
memset(buffer, 'a', 4000);
while (write(GetFd(pipePtr->writeFile), buffer, 4000) > 0) {
- /* Empty loop body. */
+ /* Empty loop body. */
}
} else if (strcmp(argv[1], "fillpartial") == 0) {
char buf[TCL_INTEGER_SPACE];
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " fillpartial index\"", NULL);
+ argv[0], " fillpartial index\"", NULL);
return TCL_ERROR;
}
@@ -294,7 +285,7 @@ TestfilehandlerCmd(
} else if (strcmp(argv[1], "wait") == 0) {
if (argc != 5) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"",
- argv[0], " wait index readable|writable timeout\"", NULL);
+ argv[0], " wait index readable|writable timeout\"", NULL);
return TCL_ERROR;
}
if (pipePtr->readFile == NULL) {
@@ -485,16 +476,16 @@ TestgetopenfileCmd(
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " channelName forWriting\"", NULL);
+ " channelName forWriting\"", NULL);
return TCL_ERROR;
}
if (Tcl_GetOpenFile(interp, argv[1], atoi(argv[2]), 1, &filePtr)
- == TCL_ERROR) {
+ == TCL_ERROR) {
return TCL_ERROR;
}
if (filePtr == (ClientData) NULL) {
Tcl_AppendResult(interp,
- "Tcl_GetOpenFile succeeded but FILE * NULL!", NULL);
+ "Tcl_GetOpenFile succeeded but FILE * NULL!", NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -521,16 +512,22 @@ static int
TestsetdefencdirCmd(
ClientData clientData, /* Not used. */
Tcl_Interp *interp, /* Current interpreter. */
- int argc, /* Number of arguments. */
- CONST char **argv) /* Argument strings. */
+ int objc, /* Number of arguments. */
+ Tcl_Obj *CONST *objv) /* Argument strings. */
{
- if (argc != 2) {
- Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " defaultDir\"", NULL);
+ Tcl_Obj *searchPath;
+
+ if (objc != 2) {
+ Tcl_WrongNumArgs(interp, 1, objv, "defaultDir");
return TCL_ERROR;
}
- Tcl_SetDefaultEncodingDir(argv[1]);
+ searchPath = Tcl_GetEncodingSearchPath();
+
+ searchPath = Tcl_DuplicateObj(searchPath);
+ Tcl_ListObjReplace(NULL, searchPath, 0, 0, 1, &objv[1]);
+ Tcl_SetEncodingSearchPath(searchPath);
+
return TCL_OK;
}
@@ -555,15 +552,25 @@ static int
TestgetdefencdirCmd(
ClientData clientData, /* Not used. */
Tcl_Interp *interp, /* Current interpreter. */
- int argc, /* Number of arguments. */
- CONST char **argv) /* Argument strings. */
+ int objc, /* Number of arguments. */
+ Tcl_Obj *CONST *objv) /* Argument strings. */
{
- if (argc != 1) {
- Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], NULL);
- return TCL_ERROR;
+ int numDirs;
+ Tcl_Obj *first, *searchPath;
+
+ if (objc != 1) {
+ Tcl_WrongNumArgs(interp, 1, objv, NULL);
+ return TCL_ERROR;
+ }
+
+ searchPath = Tcl_GetEncodingSearchPath();
+ Tcl_ListObjLength(interp, searchPath, &numDirs);
+ if (numDirs == 0) {
+ return TCL_ERROR;
}
+ Tcl_ListObjIndex(NULL, searchPath, 0, &first);
- Tcl_AppendResult(interp, Tcl_GetDefaultEncodingDir(), NULL);
+ Tcl_SetObjResult(interp, first);
return TCL_OK;
}
@@ -706,7 +713,7 @@ TestchmodCmd(
char *rest;
if (argc < 2) {
- usage:
+ usage:
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
" mode file ?file ...?", NULL);
return TCL_ERROR;
@@ -734,3 +741,12 @@ TestchmodCmd(
}
return TCL_OK;
}
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * tab-width: 8
+ * End:
+ */
diff --git a/win/tclAppInit.c b/win/tclAppInit.c
index 0edd2c3..158c37e 100644
--- a/win/tclAppInit.c
+++ b/win/tclAppInit.c
@@ -185,7 +185,8 @@ Tcl_AppInit(
* user-specific startup file will be run under any conditions.
*/
- Tcl_SetVar(interp, "tcl_rcFileName", "~/tclshrc.tcl", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_rcFileName", NULL,
+ Tcl_NewStringObj("~/tclshrc.tcl", -1), TCL_GLOBAL_ONLY);
return TCL_OK;
}
diff --git a/win/tclWinInit.c b/win/tclWinInit.c
index 5baf020..7d3d77f 100644
--- a/win/tclWinInit.c
+++ b/win/tclWinInit.c
@@ -557,7 +557,7 @@ void
TclpSetVariables(
Tcl_Interp *interp) /* Interp to initialize. */
{
- CONST char *ptr;
+ Tcl_Obj *ptr;
char buffer[TCL_INTEGER_SPACE * 2];
union {
SYSTEM_INFO info;
@@ -580,17 +580,17 @@ TclpSetVariables(
* Define the tcl_platform array.
*/
- Tcl_SetVar2(interp, "tcl_platform", "platform", "windows",
+ Tcl_SetVar2Ex(interp, "tcl_platform", "platform", Tcl_NewStringObj("windows", -1),
TCL_GLOBAL_ONLY);
if (osInfo.dwPlatformId < NUMPLATFORMS) {
- Tcl_SetVar2(interp, "tcl_platform", "os",
- platforms[osInfo.dwPlatformId], TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_platform", "os",
+ Tcl_NewStringObj(platforms[osInfo.dwPlatformId], -1), TCL_GLOBAL_ONLY);
}
wsprintfA(buffer, "%d.%d", osInfo.dwMajorVersion, osInfo.dwMinorVersion);
- Tcl_SetVar2(interp, "tcl_platform", "osVersion", buffer, TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "tcl_platform", "osVersion", Tcl_NewStringObj(buffer, -1), TCL_GLOBAL_ONLY);
if (sys.oemId.wProcessorArchitecture < NUMPROCESSORS) {
- Tcl_SetVar2(interp, "tcl_platform", "machine",
- processors[sys.oemId.wProcessorArchitecture],
+ Tcl_SetVar2Ex(interp, "tcl_platform", "machine",
+ Tcl_NewStringObj(processors[sys.oemId.wProcessorArchitecture], -1),
TCL_GLOBAL_ONLY);
}
@@ -603,7 +603,7 @@ TclpSetVariables(
* command.
*/
- Tcl_SetVar2(interp, "tcl_platform", "debug", "1",
+ Tcl_SetVar2Ex(interp, "tcl_platform", "debug", Tcl_NewIntObj(1),
TCL_GLOBAL_ONLY);
#endif
@@ -613,21 +613,21 @@ TclpSetVariables(
*/
Tcl_DStringInit(&ds);
- ptr = Tcl_GetVar2(interp, "env", "HOME", TCL_GLOBAL_ONLY);
+ ptr = Tcl_GetVar2Ex(interp, "env", "HOME", TCL_GLOBAL_ONLY);
if (ptr == NULL) {
- ptr = Tcl_GetVar2(interp, "env", "HOMEDRIVE", TCL_GLOBAL_ONLY);
+ ptr = Tcl_GetVar2Ex(interp, "env", "HOMEDRIVE", TCL_GLOBAL_ONLY);
if (ptr != NULL) {
- Tcl_DStringAppend(&ds, ptr, -1);
+ Tcl_DStringAppend(&ds, Tcl_GetString(ptr), -1);
}
- ptr = Tcl_GetVar2(interp, "env", "HOMEPATH", TCL_GLOBAL_ONLY);
+ ptr = Tcl_GetVar2Ex(interp, "env", "HOMEPATH", TCL_GLOBAL_ONLY);
if (ptr != NULL) {
- Tcl_DStringAppend(&ds, ptr, -1);
+ Tcl_DStringAppend(&ds, Tcl_GetString(ptr), -1);
}
if (Tcl_DStringLength(&ds) > 0) {
- Tcl_SetVar2(interp, "env", "HOME", Tcl_DStringValue(&ds),
+ Tcl_SetVar2Ex(interp, "env", "HOME", Tcl_NewStringObj(Tcl_DStringValue(&ds), -1),
TCL_GLOBAL_ONLY);
} else {
- Tcl_SetVar2(interp, "env", "HOME", "c:\\", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2Ex(interp, "env", "HOME", Tcl_NewStringObj("c:\\", -1), TCL_GLOBAL_ONLY);
}
}
@@ -645,7 +645,7 @@ TclpSetVariables(
Tcl_WinTCharToUtf((LPTSTR)szUserName, cbUserNameLen, &ds);
}
}
- Tcl_SetVar2(interp, "tcl_platform", "user", Tcl_DStringValue(&ds),
+ Tcl_SetVar2Ex(interp, "tcl_platform", "user", Tcl_NewStringObj(Tcl_DStringValue(&ds), -1),
TCL_GLOBAL_ONLY);
Tcl_DStringFree(&ds);
}