Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Merge 8.7 |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk | main |
| Files: | files | file ages | folders |
| SHA3-256: |
6ae9bb7cfe717140f8b5e473fafdd37e |
| User & Date: | jan.nijtmans 2024-08-20 14:53:11.717 |
References
|
2024-08-31
| ||
| 06:34 | Merge [6ae9bb7cfe717140]: Whitespace. check-in: 05683216d7 user: pooryorick tags: unchained, INCOMPATIBLE_LICENSE | |
Context
|
2024-08-31
| ||
| 06:34 | Merge [6ae9bb7cfe717140]: Whitespace. check-in: 05683216d7 user: pooryorick tags: unchained, INCOMPATIBLE_LICENSE | |
|
2024-08-21
| ||
| 08:35 | Use a name for a flag, use an enum for that flag check-in: 6269c75500 user: dkf tags: trunk, main | |
|
2024-08-20
| ||
| 14:53 | Merge 8.7 check-in: 6ae9bb7cfe user: jan.nijtmans tags: trunk, main | |
| 14:49 | tcl::unsupported::inject is deprecated, will be removed in 9.0 check-in: 03e03c8af9 user: jan.nijtmans tags: core-8-branch | |
|
2024-08-19
| ||
| 08:49 | Beef up encoding tests for fragmented and split encodings check-in: 151972b13a user: apnadkarni tags: trunk, main | |
Changes
Changes to doc/zipfs.n.
| ︙ | ︙ | |||
127 128 129 130 131 132 133 | mount point. If \fImountpoint\fR is specified as an empty string, it is defaulted to the \fB[zipfs root]\fR. The command returns the normalized mount point path. .PP If not under the zipfs file system root, \fImountpoint\fR is normalized with respect to it. For example, a mount point passed as either \fBmt\fR or \fB/mt\fR would be normalized to \fB//zipfs:/mt\fR (given that \fBzipfs root\fR | | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | mount point. If \fImountpoint\fR is specified as an empty string, it is defaulted to the \fB[zipfs root]\fR. The command returns the normalized mount point path. .PP If not under the zipfs file system root, \fImountpoint\fR is normalized with respect to it. For example, a mount point passed as either \fBmt\fR or \fB/mt\fR would be normalized to \fB//zipfs:/mt\fR (given that \fBzipfs root\fR returns .QW //zipfs:/ ). An error is raised if the mount point includes a drive or UNC volume. .PP \fBNB:\fR because the current working directory is a concept maintained by the operating system, using \fBcd\fR into a mounted archive will only work in the current process, and then not entirely consistently (e.g., if a shared library uses direct access to the OS rather than through Tcl's filesystem API, it will |
| ︙ | ︙ |
Changes to generic/tclBasic.c.
| ︙ | ︙ | |||
459 460 461 462 463 464 465 |
{"info", "cmdtype"},
{"info", "nameofexecutable"},
/* [tcl::process] has ONLY unsafe commands! */
{"process", "list"},
{"process", "status"},
{"process", "purge"},
{"process", "autopurge"},
| | | 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 |
{"info", "cmdtype"},
{"info", "nameofexecutable"},
/* [tcl::process] has ONLY unsafe commands! */
{"process", "list"},
{"process", "status"},
{"process", "purge"},
{"process", "autopurge"},
/*
* [zipfs] perhaps has some safe commands. But like file make it inaccessible
* until they are analyzed to be safe.
*/
{"zipfs", NULL},
{"zipfs", "canonical"},
{"zipfs", "exists"},
{"zipfs", "info"},
|
| ︙ | ︙ |
Changes to generic/tclOO.c.
| ︙ | ︙ | |||
451 452 453 454 455 456 457 |
return TCL_ERROR;
}
/*
* Make the configurable class and install its standard defined method.
*/
| | | | 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 |
return TCL_ERROR;
}
/*
* Make the configurable class and install its standard defined method.
*/
Tcl_Object cfgCls = Tcl_NewObjectInstance(interp,
(Tcl_Class) fPtr->classCls,
"::oo::configuresupport::configurable", NULL, -1, NULL, 0);
for (i = 0 ; cfgMethods[i].name ; i++) {
TclOONewBasicMethod(((Object *) cfgCls)->classPtr, &cfgMethods[i]);
}
/*
* Don't have handles to these namespaces, so use Tcl_CreateObjCommand.
|
| ︙ | ︙ |
Changes to generic/tclOODefineCmds.c.
| ︙ | ︙ | |||
3390 3391 3392 3393 3394 3395 3396 | * * TclOORegisterProperty, TclOORegisterInstanceProperty -- * * Helpers to add or remove a name from the property slots of a class or * instance. * * BuildPropertyList -- | | | 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 | * * TclOORegisterProperty, TclOORegisterInstanceProperty -- * * Helpers to add or remove a name from the property slots of a class or * instance. * * BuildPropertyList -- * * Helper for the helpers. Scans a property list and does the filtering * or adding of the property to add or remove * * ---------------------------------------------------------------------- */ static int |
| ︙ | ︙ |
Changes to generic/tclOOInt.h.
| ︙ | ︙ | |||
405 406 407 408 409 410 411 |
* "<cloned>" pseudo-constructor. */
Tcl_Obj *defineName; /* Fully qualified name of oo::define. */
Tcl_Obj *myName; /* The "my" shared object. */
};
/*
* The number of MInvoke records in the CallChain before we allocate
| | | 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 |
* "<cloned>" pseudo-constructor. */
Tcl_Obj *defineName; /* Fully qualified name of oo::define. */
Tcl_Obj *myName; /* The "my" shared object. */
};
/*
* The number of MInvoke records in the CallChain before we allocate
* separately.
*/
#define CALL_CHAIN_STATIC_SIZE 4
/*
* Information relating to the invocation of a particular method implementation
* in a call chain.
*/
|
| ︙ | ︙ |
Changes to generic/tclOOProp.c.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 |
enum GPNFlags {
GPN_WRITABLE = 1, /* Are we looking for a writable property? */
GPN_FALLING_BACK = 2 /* Are we doing a recursive call to determine
* if the property is of the other type? */
};
/*
| | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
enum GPNFlags {
GPN_WRITABLE = 1, /* Are we looking for a writable property? */
GPN_FALLING_BACK = 2 /* Are we doing a recursive call to determine
* if the property is of the other type? */
};
/*
* Shared bits for [property] declarations.
*/
enum PropOpt {
PROP_ALL, PROP_READABLE, PROP_WRITABLE
};
static const char *const propOptNames[] = {
"-all", "-readable", "-writable",
NULL
|
| ︙ | ︙ | |||
208 209 210 211 212 213 214 |
if (result == TCL_ERROR && !(flags & GPN_FALLING_BACK)) {
/*
* If property can be accessed the other way, use a special message.
* We use a recursive call to look this up.
*/
Tcl_InterpState foo = Tcl_SaveInterpState(interp, result);
| | | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
if (result == TCL_ERROR && !(flags & GPN_FALLING_BACK)) {
/*
* If property can be accessed the other way, use a special message.
* We use a recursive call to look this up.
*/
Tcl_InterpState foo = Tcl_SaveInterpState(interp, result);
Tcl_Obj *otherName = GetPropertyName(interp, oPtr,
flags ^ (GPN_WRITABLE | GPN_FALLING_BACK), namePtr, NULL);
result = Tcl_RestoreInterpState(interp, foo);
if (otherName != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"property \"%s\" is %s only",
TclGetString(otherName),
(flags & GPN_WRITABLE) ? "read" : "write"));
|
| ︙ | ︙ | |||
330 331 332 333 334 335 336 |
* Write properties. Slightly tricky because we want to cache the
* table of property names.
*/
GPNCache *cache = NULL;
code = TCL_OK;
for (i = 0; i < objc; i += 2) {
| | | 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
* Write properties. Slightly tricky because we want to cache the
* table of property names.
*/
GPNCache *cache = NULL;
code = TCL_OK;
for (i = 0; i < objc; i += 2) {
namePtr = GetPropertyName(interp, oPtr, GPN_WRITABLE, objv[i],
&cache);
if (namePtr == NULL) {
code = TCL_ERROR;
break;
}
code = WriteProperty(interp, oPtr, TclGetString(namePtr),
objv[i + 1]);
|
| ︙ | ︙ | |||
377 378 379 380 381 382 383 |
Tcl_Obj *const *objv) /* The actual arguments. */
{
Tcl_Obj *propNamePtr = (Tcl_Obj *) clientData;
Tcl_Var varPtr, aryVar;
Tcl_Obj *valuePtr;
if ((int) Tcl_ObjectContextSkippedArgs(context) != objc) {
| | | 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 |
Tcl_Obj *const *objv) /* The actual arguments. */
{
Tcl_Obj *propNamePtr = (Tcl_Obj *) clientData;
Tcl_Var varPtr, aryVar;
Tcl_Obj *valuePtr;
if ((int) Tcl_ObjectContextSkippedArgs(context) != objc) {
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context),
objv, NULL);
return TCL_ERROR;
}
varPtr = TclOOLookupObjectVar(interp, Tcl_ObjectContextObject(context),
propNamePtr, &aryVar);
if (varPtr == NULL) {
|
| ︙ | ︙ | |||
412 413 414 415 416 417 418 |
int objc, /* Number of arguments. */
Tcl_Obj *const *objv) /* The actual arguments. */
{
Tcl_Obj *propNamePtr = (Tcl_Obj *) clientData;
Tcl_Var varPtr, aryVar;
if ((int) Tcl_ObjectContextSkippedArgs(context) + 1 != objc) {
| | | 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
int objc, /* Number of arguments. */
Tcl_Obj *const *objv) /* The actual arguments. */
{
Tcl_Obj *propNamePtr = (Tcl_Obj *) clientData;
Tcl_Var varPtr, aryVar;
if ((int) Tcl_ObjectContextSkippedArgs(context) + 1 != objc) {
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context),
objv, "value");
return TCL_ERROR;
}
varPtr = TclOOLookupObjectVar(interp, Tcl_ObjectContextObject(context),
propNamePtr, &aryVar);
if (varPtr == NULL) {
|
| ︙ | ︙ | |||
461 462 463 464 465 466 467 | * ---------------------------------------------------------------------- * * ImplementObjectProperty, ImplementClassProperty -- * * Installs a basic property implementation for a property, either on * an instance or on a class. It's up to the code that calls these * to ensure that the property name is syntactically valid. | | | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 |
* ----------------------------------------------------------------------
*
* ImplementObjectProperty, ImplementClassProperty --
*
* Installs a basic property implementation for a property, either on
* an instance or on a class. It's up to the code that calls these
* to ensure that the property name is syntactically valid.
*
* ----------------------------------------------------------------------
*/
void
ImplementObjectProperty(
Tcl_Object targetObject, /* What to install into. */
Tcl_Obj *propNamePtr, /* Property name. */
|
| ︙ | ︙ | |||
1314 1315 1316 1317 1318 1319 1320 |
static inline void
ReleasePropertyList(
PropertyList *propList)
{
Tcl_Obj *propertyObj;
Tcl_Size i;
| | | 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 |
static inline void
ReleasePropertyList(
PropertyList *propList)
{
Tcl_Obj *propertyObj;
Tcl_Size i;
FOREACH(propertyObj, *propList) {
Tcl_DecrRefCount(propertyObj);
}
Tcl_Free(propList->list);
propList->list = NULL;
propList->num = 0;
}
|
| ︙ | ︙ |
Changes to tests/utfext.test.
| ︙ | ︙ | |||
187 188 189 190 191 192 193 |
} -result [list multibyte 1 ok [string length $in] [string length $out] $out]
}
#
# Basic tests
foreach {enc testcases} $utfExtMap {
foreach testcase $testcases {
| | | 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
} -result [list multibyte 1 ok [string length $in] [string length $out] $out]
}
#
# Basic tests
foreach {enc testcases} $utfExtMap {
foreach testcase $testcases {
lassign $testcase {*}{comment utfhex hex internalfragindex externalfragindex}
# Basic test - TCL_ENCODING_START|TCL_ENCODING_END
# Note by default output should be terminated with \0
set encnuls [hexnuls $enc]
testutf toutf $enc $comment $hex ${utfhex}00
testutf fromutf $enc $comment $utfhex $hex$encnuls
|
| ︙ | ︙ |
Changes to win/Makefile.in.
| ︙ | ︙ | |||
1147 1148 1149 1150 1151 1152 1153 | $(GENERIC_DIR)/tclInt.decls @echo "Warning: tclStubInit.c may be out of date." @echo "Developers may want to run \"make genstubs\" to regenerate." @echo "This warning can be safely ignored, do not report as a bug!" $(GENERIC_DIR)/tclOOScript.h: $(TOOL_DIR)/tclOOScript.tcl @echo "Warning: tclOOScript.h may be out of date." | | | 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 | $(GENERIC_DIR)/tclInt.decls @echo "Warning: tclStubInit.c may be out of date." @echo "Developers may want to run \"make genstubs\" to regenerate." @echo "This warning can be safely ignored, do not report as a bug!" $(GENERIC_DIR)/tclOOScript.h: $(TOOL_DIR)/tclOOScript.tcl @echo "Warning: tclOOScript.h may be out of date." @echo "Developers may want to run \"make genscript\" to regenerate." @echo "This warning can be safely ignored, do not report as a bug!" genstubs: $(TCL_EXE) "$(TOOL_DIR_NATIVE)/genStubs.tcl" \ "$(GENERIC_DIR_NATIVE)" \ "$(GENERIC_DIR_NATIVE)/tcl.decls" \ "$(GENERIC_DIR_NATIVE)/tclInt.decls" \ |
| ︙ | ︙ |