summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-12-13 13:01:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-12-13 13:01:49 (GMT)
commitd787284ee18526d2046981d208a0513d480877eb (patch)
tree3a0e35b2ff7a25ede71cd8d0585df70c1c245625
parent454b7f29d0703cf980ef403b12c5185f92e0c92e (diff)
parent72da5b18e878aeb9744fa4b746b646eb98e750cd (diff)
downloadtcl-d787284ee18526d2046981d208a0513d480877eb.zip
tcl-d787284ee18526d2046981d208a0513d480877eb.tar.gz
tcl-d787284ee18526d2046981d208a0513d480877eb.tar.bz2
merge trunk
-rw-r--r--ChangeLog34
-rw-r--r--changes36
-rw-r--r--generic/tcl.h12
-rw-r--r--generic/tclInt.h28
-rwxr-xr-xtools/tcltk-man2html.tcl22
-rw-r--r--unix/Makefile.in3
6 files changed, 99 insertions, 36 deletions
diff --git a/ChangeLog b/ChangeLog
index 5d4673b..ee45fa8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,28 @@
+2012-12-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: Fix Tcl_DecrRefCount macro such that it
+ doesn't access its objPtr parameter twice any more.
+
+2012-12-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl (plus-pkgs): Increased robustness of
+ version number detection code to deal with packages whose names are
+ prefixes of other packages.
+ * unix/Makefile.in (dist): Added pkgs/package.list.txt to distribution
+ builds to ensure that 'make html' will work better.
+
2012-12-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * tests/chan.test: Clean up unwanted eofchar side-effect of
- chan-4.6 leading to a spurious "'" at end of chan.test under
- certain conditions (see [Bug 3389289] and [Bug 3389251]).
- * doc/expr.n: [Bug 3594188] Clarifications about commas.
+
+ * tests/chan.test: Clean up unwanted eofchar side-effect of chan-4.6
+ leading to a spurious "'" at end of chan.test under certain conditions
+ (see [Bug 3389289] and [Bug 3389251]).
+
+ * doc/expr.n: [Bug 3594188]: Clarifications about commas.
2012-12-08 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
* generic/tclIO.c: Fix busyloop at exit under TCL_FINALIZE_ON_EXIT
- when there are unflushed nonblocking channels. Thanks Miguel for
+ when there are unflushed nonblocking channels. Thanks Miguel for
spotting.
2012-12-07 Jan Nijtmans <nijtmans@users.sf.net>
@@ -24,10 +40,10 @@
2012-11-26 Reinhard Max <max@suse.de>
* unix/tclUnixSock.c: Factor out creation of the -sockname and
- -peername lists from TcpGetOptionProc() to TcpHostPortList().
- Make it robust against implementations of getnameinfo() that error
- out if reverse mapping fails instead of falling back to the
- numeric representation.
+ -peername lists from TcpGetOptionProc() to TcpHostPortList(). Make it
+ robust against implementations of getnameinfo() that error out if
+ reverse mapping fails instead of falling back to the numeric
+ representation.
2012-11-20 Donal K. Fellows <dkf@users.sf.net>
diff --git a/changes b/changes
index 0ced7a1..b517cec 100644
--- a/changes
+++ b/changes
@@ -8117,11 +8117,45 @@ Dropped support for OS X versions less than 10.4 (Tiger) (fellows)
--- Released 8.6b3, September 18, 2012 --- See ChangeLog for details ---
+2012-09-20 (enhancement) full Unicode support (nijtmans)
+=> dde 1.4.0
+
+2012-09-20 (enhancement) update bundled zlib to 1.2.7 (nijtmans)
+
2012-10-03 (bug fix) exit panic on stacked std channel (griffin,porter)
2012-10-14 (bug fix) [tcl::Bgerror] crash on non-dict options (nijtmans)
+2012-10-16 (TIP 400) New [zlib] options to set compression dict (fellows)
+
+2012-10-16 (TIP 405) New commands [lmap] and [dict map] (fellows)
+
+2012-10-24 (enhancement) [dict unset] now bytecompiled (fellows)
+
+2012-11-05 (TIP 413) Revisions to default [string trim*] trimset (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2012-11-05 (enhancement) Now bytecompiled: [array exists], [array set],
+[array unset], [dict create], [dict exists], [dict merge], [format],
+[info commands], [info coroutine], [info level], [info object],
+[namespace current], [namespace code], [namespace qualifiers], [namespace tail],
+[namespace which], [regsub], [self], [string first], [string last],
+[string map], [string range], [tailcall], [yield]. (fellows)
+
2012-11-06 (bug fix)[3581754] avoid multiple callback on keep-alive (fellows)
=> http 2.8.5
---- Released 8.6.0, ??? ??, 2012 --- See ChangeLog for details ---
+2012-11-07 tzdata updated to Olson's tzdata2012i (kenny)
+
+2012-11-13 (bug fix)[3567063] thread fp settings from master (mistachkin)
+
+2012-11-14 (bug fix)[2933003] tempfile creation in $TMPDIR (fellows)
+
+2012-11-15 (TIP 416) New [load] options -global and -lazy (nijtmans)
+
+2012-11-20 (bug fix)[3033307] base64 trail whitespace (kovalenko,goth)
+
+2012-12-03 (bug fix) [configure] query broke init from argv (porter)
+=> tcltest 2.3.5
+
+--- Released 8.6.0, December 20, 2012 --- See ChangeLog for details ---
diff --git a/generic/tcl.h b/generic/tcl.h
index 162983b..f7d54b5 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -681,10 +681,7 @@ typedef struct Tcl_Obj {
* whether an object is shared (i.e. has reference count > 1). Note: clients
* should use Tcl_DecrRefCount() when they are finished using an object, and
* should never call TclFreeObj() directly. TclFreeObj() is only defined and
- * made public in tcl.h to support Tcl_DecrRefCount's macro definition. Note
- * also that Tcl_DecrRefCount() refers to the parameter "obj" twice. This
- * means that you should avoid calling it with an expression that is expensive
- * to compute or has side effects.
+ * made public in tcl.h to support Tcl_DecrRefCount's macro definition.
*/
void Tcl_IncrRefCount(Tcl_Obj *objPtr);
@@ -2310,7 +2307,12 @@ TCLAPI void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
* http://c2.com/cgi/wiki?TrivialDoWhileLoop
*/
# define Tcl_DecrRefCount(objPtr) \
- do { if (--(objPtr)->refCount <= 0) TclFreeObj(objPtr); } while(0)
+ do { \
+ Tcl_Obj *_objPtr = (objPtr); \
+ if (_objPtr->refCount-- < 2) { \
+ TclFreeObj(_objPtr); \
+ } \
+ } while(0)
# define Tcl_IsShared(objPtr) \
((objPtr)->refCount > 1)
#endif
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 0efb1b6..7c699c9 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -3934,24 +3934,26 @@ typedef const char *TclDTraceStr;
* Invalidate the string rep first so we can use the bytes value for our
* pointer chain, and signal an obj deletion (as opposed to shimmering) with
* 'length == -1'.
- * Use empty 'if ; else' to handle use in unbraced outer if/else conditions.
*/
# define TclDecrRefCount(objPtr) \
- if (--(objPtr)->refCount > 0) ; else { \
- if (!(objPtr)->typePtr || !(objPtr)->typePtr->freeIntRepProc) { \
- TCL_DTRACE_OBJ_FREE(objPtr); \
- if ((objPtr)->bytes \
- && ((objPtr)->bytes != tclEmptyStringRep)) { \
- ckfree((char *) (objPtr)->bytes); \
+ do { \
+ Tcl_Obj *_objPtr = (objPtr); \
+ if (_objPtr->refCount-- < 2) { \
+ if (!_objPtr->typePtr || !_objPtr->typePtr->freeIntRepProc) { \
+ TCL_DTRACE_OBJ_FREE(_objPtr); \
+ if (_objPtr->bytes \
+ && (_objPtr->bytes != tclEmptyStringRep)) { \
+ ckfree((char *) _objPtr->bytes); \
+ } \
+ _objPtr->length = -1; \
+ TclFreeObjStorage(_objPtr); \
+ TclIncrObjsFreed(); \
+ } else { \
+ TclFreeObj(_objPtr); \
} \
- (objPtr)->length = -1; \
- TclFreeObjStorage(objPtr); \
- TclIncrObjsFreed(); \
- } else { \
- TclFreeObj(objPtr); \
} \
- }
+ } while(0)
#if defined(PURIFY)
diff --git a/tools/tcltk-man2html.tcl b/tools/tcltk-man2html.tcl
index b4c0f6c..4d7b989 100755
--- a/tools/tcltk-man2html.tcl
+++ b/tools/tcltk-man2html.tcl
@@ -1,6 +1,12 @@
#!/usr/bin/env tclsh
-package require Tcl 8.6-
+if {[catch {package require Tcl 8.6-} msg]} {
+ puts stderr "ERROR: $msg"
+ puts stderr "If running this script from 'make html', set the\
+ NATIVE_TCLSH environment\nvariable to point to an installed\
+ tclsh8.6 (or the equivalent tclsh86.exe\non Windows)."
+ exit 1
+}
# Convert Ousterhout format man pages into highly crosslinked hypertext.
#
@@ -16,7 +22,7 @@ package require Tcl 8.6-
# Copyright (c) 1995-1997 Roger E. Critchlow Jr
# Copyright (c) 2004-2010 Donal K. Fellows
-regexp {\d+\.\d+} {$Revision: 1.49 $} ::Version
+set ::Version "50/8.6"
set ::CSSFILE "docs.css"
##
@@ -454,16 +460,18 @@ proc plus-pkgs {type args} {
}
if {!$build_tcl} return
set result {}
+ set pkgsdir $tcltkdir/$tcldir/pkgs
foreach {dir name} $args {
- set globpat $tcltkdir/$tcldir/pkgs/$dir*/doc/*.$type
- if {![llength [glob -nocomplain $globpat]]} {
+ set globpat $pkgsdir/{$dir,$dir\[0-9\]*}/doc/*.$type
+ if {![llength [glob -type f -nocomplain $globpat]]} {
# Fallback for manpages generated using doctools
- set globpat $tcltkdir/$tcldir/pkgs/$dir*/doc/man/*.$type
- if {![llength [glob -nocomplain $globpat]]} {
+ set globpat $pkgsdir/{$dir,$dir\[0-9\]*}/doc/man/*.$type
+ if {![llength [glob -type f -nocomplain $globpat]]} {
continue
}
}
- regexp "pkgs/${dir}(.*)/doc$" [glob $tcltkdir/$tcldir/pkgs/$dir*/doc] \
+ regexp "pkgs/${dir}(.*)/doc$" \
+ [lindex [glob -type d $pkgsdir/{$dir,$dir\[0-9\]*}/doc] 0] \
-> version
switch $type {
n {
diff --git a/unix/Makefile.in b/unix/Makefile.in
index df05759..680d4ce 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -2019,7 +2019,8 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
cp -p $(TOMMATH_SRCS) $(TOMMATH_DIR)/*.h \
$(DISTDIR)/libtommath
mkdir $(DISTDIR)/pkgs
- cp $(TOP_DIR)/pkgs/README $(DISTDIR)/pkgs
+ cp $(TOP_DIR)/pkgs/README $(TOP_DIR)/pkgs/package.list.txt \
+ $(DISTDIR)/pkgs
for i in `ls $(DISTROOT)/pkgs/*.tar.gz 2> /dev/null`; do \
tar -C $(DISTDIR)/pkgs -xzf "$$i"; \
done