summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2024-03-24 16:27:50 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2024-03-24 16:27:50 (GMT)
commit4a8b2951b55d370a933169b796863d52e58d9c9e (patch)
treefa891b8c226211de415f87d13dd1bb3498bec958 /generic/tclEncoding.c
parentda9e6aad0ade6688ee32e7b56c8c81f5b696ba20 (diff)
downloadtcl-4a8b2951b55d370a933169b796863d52e58d9c9e.zip
tcl-4a8b2951b55d370a933169b796863d52e58d9c9e.tar.gz
tcl-4a8b2951b55d370a933169b796863d52e58d9c9e.tar.bz2
Change Tcl_ExternalToUtfDStringEx and Tcl_UtfToExternalDStringEx to ignore START/END
flags as stated in documentation instead of raising an error.
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r--generic/tclEncoding.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index 1b99754..674d021 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -1177,18 +1177,6 @@ Tcl_ExternalToUtfDStringEx(
/* DO FIRST - Must always be initialized before returning */
Tcl_DStringInit(dstPtr);
- if (flags & (TCL_ENCODING_START|TCL_ENCODING_END)) {
- /* TODO - what other flags are illegal? - See TIP 656 */
- Tcl_SetObjResult(
- interp,
- Tcl_NewStringObj(
- "Parameter error: TCL_ENCODING_{START,STOP} bits set in flags.",
- TCL_INDEX_NONE));
- Tcl_SetErrorCode(interp, "TCL", "ENCODING", "ILLEGALFLAGS", (void *)NULL);
- errno = EINVAL;
- return TCL_ERROR;
- }
-
dst = Tcl_DStringValue(dstPtr);
dstLen = dstPtr->spaceAvl - 1;
@@ -1203,6 +1191,7 @@ Tcl_ExternalToUtfDStringEx(
srcLen = encodingPtr->lengthProc(src);
}
+ flags &= ~TCL_ENCODING_END;
flags |= TCL_ENCODING_START;
if (encodingPtr->toUtfProc == UtfToUtfProc) {
flags |= ENCODING_INPUT;
@@ -1505,18 +1494,6 @@ Tcl_UtfToExternalDStringEx(
/* DO FIRST - must always be initialized on return */
Tcl_DStringInit(dstPtr);
- if (flags & (TCL_ENCODING_START|TCL_ENCODING_END)) {
- /* TODO - what other flags are illegal? - See TIP 656 */
- Tcl_SetObjResult(
- interp,
- Tcl_NewStringObj(
- "Parameter error: TCL_ENCODING_{START,STOP} bits set in flags.",
- TCL_INDEX_NONE));
- Tcl_SetErrorCode(interp, "TCL", "ENCODING", "ILLEGALFLAGS", (void *)NULL);
- errno = EINVAL;
- return TCL_ERROR;
- }
-
dst = Tcl_DStringValue(dstPtr);
dstLen = dstPtr->spaceAvl - 1;
@@ -1531,6 +1508,7 @@ Tcl_UtfToExternalDStringEx(
srcLen = strlen(src);
}
+ flags &= ~TCL_ENCODING_END;
flags |= TCL_ENCODING_START;
while (1) {
int srcChunkLen, srcChunkRead;