Posted to tcl by andreas_kupries at Mon Apr 30 21:24:42 GMT 2007view pretty
Index: generic/tclIO.c =================================================================== RCS file: /cvsroot/tcl/tcl/generic/tclIO.c,v retrieving revision 1.118 diff -w -u -r1.118 tclIO.c --- generic/tclIO.c 20 Apr 2007 05:51:10 -0000 1.118 +++ generic/tclIO.c 30 Apr 2007 21:23:43 -0000 @@ -9962,7 +9962,7 @@ int explicitResult, numOptions, lc, lcn; Tcl_Obj **lv, **lvn; int res, i, j, val, lignore, cignore; - Tcl_Obj *newlevel = NULL, *newcode = NULL; + int newlevel = -1, newcode = -1; /* ASSERT msg != NULL */ @@ -10005,7 +10005,7 @@ res = Tcl_GetIntFromObj(NULL, lv[i+1], &val); if (((res == TCL_OK) && (val != 1)) || ((res != TCL_OK) && (0 != strcmp(TclGetString(lv[i+1]), "error")))) { - newcode = Tcl_NewIntObj(1); + newcode = 1; } } else if (0 == strcmp(TclGetString(lv[i]), "-level")) { /* @@ -10014,7 +10014,7 @@ res = Tcl_GetIntFromObj(NULL, lv [i+1], &val); if ((res != TCL_OK) || (val != 0)) { - newlevel = Tcl_NewIntObj(0); + newlevel = 0; } } } @@ -10023,7 +10023,7 @@ * -code, -level are either not present or ok. Nothing to do. */ - if (!newlevel && !newcode) { + if ((newlevel < 0) && (newcode < 0)) { return msg; } @@ -10031,10 +10031,10 @@ if (explicitResult) { lcn ++; } - if (newlevel) { + if (newlevel >= 0) { lcn += 2; } - if (newcode) { + if (newcode >= 0) { lcn += 2; } @@ -10050,20 +10050,20 @@ lignore = cignore = 0; for (i=0, j=0; i<numOptions; i+=2) { if (0 == strcmp(TclGetString(lv[i]), "-level")) { - if (newlevel) { + if (newlevel >= 0) { lvn[j++] = lv[i]; - lvn[j++] = newlevel; - newlevel = NULL; + lvn[j++] = Tcl_NewIntObj(newlevel); + newlevel = -1; lignore = 1; continue; } else if (lignore) { continue; } } else if (0 == strcmp(TclGetString(lv[i]), "-code")) { - if (newcode) { + if (newcode >= 0) { lvn[j++] = lv[i]; - lvn[j++] = newcode; - newcode = NULL; + lvn[j++] = Tcl_NewIntObj (newcode); + newcode = -1; cignore = 1; continue; } else if (cignore) {