Remove some deprecated GTK+ symbols
[modest] / src / modest-text-utils.c
index 12c000f..23942cc 100644 (file)
@@ -652,7 +652,7 @@ modest_text_utils_get_addresses_indexes (const gchar *addresses, GSList **start_
                        gchar *next_char = g_utf8_next_char (cur);
 
                        if (!g_utf8_strchr (start, (cur - start + 1), g_utf8_get_char ("@")) &&
-                           next_char && *next_char != '\n')
+                           next_char && *next_char != '\n' && *next_char != '\0')
                                continue;
 
                        start_index = g_new0 (gint, 1);
@@ -2193,8 +2193,7 @@ static void
 quote_name_part (GString **str, gchar **cur, gchar **start)
 {
        gchar *blank;
-       gint str_len = g_utf8_pointer_to_offset (*start, *cur) -
-               g_utf8_pointer_to_offset (*start, *start);
+       gint str_len = *cur - *start;
 
        while (**start == ' ') {
                *start = g_utf8_next_char (*start);
@@ -2248,3 +2247,39 @@ modest_text_utils_quote_names (const gchar *recipients)
 
        return g_string_free (str, FALSE);
 }
+
+/* Returns TRUE if there is no recipients in the text buffer. Note
+   that strings like " ; , " contain only separators and thus no
+   recipients */
+gboolean
+modest_text_utils_no_recipient (GtkTextBuffer *buffer)
+{
+       gboolean retval = TRUE;
+       gchar *text, *tmp;
+       GtkTextIter start, end;
+
+       if (gtk_text_buffer_get_char_count (buffer) == 0)
+               return TRUE;
+
+       gtk_text_buffer_get_start_iter (buffer, &start);
+       gtk_text_buffer_get_end_iter (buffer, &end);
+
+       text = g_strstrip (gtk_text_buffer_get_text (buffer, &start, &end, FALSE));
+       if (!g_strcmp0 (text, ""))
+               return TRUE;
+
+       tmp = text;
+       while (tmp && *tmp != '\0') {
+               if ((*tmp != ',') && (*tmp != ';') &&
+                   (*tmp != '\r') && (*tmp != '\n') &&
+                   (*tmp != ' ')) {
+                       retval = FALSE;
+                       break;
+               } else {
+                       tmp++;
+               }
+       }
+       g_free (text);
+
+       return retval;
+}