Revision: 7264
          http://svn.sourceforge.net/mahogany/?rev=7264&view=rev
Author:   vadz
Date:     2007-05-02 06:56:07 -0700 (Wed, 02 May 2007)

Log Message:
-----------
fix assert in AdbExpandSingleAddress() mailto handling

Modified Paths:
--------------
    trunk/M/src/adb/AdbManager.cpp

Modified: trunk/M/src/adb/AdbManager.cpp
===================================================================
--- trunk/M/src/adb/AdbManager.cpp      2007-05-02 00:57:43 UTC (rev 7263)
+++ trunk/M/src/adb/AdbManager.cpp      2007-05-02 13:56:07 UTC (rev 7264)
@@ -411,42 +411,48 @@
       // this is a non-standard but custom extension: mailto URLs can have
       // extra parameters introduced by '?' and separated by '&'
       const size_t posQuestion  = newText.find('?');
-      for ( size_t posParamStart = posQuestion; posParamStart != String::npos; 
)
+      if ( posQuestion != String::npos )
       {
-         posParamStart++;
-         size_t posEq = newText.find('=', posParamStart);
-         if ( posEq != String::npos )
-         {
-            size_t posParamEnd = newText.find('&', posEq);
+        size_t posParamStart = posQuestion;
+        do
+        {
+           posParamStart++;
+           size_t posEq = newText.find('=', posParamStart);
+           if ( posEq != String::npos )
+           {
+              size_t posParamEnd = newText.find('&', posEq);
 
-            const String param(newText, posParamStart, posEq - posParamStart),
-                         value(newText, posEq + 1,
-                               posParamEnd == String::npos
-                                 ? posParamEnd
-                                 : posParamEnd - posEq - 1);
-;
-            if ( wxStricmp(param, "subject") == 0 )
-            {
-               *subject = value;
-            }
-            else
-            {
-               // at least cc, bcc and body are also possible
-               wxLogDebug("Ignoring unknown mailto: URL parameter %s=\"%s\"",
-                          param.c_str(), value.c_str());
-            }
+              const String param(newText, posParamStart, posEq - 
posParamStart),
+                           value(newText, posEq + 1,
+                                 posParamEnd == String::npos
+                                   ? posParamEnd
+                                   : posParamEnd - posEq - 1);
+  ;
+              if ( wxStricmp(param, "subject") == 0 )
+              {
+                 *subject = value;
+              }
+              else
+              {
+                 // at least cc, bcc and body are also possible but we don't
+                 // handle them now
+                 wxLogDebug("Ignoring unknown mailto: URL parameter %s=\"%s\"",
+                            param.c_str(), value.c_str());
+              }
 
-            posParamStart = posParamEnd;
-         }
-         else // unknown parameter
-         {
-            wxLogDebug("Ignoring unknown mailto: URL parameter without value");
+              posParamStart = posParamEnd;
+           }
+           else // unknown parameter
+           {
+              wxLogDebug("Ignoring unknown mailto: URL parameter without 
value");
 
-            posParamStart = newText.find('&', posParamStart);
-         }
+              posParamStart = newText.find('&', posParamStart);
+           }
+        }
+        while ( posParamStart != String::npos );
+
+        newText.erase(posQuestion, String::npos);
       }
-
-      newText.erase(posQuestion, String::npos);
    }
 
    *address = newText;


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Mahogany-cvsupdates mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates

Reply via email to