summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2014-03-10 17:58:32 (GMT)
committerdgp <dgp@users.sourceforge.net>2014-03-10 17:58:32 (GMT)
commit091096d315755aa89f28bd063b426e16a4c16e51 (patch)
tree691ed08eb28757af01a9633bc250136dc942d260 /generic/tclIO.c
parent62268820f73d797eebfc2a66ed3fa856c27daeb7 (diff)
downloadtcl-091096d315755aa89f28bd063b426e16a4c16e51.zip
tcl-091096d315755aa89f28bd063b426e16a4c16e51.tar.gz
tcl-091096d315755aa89f28bd063b426e16a4c16e51.tar.bz2
Bring CRLF translation in parallel with others.
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 6dfdd03..2971838 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -5645,21 +5645,15 @@ TranslateInputEOL(
dstLen = srcLen;
break;
case TCL_TRANSLATE_CRLF: {
- char *dst;
- const char *src, *srcEnd, *srcMax;
-
- if (dstLen > srcLen) {
- dstLen = srcLen;
- }
- dst = dstStart;
- src = srcStart;
- srcEnd = srcStart + dstLen;
- srcMax = srcStart + srcLen;
+ const char *srcEnd = srcStart + srcLen;
+ const char *dstEnd = dstStart + dstLen;
+ const char *src = srcStart;
+ char *dst = dstStart;
- for ( ; src < srcEnd; ) {
+ for ( ; dst < dstEnd && src < srcEnd; ) {
if (*src == '\r') {
src++;
- if (src >= srcMax) {
+ if (src == srcEnd) {
src--;
break;
} else if (*src == '\n') {
@@ -5710,7 +5704,7 @@ TranslateInputEOL(
*dstLenPtr = dstLen;
*srcLenPtr = srcLen;
- if ((eof != NULL) && (srcStart + srcLen >= eof)) {
+ if (srcStart + srcLen == eof) {
/*
* EOF character was seen in EOL translated range. Leave current file
* position pointing at the EOF character, but don't store the EOF