diff options
author | hobbs <hobbs> | 2000-01-26 03:37:40 (GMT) |
---|---|---|
committer | hobbs <hobbs> | 2000-01-26 03:37:40 (GMT) |
commit | 3eb5dfa1d24599dedc834f002282d654e757b552 (patch) | |
tree | bd7431bafb7dd513d0d3ef639da18cf478ec87e4 | |
parent | 04bd0d9f87302a0c6dfcf3641cee54bc29c3f223 (diff) | |
download | tcl-3eb5dfa1d24599dedc834f002282d654e757b552.zip tcl-3eb5dfa1d24599dedc834f002282d654e757b552.tar.gz tcl-3eb5dfa1d24599dedc834f002282d654e757b552.tar.bz2 |
* generic/tclClock.c (FormatClock): inlined resultPtr, as it
conflicted with var creation for HAVE_TZSET #def [Bug: 4063]
* generic/tclCmdIL.c (Tcl_LsortObjCmd): fixed potential leak
when calling lsort -command with bad command [Bug: 4067]
* generic/tclFileName.c (Tcl_JoinPath): added support for special
QNX node id prefixes in pathnames [Bug: 4053]
-rw-r--r-- | generic/tcl.decls | 4 | ||||
-rw-r--r-- | generic/tclClock.c | 10 | ||||
-rw-r--r-- | generic/tclCmdIL.c | 12 | ||||
-rw-r--r-- | generic/tclFileName.c | 11 |
4 files changed, 24 insertions, 13 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls index de67fc2..7238d14 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -10,7 +10,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: tcl.decls,v 1.29 2000/01/24 02:29:57 hobbs Exp $ +# RCS: @(#) $Id: tcl.decls,v 1.30 2000/01/26 03:37:40 hobbs Exp $ library tcl @@ -972,7 +972,7 @@ declare 280 generic { # # C-Level API for (un)stacking of channels. This allows the introduction # of filtering channels with relatively little changes to the core. -# This patch was created in cooperation with Jan Nijtmans <nijtmans@wxs.nl> +# This patch was created in cooperation with Jan Nijtmans j.nijtmans@chello.nl # and is therefore part of his plus-patches too. # # It would have been possible to place the following definitions according diff --git a/generic/tclClock.c b/generic/tclClock.c index ccf6638..b155b4d 100644 --- a/generic/tclClock.c +++ b/generic/tclClock.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclClock.c,v 1.7 2000/01/12 11:12:52 hobbs Exp $ + * RCS: @(#) $Id: tclClock.c,v 1.8 2000/01/26 03:37:40 hobbs Exp $ */ #include "tcl.h" @@ -261,7 +261,6 @@ FormatClock(interp, clockVal, useGMT, format) Tcl_DString buffer; int bufSize; char *p; - Tcl_Obj *resultPtr; int result; time_t tclockVal; #ifndef HAVE_TM_ZONE @@ -269,7 +268,6 @@ FormatClock(interp, clockVal, useGMT, format) char *savedTZEnv = NULL; /* lint. */ #endif - resultPtr = Tcl_GetObjResult(interp); #ifdef HAVE_TZSET /* * Some systems forgot to call tzset in localtime, make sure its done. @@ -343,12 +341,12 @@ FormatClock(interp, clockVal, useGMT, format) } #endif if ((result == 0) && (*format != '\0')) { - Tcl_AppendStringsToObj(resultPtr, "bad format string \"", format, - "\"", (char *) NULL); + Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), + "bad format string \"", format, "\"", (char *) NULL); return TCL_ERROR; } - Tcl_SetStringObj(resultPtr, buffer.string, -1); + Tcl_SetStringObj(Tcl_GetObjResult(interp), buffer.string, -1); Tcl_DStringFree(&buffer); return TCL_OK; } diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 4240f84..32567a9 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdIL.c,v 1.22 2000/01/21 02:25:26 hobbs Exp $ + * RCS: @(#) $Id: tclCmdIL.c,v 1.23 2000/01/26 03:37:40 hobbs Exp $ */ #include "tclInt.h" @@ -2600,14 +2600,18 @@ Tcl_LsortObjCmd(clientData, interp, objc, objv) */ Tcl_Obj *newCommandPtr = Tcl_DuplicateObj(cmdPtr); + Tcl_Obj *newObjPtr = Tcl_NewObj(); - if (Tcl_ListObjAppendElement(interp, newCommandPtr, Tcl_NewObj()) - != TCL_OK) { + Tcl_IncrRefCount(newCommandPtr); + if (Tcl_ListObjAppendElement(interp, newCommandPtr, newObjPtr) + != TCL_OK) { + Tcl_DecrRefCount(newCommandPtr); + Tcl_IncrRefCount(newObjPtr); + Tcl_DecrRefCount(newObjPtr); return TCL_ERROR; } Tcl_ListObjAppendElement(interp, newCommandPtr, Tcl_NewObj()); sortInfo.compareCmdPtr = newCommandPtr; - Tcl_IncrRefCount(newCommandPtr); } sortInfo.resultCode = Tcl_ListObjGetElements(interp, objv[objc-1], diff --git a/generic/tclFileName.c b/generic/tclFileName.c index d1d9c65..f9f1a7c 100644 --- a/generic/tclFileName.c +++ b/generic/tclFileName.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclFileName.c,v 1.9 2000/01/24 02:29:58 hobbs Exp $ + * RCS: @(#) $Id: tclFileName.c,v 1.10 2000/01/26 03:37:41 hobbs Exp $ */ #include "tclInt.h" @@ -762,6 +762,15 @@ Tcl_JoinPath(argc, argv, resultPtr) * beginning of the path. */ +#ifdef __QNX__ + /* + * Check for QNX //<node id> prefix + */ + if (*p && (strlen(p) > 3) && + (p[0] == '/') && (p[1] == '/') && atoi(&p[2])) { + p += 3; + } +#endif if (*p == '/') { Tcl_DStringSetLength(resultPtr, oldLength); Tcl_DStringAppend(resultPtr, "/", 1); |