rem: Signature & signature()  { return mSignature; }
add: QString KMIdentity::signature(void) const { QString result, sigcmd;  if( mUseSignatureFile == false ) { return mSignatureInlineText; }  if (mSignatureFile.isEmpty()) return QString::null;  if (mSignatureFile.right(1)=="|") { KTempFile tmpf; int rc;  tmpf.setAutoDelete(true);  if (tmpf.status() != 0) { QString wmsg = i18n("Failed to create temporary file\n%1:\n%2").arg(tmpf.name()).arg(strerror(errno)); KMessageBox::information(0, wmsg); return QString::null; } tmpf.close();  sigcmd = mSignatureFile.left(mSignatureFile.length()-1); sigcmd += " >"; sigcmd += tmpf.name(); rc = system(sigcmd);  if (rc != 0) { QString wmsg = i18n("Failed to execute signature script\n%1:\n%2").arg(sigcmd.data()).arg(strerror(errno)); KMessageBox::information(0, wmsg); return QString::null; } result = QString::fromLocal8Bit(kFileToString(tmpf.name(), TRUE, FALSE)); } else { result = QString::fromLocal8Bit(kFileToString(mSignatureFile)); }  return result; }
context:   Signature & signature() /* _not_ const! */ { return mSignature; }