static gchar* modest_text_utils_quote_plain_text (const gchar *text,
const gchar *cite,
+ const gchar *signature,
int limit);
static gchar* modest_text_utils_quote_html (const gchar *text,
- const gchar *cite,
+ const gchar *cite,
+ const gchar *signature,
int limit);
+static gchar* get_email_from_address (const gchar *address);
/* ******************************************************************* */
if (content_type && strcmp (content_type, "text/html") == 0)
/* TODO: extract the <body> of the HTML and pass it to
the function */
- retval = modest_text_utils_quote_html (text, cited, limit);
+ retval = modest_text_utils_quote_html (text, cited, signature, limit);
else
- retval = modest_text_utils_quote_plain_text (text, cited, limit);
+ retval = modest_text_utils_quote_plain_text (text, cited, signature, limit);
g_free (cited);
const gchar *from,
time_t sent_date)
{
- gchar *tmp, *retval;
+ gchar *retval;
gchar *tmp_sig;
g_return_val_if_fail (text, NULL);
tmp_sig = g_strdup (signature);
}
- tmp = cite (sent_date, from);
- retval = g_strdup_printf ("%s%s%s\n", tmp_sig, tmp, text);
+ retval = g_strdup_printf ("\n%s\n", tmp_sig);
g_free (tmp_sig);
- g_free (tmp);
return retval;
}
if (!strcmp (content_type, "text/html")) {
formatted_signature = g_strconcat (signature, "<br/>", NULL);
} else {
- formatted_signature = g_strconcat (signature, "\n");
+ formatted_signature = g_strconcat (signature, "\n", NULL);
}
} else {
formatted_signature = "";
* g_date_set_time_t (&date, timet);
*/
localtime_r (&timet, &tm);
-
return strftime(s, max, fmt, &tm);
}
{
gchar *dup, *token, *ptr, *result;
GString *filtered_emails;
+ gchar *email_address;
g_return_val_if_fail (address_list, NULL);
if (!address)
return g_strdup (address_list);
+
+ email_address = get_email_from_address (address);
/* search for substring */
- if (!strstr ((const char *) address_list, (const char *) address))
+ if (!strstr ((const char *) address_list, (const char *) email_address)) {
+ g_free (email_address);
return g_strdup (address_list);
+ }
dup = g_strdup (address_list);
filtered_emails = g_string_new (NULL);
while (token != NULL) {
/* Add to list if not found */
- if (!strstr ((const char *) token, (const char *) address)) {
+ if (!strstr ((const char *) token, (const char *) email_address)) {
if (filtered_emails->len == 0)
g_string_append_printf (filtered_emails, "%s", g_strstrip (token));
else
result = filtered_emails->str;
/* Clean */
+ g_free (email_address);
g_free (dup);
g_string_free (filtered_emails, FALSE);
static gchar *
modest_text_utils_quote_plain_text (const gchar *text,
const gchar *cite,
+ const gchar *signature,
int limit)
{
const gchar *iter;
g_string_free (l, TRUE);
} while ((iter < text + len) || (remaining->str[0]));
+ if (signature != NULL) {
+ q = g_string_append_c (q, '\n');
+ q = g_string_append (q, signature);
+ }
+
return g_string_free (q, FALSE);
}
static gchar*
modest_text_utils_quote_html (const gchar *text,
const gchar *cite,
+ const gchar *signature,
int limit)
{
+ gchar *result = NULL;
+ gchar *signature_result = NULL;
const gchar *format = \
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n" \
"<html>\n" \
"<body>\n" \
"%s" \
"<blockquote type=\"cite\">\n%s\n</blockquote>\n" \
+ "%s" \
"</body>\n" \
"</html>\n";
+ const gchar *signature_format = \
+ "<pre>\n" \
+ "%s\n" \
+ "</pre>";
- return g_strdup_printf (format, cite, text);
+ if (signature == NULL)
+ signature_result = g_strdup ("");
+ else
+ signature_result = g_strdup_printf (signature_format, signature);
+
+ result = g_strdup_printf (format, cite, text, signature_result);
+ g_free (signature_result);
+ return result;
}
static gint
if (!address)
return NULL;
-
+
g_return_val_if_fail (g_utf8_validate (address, -1, NULL), NULL);
-
+
g_strchug (address); /* remove leading whitespace */
/* <email@address> from display name */
now = time (NULL);
- modest_text_utils_strftime (date_buf, BUF_SIZE, "%d/%m/%Y", date);
- modest_text_utils_strftime (now_buf, BUF_SIZE, "%d/%m/%Y", now); /* today */
-/* modest_text_utils_strftime (date_buf, BUF_SIZE, "%x", date); */
-/* modest_text_utils_strftime (now_buf, BUF_SIZE, "%x", now); /\* today *\/ */
+ /* use the localized dates */
+ modest_text_utils_strftime (date_buf, BUF_SIZE, "%x", date);
+ modest_text_utils_strftime (now_buf, BUF_SIZE, "%x", now);
/* if this is today, get the time instead of the date */
if (strcmp (date_buf, now_buf) == 0)
- modest_text_utils_strftime (date_buf, BUF_SIZE, "%H:%M %P", date);
+ modest_text_utils_strftime (date_buf, BUF_SIZE, "%X", date);
return g_strdup(date_buf);
}
else if (KB <= size && size < 100 * KB)
return g_strdup_printf (_FM("sfil_li_size_1kb_99kb"), size / KB);
else if (100*KB <= size && size < MB)
- return g_strdup_printf (_FM("sfil_li_size_100kb_1mb"), size / MB);
+ return g_strdup_printf (_FM("sfil_li_size_100kb_1mb"), (float) size / MB);
else if (MB <= size && size < 10*MB)
- return g_strdup_printf (_FM("sfil_li_size_1mb_10mb"), size / MB);
+ return g_strdup_printf (_FM("sfil_li_size_1mb_10mb"), (float) size / MB);
else if (10*MB <= size && size < GB)
return g_strdup_printf (_FM("sfil_li_size_10mb_1gb"), size / MB);
else
- return g_strdup_printf (_FM("sfil_li_size_1gb_or_greater"), size / GB);
+ return g_strdup_printf (_FM("sfil_li_size_1gb_or_greater"), (float) size / GB);
+}
+
+static gchar *
+get_email_from_address (const gchar * address)
+{
+ gchar *left_limit, *right_limit;
+
+ left_limit = strstr (address, "<");
+ right_limit = g_strrstr (address, ">");
+
+ if ((left_limit == NULL)||(right_limit == NULL)|| (left_limit > right_limit))
+ return g_strdup (address);
+ else
+ return g_strndup (left_limit + 1, (right_limit - left_limit) - 1);
}