diff options
| author | apnadkarni <apnmbx-wits@yahoo.com> | 2024-03-24 16:27:50 (GMT) |
|---|---|---|
| committer | apnadkarni <apnmbx-wits@yahoo.com> | 2024-03-24 16:27:50 (GMT) |
| commit | 4a8b2951b55d370a933169b796863d52e58d9c9e (patch) | |
| tree | fa891b8c226211de415f87d13dd1bb3498bec958 /generic/tclEncoding.c | |
| parent | da9e6aad0ade6688ee32e7b56c8c81f5b696ba20 (diff) | |
| download | tcl-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.c | 26 |
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; |
