[haiku-commits] r41064 - haiku/trunk/src/kits/mail

  • From: clemens.zeidler@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 21 Mar 2011 11:20:02 +0100 (CET)

Author: czeidler
Date: 2011-03-21 11:20:02 +0100 (Mon, 21 Mar 2011)
New Revision: 41064
Changeset: https://dev.haiku-os.org/changeset/41064

Modified:
   haiku/trunk/src/kits/mail/HaikuMailFormatFilter.cpp
Log:
Return the email address if the name is empty. Fix some side cases.



Modified: haiku/trunk/src/kits/mail/HaikuMailFormatFilter.cpp
===================================================================
--- haiku/trunk/src/kits/mail/HaikuMailFormatFilter.cpp 2011-03-21 09:38:12 UTC 
(rev 41063)
+++ haiku/trunk/src/kits/mail/HaikuMailFormatFilter.cpp 2011-03-21 10:20:02 UTC 
(rev 41064)
@@ -217,20 +217,36 @@
 BString
 HaikuMailFormatFilter::_ExtractName(const BString& from)
 {
+       // extract name from something like "name" <email@xxxxxxxxxx>
+       // if name is empty return the mail address without "<>"
+
        BString name;
-
        int32 emailStart = from.FindFirst("<");
-       if (emailStart < 0)
+       if (emailStart < 0) {
                name = from;
+               return name.Trim();
+       }
 
        from.CopyInto(name, 0, emailStart);
        name.Trim();
-       if (name.Length() < 2)
+       if (name.Length() >= 2) {
+               if (name[name.Length() - 1] == '\"')
+                       name.Truncate(name.Length() - 1, true);
+               if (name[0] == '\"')
+                       name.Remove(0, 1);
+               name.Trim();
+       }
+       if (name != "") 
+               return name;
+
+       // empty name extract email address
+       name = from;
+       name.Remove(0, emailStart + 1);
+       name.Trim();
+       if (name.Length() < 1)
                return from;
-
-       if (name[name.Length() - 1] == '\"')
+       if (name[name.Length() - 1] == '>')
                name.Truncate(name.Length() - 1, true);
-       if (name[0] == '\"')
-               name.Remove(0, 1);
+       name.Trim();
        return name;
 }


Other related posts:

  • » [haiku-commits] r41064 - haiku/trunk/src/kits/mail - clemens . zeidler