| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
count > 1 to return a string with a float value instead of a rounded
off integer. [Bug 1202178]
|
|
|
|
| |
integer
|
|
|
|
|
|
| |
boolean literals accepted by Tcl_GetBoolean, including prefixes
like "y" and "f", and to allow "eq" and "ne" as function names
in the proper context. [Bug 1201589].
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_ExprBooleanObj.
* generic/tclCmdMZ.c ([string is boolean/true/false]): Rewrite
dropping string-based Tcl_GetBoolean call, so that internal reps
are kept for subsequent quick boolean operations.
* generic/tclExecute.c: Dropped most special handling of the
"boolean" Tcl_ObjType, since that type should now be rarely
encountered.
* doc/BoolObj.3: Rewrite of documentation dropping many details
about the internals of Tcl_Objs. Shorter documentation focuses on
the function and use of the routines.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c: that only string values like "yes" and "false"
* tests/obj.test: are kept as the "boolean" Tcl_ObjType. The
string values "0" and "1" are kept as "int" Tcl_ObjType, which also
produce quick calls to Tcl_GetBooleanFromObj(). Since this internal
change means a Tcl_ConvertToType to a "boolean" Tcl_ObjType might
not produce a Tcl_Obj of type "boolean", the registration of the
"boolean" type is also removed.
***POTENTIAL INCOMPATIBILITY***
For callers of Tcl_GetObjType on the type name "boolean".
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/listObj.test: registration of the Tcl_ObjType's "list",
* tests/obj.test: "procbody", "index", "ensembleCommand",
"localVarName", and "levelReference". The only reason to register
a Tcl_ObjType is to have it returned by Tcl_GetObjType, and the
only reason for that is to retrieve a (Tcl_ObjType *) to pass to
Tcl_ConvertToType(). None of the types above can support a
Tcl_ConvertToType() call; they panic. Better not to offer something
than to lead users into a panic.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclTest.c:
* generic/tclUtil.c:
* win/tclWin32Dll.c: fixed link error due to direct access by
tclTest.c to the MODULE_SCOPE tclPlatform global: renamed existing
TclWinGetPlatform() accessor to TclGetPlatform() and moved it to
generic code so that it can be used by on all platforms where
MODULE_SCOPE is enforced.
* macosx/tclMacOSXBundle.c:
* unix/tclUnixInit.c:
* unix/tcl.m4 (Darwin): made use of CoreFoundation API configurable
and added test of CoreFoundation availablility to allow building on
ppc64, replaced HAVE_CFBUNDLE by HAVE_COREFOUNDATION; test for
availability of Tiger or later OSSpinLockLock API.
* unix/tclUnixNotfy.c:
* unix/Makefile.in:
* macosx/tclMacOSXNotify.c (new file): when CoreFoundation is
available, use new CFRunLoop based notifier: allows easy integration
with other event loops on Mac OS X, in particular the TkAqua Carbon
event loop is now integrated via a standard tcl event source (instead
of TkAqua upon loading having to finalize the exsting notifier and
replace it with its custom version). [Patch 1202052]
* tests/unixNotfy.test: don't run unthreaded tests on Darwin
since notifier may be using threads even in unthreaded core.
* unix/tclUnixPort.h:
* unix/tcl.m4 (Darwin): test for thread-unsafe realpath durning
configure, as Darwin 7 and later realpath is threadsafe.
* macosx/Makefile: enable configure caching.
* unix/configure.in: wrap tclConfig.h header in #ifndef _TCLCONFIG so
that it can be included more than once without warnings from gcc4.0
(as happens e.g. when including both tclInt.h and tclPort.h)
* macosx/tclMacOSXBundle.c:
* unix/tclUnixChan.c:
* unix/tclLoadDyld.c:
* unix/tclUnixInit.c: fixed gcc 4.0 warnings.
* unix/configure: autoconf-2.59
* unix/tclConfig.h.in: autoheader-2.59
* generic/tclIntDecls.h:
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c: make genstubs
|
|
|
|
|
|
| |
* generic/tclBinary.c: It's believed this has not been working
* generic/tclExecute.c: in a long time. Tcl needs math.h.
* unix/Makefile.in: [RFE 1200680].
|
| |
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_StringObjCmd): add extra checks to
prevent possible UMR in unichar cmp function for string map.
|
| |
|
|
|
|
| |
'd','q','Q' formats
|
| |
|
|
|
|
| |
'i**0' for i>0 [Bug 1198892]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h:
* generic/tclUtil.c:
* generic/tclIntDecls.h: `make genstubs`
* generic/tclStubInit.c:
* generic/tclBasic.c: Added callers of TclMatchIsTrivial where
* generic/tclCmdIL.c: a search can be done more efficiently
* generic/tclCompCmds.c:when it is recognized that a pattern match
* generic/tclDictObj.c: is really an exact match. [Patch 1076088]
* generic/tclIO.c:
* generic/tclNamesp.c:
* generic/tclVar.c:
|
|
|
|
| |
a macro named CompileWord.
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: TCL_OUT_LINE_COMPILE with TCL_ERROR.
* generic/tclInt.h: Now that we've eradicated the mistaken
* tests/appendComp.test: notion of a "compile-time error", we
can use the TCL_ERROR return code to signal any failure to produce
bytecode.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Environment.3: public C API to avoid conflict/confusion with
* doc/Eval.3: the std::string of C++.
* doc/ExprLong.3, doc/ExprLongObj.3, doc/GetInt.3, doc/GetOpnFl.3:
* doc/ParseCmd.3, doc/RegExp.3, doc/SetResult.3, doc/StrMatch.3:
* doc/Utf.3, generic/tcl.decls, generic/tclBasic.c, generic/tclEnv.c:
* generic/tclGet.c, generic/tclParse.c, generic/tclParseExpr.c:
* generic/tclRegexp.c, generic/tclResult.c, generic/tclUtf.c:
* generic/tclUtil.c, unix/tclUnixChan.c:
* generic/tclDecls.h: `make genstubs`
|
|
|
|
|
|
|
| |
* generic/tclBasic.c: Simplified implementation of Tcl_ExprString.
* tests/expr-old.test:
* generic/tclDecls.h: `make gentstubs`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclUtil.c: Extended TclGetIntForIndex to recognize
index formats including end+integer and integer+/-integer.
* generic/tclCmdMZ.c: Extended the -start switch of [regexp]
and [regsub] to accept all index formats known by TclGetIntForIndex.
* doc/lindex.n: Updated docs to note new index formats.
* doc/linsert.n:
* doc/lrange.n:
* doc/lreplace.n:
* doc/lsearch.n:
* doc/lset.n:
* doc/lsort.n:
* doc/regexp.n:
* doc/regsub.n:
* doc/string.n:
* tests/cmdIL.test: Updated tests.
* tests/compile.test:
* tests/lindex.test:
* tests/linsert.test:
* tests/lrange.test:
* tests/lreplace.test:
* tests/lsearch.test:
* tests/lset.test:
* tests/regexp.test:
* tests/regexpComp.test:
* tests/string.test:
* tests/stringComp.test:
* tests/util.test:
|
|
|
|
|
|
|
|
|
| |
* generic/tclIOUtil.c (TclGetOpenModeEx): New routine.
* generic/tclInt.h:
* generic/tclIO.c (Tcl_OpenObjCmd): Support for "b" and
* doc/open.n: "BINARY" in "access" argument to [open].
* tests/ioCmd.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
build on Mac OS X 10.1 again.
* generic/tclNotify.c (TclFinalizeNotifier): fixed notifier not being
finalized in unthreaded core (was testing for notifier initialization in
current thread by checking thread id != 0 but thread id is always 0 in
untreaded core).
* win/tclWinNotify.c (Tcl_WaitForEvent):
* unix/tclUnixNotfy.c (Tcl_WaitForEvent): don't call ScaleTimeProc for
zero wait times (as specified in TIP 233).
* unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out NOTIFY_SRCS
from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS.
* unix/tcl.m4 (Darwin): added configure checks for recently added linker
flags -single_module and -search_paths_first to allow building with
older tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD and
not just T{CL,K}_SHLIB_LD_EXTRAS, added unexporting from Tk of symbols
from libtclstub to avoid duplicate symbol warnings, added PLAT_SRCS
definition for Mac OS X, defined MODULE_SCOPE to __private_extern__.
(SC_MISSING_POSIX_HEADERS): added caching of dirent.h check.
* unix/configure: autoconf-2.59
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it into agreement with its docs. Further investigation reveals it
was the docs that were incorrect.
* doc/BoolObj.3: Corrections to the documentation of
Tcl_GetBooleanFromObj to bring it into agreement with what this
public interface has always done, including noting the difference
in function between Tcl_GetBooleanFromObj and Tcl_GetBoolean.
* generic/tclGet.c: Revised Tcl_GetBoolean to no longer be a
wrapper around Tcl_GetBooleanFromObj (different function!).
* generic/tclObj.c: Removed TclGetTruthValueFromObj routine
that was added yesterday. Revisions so that only
Tcl_GetBoolean-approved values get the "boolean" Tcl_ObjType.
This retains the fix for [Bug 1187123].
* generic/tclInt.h: Revert most recent change.
* generic/tclBasic.c:
* generic/tclCompCmds.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* tests/obj.test:
|
|
|
|
|
|
| |
into the "int" Tcl_ObjType during registration. We can re-enable it
if this change causes trouble, but it seems more sensible to let
Tcl's "on-demand" shimmering rule, and not try to pre-guess things.
|
| |
|
|
|
|
| |
* generic/tclCompCmds.c: Updated callers to call new routine.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_GetFoo() routines into wrappers around Tcl_GetFooFromObj().
Reduces code duplication, and the resulting potential for inconsistency.
* generic/tclObj.c: Several changes:
- Fixed Tcl_GetBooleanFromObj to agree with its documentation and
with Tcl_GetBoolean, accepting only "0" and "1" and not other
numeric strings. [Bug 1187123]
- Added new private routine TclGetTruthValueFromObj to perform
the more permissive conversion of numeric values to boolean
that is needed by the [expr] machinery.
* generic/tclInt.h (TclGetTruthValueFromObj): New routine.
* generic/tclExecute.c: Updated callers to call new routine.
* tests/obj.test: Corrected bad tests that actually expected
values like "47" and "0xac" to be accepted as booleans.
|
| |
|
|
|
|
|
|
|
|
|
| |
with trailing garbage receive a "not an integer" message instead of
an "integer too large" message.
Removed inactive code meant to deal with strtoul* routines that fail
to parse leading signs. All of them do, and if any are detected
that do not, the correct fix is replacement with compat/strtoul*.c,
not a lot of special care by the callers.
|
|
|
|
|
|
|
| |
Also clarified a few details on int and double formats.
* generic/tclGet.c: Radical code simplification. Converted most
Tcl_GetFoo() routines into wrappers around Tcl_GetFooFromObj().
Reduces code duplication, and the resulting potential for inconsistency.
|
|
|
|
|
| |
* generic/tclObj.c (Tcl_GetIntFromObj): permit 0x80000000 to be
recognized as an integer on TCL_WIDE_INT_IS_LONG systems [Bug 1090869].
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: [::tcl::unsupported::EncodingDirs] to permit
* generic/tclInt.h: query/set of the encoding search path at
* generic/tclInterp.c: the script level. Updated init.tcl to make
* library/init.tcl: use of the new command. Also updated several
coding practices in init.tcl ("eq" for [string equal], etc.)
|
|
|
|
| |
[Bug 1084111]
|
|
|
|
|
| |
of TclpFindSymbol() will seed the interp result with error message when
unable to find the requested symbol (this is not considered to be error).
|
|
|
|
|
| |
with the NULL-ptr as argument signalling cleanup of private tsd key
used only by the threading allocator
|
| |
|
|
|
|
|
| |
* tests/encoding.test: that supported them.
* generic/tclInterp.c:
|
|
|
|
| |
compile with TCL_COMPILE_DEBUG.
|
|
|
|
|
|
|
|
|
| |
* tests/io.test: changed from ten bytes to one byte. Need for this
change was proven by Ross Cartlidge <rossc@cisco.com> where
[read stdin 1] was grabbing 10 bytes followed by starting a child
process that was intended to continue reading from stdin. Even
with -buffersize set to one, nine chars were getting lost by buffer
size over reading for the native read().
|
|
|
|
|
| |
TclPrintInstruction(), TclPrintObject() and TclPrintSource() when
not debugging the compiler, as they are never called in that case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclUtil.c (TclGetProcessGlobalValue): More robust handling
of bad TclInitProcessGlobalValueProc behavior; an immediate panic
rather than a mysterious crash later.
* generic/tclEncoding.c: Several changes to the way the
encodingFileMap cache is maintained. Previously, it was attempted
to keep the file map filled and up to date with changes in the
encoding search path. This contributed to slow startup times since
it required an expensive "glob" operation to fill the cache. Now the
validity of items in the cache are checked at the time they are
used, so the cache is permitted to fall out of sync with the
encoding search path. Only [encoding names] and Tcl_GetEncodingNames()
now pay the full expense. [Bug 1177363]
|
| |
|