diff options
| -rw-r--r-- | src/client.cpp | 4 | ||||
| -rw-r--r-- | src/client.h | 2 | ||||
| -rw-r--r-- | src/fstring.h | 15 | ||||
| -rw-r--r-- | src/logger.cpp | 9 |
4 files changed, 19 insertions, 11 deletions
diff --git a/src/client.cpp b/src/client.cpp index 9f0eb21..dc91e4b 100644 --- a/src/client.cpp +++ b/src/client.cpp | |||
| @@ -166,9 +166,9 @@ void Bu::Client::read( void *pData, int nBytes ) | |||
| 166 | } | 166 | } |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | void Bu::Client::peek( void *pData, int nBytes ) | 169 | void Bu::Client::peek( void *pData, int nBytes, int nOffset ) |
| 170 | { | 170 | { |
| 171 | memcpy( pData, sReadBuf.getStr()+nRBOffset, nBytes ); | 171 | memcpy( pData, sReadBuf.getStr()+nRBOffset+nOffset, nBytes ); |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | void Bu::Client::seek( int nBytes ) | 174 | void Bu::Client::seek( int nBytes ) |
diff --git a/src/client.h b/src/client.h index 5947521..2b7448c 100644 --- a/src/client.h +++ b/src/client.h | |||
| @@ -34,7 +34,7 @@ namespace Bu | |||
| 34 | void write( uint32_t nData ); | 34 | void write( uint32_t nData ); |
| 35 | void write( uint64_t nData ); | 35 | void write( uint64_t nData ); |
| 36 | void read( void *pData, int nBytes ); | 36 | void read( void *pData, int nBytes ); |
| 37 | void peek( void *pData, int nBytes ); | 37 | void peek( void *pData, int nBytes, int nOffset=0 ); |
| 38 | void seek( int nBytes ); | 38 | void seek( int nBytes ); |
| 39 | long getInputSize(); | 39 | long getInputSize(); |
| 40 | 40 | ||
diff --git a/src/fstring.h b/src/fstring.h index 00bb12c..73b04ab 100644 --- a/src/fstring.h +++ b/src/fstring.h | |||
| @@ -222,10 +222,13 @@ namespace Bu | |||
| 222 | 222 | ||
| 223 | Chunk *pNew = newChunk( nNewSize ); | 223 | Chunk *pNew = newChunk( nNewSize ); |
| 224 | long nNewLen = (nNewSize<nLength)?(nNewSize):(nLength); | 224 | long nNewLen = (nNewSize<nLength)?(nNewSize):(nLength); |
| 225 | cpy( pNew->pData, pFirst->pData, nNewLen ); | 225 | if( nLength > 0 ) |
| 226 | { | ||
| 227 | cpy( pNew->pData, pFirst->pData, nNewLen ); | ||
| 228 | aChr.deallocate( pFirst->pData, pFirst->nLength+1 ); | ||
| 229 | aChunk.deallocate( pFirst, 1 ); | ||
| 230 | } | ||
| 226 | pNew->pData[nNewLen] = (chr)0; | 231 | pNew->pData[nNewLen] = (chr)0; |
| 227 | aChr.deallocate( pFirst->pData, pFirst->nLength+1 ); | ||
| 228 | aChunk.deallocate( pFirst, 1 ); | ||
| 229 | pFirst = pLast = pNew; | 232 | pFirst = pLast = pNew; |
| 230 | nLength = nNewSize; | 233 | nLength = nNewSize; |
| 231 | } | 234 | } |
| @@ -396,7 +399,7 @@ namespace Bu | |||
| 396 | flatten(); | 399 | flatten(); |
| 397 | const chr *a = pData; | 400 | const chr *a = pData; |
| 398 | chr *b = pFirst->pData; | 401 | chr *b = pFirst->pData; |
| 399 | for( ; *a!=(chr)0; a++, b++ ) | 402 | for( ; *a!=(chr)0 || *b!=(chr)0; a++, b++ ) |
| 400 | { | 403 | { |
| 401 | if( *a != *b ) | 404 | if( *a != *b ) |
| 402 | return false; | 405 | return false; |
| @@ -420,7 +423,7 @@ namespace Bu | |||
| 420 | pData.flatten(); | 423 | pData.flatten(); |
| 421 | const chr *a = pData.pFirst->pData; | 424 | const chr *a = pData.pFirst->pData; |
| 422 | chr *b = pFirst->pData; | 425 | chr *b = pFirst->pData; |
| 423 | for( ; *a!=(chr)0; a++, b++ ) | 426 | for( ; *a!=(chr)0 || *b!=(chr)0; a++, b++ ) |
| 424 | { | 427 | { |
| 425 | if( *a != *b ) | 428 | if( *a != *b ) |
| 426 | return false; | 429 | return false; |
| @@ -587,7 +590,7 @@ namespace Bu | |||
| 587 | long nNewLen = nLength - nAmnt; | 590 | long nNewLen = nLength - nAmnt; |
| 588 | flatten(); | 591 | flatten(); |
| 589 | Chunk *pNew = newChunk( nNewLen ); | 592 | Chunk *pNew = newChunk( nNewLen ); |
| 590 | cpy( pNew->pData, pFirst->pData, nNewLen ); | 593 | cpy( pNew->pData, pFirst->pData+nAmnt, nNewLen ); |
| 591 | clear(); | 594 | clear(); |
| 592 | appendChunk( pNew ); | 595 | appendChunk( pNew ); |
| 593 | } | 596 | } |
diff --git a/src/logger.cpp b/src/logger.cpp index aedfe0f..8c058d1 100644 --- a/src/logger.cpp +++ b/src/logger.cpp | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | Bu::Logger::Logger() | 6 | Bu::Logger::Logger() |
| 7 | { | 7 | { |
| 8 | setFormat("%t"); | ||
| 8 | } | 9 | } |
| 9 | 10 | ||
| 10 | Bu::Logger::~Logger() | 11 | Bu::Logger::~Logger() |
| @@ -27,7 +28,7 @@ void Bu::Logger::log( int nLevel, const char *sFile, const char *sFunction, int | |||
| 27 | char *line = NULL; | 28 | char *line = NULL; |
| 28 | struct tm *pTime; | 29 | struct tm *pTime; |
| 29 | pTime = localtime( &t ); | 30 | pTime = localtime( &t ); |
| 30 | asprintf( | 31 | if ( asprintf( |
| 31 | &line, | 32 | &line, |
| 32 | sLogFormat.getStr(), | 33 | sLogFormat.getStr(), |
| 33 | pTime->tm_year+1900, | 34 | pTime->tm_year+1900, |
| @@ -41,7 +42,11 @@ void Bu::Logger::log( int nLevel, const char *sFile, const char *sFunction, int | |||
| 41 | nLine, | 42 | nLine, |
| 42 | text, | 43 | text, |
| 43 | sFunction | 44 | sFunction |
| 44 | ); | 45 | ) < 0 ) |
| 46 | { | ||
| 47 | //printf("LOGGER: ERROR ALLOCATING STRING: %s\n", strerror( errno ) ); | ||
| 48 | return; | ||
| 49 | } | ||
| 45 | write( fileno(stdout), line, strlen(line) ); | 50 | write( fileno(stdout), line, strlen(line) ); |
| 46 | free( text ); | 51 | free( text ); |
| 47 | free( line ); | 52 | free( line ); |
