summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.decls2
-rw-r--r--generic/tclDecls.h9
-rw-r--r--generic/tclIO.c10
-rw-r--r--generic/tclStubInit.c3
4 files changed, 16 insertions, 8 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 889bc88..079a8ec 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -2634,7 +2634,7 @@ declare 686 {
# ----- BASELINE -- FOR -- 8.7.0 / 9.0.0 ----- #
-declare 687 {
+declare 688 {
void TclUnusedStubEntry(void)
}
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index a3f0151..502dc76 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -1864,7 +1864,8 @@ EXTERN Tcl_Obj * Tcl_DStringToObj(Tcl_DString *dsPtr);
/* 686 */
EXTERN int Tcl_GetSizeIntFromObj(Tcl_Interp *interp,
Tcl_Obj *objPtr, Tcl_Size *sizePtr);
-/* 687 */
+/* Slot 687 is reserved */
+/* 688 */
EXTERN void TclUnusedStubEntry(void);
typedef struct {
@@ -2564,7 +2565,8 @@ typedef struct TclStubs {
int (*tcl_GetWideUIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideUInt *uwidePtr); /* 684 */
Tcl_Obj * (*tcl_DStringToObj) (Tcl_DString *dsPtr); /* 685 */
int (*tcl_GetSizeIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Size *sizePtr); /* 686 */
- void (*tclUnusedStubEntry) (void); /* 687 */
+ void (*reserved687)(void);
+ void (*tclUnusedStubEntry) (void); /* 688 */
} TclStubs;
extern const TclStubs *tclStubsPtr;
@@ -3891,8 +3893,9 @@ extern const TclStubs *tclStubsPtr;
(tclStubsPtr->tcl_DStringToObj) /* 685 */
#define Tcl_GetSizeIntFromObj \
(tclStubsPtr->tcl_GetSizeIntFromObj) /* 686 */
+/* Slot 687 is reserved */
#define TclUnusedStubEntry \
- (tclStubsPtr->tclUnusedStubEntry) /* 687 */
+ (tclStubsPtr->tclUnusedStubEntry) /* 688 */
#endif /* defined(USE_TCL_STUBS) */
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 4619a08..04d01ed 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -4616,6 +4616,7 @@ Tcl_GetsObj(
if (GotFlag(statePtr, CHANNEL_ENCODING_ERROR)) {
UpdateInterest(chanPtr);
+ ResetFlag(statePtr, CHANNEL_ENCODING_ERROR);
Tcl_SetErrno(EILSEQ);
return TCL_INDEX_NONE;
}
@@ -4997,11 +4998,12 @@ Tcl_GetsObj(
}
UpdateInterest(chanPtr);
TclChannelRelease((Tcl_Channel)chanPtr);
- if (GotFlag(statePtr, CHANNEL_ENCODING_ERROR) &&
- (copiedTotal == 0 || !GotFlag(statePtr, CHANNEL_NONBLOCKING))) {
+ if (GotFlag(statePtr, CHANNEL_ENCODING_ERROR) && gs.bytesWrote == 0) {
+ bufPtr->nextRemoved = oldRemoved;
Tcl_SetErrno(EILSEQ);
copiedTotal = -1;
}
+ ResetFlag(statePtr, CHANNEL_ENCODING_ERROR);
return copiedTotal;
}
@@ -5463,6 +5465,8 @@ FilterInputBytes(
if (result == TCL_CONVERT_UNKNOWN || result == TCL_CONVERT_SYNTAX) {
SetFlag(statePtr, CHANNEL_ENCODING_ERROR);
+ ResetFlag(statePtr, CHANNEL_STICKY_EOF);
+ ResetFlag(statePtr, CHANNEL_EOF);
result = TCL_OK;
}
@@ -7590,7 +7594,7 @@ Tcl_InputBuffered(
}
/*
- * Don't forget the bytes in the topmost pushback area.
+ * Remember the bytes in the topmost pushback area.
*/
for (bufPtr = statePtr->topChanPtr->inQueueHead; bufPtr != NULL;
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 2572549..4c24c68 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -1511,7 +1511,8 @@ const TclStubs tclStubs = {
Tcl_GetWideUIntFromObj, /* 684 */
Tcl_DStringToObj, /* 685 */
Tcl_GetSizeIntFromObj, /* 686 */
- TclUnusedStubEntry, /* 687 */
+ 0, /* 687 */
+ TclUnusedStubEntry, /* 688 */
};
/* !END!: Do not edit above this line. */