diff options
Diffstat (limited to 'libemailfunctions/email.cpp')
-rw-r--r-- | libemailfunctions/email.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libemailfunctions/email.cpp b/libemailfunctions/email.cpp index b5148736f..0f6b83617 100644 --- a/libemailfunctions/email.cpp +++ b/libemailfunctions/email.cpp @@ -685,7 +685,7 @@ bool KPIM::getNameAndMail(const TQString& aStr, TQString& name, TQString& mail) }else if( bInQuotesOutsideOfEmail ){ if( cQuotes == c ) bInQuotesOutsideOfEmail = false; - else + else if ( c != '\\' ) name.prepend( c ); }else{ // found the start of this addressee ? @@ -695,8 +695,9 @@ bool KPIM::getNameAndMail(const TQString& aStr, TQString& name, TQString& mail) if( iMailStart ){ if( cQuotes == c ) bInQuotesOutsideOfEmail = true; // end of quoted text found - else + else { name.prepend( c ); + } }else{ switch( c ){ case '<': @@ -751,7 +752,7 @@ bool KPIM::getNameAndMail(const TQString& aStr, TQString& name, TQString& mail) }else if( bInQuotesOutsideOfEmail ){ if( cQuotes == c ) bInQuotesOutsideOfEmail = false; - else + else if ( c != '\\' ) name.append( c ); }else{ // found the end of this addressee ? @@ -809,16 +810,22 @@ TQString KPIM::normalizedAddress( const TQString & displayName, const TQString & addrSpec, const TQString & comment ) { - if ( displayName.isEmpty() && comment.isEmpty() ) + TQString realDisplayName = displayName; + realDisplayName.remove( TQChar( 0x202D ) ); + realDisplayName.remove( TQChar( 0x202E ) ); + realDisplayName.remove( TQChar( 0x202A ) ); + realDisplayName.remove( TQChar( 0x202B ) ); + + if ( realDisplayName.isEmpty() && comment.isEmpty() ) return addrSpec; else if ( comment.isEmpty() ) - return quoteNameIfNecessary( displayName ) + " <" + addrSpec + ">"; - else if ( displayName.isEmpty() ) { + return quoteNameIfNecessary( realDisplayName ) + " <" + addrSpec + ">"; + else if ( realDisplayName.isEmpty() ) { TQString commentStr = comment; return quoteNameIfNecessary( commentStr ) + " <" + addrSpec + ">"; } else - return displayName + " (" + comment + ") <" + addrSpec + ">"; + return realDisplayName + " (" + comment + ") <" + addrSpec + ">"; } |