summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorhobbs <hobbs>2000-01-26 03:37:40 (GMT)
committerhobbs <hobbs>2000-01-26 03:37:40 (GMT)
commit3eb5dfa1d24599dedc834f002282d654e757b552 (patch)
treebd7431bafb7dd513d0d3ef639da18cf478ec87e4 /generic
parent04bd0d9f87302a0c6dfcf3641cee54bc29c3f223 (diff)
downloadtcl-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]
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.decls4
-rw-r--r--generic/tclClock.c10
-rw-r--r--generic/tclCmdIL.c12
-rw-r--r--generic/tclFileName.c11
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);