Posted to tcl by andreas_kupries at Mon Apr 30 21:24:42 GMT 2007view raw

  1. Index: generic/tclIO.c
  2. ===================================================================
  3. RCS file: /cvsroot/tcl/tcl/generic/tclIO.c,v
  4. retrieving revision 1.118
  5. diff -w -u -r1.118 tclIO.c
  6. --- generic/tclIO.c 20 Apr 2007 05:51:10 -0000 1.118
  7. +++ generic/tclIO.c 30 Apr 2007 21:23:43 -0000
  8. @@ -9962,7 +9962,7 @@
  9. int explicitResult, numOptions, lc, lcn;
  10. Tcl_Obj **lv, **lvn;
  11. int res, i, j, val, lignore, cignore;
  12. - Tcl_Obj *newlevel = NULL, *newcode = NULL;
  13. + int newlevel = -1, newcode = -1;
  14.  
  15. /* ASSERT msg != NULL */
  16.  
  17. @@ -10005,7 +10005,7 @@
  18. res = Tcl_GetIntFromObj(NULL, lv[i+1], &val);
  19. if (((res == TCL_OK) && (val != 1)) || ((res != TCL_OK) &&
  20. (0 != strcmp(TclGetString(lv[i+1]), "error")))) {
  21. - newcode = Tcl_NewIntObj(1);
  22. + newcode = 1;
  23. }
  24. } else if (0 == strcmp(TclGetString(lv[i]), "-level")) {
  25. /*
  26. @@ -10014,7 +10014,7 @@
  27.  
  28. res = Tcl_GetIntFromObj(NULL, lv [i+1], &val);
  29. if ((res != TCL_OK) || (val != 0)) {
  30. - newlevel = Tcl_NewIntObj(0);
  31. + newlevel = 0;
  32. }
  33. }
  34. }
  35. @@ -10023,7 +10023,7 @@
  36. * -code, -level are either not present or ok. Nothing to do.
  37. */
  38.  
  39. - if (!newlevel && !newcode) {
  40. + if ((newlevel < 0) && (newcode < 0)) {
  41. return msg;
  42. }
  43.  
  44. @@ -10031,10 +10031,10 @@
  45. if (explicitResult) {
  46. lcn ++;
  47. }
  48. - if (newlevel) {
  49. + if (newlevel >= 0) {
  50. lcn += 2;
  51. }
  52. - if (newcode) {
  53. + if (newcode >= 0) {
  54. lcn += 2;
  55. }
  56.  
  57. @@ -10050,20 +10050,20 @@
  58. lignore = cignore = 0;
  59. for (i=0, j=0; i<numOptions; i+=2) {
  60. if (0 == strcmp(TclGetString(lv[i]), "-level")) {
  61. - if (newlevel) {
  62. + if (newlevel >= 0) {
  63. lvn[j++] = lv[i];
  64. - lvn[j++] = newlevel;
  65. - newlevel = NULL;
  66. + lvn[j++] = Tcl_NewIntObj(newlevel);
  67. + newlevel = -1;
  68. lignore = 1;
  69. continue;
  70. } else if (lignore) {
  71. continue;
  72. }
  73. } else if (0 == strcmp(TclGetString(lv[i]), "-code")) {
  74. - if (newcode) {
  75. + if (newcode >= 0) {
  76. lvn[j++] = lv[i];
  77. - lvn[j++] = newcode;
  78. - newcode = NULL;
  79. + lvn[j++] = Tcl_NewIntObj (newcode);
  80. + newcode = -1;
  81. cignore = 1;
  82. continue;
  83. } else if (cignore) {
  84.