diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-10-14 06:08:50 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-10-14 06:08:50 (GMT) |
commit | cfc633e793bcf3f8419aac8b7084c13b2f8dbaa4 (patch) | |
tree | 58b484a653058cac3bd24fba45dcc1578ac093c5 /generic/tclCmdMZ.c | |
parent | a09671a0a00f2d3e4abf4747a072da94b0320459 (diff) | |
parent | f70e1f98b3e5235a48e0fbea21515ed7e277e6cd (diff) | |
download | tcl-cfc633e793bcf3f8419aac8b7084c13b2f8dbaa4.zip tcl-cfc633e793bcf3f8419aac8b7084c13b2f8dbaa4.tar.gz tcl-cfc633e793bcf3f8419aac8b7084c13b2f8dbaa4.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r-- | generic/tclCmdMZ.c | 81 |
1 files changed, 45 insertions, 36 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index 63268a4..4bf4232 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -137,7 +137,7 @@ Tcl_RegexpObjCmd( "-expanded", "-line", "-linestop", "-lineanchor", "-nocase", "-start", "--", NULL }; - enum options { + enum regexpoptions { REGEXP_ALL, REGEXP_ABOUT, REGEXP_INDICES, REGEXP_INLINE, REGEXP_EXPANDED,REGEXP_LINE, REGEXP_LINESTOP,REGEXP_LINEANCHOR, REGEXP_NOCASE, REGEXP_START, REGEXP_LAST @@ -162,7 +162,7 @@ Tcl_RegexpObjCmd( &index) != TCL_OK) { goto optionError; } - switch ((enum options) index) { + switch ((enum regexpoptions) index) { case REGEXP_ALL: all = 1; break; @@ -195,7 +195,7 @@ Tcl_RegexpObjCmd( if (++i >= objc) { goto endOfForLoop; } - if (TclGetIntForIndexM(interp, objv[i], 0, &temp) != TCL_OK) { + if (TclGetIntForIndexM(interp, objv[i], INT_MAX - 1, &temp) != TCL_OK) { goto optionError; } if (startIndex) { @@ -357,7 +357,7 @@ Tcl_RegexpObjCmd( objc = info.nsubs + 1; if (all <= 1) { - resultPtr = Tcl_NewObj(); + TclNewObj(resultPtr); } } for (i = 0; i < objc; i++) { @@ -389,8 +389,8 @@ Tcl_RegexpObjCmd( end = -1; } - objs[0] = Tcl_NewWideIntObj(start); - objs[1] = Tcl_NewWideIntObj(end); + TclNewIntObj(objs[0], start); + TclNewIntObj(objs[1], end); newPtr = Tcl_NewListObj(2, objs); } else { @@ -399,7 +399,7 @@ Tcl_RegexpObjCmd( offset + info.matches[i].start, offset + info.matches[i].end - 1); } else { - newPtr = Tcl_NewObj(); + TclNewObj(newPtr); } } if (doinline) { @@ -499,7 +499,7 @@ Tcl_RegsubObjCmd( "-linestop", "-lineanchor", "-nocase", "-start", "--", NULL }; - enum options { + enum regsubobjoptions { REGSUB_ALL, REGSUB_COMMAND, REGSUB_EXPANDED, REGSUB_LINE, REGSUB_LINESTOP, REGSUB_LINEANCHOR, REGSUB_NOCASE, REGSUB_START, REGSUB_LAST @@ -523,7 +523,7 @@ Tcl_RegsubObjCmd( TCL_EXACT, &index) != TCL_OK) { goto optionError; } - switch ((enum options) index) { + switch ((enum regsubobjoptions) index) { case REGSUB_ALL: all = 1; break; @@ -550,7 +550,7 @@ Tcl_RegsubObjCmd( if (++idx >= objc) { goto endOfForLoop; } - if (TclGetIntForIndexM(interp, objv[idx], 0, &temp) != TCL_OK) { + if (TclGetIntForIndexM(interp, objv[idx], INT_MAX - 1, &temp) != TCL_OK) { goto optionError; } if (startIndex) { @@ -788,7 +788,7 @@ Tcl_RegsubObjCmd( args[idx + numParts] = Tcl_NewUnicodeObj( wstring + offset + subStart, subEnd - subStart); } else { - args[idx + numParts] = Tcl_NewObj(); + TclNewObj(args[idx + numParts]); } Tcl_IncrRefCount(args[idx + numParts]); } @@ -1194,7 +1194,7 @@ Tcl_SplitObjCmd( stringPtr = TclGetStringFromObj(objv[1], &stringLen); end = stringPtr + stringLen; - listPtr = Tcl_NewObj(); + TclNewObj(listPtr); if (stringLen == 0) { /* @@ -1536,7 +1536,7 @@ StringIsCmd( "space", "true", "upper", "wideinteger", "wordchar", "xdigit", NULL }; - enum isClasses { + enum isClassesEnum { STR_IS_ALNUM, STR_IS_ALPHA, STR_IS_ASCII, STR_IS_CONTROL, STR_IS_BOOL, STR_IS_DICT, STR_IS_DIGIT, STR_IS_DOUBLE, STR_IS_ENTIER, STR_IS_FALSE, STR_IS_GRAPH, STR_IS_INT, @@ -1547,7 +1547,7 @@ StringIsCmd( static const char *const isOptions[] = { "-strict", "-failindex", NULL }; - enum isOptions { + enum isOptionsEnum { OPT_STRICT, OPT_FAILIDX }; @@ -1569,7 +1569,7 @@ StringIsCmd( &idx2) != TCL_OK) { return TCL_ERROR; } - switch ((enum isOptions) idx2) { + switch ((enum isOptionsEnum) idx2) { case OPT_STRICT: strict = 1; break; @@ -1598,7 +1598,7 @@ StringIsCmd( * When entering here, result == 1 and failat == 0. */ - switch ((enum isClasses) index) { + switch ((enum isClassesEnum) index) { case STR_IS_ALNUM: chcomp = Tcl_UniCharIsAlnum; break; @@ -1906,10 +1906,11 @@ StringIsCmd( */ str_is_done: - if ((result == 0) && (failVarObj != NULL) && - Tcl_ObjSetVar2(interp, failVarObj, NULL, Tcl_NewWideIntObj(failat), - TCL_LEAVE_ERR_MSG) == NULL) { - return TCL_ERROR; + if ((result == 0) && (failVarObj != NULL)) { + TclNewIntObj(objPtr, failat); + if (Tcl_ObjSetVar2(interp, failVarObj, NULL, objPtr, TCL_LEAVE_ERR_MSG) == NULL) { + return TCL_ERROR; + } } Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result)); return TCL_OK; @@ -2501,6 +2502,7 @@ StringStartCmd( int ch; const Tcl_UniChar *p, *string; int cur, index, length; + Tcl_Obj *obj; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "string index"); @@ -2538,7 +2540,8 @@ StringStartCmd( cur += 1; } } - Tcl_SetObjResult(interp, Tcl_NewWideIntObj(cur)); + TclNewIntObj(obj, cur); + Tcl_SetObjResult(interp, obj); return TCL_OK; } @@ -2627,6 +2630,7 @@ StringEndCmd( int ch; const Tcl_UniChar *p, *end, *string; int cur, index, length; + Tcl_Obj *obj; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "string index"); @@ -2655,7 +2659,8 @@ StringEndCmd( } else { cur = length; } - Tcl_SetObjResult(interp, Tcl_NewWideIntObj(cur)); + TclNewIntObj(obj, cur); + Tcl_SetObjResult(interp, obj); return TCL_OK; } @@ -3594,7 +3599,7 @@ TclNRSwitchObjCmd( "-exact", "-glob", "-indexvar", "-matchvar", "-nocase", "-regexp", "--", NULL }; - enum options { + enum switchOptionsEnum { OPT_EXACT, OPT_GLOB, OPT_INDEXV, OPT_MATCHV, OPT_NOCASE, OPT_REGEXP, OPT_LAST }; @@ -3615,7 +3620,7 @@ TclNRSwitchObjCmd( &index) != TCL_OK) { return TCL_ERROR; } - switch ((enum options) index) { + switch ((enum switchOptionsEnum) index) { /* * General options. */ @@ -3885,10 +3890,11 @@ TclNRSwitchObjCmd( Tcl_Obj *rangeObjAry[2]; if (info.matches[j].end > 0) { - rangeObjAry[0] = Tcl_NewWideIntObj(info.matches[j].start); - rangeObjAry[1] = Tcl_NewWideIntObj(info.matches[j].end-1); + TclNewIntObj(rangeObjAry[0], info.matches[j].start); + TclNewIntObj(rangeObjAry[1], info.matches[j].end-1); } else { - rangeObjAry[0] = rangeObjAry[1] = Tcl_NewWideIntObj(-1); + TclNewIntObj(rangeObjAry[1], -1); + rangeObjAry[0] = rangeObjAry[1]; } /* @@ -4280,7 +4286,7 @@ Tcl_TimeRateObjCmd( static const char *const options[] = { "-direct", "-overhead", "-calibrate", "--", NULL }; - enum options { + enum timeRateOptionsEnum { TMRT_EV_DIRECT, TMRT_OVERHEAD, TMRT_CALIBRATE, TMRT_LAST }; NRE_callback *rootPtr; @@ -4297,7 +4303,7 @@ Tcl_TimeRateObjCmd( i++; break; } - switch (index) { + switch ((enum timeRateOptionsEnum)index) { case TMRT_EV_DIRECT: direct = objv[i]; break; @@ -4312,6 +4318,8 @@ Tcl_TimeRateObjCmd( case TMRT_CALIBRATE: calibrate = objv[i]; break; + case TMRT_LAST: + break; } } @@ -4426,7 +4434,7 @@ Tcl_TimeRateObjCmd( */ measureOverhead = 0; - Tcl_SetObjResult(interp, Tcl_NewLongObj(0)); + Tcl_SetObjResult(interp, Tcl_NewWideIntObj(0)); return TCL_OK; } @@ -4657,7 +4665,8 @@ Tcl_TimeRateObjCmd( #endif /* TCL_WIDE_CLICKS */ if (!count) { /* no iterations - avoid divide by zero */ - objs[0] = objs[2] = objs[4] = Tcl_NewWideIntObj(0); + TclNewIntObj(objs[4], 0); + objs[0] = objs[2] = objs[4]; goto retRes; } @@ -4698,7 +4707,7 @@ Tcl_TimeRateObjCmd( val = usec / count; /* microsecs per iteration */ if (val >= 1000000) { - objs[0] = Tcl_NewWideIntObj(val); + TclNewIntObj(objs[0], val); } else { if (val < 10) { digits = 6; @@ -4714,7 +4723,7 @@ Tcl_TimeRateObjCmd( objs[0] = Tcl_ObjPrintf("%.*f", digits, ((double) usec)/count); } - objs[2] = Tcl_NewWideIntObj(count); /* iterations */ + TclNewIntObj(objs[2], count); /* iterations */ /* * Calculate speed as rate (count) per sec @@ -4736,7 +4745,7 @@ Tcl_TimeRateObjCmd( objs[4] = Tcl_ObjPrintf("%.*f", digits, ((double) (count * 1000000)) / usec); } else { - objs[4] = Tcl_NewWideIntObj(val); + TclNewIntObj(objs[4], val); } } else { objs[4] = Tcl_NewWideIntObj((count / usec) * 1000000); @@ -4751,7 +4760,7 @@ Tcl_TimeRateObjCmd( if (usec >= 1) { objs[6] = Tcl_ObjPrintf("%.3f", (double)usec / 1000); } else { - objs[6] = Tcl_NewWideIntObj(0); + TclNewIntObj(objs[6], 0); } TclNewLiteralStringObj(objs[7], "net-ms"); } @@ -4829,7 +4838,7 @@ TclNRTryObjCmd( return TCL_ERROR; } bodyObj = objv[1]; - handlersObj = Tcl_NewObj(); + TclNewObj(handlersObj); bodyShared = 0; haveHandlers = 0; for (i=2 ; i<objc ; i++) { |