* src/modest-tny-msg.c:
[modest] / src / modest-protocol-info.c
index 5a579aa..684a598 100644 (file)
@@ -32,7 +32,7 @@
 #include <modest-protocol-info.h>
 #include <modest-pair.h>
 #include <modest-defs.h>
-
+#include <modest-text-utils.h>
 
 typedef struct {
        gint   proto;
@@ -50,6 +50,11 @@ static const ProtocolInfo TransportStoreProtocolMap[] = {
        { MODEST_PROTOCOL_STORE_MBOX,         "mbox",     N_("MBox") }
 };
 
+static const ProtocolInfo SupportedStoreProtocolMap[] = {
+       { MODEST_PROTOCOL_STORE_POP,          "pop",      N_("POP3") },
+       { MODEST_PROTOCOL_STORE_IMAP,         "imap",     N_("IMAPv4") },
+};
+
 static const ProtocolInfo ConnectionProtocolMap[] = {
        { MODEST_PROTOCOL_CONNECTION_NORMAL,    "none",     N_("None") },   
        { MODEST_PROTOCOL_CONNECTION_SSL,       "ssl",      N_("SSL") },   
@@ -94,35 +99,40 @@ get_protocol_by_name (const ProtocolInfo* map,
        guint i;
 
        g_return_val_if_fail (map, default_value);
-
+       g_return_val_if_fail (query_name, default_value);
+       
        for(i = 0; i < size; ++i)
-       {
-               if((case_sensitive && strcmp(map[i].name, query_name) == 0) ||
-                  (!case_sensitive && g_ascii_strcasecmp(map[i].name, query_name) == 0))
-               {
+               if (modest_text_utils_utf8_strcmp (map[i].name, query_name,
+                                                  !case_sensitive) == 0)
                        return map[i].proto;
-               }
-       }
-
+       
        return default_value;
 }
 
 ModestPairList*
-modest_protocol_info_get_transport_store_protocol_pair_list ()
+modest_protocol_info_get_transport_store_protocol_pair_list (void)
 {
        return get_protocol_pair_list (TransportStoreProtocolMap,
                G_N_ELEMENTS(TransportStoreProtocolMap));
 }
 
 ModestPairList*
-modest_protocol_info_get_auth_protocol_pair_list ()
+modest_protocol_info_get_supported_store_protocol_pair_list (void)
+{
+       return get_protocol_pair_list (SupportedStoreProtocolMap,
+               G_N_ELEMENTS(SupportedStoreProtocolMap));
+}
+
+
+ModestPairList*
+modest_protocol_info_get_auth_protocol_pair_list (void)
 {
        return get_protocol_pair_list (AuthProtocolMap,
                G_N_ELEMENTS(AuthProtocolMap));
 }
 
 ModestPairList*
-modest_protocol_info_get_connection_protocol_pair_list ()
+modest_protocol_info_get_connection_protocol_pair_list (void)
 {
        return get_protocol_pair_list (ConnectionProtocolMap,
                G_N_ELEMENTS(ConnectionProtocolMap));
@@ -131,6 +141,8 @@ modest_protocol_info_get_connection_protocol_pair_list ()
 ModestTransportStoreProtocol
 modest_protocol_info_get_transport_store_protocol (const gchar* name)
 {
+       g_return_val_if_fail (name, MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN);
+       
        return get_protocol_by_name(TransportStoreProtocolMap,
                                    G_N_ELEMENTS(TransportStoreProtocolMap),
                                    name,
@@ -141,6 +153,8 @@ modest_protocol_info_get_transport_store_protocol (const gchar* name)
 ModestAuthProtocol
 modest_protocol_info_get_auth_protocol (const gchar* name)
 {
+       g_return_val_if_fail (name, MODEST_PROTOCOL_AUTH_NONE);
+       
        return get_protocol_by_name(AuthProtocolMap,
                                    G_N_ELEMENTS(AuthProtocolMap),
                                    name,
@@ -148,6 +162,18 @@ modest_protocol_info_get_auth_protocol (const gchar* name)
                                    FALSE);
 }
 
+ModestConnectionProtocol
+modest_protocol_info_get_connection_protocol (const gchar* name)
+{
+       g_return_val_if_fail (name, MODEST_PROTOCOL_CONNECTION_NORMAL);
+       
+       return get_protocol_by_name(ConnectionProtocolMap,
+                                   G_N_ELEMENTS(ConnectionProtocolMap),
+                                   name,
+                                   MODEST_PROTOCOL_CONNECTION_NORMAL,
+                                   FALSE);
+}
+
 
 /* get either the name or the display_name for the protocol */
 static const gchar*