Move is_url_string() and gtkstext_str_strcmp() to gtkstext.c.
[claws.git] / src / gtkstext.c
index 1128d9378f753fd7c6e56ed00373e9b137fdf476..c4d8760cfa076b6bc8bd85d53624133c2d3882a7 100644 (file)
@@ -5072,6 +5072,47 @@ scroll_up (GtkSText* text, gint diff0)
     process_exposes (text);
 }
 
+/* return str length if text at start_pos matches str else return zero */
+guint gtkstext_str_strcmp(GtkSText *text, guint start_pos,
+                         guint text_len, gchar *str) {
+       guint is_str, i, str_len;
+       gchar str_ch;
+
+       is_str = 0;
+       if (str) {
+               str_len = strlen(str);
+               is_str = 1;
+               for (i = 0; (i < str_len) && (start_pos + i < text_len); i++) {
+                       str_ch = GTK_STEXT_INDEX(text, start_pos + i);
+                       if (*(str + i) != str_ch) {
+                               break;
+                       }
+               }
+               if (i == 0 || i < str_len)
+                       is_str = 0;
+       }
+
+       return is_str ? str_len : 0;
+}
+
+/* return true if text at pos is URL */
+guint is_url_string(GtkSText *text, guint start_pos, guint text_len)
+{
+       guint len;
+
+       len = gtkstext_str_strcmp(text, start_pos, text_len, "ftp://");
+       if (len == 6)
+               return 1;
+       len = gtkstext_str_strcmp(text, start_pos, text_len, "http://");
+       if (len == 7)
+               return 1;
+       len = gtkstext_str_strcmp(text, start_pos, text_len, "https://");
+       if (len == 8)
+               return 1;
+
+       return 0;
+}
+
 /**********************************************************************/
 /*                           Display Code                            */
 /**********************************************************************/