diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-12-04 15:12:12 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-12-04 15:12:12 (GMT) |
commit | 19d35f4ef53660720d360042a30f3d9dafd5e5be (patch) | |
tree | 67fa2f16a142415270d6e1682f46288b6310666f | |
parent | 279358fa3f6fd886a5cf940ea9223c5a51d6f304 (diff) | |
download | tcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.zip tcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.tar.gz tcl-19d35f4ef53660720d360042a30f3d9dafd5e5be.tar.bz2 |
more eliminations of 'deprecated' calls
-rw-r--r-- | generic/tclBasic.c | 21 | ||||
-rw-r--r-- | generic/tclCmdIL.c | 12 | ||||
-rw-r--r-- | generic/tclEnv.c | 10 | ||||
-rw-r--r-- | generic/tclIndexObj.c | 4 | ||||
-rw-r--r-- | generic/tclInterp.c | 2 | ||||
-rw-r--r-- | generic/tclMain.c | 10 | ||||
-rw-r--r-- | generic/tclTest.c | 36 | ||||
-rw-r--r-- | unix/dltest/pkgua.c | 6 | ||||
-rw-r--r-- | unix/tclAppInit.c | 4 | ||||
-rw-r--r-- | unix/tclUnixInit.c | 20 | ||||
-rw-r--r-- | unix/tclUnixTest.c | 118 | ||||
-rw-r--r-- | win/tclAppInit.c | 3 | ||||
-rw-r--r-- | win/tclWinInit.c | 32 |
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®_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); } |