+ * "Foo Bar <foo@bar.cx>" --> "Foo Bar"
+ * ie. removes "<...>" parts
+ * the change is in-place; removes leading whitespace
+ *
+ * NOTE: for optimization reasons, this function changes @address
+ * in-place
+ */
+void modest_text_utils_get_display_address (gchar *address);
+
+/**
+ * modest_text_utils_get_display_addresses:
+ * @addresses: a list of comma-separated addresses
+ *
+ * Transforms a list of email addresses in a list of recipients,
+ * replacing each plain email address by the correspondent display
+ * address.
+ *
+ * Returns: a newly allocated string, that must be freed by the caller
+ **/
+gchar *modest_text_utils_get_display_addresses (const gchar *addresses);
+
+
+/**
+ * modest_text_utils_get_email_address:
+ * @full_address: original address (UTF8 string)
+ *
+ * make a 'foo@bar.cx' from an address:
+ * "Foo Bar <foo@bar.cx> (Bla)" --> "foo@bar.cx"
+ * If no "<...>" is found, then it returns the full
+ * strings.
+ *
+ * Returns: a newly allocated string with the copy.
+ *
+ * NULL in case of error or if address == NULL
+ */
+gchar* modest_text_utils_get_email_address (const gchar *email_address);
+
+
+/**
+ * modest_text_utils_get_subject_prefix_len:
+ * @subject: original subject (UTF8 string)
+ *
+ * determine the length of the "Re:/RE:/Fwd:" prefix in an e-mail address
+ *
+ * Returns: the length of the prefix, or 0 if there is none
+ */
+gint modest_text_utils_get_subject_prefix_len (const gchar *subject);
+
+
+/**
+ * modest_text_utils_utf8_strcmp:
+ * @s1: the first string
+ * @s2: the second string
+ * @insensitive: should the comparison be case-insensitive?
+ *
+ * a strcmp that is NULL-safe, can deal with UTF8 and case-insensitive comparison
+ *
+ * Returns: an integer less than, equal to, or greater than zero if s1 is found,
+ * respectively, to be less than, to match, or be greater than s2.
+ */
+gint modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insensitive);
+
+
+
+/**
+ * modest_text_utils_get_display_date:
+ * @date: the date to display
+ *
+ * get a string representation for a date.
+ *
+ * Returns: the new display date, as a *static* string.
+ * This string should not be modified, and will change
+ * upon recalling this function. g_strdup it if you to
+ * do so.
+ *
+ */
+const gchar* modest_text_utils_get_display_date (time_t date);
+
+
+/**
+ * modest_text_utils_get_display_size:
+ * @size: size in bytes
+ *
+ * get a string representation for a size in bytes.
+ *
+ * Returns: the newly allocated display string for the
+ * size in bytes. must be freed.
+ */
+gchar * modest_text_utils_get_display_size (guint64 size);
+
+
+
+/**
+ * modest_text_utils_validate_domain_name:
+ * @email_address: a NULL-terminated string
+ *
+ * validates the domain name passed as argument
+ *
+ * Returns: TRUE if the domain name is valid, FALSE otherwise
+ **/
+gboolean modest_text_utils_validate_domain_name (const gchar *domain);
+
+/**
+ * modest_text_utils_validate_email_address:
+ * @email_address: a string
+ * @invalid_char_position: pointer to the position of the invalid
+ * character in case validation failed because of this, or %NULL.
+ *
+ * validates the email address passed as argument
+ *
+ * Returns: TRUE if the address is valid, FALSE otherwise
+ **/
+gboolean modest_text_utils_validate_email_address (const gchar *email_address,
+ const gchar **invalid_char_position);
+
+
+/**
+ * modest_text_utils_validate_folder_name:
+ * @folder_name: a string
+ *
+ * validates the folder name passed as argument. a 'valid folder name'
+ * is a name which should be valid on both Unix and Windows file systems.
+ * of course, this might be stricter than strictly needed in some cases,
+ * but it's better to err on the safe side.