|
Use of tainted arguments in exec is deprecated at /var/www/cgi-bin/cvsweb.cgi line 2043.
|
|
===================================================================
|
|
RCS file: /home2/webcvs/mirror/kdepim/libkdenetwork/kmime_codec_qp.cpp,v
|
|
retrieving revision 1.12
|
|
retrieving revision 1.13
|
|
diff -u -p -r1.12 -r1.13
|
|
--- kdepim/libkdenetwork/kmime_codec_qp.cpp 2003/07/26 14:51:52 1.12
|
|
+++ kdepim/libkdenetwork/kmime_codec_qp.cpp 2003/10/30 14:15:30 1.13
|
|
@@ -189,6 +189,20 @@ public:
|
|
bool finish( char* & dcursor, const char * const dend );
|
|
};
|
|
|
|
+// this doesn't access any member variables, so it can be defined static
|
|
+// but then we can't call it from virtual functions
|
|
+static int QuotedPrintableDecoder_maxDecodedSizeFor( int insize, bool withCRLF ) {
|
|
+ // all chars unencoded:
|
|
+ int result = insize;
|
|
+ // but maybe all of them are \n and we need to make them \r\n :-o
|
|
+ if ( withCRLF )
|
|
+ result += insize;
|
|
+
|
|
+ // there might be an accu plus escape
|
|
+ result += 2;
|
|
+
|
|
+ return result;
|
|
+}
|
|
|
|
Encoder * QuotedPrintableCodec::makeEncoder( bool withCRLF ) const {
|
|
return new QuotedPrintableEncoder( withCRLF );
|
|
@@ -198,6 +212,10 @@ Decoder * QuotedPrintableCodec::makeDeco
|
|
return new QuotedPrintableDecoder( withCRLF );
|
|
}
|
|
|
|
+int QuotedPrintableCodec::maxDecodedSizeFor( int insize, bool withCRLF ) const {
|
|
+ return QuotedPrintableDecoder_maxDecodedSizeFor(insize, withCRLF);
|
|
+}
|
|
+
|
|
Encoder * Rfc2047QEncodingCodec::makeEncoder( bool withCRLF ) const {
|
|
return new Rfc2047QEncodingEncoder( withCRLF );
|
|
}
|
|
@@ -206,6 +224,10 @@ Decoder * Rfc2047QEncodingCodec::makeDec
|
|
return new QuotedPrintableDecoder( withCRLF, true );
|
|
}
|
|
|
|
+int Rfc2047QEncodingCodec::maxDecodedSizeFor( int insize, bool withCRLF ) const {
|
|
+ return QuotedPrintableDecoder_maxDecodedSizeFor(insize, withCRLF);
|
|
+}
|
|
+
|
|
Encoder * Rfc2231EncodingCodec::makeEncoder( bool withCRLF ) const {
|
|
return new Rfc2047QEncodingEncoder( withCRLF, '%' );
|
|
}
|
|
@@ -214,12 +236,14 @@ Decoder * Rfc2231EncodingCodec::makeDeco
|
|
return new QuotedPrintableDecoder( withCRLF, true, '%' );
|
|
}
|
|
|
|
+int Rfc2231EncodingCodec::maxDecodedSizeFor( int insize, bool withCRLF ) const {
|
|
+ return QuotedPrintableDecoder_maxDecodedSizeFor(insize, withCRLF);
|
|
+}
|
|
|
|
/********************************************************/
|
|
/********************************************************/
|
|
/********************************************************/
|
|
|
|
-
|
|
bool QuotedPrintableDecoder::decode( const char* & scursor, const char * const send,
|
|
char* & dcursor, const char * const dend ) {
|
|
if ( mWithCRLF )
|
|
@@ -402,7 +426,7 @@ bool QuotedPrintableEncoder::processNext
|
|
bufferFill += 16;
|
|
|
|
assert( bufferFill >=0 && bufferFill <= 15 );
|
|
-
|
|
+
|
|
if ( !mFinishing && !mSawLineEnd &&
|
|
bufferFill < minBufferFillWithoutLineEnd )
|
|
return false;
|
|
@@ -424,7 +448,7 @@ bool QuotedPrintableEncoder::processNext
|
|
else
|
|
// never needs encoding
|
|
mAccuNeedsEncoding = Never;
|
|
-
|
|
+
|
|
return true;
|
|
}
|
|
|
|
@@ -485,7 +509,7 @@ bool QuotedPrintableEncoder::encode( con
|
|
// fill input buffer until eol has been reached or until the
|
|
// buffer is full, whatever comes first:
|
|
fillInputBuffer( scursor, send );
|
|
-
|
|
+
|
|
if ( processNextChar() )
|
|
// there was one...
|
|
createOutputBuffer( dcursor, dend );
|
|
@@ -506,7 +530,7 @@ bool QuotedPrintableEncoder::encode( con
|
|
if ( mOutputBufferCursor ) flushOutputBuffer( dcursor, dend );
|
|
|
|
return (scursor == send);
|
|
-
|
|
+
|
|
} // encode
|
|
|
|
bool QuotedPrintableEncoder::finish( char* & dcursor,
|