From 3eb5dfa1d24599dedc834f002282d654e757b552 Mon Sep 17 00:00:00 2001 From: hobbs Date: Wed, 26 Jan 2000 03:37:40 +0000 Subject: * 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] --- generic/tcl.decls | 4 ++-- generic/tclClock.c | 10 ++++------ generic/tclCmdIL.c | 12 ++++++++---- 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 +# 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 // 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); -- cgit v0.12