25 #include "mailaddress.h" 26 #include "rfcdecoder.h" 27 #include "mimehdrline.h" 28 #include <kmime_util.h> 30 mailAddress::mailAddress ()
34 mailAddress::mailAddress (
const mailAddress & lr):
37 rawFullName (lr.rawFullName),
38 rawComment (lr.rawComment)
43 mailAddress & mailAddress::operator = (
const mailAddress & lr)
51 rawFullName = lr.rawFullName;
52 rawComment = lr.rawComment;
62 mailAddress::~mailAddress ()
66 mailAddress::mailAddress (
char *aCStr)
72 mailAddress::parseAddress (
char *aCStr)
96 rawFullName += TQCString (aCStr, advance + 1);
100 rawComment += TQCString (aCStr, advance + 1);
104 user = TQCString (aCStr, advance + 1);
106 user = user.mid (1, len - 2);
109 host = user.right (len - pt - 1);
119 rawFullName += TQCString (aCStr, advance + 1);
149 if (rawFullName.isEmpty ())
162 else if (user.isEmpty ())
164 pt = rawFullName.find (
'@');
168 host = user.right (user.length () - pt - 1);
170 rawFullName.truncate(0);
176 if (!rawFullName.isEmpty ())
184 if (!rawComment.isEmpty ())
186 if (rawComment[0] ==
'(')
187 rawComment = rawComment.mid (1, rawComment.length () - 2);
188 rawComment = rawComment.stripWhiteSpace ();
200 mailAddress::getStr ()
202 TQCString retVal(128);
204 if (!rawFullName.isEmpty ())
206 KMime::addQuotes( rawFullName,
false );
207 retVal = rawFullName +
" ";
209 if (!user.isEmpty ())
213 if (!host.isEmpty ()) {
219 if (!rawComment.isEmpty ())
221 retVal =
'(' + rawComment +
')';
228 mailAddress::isEmpty ()
const 230 return user.isEmpty ();
234 mailAddress::setFullName (
const TQString & _str)
239 mailAddress::getFullName ()
const 245 mailAddress::setCommentRaw (
const TQCString & _str)
251 mailAddress::setComment (
const TQString & _str)
256 mailAddress::getComment ()
const 262 mailAddress::getCommentRaw ()
const 268 mailAddress::emailAddrAsAnchor (
const mailAddress & adr,
bool shortAdr)
271 if (!adr.getFullName ().isEmpty ())
274 retVal += adr.getFullName () +
" ";
276 if (!adr.getUser ().isEmpty () && !shortAdr)
278 retVal +=
"<" + adr.getUser ();
279 if (!adr.getHost ().isEmpty ())
280 retVal +=
"@" + adr.getHost ();
283 if (!adr.getComment ().isEmpty ())
286 retVal =
'(' + adr.getComment () +
')';
289 if (!adr.getUser ().isEmpty ())
292 mail = adr.getUser ();
293 if (!mail.isEmpty () && !adr.getHost ().isEmpty ())
294 mail +=
"@" + adr.getHost ();
295 if (!mail.isEmpty ())
296 retVal =
"<A HREF=\"mailto:" + mail +
"\">" + retVal +
"</A>";
302 mailAddress::emailAddrAsAnchor (
const TQPtrList < mailAddress > &list,
bool value)
305 TQPtrListIterator < mailAddress > it (list);
307 while (it.current ())
309 retVal += emailAddrAsAnchor ((*it.current ()), value) +
"<BR></BR>\n";
317 void mailAddress::clear() {
320 rawFullName.truncate(0);
321 rawComment.truncate(0);
static int parseWord(const char *)
slurp one word
static int parseQuoted(char, char, const char *)
slurp one word
static const TQString decodeRFC2047String(const TQString &_str, TQString &charset, TQString &language)
decode a RFC2047 String
static const TQString encodeRFC2047String(const TQString &_str, TQString &charset, TQString &language)
encode a RFC2047 String
static int skipWS(const char *)
skip all white space characters