diff options
Diffstat (limited to 'src/newline.cpp')
-rw-r--r-- | src/newline.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/newline.cpp b/src/newline.cpp index 0dbbae5..00c73f9 100644 --- a/src/newline.cpp +++ b/src/newline.cpp | |||
@@ -19,24 +19,27 @@ size_t Bu::NewLine::stop() | |||
19 | return 0; | 19 | return 0; |
20 | } | 20 | } |
21 | 21 | ||
22 | size_t Bu::NewLine::read( void *pBuf, size_t iAmnt ) | 22 | size_t Bu::NewLine::read( void *pBufV, size_t iAmnt ) |
23 | { | 23 | { |
24 | size_t iRead = rNext.read( pBuf, iAmnt ); | 24 | size_t iTotal = 0; |
25 | size_t iOffset = 0; | 25 | size_t iOffset = 0; |
26 | size_t iRead = rNext.read( pBufV, iAmnt ); | ||
27 | char *pBuf = (char *)pBufV; | ||
26 | 28 | ||
27 | for( size_t i = 0; i < iRead; i++ ) | 29 | for( size_t i = 0; i < iRead; i++ ) |
28 | { | 30 | { |
29 | if( pBuf[i] == '\r' ) | 31 | if( pBuf[i] == '\r' ) |
30 | { | 32 | { |
31 | pBuf[i+iOffset] = '\n'; | 33 | pBuf[i+iOffset] = '\n'; |
32 | if( pBuf[j+1] == '\n' ) | 34 | if( pBuf[i+1] == '\n' ) |
33 | { | 35 | { |
34 | iOffset--; | 36 | iOffset--; |
35 | } | 37 | } |
36 | } | 38 | } |
37 | else if( pBuf[i] == '\n' ) | 39 | else if( pBuf[i] == '\n' ) |
38 | { | 40 | { |
39 | if( pBuf[j+1] == '\r' ) | 41 | pBuf[i+iOffset] = '\n'; |
42 | if( pBuf[i+1] == '\r' ) | ||
40 | { | 43 | { |
41 | iOffset--; | 44 | iOffset--; |
42 | } | 45 | } |
@@ -47,7 +50,8 @@ size_t Bu::NewLine::read( void *pBuf, size_t iAmnt ) | |||
47 | } | 50 | } |
48 | } | 51 | } |
49 | 52 | ||
50 | iRead += iOffset; | 53 | iTotal += iRead + iOffset; |
54 | return iTotal; | ||
51 | } | 55 | } |
52 | 56 | ||
53 | size_t Bu::NewLine::write( const void *pBuf, size_t iAmnt ) | 57 | size_t Bu::NewLine::write( const void *pBuf, size_t iAmnt ) |