Skip to content

Commit 1684b35

Browse files
committed
Merge 8.7
2 parents 822d301 + a90bc45 commit 1684b35

17 files changed

+260
-380
lines changed

ChangeLog.2008

+1-1
Original file line numberDiff line numberDiff line change
@@ -1939,7 +1939,7 @@
19391939
2008-07-28 Jan Nijtmans <[email protected]>
19401940

19411941
* doc/FileSystem.3: CONSTified many functions using
1942-
* generic/tcl.decls: Tcl_FileSystem which all are supposed
1942+
* generic/tcl.decls: Tcl_Filesystem which all are supposed
19431943
* generic/tclDecls.h: to be a constant, but this was not
19441944
* generic/tclFileSystem.h: reflected in the API: Tcl_FSData,
19451945
* generic/tclIOUtil.c: Tcl_FSGetInternalRep, Tcl_FSRegister,

doc/CrtTrace.3

+19-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ details of the calling sequence.
4747
.AP Tcl_CmdTraceProc *proc in
4848
Procedure to call for each command that is executed. See below for
4949
details on the calling sequence.
50-
.AP ClientData clientData in
50+
.AP void *clientData in
5151
Arbitrary one-word value to pass to \fIobjProc\fR, \fIobjProc2\fR or \fIproc\fR.
5252
.AP Tcl_CmdObjTraceDeleteProc *deleteProc in
5353
Procedure to call when the trace is deleted. See below for details of
@@ -72,7 +72,7 @@ interpreter.
7272
.PP
7373
.CS
7474
typedef int \fBTcl_CmdObjTraceProc\fR(
75-
\fBClientData\fR \fIclientData\fR,
75+
\fBvoid *\fR \fIclientData\fR,
7676
\fBTcl_Interp\fR* \fIinterp\fR,
7777
int \fIlevel\fR,
7878
const char *\fIcommand\fR,
@@ -81,6 +81,20 @@ typedef int \fBTcl_CmdObjTraceProc\fR(
8181
\fBTcl_Obj\fR *const \fIobjv\fR[]);
8282
.CE
8383
.PP
84+
\fIobjProc2\fR should have arguments and result that match the type,
85+
\fBTcl_CmdObjTraceProc2\fR:
86+
.PP
87+
.CS
88+
typedef int \fBTcl_CmdObjTraceProc2\fR(
89+
\fBvoid *\fR \fIclientData\fR,
90+
\fBTcl_Interp\fR* \fIinterp\fR,
91+
size_t \fIlevel\fR,
92+
const char *\fIcommand\fR,
93+
\fBTcl_Command\fR \fIcommandToken\fR,
94+
size_t \fIobjc\fR,
95+
\fBTcl_Obj\fR *const \fIobjv\fR[]);
96+
.CE
97+
.PP
8498
The \fIclientData\fR and \fIinterp\fR parameters are copies of the
8599
corresponding arguments given to \fBTcl_CreateTrace\fR.
86100
\fIClientData\fR typically points to an application-specific data
@@ -146,7 +160,7 @@ When \fBTcl_DeleteTrace\fR is called, the interpreter invokes the
146160
.PP
147161
.CS
148162
typedef void \fBTcl_CmdObjTraceDeleteProc\fR(
149-
\fBClientData\fR \fIclientData\fR);
163+
\fBvoid *\fR \fIclientData\fR);
150164
.CE
151165
.PP
152166
The \fIclientData\fR parameter will be the same as the
@@ -162,12 +176,12 @@ match the type \fBTcl_CmdTraceProc\fR:
162176
.PP
163177
.CS
164178
typedef void \fBTcl_CmdTraceProc\fR(
165-
ClientData \fIclientData\fR,
179+
void *\fIclientData\fR,
166180
Tcl_Interp *\fIinterp\fR,
167181
int \fIlevel\fR,
168182
char *\fIcommand\fR,
169183
Tcl_CmdProc *\fIcmdProc\fR,
170-
ClientData \fIcmdClientData\fR,
184+
void *\fIcmdClientData\fR,
171185
int \fIargc\fR,
172186
const char *\fIargv\fR[]);
173187
.CE

generic/tcl.decls

+3-3
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ declare 98 {
374374
Tcl_TimerProc *proc, void *clientData)
375375
}
376376
declare 99 {
377-
Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
377+
Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, Tcl_Size level,
378378
Tcl_CmdTraceProc *proc, void *clientData)
379379
}
380380
declare 100 {
@@ -1722,7 +1722,7 @@ declare 482 {
17221722

17231723
# TIP#32 (object-enabled traces) kbk
17241724
declare 483 {
1725-
Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level, int flags,
1725+
Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, Tcl_Size level, int flags,
17261726
Tcl_CmdObjTraceProc *objProc, void *clientData,
17271727
Tcl_CmdObjTraceDeleteProc *delProc)
17281728
}
@@ -2517,7 +2517,7 @@ declare 676 {
25172517
Tcl_CmdDeleteProc *deleteProc)
25182518
}
25192519
declare 677 {
2520-
Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, int level, int flags,
2520+
Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, Tcl_Size level, int flags,
25212521
Tcl_CmdObjTraceProc2 *objProc2, void *clientData,
25222522
Tcl_CmdObjTraceDeleteProc *delProc)
25232523
}

generic/tcl.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ typedef int (Tcl_CmdObjTraceProc) (void *clientData, Tcl_Interp *interp,
674674
int level, const char *command, Tcl_Command commandInfo, int objc,
675675
struct Tcl_Obj *const *objv);
676676
typedef int (Tcl_CmdObjTraceProc2) (void *clientData, Tcl_Interp *interp,
677-
int level, const char *command, Tcl_Command commandInfo, size_t objc,
677+
size_t level, const char *command, Tcl_Command commandInfo, size_t objc,
678678
struct Tcl_Obj *const *objv);
679679
typedef void (Tcl_CmdObjTraceDeleteProc) (void *clientData);
680680
typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,

generic/tclCompCmdsGR.c

+15-10
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ TclCompileIfCmd(
181181
* determined. */
182182
Tcl_Token *tokenPtr, *testTokenPtr;
183183
int jumpIndex = 0; /* Avoid compiler warning. */
184-
int jumpFalseDist, numWords, wordIdx, numBytes, j, code;
184+
int numBytes, j;
185+
int jumpFalseDist, numWords, wordIdx, code;
185186
const char *word;
186187
int realCond = 1; /* Set to 0 for static conditions:
187188
* "if 0 {..}" */
@@ -1361,7 +1362,7 @@ TclCompileLinsertCmd(
13611362
if (parsePtr->numWords < 3) {
13621363
return TCL_ERROR;
13631364
}
1364-
1365+
13651366
/* Push list, insertion index onto the stack */
13661367
tokenPtr = TokenAfter(parsePtr->tokenPtr);
13671368
CompileWord(envPtr, tokenPtr, interp, 1);
@@ -1376,7 +1377,7 @@ TclCompileLinsertCmd(
13761377

13771378
/* First operand is count of arguments */
13781379
TclEmitInstInt4(INST_LREPLACE4, parsePtr->numWords - 1, envPtr);
1379-
/*
1380+
/*
13801381
* Second operand is bitmask
13811382
* TCL_LREPLACE4_END_IS_LAST - end refers to last element
13821383
* TCL_LREPLACE4_SINGLE_INDEX - second index is not present
@@ -1430,15 +1431,15 @@ TclCompileLreplaceCmd(
14301431

14311432
/* First operand is count of arguments */
14321433
TclEmitInstInt4(INST_LREPLACE4, parsePtr->numWords - 1, envPtr);
1433-
/*
1434+
/*
14341435
* Second operand is bitmask
14351436
* TCL_LREPLACE4_END_IS_LAST - end refers to last element
14361437
*/
14371438
TclEmitInt1(TCL_LREPLACE4_END_IS_LAST, envPtr);
14381439

14391440
return TCL_OK;
14401441
}
1441-
1442+
14421443
/*
14431444
*----------------------------------------------------------------------
14441445
*
@@ -1924,7 +1925,8 @@ TclCompileRegexpCmd(
19241925
DefineLineInformation; /* TIP #280 */
19251926
Tcl_Token *varTokenPtr; /* Pointer to the Tcl_Token representing the
19261927
* parse of the RE or string. */
1927-
int i, len, nocase, exact, sawLast, simple;
1928+
int len;
1929+
int i, nocase, exact, sawLast, simple;
19281930
const char *str;
19291931

19301932
/*
@@ -2110,7 +2112,8 @@ TclCompileRegsubCmd(
21102112
Tcl_Obj *patternObj = NULL, *replacementObj = NULL;
21112113
Tcl_DString pattern;
21122114
const char *bytes;
2113-
int len, exact, quantified, result = TCL_ERROR;
2115+
int exact, quantified, result = TCL_ERROR;
2116+
int len;
21142117

21152118
if (parsePtr->numWords < 5 || parsePtr->numWords > 6) {
21162119
return TCL_ERROR;
@@ -2264,7 +2267,8 @@ TclCompileReturnCmd(
22642267
* General syntax: [return ?-option value ...? ?result?]
22652268
* An even number of words means an explicit result argument is present.
22662269
*/
2267-
int level, code, objc, size, status = TCL_OK;
2270+
int level, code, objc, status = TCL_OK;
2271+
int size;
22682272
int numWords = parsePtr->numWords;
22692273
int explicitResult = (0 == (numWords % 2));
22702274
int numOptionWords = numWords - 1 - explicitResult;
@@ -2374,7 +2378,7 @@ TclCompileReturnCmd(
23742378
ExceptionRange range = envPtr->exceptArrayPtr[index];
23752379

23762380
if ((range.type == CATCH_EXCEPTION_RANGE)
2377-
&& (range.catchOffset == -1)) {
2381+
&& (range.catchOffset == TCL_INDEX_NONE)) {
23782382
enclosingCatch = 1;
23792383
break;
23802384
}
@@ -2700,7 +2704,8 @@ IndexTailVarIfKnown(
27002704
{
27012705
Tcl_Obj *tailPtr;
27022706
const char *tailName, *p;
2703-
int len, n = varTokenPtr->numComponents;
2707+
int n = varTokenPtr->numComponents;
2708+
int len;
27042709
Tcl_Token *lastTokenPtr;
27052710
int full, localIndex;
27062711

generic/tclCompile.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ InstructionDesc const tclInstructionTable[] = {
678678
{"lreplace4", 6, INT_MIN, 2, {OPERAND_UINT4, OPERAND_UINT1}},
679679
/* Operands: number of arguments, flags
680680
* flags: Combination of TCL_LREPLACE4_* flags
681-
* Stack: ... listobj index1 ?index2? new1 ... newN => ... newlistobj
681+
* Stack: ... listobj index1 ?index2? new1 ... newN => ... newlistobj
682682
* where index2 is present only if TCL_LREPLACE_SINGLE_INDEX is not
683683
* set in flags.
684684
*/

generic/tclDecls.h

+10-8
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ EXTERN Tcl_Interp * Tcl_CreateChild(Tcl_Interp *interp, const char *name,
360360
EXTERN Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
361361
Tcl_TimerProc *proc, void *clientData);
362362
/* 99 */
363-
EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
363+
EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, Tcl_Size level,
364364
Tcl_CmdTraceProc *proc, void *clientData);
365365
/* 100 */
366366
EXTERN void Tcl_DeleteAssocData(Tcl_Interp *interp,
@@ -1451,8 +1451,9 @@ EXTERN int Tcl_EvalTokensStandard(Tcl_Interp *interp,
14511451
/* 482 */
14521452
EXTERN void Tcl_GetTime(Tcl_Time *timeBuf);
14531453
/* 483 */
1454-
EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level,
1455-
int flags, Tcl_CmdObjTraceProc *objProc,
1454+
EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp,
1455+
Tcl_Size level, int flags,
1456+
Tcl_CmdObjTraceProc *objProc,
14561457
void *clientData,
14571458
Tcl_CmdObjTraceDeleteProc *delProc);
14581459
/* 484 */
@@ -2012,8 +2013,9 @@ EXTERN Tcl_Command Tcl_CreateObjCommand2(Tcl_Interp *interp,
20122013
void *clientData,
20132014
Tcl_CmdDeleteProc *deleteProc);
20142015
/* 677 */
2015-
EXTERN Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, int level,
2016-
int flags, Tcl_CmdObjTraceProc2 *objProc2,
2016+
EXTERN Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp,
2017+
Tcl_Size level, int flags,
2018+
Tcl_CmdObjTraceProc2 *objProc2,
20172019
void *clientData,
20182020
Tcl_CmdObjTraceDeleteProc *delProc);
20192021
/* 678 */
@@ -2164,7 +2166,7 @@ typedef struct TclStubs {
21642166
Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
21652167
Tcl_Interp * (*tcl_CreateChild) (Tcl_Interp *interp, const char *name, int isSafe); /* 97 */
21662168
Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, void *clientData); /* 98 */
2167-
Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, void *clientData); /* 99 */
2169+
Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, Tcl_Size level, Tcl_CmdTraceProc *proc, void *clientData); /* 99 */
21682170
void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
21692171
void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, void *clientData); /* 101 */
21702172
void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, void *clientData); /* 102 */
@@ -2556,7 +2558,7 @@ typedef struct TclStubs {
25562558
void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
25572559
int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, Tcl_Size count); /* 481 */
25582560
void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2559-
Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2561+
Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc *objProc, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
25602562
int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
25612563
int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
25622564
Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
@@ -2750,7 +2752,7 @@ typedef struct TclStubs {
27502752
int (*tcl_GetBool) (Tcl_Interp *interp, const char *src, int flags, char *charPtr); /* 674 */
27512753
int (*tcl_GetBoolFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags, char *charPtr); /* 675 */
27522754
Tcl_Command (*tcl_CreateObjCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 676 */
2753-
Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
2755+
Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
27542756
Tcl_Command (*tcl_NRCreateCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc, Tcl_ObjCmdProc2 *nreProc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 678 */
27552757
int (*tcl_NRCallObjProc2) (Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2, void *clientData, size_t objc, Tcl_Obj *const objv[]); /* 679 */
27562758
int (*tcl_GetNumberFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, void **clientDataPtr, int *typePtr); /* 680 */

0 commit comments

Comments
 (0)