This commit is contained in:
parent
dc48eb1701
commit
f0b7bccc78
@ -1,48 +0,0 @@
|
||||
--- plugins/prefer-plain/prefer-plain.c 2008/05/27 04:17:04 35553
|
||||
+++ plugins/prefer-plain/prefer-plain.c 2008/05/27 12:38:24 35554
|
||||
@@ -99,20 +99,41 @@
|
||||
int i, nparts, partidlen, displayid = 0;
|
||||
|
||||
if (epp_mode == EPP_NORMAL) {
|
||||
+ gboolean have_plain = FALSE;
|
||||
+
|
||||
/* Try to find text/html part even when not as last and force to show it.
|
||||
Old handler will show the last part of multipart/alternate, but if we
|
||||
- can offer HTML, then offer it, regardless of position in multipart. */
|
||||
+ can offer HTML, then offer it, regardless of position in multipart.
|
||||
+ But do this only when have text/plain in a list, because otherwise it
|
||||
+ can be something else (like outlooks meeting invites with only text/html
|
||||
+ part and calendar part).
|
||||
+ */
|
||||
nparts = camel_multipart_get_number (mp);
|
||||
for (i = 0; i < nparts; i++) {
|
||||
+ CamelContentType *content_type;
|
||||
+
|
||||
part = camel_multipart_get_part (mp, i);
|
||||
- if (part && camel_content_type_is (camel_mime_part_get_content_type (part), "text", "html")) {
|
||||
+
|
||||
+ if (!part)
|
||||
+ continue;
|
||||
+
|
||||
+ content_type = camel_mime_part_get_content_type (part);
|
||||
+
|
||||
+ if (camel_content_type_is (content_type, "text", "html")) {
|
||||
displayid = i;
|
||||
display_part = part;
|
||||
- break;
|
||||
+
|
||||
+ if (have_plain)
|
||||
+ break;
|
||||
+ } else if (camel_content_type_is (content_type, "text", "plain")) {
|
||||
+ have_plain = TRUE;
|
||||
+
|
||||
+ if (display_part)
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
- if (display_part) {
|
||||
+ if (display_part && have_plain) {
|
||||
g_string_append_printf (t->format->part_id, ".alternative.%d", displayid);
|
||||
em_format_part_as (t->format, t->stream, display_part, "text/html");
|
||||
g_string_truncate (t->format->part_id, partidlen);
|
@ -1,11 +0,0 @@
|
||||
--- mail/em-format-html-display.c
|
||||
+++ mail/em-format-html-display.c
|
||||
@@ -2273,7 +2273,7 @@ efhd_message_update_bar(EMFormat *emf, CamelStream *stream, CamelMimePart *part,
|
||||
EMFormatHTMLDisplay *efhd = (EMFormatHTMLDisplay *) emf;
|
||||
const char *classid = "attachment-bar-refresh";
|
||||
|
||||
- if (efhd->nobar || efhd->priv->updated )
|
||||
+ if (efhd->nobar || efhd->priv->updated || !efhd->priv->attachment_bar)
|
||||
return;
|
||||
|
||||
efhd->priv->files = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
@ -1,24 +0,0 @@
|
||||
Index: calendar/gui/e-day-view.c
|
||||
===================================================================
|
||||
--- calendar/gui/e-day-view.c (revision 35521)
|
||||
+++ calendar/gui/e-day-view.c (working copy)
|
||||
@@ -3822,6 +3822,9 @@ e_day_view_update_resize (EDayView *day_
|
||||
g_print ("Updating resize Row:%i\n", row);
|
||||
#endif
|
||||
|
||||
+ if (day_view->resize_event_num == -1)
|
||||
+ return;
|
||||
+
|
||||
day = day_view->resize_event_day;
|
||||
event_num = day_view->resize_event_num;
|
||||
event = &g_array_index (day_view->events[day], EDayViewEvent,
|
||||
@@ -3972,6 +3975,9 @@ e_day_view_finish_resize (EDayView *day_
|
||||
CalObjModType mod = CALOBJ_MOD_ALL;
|
||||
GtkWindow *toplevel;
|
||||
|
||||
+ if (day_view->resize_event_num == -1)
|
||||
+ return;
|
||||
+
|
||||
day = day_view->resize_event_day;
|
||||
event_num = day_view->resize_event_num;
|
||||
event = &g_array_index (day_view->events[day], EDayViewEvent,
|
@ -1,73 +0,0 @@
|
||||
Index: plugins/backup-restore/org-gnome-backup-restore.error.xml
|
||||
===================================================================
|
||||
--- plugins/backup-restore/org-gnome-backup-restore.error.xml (revision 35517)
|
||||
+++ plugins/backup-restore/org-gnome-backup-restore.error.xml (working copy)
|
||||
@@ -17,4 +17,8 @@
|
||||
<button stock="gtk-no" response="GTK_RESPONSE_NO"/>
|
||||
<button stock="gtk-yes" response="GTK_RESPONSE_YES"/>
|
||||
</error>
|
||||
+ <error id="insufficient-permissions" type="error">
|
||||
+ <_title>Insufficient Permissions</_title>
|
||||
+ <_secondary>The selected folder does not have enough permissions to create the file</_secondary>
|
||||
+ </error>
|
||||
</error-list>
|
||||
Index: plugins/backup-restore/backup-restore.c
|
||||
===================================================================
|
||||
--- plugins/backup-restore/backup-restore.c (revision 35517)
|
||||
+++ plugins/backup-restore/backup-restore.c (working copy)
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <sys/wait.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib/gi18n.h>
|
||||
+#include <glib/gstdio.h>
|
||||
#include <libgnomeui/libgnomeui.h>
|
||||
#include "shell/es-menu.h"
|
||||
#include "mail/em-config.h"
|
||||
@@ -86,6 +87,16 @@ dialog_prompt_user(GtkWindow *parent, co
|
||||
return mask;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+epbr_perform_pre_backup_checks (char* dir)
|
||||
+{
|
||||
+#ifdef G_OS_WIN32
|
||||
+ return TRUE;
|
||||
+#else
|
||||
+ return (g_access (dir, W_OK) == 0);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
void
|
||||
org_gnome_backup_restore_backup (EPlugin *ep, ESMenuTargetShell *target)
|
||||
{
|
||||
@@ -110,18 +121,27 @@ org_gnome_backup_restore_backup (EPlugin
|
||||
char *filename;
|
||||
guint32 mask;
|
||||
char *uri = NULL;
|
||||
+ char *dir;
|
||||
|
||||
uri = gtk_file_chooser_get_current_folder_uri(GTK_FILE_CHOOSER (dlg));
|
||||
e_file_update_save_path(uri, TRUE);
|
||||
|
||||
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dlg));
|
||||
+ dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dlg));
|
||||
gtk_widget_destroy (dlg);
|
||||
|
||||
- mask = dialog_prompt_user (GTK_WINDOW (target->target.widget), _("_Restart Evolution after backup"), "org.gnome.backup-restore:backup-confirm", NULL);
|
||||
- if (mask & BR_OK)
|
||||
- backup (filename, (mask & BR_START) ? TRUE: FALSE);
|
||||
+
|
||||
+ if (epbr_perform_pre_backup_checks (dir)) {
|
||||
+
|
||||
+ mask = dialog_prompt_user (GTK_WINDOW (target->target.widget), _("_Restart Evolution after backup"), "org.gnome.backup-restore:backup-confirm", NULL);
|
||||
+ if (mask & BR_OK)
|
||||
+ backup (filename, (mask & BR_START) ? TRUE: FALSE);
|
||||
+ } else {
|
||||
+ e_error_run (NULL, "org.gnome.backup-restore:insufficient-permissions", NULL);
|
||||
+ }
|
||||
|
||||
g_free (filename);
|
||||
+ g_free (dir);
|
||||
|
||||
return;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +0,0 @@
|
||||
--- plugins/exchange-operations/exchange-contacts.c 2008-05-02 01:25:38.000000000 +0530
|
||||
+++ plugins/exchange-operations/exchange-contacts.c 2008-05-26 16:28:51.000000000 +0530
|
||||
@@ -491,6 +491,7 @@ e_exchange_contacts_commit (EPlugin *epl
|
||||
if (authtype) {
|
||||
e_source_set_property (source, "auth-type", authtype);
|
||||
g_free (authtype);
|
||||
+ authtype=NULL;
|
||||
}
|
||||
e_source_set_property (source, "auth", "plain/password");
|
||||
if (rename) {
|
@ -1,311 +0,0 @@
|
||||
Index: calendar/gui/e-itip-control.c
|
||||
===================================================================
|
||||
--- calendar/gui/e-itip-control.c (revision 35555)
|
||||
+++ calendar/gui/e-itip-control.c (working copy)
|
||||
@@ -660,7 +660,7 @@ find_attendee (icalcomponent *ical_comp,
|
||||
|
||||
static void
|
||||
write_label_piece (EItipControl *itip, ECalComponentDateTime *dt,
|
||||
- char *buffer, int size,
|
||||
+ GString *buffer,
|
||||
const char *stext, const char *etext,
|
||||
gboolean just_date)
|
||||
{
|
||||
@@ -685,13 +685,13 @@ write_label_piece (EItipControl *itip, E
|
||||
tmp_tm.tm_hour = tmp_tm.tm_min = tmp_tm.tm_sec = 0;
|
||||
|
||||
if (stext != NULL)
|
||||
- strcat (buffer, stext);
|
||||
+ g_string_append (buffer, stext);
|
||||
|
||||
e_time_format_date_and_time (&tmp_tm,
|
||||
calendar_config_get_24_hour_format (),
|
||||
FALSE, FALSE,
|
||||
time_buf, sizeof (time_buf));
|
||||
- strcat (buffer, time_buf);
|
||||
+ g_string_append (buffer, time_buf);
|
||||
|
||||
if (!dt->value->is_utc && dt->tzid) {
|
||||
zone = icalcomponent_get_timezone (priv->top_level, dt->tzid);
|
||||
@@ -703,21 +703,21 @@ write_label_piece (EItipControl *itip, E
|
||||
UTF-8. But it probably is not translated. */
|
||||
display_name = icaltimezone_get_display_name (zone);
|
||||
if (display_name && *display_name) {
|
||||
- strcat (buffer, " <font size=-1>[");
|
||||
+ g_string_append_len (buffer, " <font size=-1>[", 16);
|
||||
|
||||
/* We check if it is one of our builtin timezone names,
|
||||
in which case we call gettext to translate it. */
|
||||
if (icaltimezone_get_builtin_timezone (display_name)) {
|
||||
- strcat (buffer, _(display_name));
|
||||
+ g_string_append_printf (buffer, "%s", _(display_name));
|
||||
} else {
|
||||
- strcat (buffer, display_name);
|
||||
+ g_string_append_printf (buffer, "%s", display_name);
|
||||
}
|
||||
- strcat (buffer, "]</font>");
|
||||
+ g_string_append_len (buffer, "]</font>", 8);
|
||||
}
|
||||
}
|
||||
|
||||
if (etext != NULL)
|
||||
- strcat (buffer, etext);
|
||||
+ g_string_append (buffer, etext);
|
||||
}
|
||||
|
||||
static const char *
|
||||
@@ -754,19 +754,17 @@ get_dayname (struct icalrecurrencetype *
|
||||
|
||||
static void
|
||||
write_recurrence_piece (EItipControl *itip, ECalComponent *comp,
|
||||
- char *buffer, int size)
|
||||
+ GString *buffer)
|
||||
{
|
||||
GSList *rrules;
|
||||
struct icalrecurrencetype *r;
|
||||
- int len, i;
|
||||
+ int i;
|
||||
|
||||
- strcpy (buffer, "<b>Recurring:</b> ");
|
||||
- len = strlen (buffer);
|
||||
- buffer += len;
|
||||
- size -= len;
|
||||
+ g_string_append_len (buffer, "<b>Recurring:</b> ", 18);
|
||||
|
||||
if (!e_cal_component_has_simple_recurrence (comp)) {
|
||||
- strcpy (buffer, _("Yes. (Complex Recurrence)"));
|
||||
+ g_string_append_printf (
|
||||
+ buffer, "%s", _("Yes. (Complex Recurrence)"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -782,7 +780,10 @@ write_recurrence_piece (EItipControl *it
|
||||
Every %d day/days" */
|
||||
/* For Translators : 'Every day' is event Recurring every day */
|
||||
/* For Translators : 'Every %d days' is event Recurring every %d days. %d is a digit */
|
||||
- sprintf (buffer, ngettext("Every day", "Every %d days", r->interval), r->interval);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("Every day",
|
||||
+ "Every %d days", r->interval),
|
||||
+ r->interval);
|
||||
break;
|
||||
|
||||
case ICAL_WEEKLY_RECURRENCE:
|
||||
@@ -792,29 +793,36 @@ write_recurrence_piece (EItipControl *it
|
||||
Every %d week/weeks" */
|
||||
/* For Translators : 'Every week' is event Recurring every week */
|
||||
/* For Translators : 'Every %d weeks' is event Recurring every %d weeks. %d is a digit */
|
||||
- sprintf (buffer, ngettext("Every week", "Every %d weeks", r->interval), r->interval);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("Every week",
|
||||
+ "Every %d weeks", r->interval),
|
||||
+ r->interval);
|
||||
} else {
|
||||
/* For Translators : 'Every week on' is event Recurring every week on (dayname) and (dayname) and (dayname) */
|
||||
/* For Translators : 'Every %d weeks on' is event Recurring: every %d weeks on (dayname) and (dayname). %d is a digit */
|
||||
- sprintf (buffer, ngettext("Every week on ", "Every %d weeks on ", r->interval), r->interval);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("Every week on ",
|
||||
+ "Every %d weeks on ", r->interval),
|
||||
+ r->interval);
|
||||
|
||||
for (i = 1; i < 8 && r->by_day[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) {
|
||||
if (i > 1)
|
||||
- strcat (buffer, ", ");
|
||||
- strcat (buffer, get_dayname (r, i - 1));
|
||||
+ g_string_append_len (buffer, ", ", 2);
|
||||
+ g_string_append (buffer, get_dayname (r, i - 1));
|
||||
}
|
||||
if (i > 1)
|
||||
/* For Translators : 'and' is part of the sentence 'event recurring every week on (dayname) and (dayname)' */
|
||||
- strcat (buffer, _(" and "));
|
||||
- strcat (buffer, get_dayname (r, i - 1));
|
||||
+ g_string_append_printf (buffer, "%s", _(" and "));
|
||||
+ g_string_append (buffer, get_dayname (r, i - 1));
|
||||
}
|
||||
break;
|
||||
|
||||
case ICAL_MONTHLY_RECURRENCE:
|
||||
if (r->by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) {
|
||||
/* For Translators : 'The %s day of' is part of the sentence 'event recurring on the (nth) day of every month.' */
|
||||
- sprintf (buffer, _("The %s day of "),
|
||||
- nth (r->by_month_day[0]));
|
||||
+ g_string_append_printf (
|
||||
+ buffer, _("The %s day of "),
|
||||
+ nth (r->by_month_day[0]));
|
||||
} else {
|
||||
int pos;
|
||||
|
||||
@@ -828,20 +836,21 @@ write_recurrence_piece (EItipControl *it
|
||||
|
||||
/* For Translators : 'The %s %s of' is part of the sentence 'event recurring on the (nth) (dayname) of every month.'
|
||||
eg,third monday of every month */
|
||||
- sprintf (buffer, _("The %s %s of "),
|
||||
- nth (pos), get_dayname (r, 0));
|
||||
+ g_string_append_printf (
|
||||
+ buffer, _("The %s %s of "),
|
||||
+ nth (pos), get_dayname (r, 0));
|
||||
}
|
||||
|
||||
- len = strlen (buffer);
|
||||
- buffer += len;
|
||||
- size -= len;
|
||||
/* For Translators: In this can also be translated as "With the period of %d
|
||||
month/months", where %d is a number. The entire sentence is of the form "Recurring:
|
||||
Every %d month/months" */
|
||||
/* For Translators : 'every month' is part of the sentence 'event recurring on the (nth) day of every month.' */
|
||||
/* For Translators : 'every %d months' is part of the sentence 'event recurring on the (nth) day of every %d months.'
|
||||
%d is a digit */
|
||||
- sprintf (buffer, ngettext("every month","every %d months", r->interval), r->interval);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("every month",
|
||||
+ "every %d months", r->interval),
|
||||
+ r->interval);
|
||||
break;
|
||||
|
||||
case ICAL_YEARLY_RECURRENCE:
|
||||
@@ -850,20 +859,22 @@ write_recurrence_piece (EItipControl *it
|
||||
Every %d year/years" */
|
||||
/* For Translators : 'Every year' is event Recurring every year */
|
||||
/* For Translators : 'Every %d years' is event Recurring every %d years. %d is a digit */
|
||||
- sprintf (buffer, ngettext("Every year", "Every %d years", r->interval), r->interval);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("Every year",
|
||||
+ "Every %d years", r->interval),
|
||||
+ r->interval);
|
||||
break;
|
||||
|
||||
default:
|
||||
g_return_if_reached ();
|
||||
}
|
||||
|
||||
- len = strlen (buffer);
|
||||
- buffer += len;
|
||||
- size -= len;
|
||||
if (r->count) {
|
||||
/* For Translators:'a total of %d time' is part of the sentence of the form 'event recurring every day,a total of % time.' %d is a digit*/
|
||||
/* For Translators:'a total of %d times' is part of the sentence of the form 'event recurring every day,a total of % times.' %d is a digit*/
|
||||
- sprintf (buffer, ngettext("a total of %d time", " a total of %d times", r->count), r->count);
|
||||
+ g_string_append_printf (
|
||||
+ buffer, ngettext ("a total of %d time",
|
||||
+ " a total of %d times", r->count), r->count);
|
||||
} else if (!icaltime_is_null_time (r->until)) {
|
||||
ECalComponentDateTime dt;
|
||||
|
||||
@@ -871,12 +882,12 @@ write_recurrence_piece (EItipControl *it
|
||||
dt.value = &r->until;
|
||||
dt.tzid = icaltimezone_get_tzid ((icaltimezone *)r->until.zone);
|
||||
|
||||
- write_label_piece (itip, &dt, buffer, size,
|
||||
+ write_label_piece (itip, &dt, buffer,
|
||||
/* For Translators : ', ending on' is part of the sentence of the form 'event recurring every day, ending on (date).'*/
|
||||
_(", ending on "), NULL, TRUE);
|
||||
}
|
||||
|
||||
- strcat (buffer, "<br>");
|
||||
+ g_string_append_len (buffer, "<br>", 4);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -884,47 +895,51 @@ set_date_label (EItipControl *itip, GtkH
|
||||
ECalComponent *comp)
|
||||
{
|
||||
ECalComponentDateTime datetime;
|
||||
- static char buffer[1024];
|
||||
+ GString *buffer;
|
||||
gchar *str;
|
||||
gboolean wrote = FALSE, task_completed = FALSE;
|
||||
ECalComponentVType type;
|
||||
|
||||
+ buffer = g_string_sized_new (1024);
|
||||
type = e_cal_component_get_vtype (comp);
|
||||
|
||||
- buffer[0] = '\0';
|
||||
e_cal_component_get_dtstart (comp, &datetime);
|
||||
if (datetime.value) {
|
||||
/* For Translators : 'starts' is starts:date implying a task starts on what date */
|
||||
str = g_strdup_printf ("<b>%s:</b>", _("Starts"));
|
||||
- write_label_piece (itip, &datetime, buffer, 1024,
|
||||
- str,
|
||||
- "<br>", FALSE);
|
||||
- gtk_html_write (html, html_stream, buffer, strlen(buffer));
|
||||
+ write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
|
||||
+ gtk_html_write (html, html_stream, buffer->str, buffer->len);
|
||||
wrote = TRUE;
|
||||
g_free (str);
|
||||
}
|
||||
e_cal_component_free_datetime (&datetime);
|
||||
|
||||
- buffer[0] = '\0';
|
||||
+ /* Reset the buffer. */
|
||||
+ g_string_truncate (buffer, 0);
|
||||
+
|
||||
e_cal_component_get_dtend (comp, &datetime);
|
||||
if (datetime.value){
|
||||
/* For Translators : 'ends' is ends:date implying a task ends on what date */
|
||||
str = g_strdup_printf ("<b>%s:</b>", _("Ends"));
|
||||
- write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
|
||||
- gtk_html_write (html, html_stream, buffer, strlen (buffer));
|
||||
+ write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
|
||||
+ gtk_html_write (html, html_stream, buffer->str, buffer->len);
|
||||
wrote = TRUE;
|
||||
g_free (str);
|
||||
}
|
||||
e_cal_component_free_datetime (&datetime);
|
||||
|
||||
- buffer[0] = '\0';
|
||||
+ /* Reset the buffer. */
|
||||
+ g_string_truncate (buffer, 0);
|
||||
+
|
||||
if (e_cal_component_has_recurrences (comp)) {
|
||||
- write_recurrence_piece (itip, comp, buffer, 1024);
|
||||
- gtk_html_write (html, html_stream, buffer, strlen (buffer));
|
||||
+ write_recurrence_piece (itip, comp, buffer);
|
||||
+ gtk_html_write (html, html_stream, buffer->str, buffer->len);
|
||||
wrote = TRUE;
|
||||
}
|
||||
|
||||
- buffer[0] = '\0';
|
||||
+ /* Reset the buffer. */
|
||||
+ g_string_truncate (buffer, 0);
|
||||
+
|
||||
datetime.tzid = NULL;
|
||||
e_cal_component_get_completed (comp, &datetime.value);
|
||||
if (type == E_CAL_COMPONENT_TODO && datetime.value) {
|
||||
@@ -932,20 +947,22 @@ set_date_label (EItipControl *itip, GtkH
|
||||
timezone. */
|
||||
str = g_strdup_printf ("<b>%s:</b>", _("Completed"));
|
||||
datetime.value->is_utc = TRUE;
|
||||
- write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
|
||||
- gtk_html_write (html, html_stream, buffer, strlen (buffer));
|
||||
+ write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
|
||||
+ gtk_html_write (html, html_stream, buffer->str, buffer->len);
|
||||
wrote = TRUE;
|
||||
task_completed = TRUE;
|
||||
g_free (str);
|
||||
}
|
||||
e_cal_component_free_datetime (&datetime);
|
||||
|
||||
- buffer[0] = '\0';
|
||||
+ /* Reset the buffer. */
|
||||
+ g_string_truncate (buffer, 0);
|
||||
+
|
||||
e_cal_component_get_due (comp, &datetime);
|
||||
if (type == E_CAL_COMPONENT_TODO && !task_completed && datetime.value) {
|
||||
str = g_strdup_printf ("<b>%s:</b>", _("Due"));
|
||||
- write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
|
||||
- gtk_html_write (html, html_stream, buffer, strlen (buffer));
|
||||
+ write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
|
||||
+ gtk_html_write (html, html_stream, buffer->str, buffer->len);
|
||||
wrote = TRUE;
|
||||
g_free (str);
|
||||
}
|
||||
@@ -954,6 +971,8 @@ set_date_label (EItipControl *itip, GtkH
|
||||
|
||||
if (wrote)
|
||||
gtk_html_stream_printf (html_stream, "<br>");
|
||||
+
|
||||
+ g_string_free (buffer, TRUE);
|
||||
}
|
||||
|
||||
static void
|
@ -1,62 +0,0 @@
|
||||
Index: calendar/gui/itip-utils.c
|
||||
===================================================================
|
||||
--- calendar/gui/itip-utils.c (revision 35555)
|
||||
+++ calendar/gui/itip-utils.c (working copy)
|
||||
@@ -172,50 +172,16 @@ get_attendee_if_attendee_sentby_is_user
|
||||
}
|
||||
|
||||
static char *
|
||||
-html_new_lines_for (char *string)
|
||||
+html_new_lines_for (const char *string)
|
||||
{
|
||||
- char *html_string = (char *) malloc (sizeof (char)* (3500));
|
||||
- int length = strlen (string);
|
||||
- int index = 0;
|
||||
- char *index_ptr = string;
|
||||
- char *temp = string;
|
||||
+ gchar **lines;
|
||||
+ gchar *joined;
|
||||
|
||||
- /*Find the first occurence*/
|
||||
- index_ptr = strstr ((const char *)temp, "\n");
|
||||
+ lines = g_strsplit_set (string, "\n", -1);
|
||||
+ joined = g_strjoinv ("<br>", lines);
|
||||
+ g_strfreev (lines);
|
||||
|
||||
- /*Doesn't occur*/
|
||||
- if (index_ptr == NULL) {
|
||||
- strcpy (html_string, (const char *)string);
|
||||
- html_string[length] = '\0';
|
||||
- return html_string;
|
||||
- }
|
||||
-
|
||||
- /*Split into chunks inserting <br> for \n */
|
||||
- do{
|
||||
- while (temp != index_ptr){
|
||||
- html_string[index++] = *temp;
|
||||
- temp++;
|
||||
- }
|
||||
- temp++;
|
||||
-
|
||||
- html_string[index++] = '<';
|
||||
- html_string[index++] = 'b';
|
||||
- html_string[index++] = 'r';
|
||||
- html_string[index++] = '>';
|
||||
-
|
||||
- index_ptr = strstr ((const char *)temp, "\n");
|
||||
-
|
||||
- } while (index_ptr);
|
||||
-
|
||||
- /*Don't leave out the last chunk*/
|
||||
- while (*temp != '\0'){
|
||||
- html_string[index++] = *temp;
|
||||
- temp++;
|
||||
- }
|
||||
-
|
||||
- html_string[index] = '\0';
|
||||
-
|
||||
- return html_string;
|
||||
+ return joined;
|
||||
}
|
||||
|
||||
char *
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5c5d387a9bdd8f89f46a49bbf2b7bf63b2a117e15e2c7472fe4dc365cbb2c1f9
|
||||
size 30907929
|
3
evolution-2.23.4.tar.bz2
Normal file
3
evolution-2.23.4.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:73dbf521929fe539a670627d334845e032a79286af7d5f2ccd66f2668f5bc194
|
||||
size 30953896
|
@ -1,38 +0,0 @@
|
||||
=== modified file 'calendar/gui/calendar-component.c'
|
||||
Index: calendar/gui/calendar-component.c
|
||||
===================================================================
|
||||
--- calendar/gui/calendar-component.c.orig
|
||||
+++ calendar/gui/calendar-component.c
|
||||
@@ -1284,7 +1284,7 @@ create_new_event (CalendarComponent *cal
|
||||
} else {
|
||||
ECalComponent *comp;
|
||||
EventEditor *editor;
|
||||
- CompEditorFlags flags;
|
||||
+ CompEditorFlags flags = 0;
|
||||
|
||||
flags = COMP_EDITOR_USER_ORG | COMP_EDITOR_NEW_ITEM;
|
||||
if (is_meeting)
|
||||
Index: mail/em-composer-prefs.c
|
||||
===================================================================
|
||||
--- mail/em-composer-prefs.c.orig
|
||||
+++ mail/em-composer-prefs.c
|
||||
@@ -56,6 +56,7 @@
|
||||
#include <gtk/gtkcellrenderertext.h>
|
||||
#include <gtk/gtkimage.h>
|
||||
#include <gtk/gtkstock.h>
|
||||
+#include <gtk/gtkentry.h>
|
||||
#include <gtk/gtkcolorbutton.h>
|
||||
#include <gtk/gtkfilechooserbutton.h>
|
||||
|
||||
Index: mail/em-composer-utils.c
|
||||
===================================================================
|
||||
--- mail/em-composer-utils.c.orig
|
||||
+++ mail/em-composer-utils.c
|
||||
@@ -55,6 +55,7 @@
|
||||
#include <camel/camel-stream-mem.h>
|
||||
#include <camel/camel-nntp-address.h>
|
||||
#include <camel/camel-vee-folder.h>
|
||||
+#include <camel/camel-multipart.h>
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
/* Undef the similar macro from pthread.h, it doesn't check if
|
@ -1,3 +1,57 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 20 22:03:20 CEST 2008 - maw@suse.de
|
||||
|
||||
- Update to version 2.23.4:
|
||||
+ Quota support to IMAP/POP accounts
|
||||
+ Configurable Proxy settings for Evolution
|
||||
+ Gtk+ Recent manager integration in Composer
|
||||
+ New bonobo-less message composer
|
||||
+ Add icons for Edit->Select All, Folder->New, Folder->Delete and
|
||||
Folder->Refresh
|
||||
+ Fix up the Debug Logs window a bit
|
||||
+ Fix include path for e-dbhash.h, now in libebackend
|
||||
+ New plugin for setting headers while sending email
|
||||
+ Python support for EPlugins
|
||||
+ Fix for security vulnerabilities CVE-2008-1108 and
|
||||
CVE-2008-1109
|
||||
+ Bugs fixed: bgo#201011, bgo#201011, bgo#314467, bgo#330597,
|
||||
bgo#337160, bgo#509595, bgo#535204, bgo#535791, bgo#536772,
|
||||
bgo#536813, bgo#538002, bgo#304029, bgo#311042, bgo#317755,
|
||||
bgo#322553, bnc#394441, bgo#463040, bgo#473198, bgo#496476,
|
||||
bgo#514383, bgo#523402, bgo#525966, bgo#529464, bgo#529995,
|
||||
bgo#530392, bgo#531592, bgo#531836, bgo#532384, bgo#532597,
|
||||
bgo#533465, bgo#533820, bgo#534012, bgo#534312, bgo#534360,
|
||||
bgo#534476, bgo#535273, bgo#535459, bgo#535670, bgo#535749,
|
||||
bgo#240823, bgo#273041, bgo#316390, bgo#338330, bnc#358644,
|
||||
bgo#363908, bnc#368277, bgo#382687, bgo#424744, bgo#467892,
|
||||
bgo#511337, bgo#518103, bgo#524121, bgo#525241, bgo#528288,
|
||||
bgo#529179, bgo#529247, bgo#529254, bgo#529375, bgo#529660,
|
||||
bgo#529768, bgo#529855, bgo#529893, bgo#530245, bgo#530576,
|
||||
bgo#530672, bgo#531426, bgo#531519, bgo#232594, bgo#264456,
|
||||
bgo#270406, bgo#271863, bgo#273177, bgo#316572, bgo#328146,
|
||||
bgo#334444, bgo#335891, bgo#346555, bgo#350308, bgo#378203,
|
||||
bgo#404241, bgo#408579, bgo#437539, bgo#438613, bgo#451976,
|
||||
bgo#460204, bgo#476918, bgo#482148, bgo#484793, bgo#488175,
|
||||
bgo#496839, bgo#501885, bgo#502826, bgo#506347, bgo#506359,
|
||||
bgo#507372, bgo#507526, bgo#509672, bgo#509923, bgo#511950,
|
||||
bgo#511952, bgo#511953, bgo#511956, bgo#511957, bgo#511978,
|
||||
bgo#512543, bgo#513951, bgo#514744, bgo#515786, bgo#517134,
|
||||
bgo#517168, bgo#517492, bgo#519154, bgo#519292, bgo#519304,
|
||||
bgo#519421, bgo#521562, bgo#522178, bgo#522631, bgo#522764,
|
||||
bgo#523271, bgo#523402, bgo#523413, bgo#523541, bgo#524310,
|
||||
bgo#524434, bgo#525234, bgo#525238, bgo#525508, bgo#525510,
|
||||
bgo#525966, bgo#526152, bgo#526739, bgo#527327, bgo#528358,
|
||||
and bgo#528817
|
||||
+ Updated translations
|
||||
- Drop the following obsolete patches: evolution-warnings.patch,
|
||||
bnc-188523-evo-fix-authenticated-proxy-support.diff,
|
||||
bgo-531519-print-preview-crash.patch,
|
||||
bgo-534012-backup-permission.patch,
|
||||
bgo-533820-fix-crash-on-border-clicking-meetings.diff,
|
||||
bnc-394441-exchange-addbook-crash.diff,
|
||||
bgo-395708_prefer-plain.patch, bug-394641_evo-CVE-2008-1108.diff,
|
||||
and bug-394641_evo-CVE-2008-1109.diff.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 2 10:43:43 CEST 2008 - abharath@suse.de
|
||||
- Added
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package evolution (Version 2.22.1.1)
|
||||
# spec file for package evolution (Version 2.23.4)
|
||||
#
|
||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
Name: evolution
|
||||
BuildRequires: bison evolution-data-server-devel fdupes gnome-common gnome-doc-utils-devel gnome-icon-theme-devel gnome-pilot-devel gtk-doc gtkhtml2-devel intltool libidl libnotify libnotify-devel libpisock-devel libpisync-devel mozilla-nss-devel notification-daemon openldap2-devel perl-XML-Parser pilot-link psmisc python-devel scrollkeeper update-desktop-files
|
||||
BuildRequires: bison evolution-data-server-devel fdupes gnome-common gnome-doc-utils-devel gnome-icon-theme-devel gnome-pilot-devel gtk-doc gtkhtml2-devel intltool libidl libnotify libnotify-devel libpisock-devel libpisync-devel mozilla-nss-devel notification-daemon openldap2-devel perl-XML-Parser pilot-link psmisc python-devel scrollkeeper shared-mime-info update-desktop-files
|
||||
License: GPL v2 or later
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
Obsoletes: evoltn
|
||||
@ -20,9 +20,9 @@ Provides: evoltn
|
||||
AutoReqProv: on
|
||||
# This should be updated upon major version changes, and used in place of
|
||||
# BASE_VERSION (as defined in configure.in).
|
||||
%define evolution_base_version 2.22
|
||||
Version: 2.22.1.1
|
||||
Release: 14
|
||||
%define evolution_base_version 2.24
|
||||
Version: 2.23.4
|
||||
Release: 1
|
||||
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
|
||||
#Source: ftp://ftp.gnome.org/pub/gnome/sources/evolution/2.22/%{name}-%{version}.tar.bz2
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
@ -36,8 +36,6 @@ Source7: ximian-evolution-addressbook.png
|
||||
Source8: ximian-evolution-calendar.png
|
||||
Source9: ximian-evolution-tasks.png
|
||||
Patch1: evolution-2.0.1-de-po.patch
|
||||
# PATCH-FIX-UPSTREAM evolution-warnings.patch
|
||||
Patch2: evolution-warnings.patch
|
||||
# PATCH-FIX-UPSTREAM evolution-2.2.0-port-to-pilot-link-0.12.patch - Upstream has the patch already.
|
||||
Patch3: evolution-2.2.0-port-to-pilot-link-0.12.patch
|
||||
Patch4: evolution-desktop.patch
|
||||
@ -48,20 +46,8 @@ Patch8: fix-exchange-menuitem.diff
|
||||
Patch9: fix-sendrecv.diff
|
||||
# PATCH-FIX-UPSTREAM build-fixes.diff - Fixed for 2.21.91
|
||||
Patch10: build-fixes.diff
|
||||
# PATCH-FIX-UPSTREAM bnc-188523-evo-fix-authenticated-proxy-support.diff msuman@suse.de
|
||||
Patch11: bnc-188523-evo-fix-authenticated-proxy-support.diff
|
||||
# PATCH-FIX-UPSTREAM SVN po update
|
||||
Patch12: evolution-po-update.patch
|
||||
# PATCH-FIX-UPSTREAM bgo-531519-print-preview-crash.patch bgo#531519 -- Patch is in Upstream now
|
||||
Patch13: bgo-531519-print-preview-crash.patch
|
||||
# PATCH-FIX-UPSTREAM bgo-534012-backup-permission.patch bgo#534012 bnc#386416 psankar@suse.de -- Patch is in Upstream now
|
||||
Patch14: bgo-534012-backup-permission.patch
|
||||
# PATCH-FIX-UPSTREAM bgo-533820-fix-crash-on-border-clicking-meetings.diff bgo#533820 bnc#391993 pchenthill@suse.de -- Patch is in Upstream now
|
||||
Patch15: bgo-533820-fix-crash-on-border-clicking-meetings.diff
|
||||
Patch16: bnc-394441-exchange-addbook-crash.diff
|
||||
Patch17: bgo-395708_prefer-plain.patch
|
||||
Patch18: bug-394641_evo-CVE-2008-1108.diff
|
||||
Patch19: bug-394641_evo-CVE-2008-1109.diff
|
||||
Url: http://gnome.org/projects/evolution/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires: yelp
|
||||
@ -283,7 +269,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p0
|
||||
%patch2
|
||||
%if %suse_version > 1000
|
||||
# FIXME: somebody with time should fix this patch up and make it apply once more
|
||||
# %patch3 -p1
|
||||
@ -295,15 +280,7 @@ Authors:
|
||||
%patch8
|
||||
%patch9
|
||||
#%patch10
|
||||
%patch11
|
||||
#%patch12
|
||||
%patch13
|
||||
%patch14
|
||||
%patch15
|
||||
%patch16
|
||||
%patch17
|
||||
%patch18
|
||||
%patch19
|
||||
|
||||
%build
|
||||
autoreconf -f -i
|
||||
@ -415,6 +392,57 @@ fi
|
||||
%{_libdir}/evolution/*/conduits/*.so
|
||||
|
||||
%changelog
|
||||
* Sat Jun 21 2008 maw@suse.de
|
||||
- Update to version 2.23.4:
|
||||
+ Quota support to IMAP/POP accounts
|
||||
+ Configurable Proxy settings for Evolution
|
||||
+ Gtk+ Recent manager integration in Composer
|
||||
+ New bonobo-less message composer
|
||||
+ Add icons for Edit->Select All, Folder->New, Folder->Delete and
|
||||
Folder->Refresh
|
||||
+ Fix up the Debug Logs window a bit
|
||||
+ Fix include path for e-dbhash.h, now in libebackend
|
||||
+ New plugin for setting headers while sending email
|
||||
+ Python support for EPlugins
|
||||
+ Fix for security vulnerabilities CVE-2008-1108 and
|
||||
CVE-2008-1109
|
||||
+ Bugs fixed: bgo#201011, bgo#201011, bgo#314467, bgo#330597,
|
||||
bgo#337160, bgo#509595, bgo#535204, bgo#535791, bgo#536772,
|
||||
bgo#536813, bgo#538002, bgo#304029, bgo#311042, bgo#317755,
|
||||
bgo#322553, bnc#394441, bgo#463040, bgo#473198, bgo#496476,
|
||||
bgo#514383, bgo#523402, bgo#525966, bgo#529464, bgo#529995,
|
||||
bgo#530392, bgo#531592, bgo#531836, bgo#532384, bgo#532597,
|
||||
bgo#533465, bgo#533820, bgo#534012, bgo#534312, bgo#534360,
|
||||
bgo#534476, bgo#535273, bgo#535459, bgo#535670, bgo#535749,
|
||||
bgo#240823, bgo#273041, bgo#316390, bgo#338330, bnc#358644,
|
||||
bgo#363908, bnc#368277, bgo#382687, bgo#424744, bgo#467892,
|
||||
bgo#511337, bgo#518103, bgo#524121, bgo#525241, bgo#528288,
|
||||
bgo#529179, bgo#529247, bgo#529254, bgo#529375, bgo#529660,
|
||||
bgo#529768, bgo#529855, bgo#529893, bgo#530245, bgo#530576,
|
||||
bgo#530672, bgo#531426, bgo#531519, bgo#232594, bgo#264456,
|
||||
bgo#270406, bgo#271863, bgo#273177, bgo#316572, bgo#328146,
|
||||
bgo#334444, bgo#335891, bgo#346555, bgo#350308, bgo#378203,
|
||||
bgo#404241, bgo#408579, bgo#437539, bgo#438613, bgo#451976,
|
||||
bgo#460204, bgo#476918, bgo#482148, bgo#484793, bgo#488175,
|
||||
bgo#496839, bgo#501885, bgo#502826, bgo#506347, bgo#506359,
|
||||
bgo#507372, bgo#507526, bgo#509672, bgo#509923, bgo#511950,
|
||||
bgo#511952, bgo#511953, bgo#511956, bgo#511957, bgo#511978,
|
||||
bgo#512543, bgo#513951, bgo#514744, bgo#515786, bgo#517134,
|
||||
bgo#517168, bgo#517492, bgo#519154, bgo#519292, bgo#519304,
|
||||
bgo#519421, bgo#521562, bgo#522178, bgo#522631, bgo#522764,
|
||||
bgo#523271, bgo#523402, bgo#523413, bgo#523541, bgo#524310,
|
||||
bgo#524434, bgo#525234, bgo#525238, bgo#525508, bgo#525510,
|
||||
bgo#525966, bgo#526152, bgo#526739, bgo#527327, bgo#528358,
|
||||
and bgo#528817
|
||||
+ Updated translations
|
||||
- Drop the following obsolete patches: evolution-warnings.patch,
|
||||
bnc-188523-evo-fix-authenticated-proxy-support.diff,
|
||||
bgo-531519-print-preview-crash.patch,
|
||||
bgo-534012-backup-permission.patch,
|
||||
bgo-533820-fix-crash-on-border-clicking-meetings.diff,
|
||||
bnc-394441-exchange-addbook-crash.diff,
|
||||
bgo-395708_prefer-plain.patch, bug-394641_evo-CVE-2008-1108.diff,
|
||||
and bug-394641_evo-CVE-2008-1109.diff.
|
||||
* Mon Jun 02 2008 abharath@suse.de
|
||||
- Added
|
||||
- bnc#394641 - VUL-0: evolution buffer overflows
|
||||
|
Loading…
Reference in New Issue
Block a user