From fc6a53816a401060e2ff4dd3b15547651c341f40 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Sep 2002 12:52:04 +0000 Subject: [PATCH] replacing the setEncryptionStatus(char*) functions that are very likely to be called with dangling points with functions called with QChar arguments, that are safer and easier to program too svn path=/trunk/kdenetwork/kmail/; revision=179849 --- kmacctlocal.cpp | 8 ++------ kmacctmaildir.cpp | 8 ++------ kmmessage.cpp | 8 ++------ kmmessage.h | 4 ++-- kmmsgbase.cpp | 34 +++++++++++++--------------------- kmmsgbase.h | 4 ++-- 6 files changed, 23 insertions(+), 43 deletions(-) diff --git a/kmacctlocal.cpp b/kmacctlocal.cpp index 362d09061..c33ab03bc 100644 --- a/kmacctlocal.cpp +++ b/kmacctlocal.cpp @@ -198,12 +198,8 @@ if( fileD0.open( IO_WriteOnly ) ) { */ msg->setStatus(msg->headerField("Status").latin1(), msg->headerField("X-Status").latin1()); - QString c = msg->headerField( "X-KMail-EncryptionState" ); - if( !c.isEmpty() ) - msg->setEncryptionState( c.latin1() ); - c = msg->headerField( "X-KMail-SignatureState" ); - if( !c.isEmpty() ) - msg->setSignatureState( c.latin1() ); + msg->setEncryptionState( msg->headerField( "X-KMail-EncryptionState" ).at(0) ); + msg->setSignatureState( msg->headerField( "X-KMail-SignatureState" ).at(0)); addedOk = processNewMsg(msg); diff --git a/kmacctmaildir.cpp b/kmacctmaildir.cpp index 280eaf560..04127f6ea 100644 --- a/kmacctmaildir.cpp +++ b/kmacctmaildir.cpp @@ -170,12 +170,8 @@ void KMAcctMaildir::processNewMail(bool) { msg->setStatus(msg->headerField("Status").latin1(), msg->headerField("X-Status").latin1()); - char* c = (char*)msg->headerField( "X-KMail-EncryptionState" ).latin1(); - if( c ) - msg->setEncryptionState( c ); - c = (char*)msg->headerField( "X-KMail-SignatureState" ).latin1(); - if( c ) - msg->setSignatureState( c ); + msg->setEncryptionState( msg->headerField( "X-KMail-EncryptionState" ).at(0)); + msg->setSignatureState( msg->headerField( "X-KMail-SignatureState" ).at(0)); addedOk = processNewMsg(msg); if (addedOk) diff --git a/kmmessage.cpp b/kmmessage.cpp index 2ad936b19..a94406d4e 100644 --- a/kmmessage.cpp +++ b/kmmessage.cpp @@ -346,12 +346,8 @@ void KMMessage::fromString(const QCString& aStr, bool aSetStatus) if (aSetStatus) { setStatus(headerField("Status").latin1(), headerField("X-Status").latin1()); - char* c = (char*)headerField("X-KMail-EncryptionState").latin1(); - if( c ) - setEncryptionState( c ); - c = (char*)headerField("X-KMail-SignatureState").latin1(); - if( c ) - setSignatureState( c ); + setEncryptionState( headerField("X-KMail-EncryptionState").at(0) ); + setSignatureState( headerField("X-KMail-SignatureState").at(0) ); } mNeedsAssembly = FALSE; diff --git a/kmmessage.h b/kmmessage.h index 2a6814301..31a8019c7 100644 --- a/kmmessage.h +++ b/kmmessage.h @@ -547,7 +547,7 @@ public: * the parent folder. */ virtual void setEncryptionState(const KMMsgEncryptionState status, int idx = -1 ); - virtual void setEncryptionState( const char* status, + virtual void setEncryptionState( QChar status, int idx = -1 ) { KMMsgBase::setEncryptionState( status, idx ); } /** Set signature status of the message and mark dirty. Optional @@ -555,7 +555,7 @@ public: * the parent folder. */ virtual void setSignatureState(const KMMsgSignatureState status, int idx = -1 ); - virtual void setSignatureState( const char* status, + virtual void setSignatureState( QChar status, int idx = -1 ) { KMMsgBase::setSignatureState( status, idx ); } /** Encryption status of the message. */ diff --git a/kmmsgbase.cpp b/kmmsgbase.cpp index 0f70274b7..62676ab67 100644 --- a/kmmsgbase.cpp +++ b/kmmsgbase.cpp @@ -164,30 +164,26 @@ void KMMsgBase::setStatus(const char* aStatusStr, const char* aXStatusStr) void KMMsgBase::setEncryptionState( const KMMsgEncryptionState status, int idx ) { - qDebug( "***setEncryptionState1( %c )", status ); + qDebug( "***setEncryptionState1( %d )", status ); mDirty = TRUE; if (mParent) mParent->headerOfMsgChanged(this, idx); } -void KMMsgBase::setEncryptionState( const char* status, int idx ) +void KMMsgBase::setEncryptionState( QChar status, int idx ) { - qDebug( "***setEncryptionState2( %c )", status ? status[0] : '?' ); + qDebug( "***setEncryptionState2( %c )", status.isNull() ? '?' : status.latin1() ); - if( status ){ - if( status[0] == (char)KMMsgEncryptionStateUnknown ) + if( status.latin1() == (char)KMMsgEncryptionStateUnknown ) setEncryptionState( KMMsgEncryptionStateUnknown, idx ); - else if( status[0] == (char)KMMsgNotEncrypted ) + else if( status.latin1() == (char)KMMsgNotEncrypted ) setEncryptionState( KMMsgNotEncrypted, idx ); - else if( status[0] == (char)KMMsgPartiallyEncrypted ) + else if( status.latin1() == (char)KMMsgPartiallyEncrypted ) setEncryptionState( KMMsgPartiallyEncrypted, idx ); - else if( status[0] == (char)KMMsgFullyEncrypted ) + else if( status.latin1() == (char)KMMsgFullyEncrypted ) setEncryptionState( KMMsgFullyEncrypted, idx ); else setEncryptionState( KMMsgEncryptionStateUnknown, idx ); - } - else - setEncryptionState( KMMsgEncryptionStateUnknown, idx ); } @@ -202,22 +198,18 @@ void KMMsgBase::setSignatureState( const KMMsgSignatureState status, -void KMMsgBase::setSignatureState( const char* status, int idx ) +void KMMsgBase::setSignatureState( QChar status, int idx ) { - qDebug( "***setSignatureState2( %c )", status ? status[0] : '?' ); + qDebug( "***setSignatureState2( %c )", status.isNull() ? '?' : status.latin1() ); - if( status ){ - if( status[0] == (char)KMMsgSignatureStateUnknown ) + if( status.latin1() == (char)KMMsgSignatureStateUnknown ) setSignatureState( KMMsgSignatureStateUnknown, idx ); - else if( status[0] == (char)KMMsgNotSigned ) + else if( status.latin1() == (char)KMMsgNotSigned ) setSignatureState( KMMsgNotSigned, idx ); - else if( status[0] == (char)KMMsgPartiallySigned ) + else if( status.latin1() == (char)KMMsgPartiallySigned ) setSignatureState( KMMsgPartiallySigned,idx ); - else if( status[0] == (char)KMMsgFullySigned ) + else if( status.latin1() == (char)KMMsgFullySigned ) setSignatureState( KMMsgFullySigned, idx ); - else - setSignatureState( KMMsgSignatureStateUnknown, idx ); - } else setSignatureState( KMMsgSignatureStateUnknown, idx ); } diff --git a/kmmsgbase.h b/kmmsgbase.h index 720128ec1..285a44801 100644 --- a/kmmsgbase.h +++ b/kmmsgbase.h @@ -107,7 +107,7 @@ public: * the parent folder. */ virtual void setEncryptionState(const KMMsgEncryptionState status, int idx = -1 ); - virtual void setEncryptionState( const char* status, + virtual void setEncryptionState( QChar status, int idx = -1 ); /** Set signature status of the message and mark dirty. Optional @@ -115,7 +115,7 @@ public: * the parent folder. */ virtual void setSignatureState(const KMMsgSignatureState status, int idx = -1 ); - virtual void setSignatureState( const char* status, + virtual void setSignatureState( QChar status, int idx = -1 );