@@ -133,7 +133,7 @@ Private Sub FindEOLcharacter()
133133 Dim missingEOLchar As Boolean
134134 Dim EOStream As Boolean
135135 Dim tmpBuffer As String
136-
136+
137137 Do
138138 bufferReverse = StrReverse(Buffer)
139139 LastCrLfPos = InStrB(1 , bufferReverse, vbCrLf)
@@ -147,9 +147,11 @@ Private Sub FindEOLcharacter()
147147 InitialPos = Seek (FileHandled)
148148 BufferMark = LenB(Buffer)
149149 EOStream = ((P_STREAMLENGTH - InitialPos) <= 0 )
150- NullCharPos = InStrB(Buffer, NullChar)
151- If NullCharPos Then
152- Buffer = MidB$(Buffer, 1 , NullCharPos)
150+ If EOStream Then
151+ NullCharPos = InStrB(Buffer, NullChar)
152+ If NullCharPos Then
153+ Buffer = MidB$(Buffer, 1 , NullCharPos)
154+ End If
153155 End If
154156 End If
155157 Loop While missingEOLchar And Not EOStream
@@ -167,12 +169,12 @@ Private Sub FindEOLcharacter()
167169 End If
168170 Select Case EOLchr
169171 Case 0
170- BufferDelta = ( tmpResultPos - 3 ) / 2
172+ BufferDelta = tmpResultPos - 3
171173 Case Else
172- BufferDelta = ( tmpResultPos - 1 ) / 2
174+ BufferDelta = tmpResultPos - 1
173175 End Select
174176 BufferMark = BufferMark - BufferDelta
175- CorrectedPos = InitialPos - BufferDelta
177+ CorrectedPos = InitialPos - ( BufferDelta / 2 )
176178 Else
177179 CorrectedPos = InitialPos
178180 End If
0 commit comments