Compare commits
16 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5b59f011f | ||
|
|
f8a08bb19b | ||
|
|
7c492b3389 | ||
|
|
e3da36e36e | ||
|
|
4f74dc449f | ||
|
|
a7dcc278dc | ||
|
|
a31a9c3eca | ||
|
|
b1284d5727 | ||
|
|
8419f5803c | ||
|
|
f3686316a2 | ||
|
|
56e27484b7 | ||
|
|
0a2d680bd1 | ||
|
|
4a1fc8f40b | ||
|
|
1317f5eb91 | ||
|
|
5cdd21ea26 | ||
|
|
991b1c955a |
32 changed files with 14343 additions and 545 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1 @@
|
||||||
/evolution-*.tar.xz
|
evolution-2.12.3.tar.bz2
|
||||||
|
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
diff -up evolution-3.48.1 evolution-3.48
|
|
||||||
diff -up evolution-3.48.1/docs/evolution.1 evolution-3.48.1/docs/evolution
|
|
||||||
diff -up evolution-3.48.1/src/modules/backup-restore/evolution-backup-tool.c.1 evolution-3.48.1/src/modules/backup-restore/evolution-backup-tool.c
|
|
||||||
--- evolution-3.48.1/src/modules/backup-restore/evolution-backup-tool.c.1 2023-11-27 13:12:25.099463743 -0500
|
|
||||||
+++ evolution-3.48.1/src/modules/backup-restore/evolution-backup-tool.c 2023-11-27 13:14:38.640243434 -0500
|
|
||||||
@@ -674,7 +674,7 @@ get_source_manager_reload_command (void)
|
|
||||||
g_string_free (tmp, TRUE);
|
|
||||||
tmp = NULL;
|
|
||||||
|
|
||||||
- base_filename = g_strdup (EDS_SOURCES_DBUS_SERVICE_NAME);
|
|
||||||
+ base_filename = g_ascii_strdown (EDS_SOURCES_DBUS_SERVICE_NAME, -1);
|
|
||||||
|
|
||||||
if (!base_filename || !*base_filename) {
|
|
||||||
g_free (base_filename);
|
|
||||||
@@ -690,14 +690,16 @@ get_source_manager_reload_command (void)
|
|
||||||
|
|
||||||
while (!tmp) {
|
|
||||||
const gchar *name;
|
|
||||||
+ gchar *name_down;
|
|
||||||
|
|
||||||
name = g_dir_read_name (dir);
|
|
||||||
+ name_down = g_ascii_strdown (name, -1);
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
break;
|
|
||||||
|
|
||||||
- if (g_ascii_strncasecmp (name, base_filename, base_filename_len) == 0 &&
|
|
||||||
- g_ascii_strncasecmp (name + strlen (name) - 8, ".service", 8) == 0) {
|
|
||||||
+ if (strstr (name_down, base_filename) != NULL &&
|
|
||||||
+ strncmp (name_down + strlen (name) - 8, ".service", 8) == 0) {
|
|
||||||
gchar *filename;
|
|
||||||
|
|
||||||
filename = g_strconcat ("$DBUSDATADIR", G_DIR_SEPARATOR_S, name, NULL);
|
|
||||||
@@ -724,6 +726,8 @@ get_source_manager_reload_command (void)
|
|
||||||
g_free (str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ g_free (name_down);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (base_filename);
|
|
||||||
11
evolution-1.4.4-ldap-x86_64-hack.patch
Normal file
11
evolution-1.4.4-ldap-x86_64-hack.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- evolution-1.4.4/configure.ldaphack 2003-08-05 02:06:26.000000000 -0400
|
||||||
|
+++ evolution-1.4.4/configure 2003-08-05 02:06:45.000000000 -0400
|
||||||
|
@@ -12135,7 +12135,7 @@
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
|
-LIBS="-lldap $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||||
|
+LIBS="-lldap -lresolv $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
#line $LINENO "configure"
|
||||||
|
/* confdefs.h. */
|
||||||
26
evolution-2.0.2-fix-145552.patch
Normal file
26
evolution-2.0.2-fix-145552.patch
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
--- evolution-2.0.2/mail/em-utils.c.fix-145552 2004-09-24 11:49:29.000000000 -0400
|
||||||
|
+++ evolution-2.0.2/mail/em-utils.c 2005-08-02 22:42:04.000000000 -0400
|
||||||
|
@@ -1919,10 +1919,22 @@
|
||||||
|
* try to do better with the filename check.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+ /* RH bug 145552: code based on _gnome_vfs_get_mime_type_internal:
|
||||||
|
+ * So many file types come compressed by gzip
|
||||||
|
+ * that extensions are more reliable than magic
|
||||||
|
+ * typing. If the file has a suffix, then use
|
||||||
|
+ * the type from the suffix:
|
||||||
|
+ */
|
||||||
|
if (magic_type) {
|
||||||
|
if (name_type
|
||||||
|
&& (!strcmp(magic_type, "text/plain")
|
||||||
|
- || !strcmp(magic_type, "application/octet-stream")))
|
||||||
|
+ || !strcmp(magic_type, "application/octet-stream")
|
||||||
|
+ || !strcmp(magic_type, "application/octet-stream")
|
||||||
|
+ || !strcmp(magic_type, "application/x-ole-storage")
|
||||||
|
+ || !strcmp(magic_type, "text/xml")
|
||||||
|
+ || !strcmp(magic_type, "application/x-bzip")
|
||||||
|
+ || !strcmp(magic_type, "application/x-gzip")
|
||||||
|
+ || !strcmp(magic_type, "application/zip")))
|
||||||
|
return name_type;
|
||||||
|
else
|
||||||
|
return magic_type;
|
||||||
31
evolution-2.10.0-e-passwords.patch
Normal file
31
evolution-2.10.0-e-passwords.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
--- evolution-2.10.0/mail/mail-session.c.e-passwords 2007-03-12 23:41:06.000000000 -0400
|
||||||
|
+++ evolution-2.10.0/mail/mail-session.c 2007-03-12 23:41:35.000000000 -0400
|
||||||
|
@@ -679,8 +679,6 @@
|
||||||
|
|
||||||
|
d(printf ("Gone non-interactive, checking for outstanding interactive tasks\n"));
|
||||||
|
|
||||||
|
- e_passwords_cancel();
|
||||||
|
-
|
||||||
|
/* flush/cancel pending user messages */
|
||||||
|
while ((um = (struct _user_message_msg *) e_dlist_remhead (&message_list))) {
|
||||||
|
d(printf ("Flusing message request: %s\n", um->prompt));
|
||||||
|
--- evolution-2.10.0/shell/main.c.e-passwords 2007-03-12 23:39:38.000000000 -0400
|
||||||
|
+++ evolution-2.10.0/shell/main.c 2007-03-12 23:39:54.000000000 -0400
|
||||||
|
@@ -565,7 +565,6 @@
|
||||||
|
glade_init ();
|
||||||
|
e_cursors_init ();
|
||||||
|
e_icon_factory_init ();
|
||||||
|
- e_passwords_init();
|
||||||
|
|
||||||
|
gtk_window_set_default_icon_name ("evolution");
|
||||||
|
|
||||||
|
--- evolution-2.10.0/calendar/gui/alarm-notify/notify-main.c.e-passwords 2007-03-12 23:40:22.000000000 -0400
|
||||||
|
+++ evolution-2.10.0/calendar/gui/alarm-notify/notify-main.c 2007-03-12 23:40:36.000000000 -0400
|
||||||
|
@@ -169,7 +169,6 @@
|
||||||
|
|
||||||
|
alarm_done ();
|
||||||
|
|
||||||
|
- e_passwords_shutdown ();
|
||||||
|
gnome_sound_shutdown ();
|
||||||
|
|
||||||
|
return 0;
|
||||||
1158
evolution-2.10.0-e-source-combo-box.patch
Normal file
1158
evolution-2.10.0-e-source-combo-box.patch
Normal file
File diff suppressed because it is too large
Load diff
15
evolution-2.10.3-server-message-double-free.patch
Normal file
15
evolution-2.10.3-server-message-double-free.patch
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
diff -up evolution-2.10.3/mail/mail-session.c.server-message-double-free evolution-2.10.3/mail/mail-session.c
|
||||||
|
--- evolution-2.10.3/mail/mail-session.c.server-message-double-free 2008-03-25 10:01:13.000000000 -0400
|
||||||
|
+++ evolution-2.10.3/mail/mail-session.c 2008-03-25 10:01:25.000000000 -0400
|
||||||
|
@@ -389,10 +389,8 @@ alert_user(CamelSession *session, CamelS
|
||||||
|
mail_msg_unref (m);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (m->ismain) {
|
||||||
|
- user_message_free (m);
|
||||||
|
+ if (m->ismain)
|
||||||
|
mail_msg_unref (m);
|
||||||
|
- }
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
1788
evolution-2.11.92-icon-names.patch
Normal file
1788
evolution-2.11.92-icon-names.patch
Normal file
File diff suppressed because it is too large
Load diff
129
evolution-2.11.92-mail-attachment.patch
Normal file
129
evolution-2.11.92-mail-attachment.patch
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
diff -up evolution-2.11.92/mail/em-folder-browser.c.mail-attachment evolution-2.11.92/mail/em-folder-browser.c
|
||||||
|
--- evolution-2.11.92/mail/em-folder-browser.c.mail-attachment 2007-09-11 18:57:27.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/mail/em-folder-browser.c 2007-09-11 18:58:15.000000000 -0400
|
||||||
|
@@ -218,7 +218,7 @@ static EMFBSearchBarItem temp_view_items
|
||||||
|
{{ N_("Read Messages"), VIEW_READ_MESSAGES, 0 }, "stock_mail-open"},
|
||||||
|
{{ N_("Recent Messages"), VIEW_RECENT_MESSAGES, 0 }, NULL},
|
||||||
|
{{ N_("Last 5 Days' Messages"), VIEW_LAST_FIVE_DAYS, 0 }, NULL},
|
||||||
|
- {{ N_("Messages with Attachments"), VIEW_WITH_ATTACHMENTS, 0 }, "stock_attach"},
|
||||||
|
+ {{ N_("Messages with Attachments"), VIEW_WITH_ATTACHMENTS, 0 }, "mail-attachment"},
|
||||||
|
{{ N_("Important Messages"), VIEW_MESSAGES_MARKED_AS_IMPORTANT, 0}, "emblem-important"},
|
||||||
|
{{ N_("Messages Not Junk"), VIEW_NOT_JUNK, 0 }, "stock_not-spam"},
|
||||||
|
/* { NULL, 0, NULL }, */
|
||||||
|
diff -up evolution-2.11.92/mail/message-list.c.mail-attachment evolution-2.11.92/mail/message-list.c
|
||||||
|
--- evolution-2.11.92/mail/message-list.c.mail-attachment 2007-09-11 18:57:27.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/mail/message-list.c 2007-09-11 18:58:15.000000000 -0400
|
||||||
|
@@ -223,7 +223,7 @@ static struct {
|
||||||
|
{ "stock_mail-unread-multiple", NULL },
|
||||||
|
{ "stock_mail-open-multiple", NULL },
|
||||||
|
{ NULL, NULL },
|
||||||
|
- { "stock_attach", NULL },
|
||||||
|
+ { "mail-attachment", NULL },
|
||||||
|
{ "emblem-important", NULL },
|
||||||
|
{ "stock_score-lowest", NULL },
|
||||||
|
{ "stock_score-lower", NULL },
|
||||||
|
diff -up evolution-2.11.92/widgets/misc/e-attachment-bar.c.mail-attachment evolution-2.11.92/widgets/misc/e-attachment-bar.c
|
||||||
|
--- evolution-2.11.92/widgets/misc/e-attachment-bar.c.mail-attachment 2007-09-02 14:57:07.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/widgets/misc/e-attachment-bar.c 2007-09-11 18:58:15.000000000 -0400
|
||||||
|
@@ -281,8 +281,7 @@ update (EAttachmentBar *bar)
|
||||||
|
attachment = priv->attachments->pdata[i];
|
||||||
|
|
||||||
|
if (!attachment->is_available_local || !attachment->body) {
|
||||||
|
- /* stock_attach would be better, but its fugly scaled up */
|
||||||
|
- if ((pixbuf = e_icon_factory_get_icon("stock_unknown", E_ICON_SIZE_DIALOG))) {
|
||||||
|
+ if ((pixbuf = e_icon_factory_get_icon("mail-attachment", E_ICON_SIZE_DIALOG))) {
|
||||||
|
attachment->index = gnome_icon_list_append_pixbuf (icon_list, pixbuf, NULL, "");
|
||||||
|
g_object_unref (pixbuf);
|
||||||
|
}
|
||||||
|
@@ -373,8 +372,7 @@ update (EAttachmentBar *bar)
|
||||||
|
pixbuf = e_icon_for_mime_type (mime_type, 48);
|
||||||
|
if (pixbuf == NULL) {
|
||||||
|
g_warning("cannot find icon for mime type %s (installation problem?)", mime_type);
|
||||||
|
- /* stock_attach would be better, but its fugly scaled up */
|
||||||
|
- pixbuf = e_icon_factory_get_icon("stock_unknown", E_ICON_SIZE_DIALOG);
|
||||||
|
+ pixbuf = e_icon_factory_get_icon("mail-attachment", E_ICON_SIZE_DIALOG);
|
||||||
|
}
|
||||||
|
g_free (mime_type);
|
||||||
|
}
|
||||||
|
diff -up evolution-2.11.92/composer/e-msg-composer.c.mail-attachment evolution-2.11.92/composer/e-msg-composer.c
|
||||||
|
--- evolution-2.11.92/composer/e-msg-composer.c.mail-attachment 2007-09-02 14:56:48.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/composer/e-msg-composer.c 2007-09-11 18:58:15.000000000 -0400
|
||||||
|
@@ -2208,11 +2208,11 @@ static BonoboUIVerb verbs [] = {
|
||||||
|
};
|
||||||
|
|
||||||
|
static EPixmap pixcache [] = {
|
||||||
|
- E_PIXMAP ("/Toolbar/FileAttach", "stock_attach", E_ICON_SIZE_LARGE_TOOLBAR),
|
||||||
|
+ E_PIXMAP ("/Toolbar/FileAttach", "mail-attachment", E_ICON_SIZE_LARGE_TOOLBAR),
|
||||||
|
E_PIXMAP ("/Toolbar/FileSend", "stock_mail-send", E_ICON_SIZE_LARGE_TOOLBAR),
|
||||||
|
E_PIXMAP ("/Toolbar/FileSaveDraft", "stock_save", E_ICON_SIZE_LARGE_TOOLBAR) ,
|
||||||
|
|
||||||
|
-/* E_PIXMAP ("/menu/Insert/FileAttach", "stock_attach", E_ICON_SIZE_LARGE_TOOLBAR), */
|
||||||
|
+/* E_PIXMAP ("/menu/Insert/FileAttach", "mail-attachment", E_ICON_SIZE_LARGE_TOOLBAR), */
|
||||||
|
E_PIXMAP ("/commands/FileSend", "stock_mail-send", E_ICON_SIZE_MENU),
|
||||||
|
E_PIXMAP ("/commands/FileSave", "stock_save", E_ICON_SIZE_MENU),
|
||||||
|
E_PIXMAP ("/commands/FileSaveAs", "stock_save-as", E_ICON_SIZE_MENU),
|
||||||
|
@@ -3989,7 +3989,7 @@ create_composer (int visible_mask)
|
||||||
|
gtk_misc_set_alignment (GTK_MISC (p->attachment_expander_num), 1.0, 0.5);
|
||||||
|
expander_hbox = gtk_hbox_new (FALSE, 0);
|
||||||
|
|
||||||
|
- p->attachment_expander_icon = e_icon_factory_get_image ("stock_attach", E_ICON_SIZE_MENU);
|
||||||
|
+ p->attachment_expander_icon = e_icon_factory_get_image ("mail-attachment", E_ICON_SIZE_MENU);
|
||||||
|
gtk_misc_set_alignment (GTK_MISC (p->attachment_expander_icon), 1, 0.5);
|
||||||
|
gtk_widget_set_size_request (p->attachment_expander_icon, 100, -1);
|
||||||
|
|
||||||
|
diff -up evolution-2.11.92/calendar/gui/e-week-view.c.mail-attachment evolution-2.11.92/calendar/gui/e-week-view.c
|
||||||
|
--- evolution-2.11.92/calendar/gui/e-week-view.c.mail-attachment 2007-09-11 18:57:27.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/calendar/gui/e-week-view.c 2007-09-11 18:58:16.000000000 -0400
|
||||||
|
@@ -697,7 +697,7 @@ e_week_view_realize (GtkWidget *widget)
|
||||||
|
week_view->reminder_icon = e_icon_factory_get_icon ("stock_bell", E_ICON_SIZE_MENU);
|
||||||
|
week_view->recurrence_icon = e_icon_factory_get_icon ("stock_refresh", E_ICON_SIZE_MENU);
|
||||||
|
week_view->timezone_icon = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_MENU);
|
||||||
|
- week_view->attach_icon = e_icon_factory_get_icon ("stock_attach", E_ICON_SIZE_MENU);
|
||||||
|
+ week_view->attach_icon = e_icon_factory_get_icon ("mail-attachment", E_ICON_SIZE_MENU);
|
||||||
|
week_view->meeting_icon = e_icon_factory_get_icon ("stock_people", E_ICON_SIZE_MENU);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -up evolution-2.11.92/calendar/gui/dialogs/comp-editor.c.mail-attachment evolution-2.11.92/calendar/gui/dialogs/comp-editor.c
|
||||||
|
--- evolution-2.11.92/calendar/gui/dialogs/comp-editor.c.mail-attachment 2007-09-02 14:57:08.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/calendar/gui/dialogs/comp-editor.c 2007-09-11 18:58:15.000000000 -0400
|
||||||
|
@@ -1486,8 +1486,8 @@ static BonoboUIVerb verbs [] = {
|
||||||
|
};
|
||||||
|
|
||||||
|
static EPixmap pixmaps[] = {
|
||||||
|
- E_PIXMAP ("/Toolbar/InsertAttachments", "stock_attach", E_ICON_SIZE_LARGE_TOOLBAR),
|
||||||
|
- E_PIXMAP ("/menu/Insert/Attachments/InsertAttachments", "stock_attach", E_ICON_SIZE_MENU),
|
||||||
|
+ E_PIXMAP ("/Toolbar/InsertAttachments", "mail-attachment", E_ICON_SIZE_LARGE_TOOLBAR),
|
||||||
|
+ E_PIXMAP ("/menu/Insert/Attachments/InsertAttachments", "mail-attachment", E_ICON_SIZE_MENU),
|
||||||
|
|
||||||
|
E_PIXMAP_END
|
||||||
|
};
|
||||||
|
@@ -1546,7 +1546,7 @@ setup_widgets (CompEditor *editor)
|
||||||
|
gtk_misc_set_alignment (GTK_MISC (priv->attachment_expander_num), 1.0, 0.5);
|
||||||
|
expander_hbox = gtk_hbox_new (FALSE, 0);
|
||||||
|
|
||||||
|
- attachment_pixbuf = e_icon_factory_get_icon ("stock_attach", E_ICON_SIZE_MENU);
|
||||||
|
+ attachment_pixbuf = e_icon_factory_get_icon ("mail-attachment", E_ICON_SIZE_MENU);
|
||||||
|
priv->attachment_expander_icon = gtk_image_new_from_pixbuf (attachment_pixbuf);
|
||||||
|
gtk_misc_set_alignment (GTK_MISC (priv->attachment_expander_icon), 1, 0.5);
|
||||||
|
gtk_widget_set_size_request (priv->attachment_expander_icon, 100, -1);
|
||||||
|
diff -up evolution-2.11.92/calendar/gui/e-day-view.c.mail-attachment evolution-2.11.92/calendar/gui/e-day-view.c
|
||||||
|
--- evolution-2.11.92/calendar/gui/e-day-view.c.mail-attachment 2007-09-11 18:57:27.000000000 -0400
|
||||||
|
+++ evolution-2.11.92/calendar/gui/e-day-view.c 2007-09-11 18:58:16.000000000 -0400
|
||||||
|
@@ -1423,7 +1423,7 @@ e_day_view_realize (GtkWidget *widget)
|
||||||
|
day_view->recurrence_icon = e_icon_factory_get_icon ("stock_refresh", E_ICON_SIZE_MENU);
|
||||||
|
day_view->timezone_icon = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_MENU);
|
||||||
|
day_view->meeting_icon = e_icon_factory_get_icon ("stock_people", E_ICON_SIZE_MENU);
|
||||||
|
- day_view->attach_icon = e_icon_factory_get_icon ("stock_attach", E_ICON_SIZE_MENU);
|
||||||
|
+ day_view->attach_icon = e_icon_factory_get_icon ("mail-attachment", E_ICON_SIZE_MENU);
|
||||||
|
|
||||||
|
|
||||||
|
/* Set the canvas item colors. */
|
||||||
|
@@ -1497,7 +1497,7 @@ e_day_view_realize (GtkWidget *widget)
|
||||||
|
day_view->recurrence_icon = e_icon_factory_get_icon ("stock_refresh", E_ICON_SIZE_MENU);
|
||||||
|
day_view->timezone_icon = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_MENU);
|
||||||
|
day_view->meeting_icon = e_icon_factory_get_icon ("stock_people", E_ICON_SIZE_MENU);
|
||||||
|
- day_view->attach_icon = e_icon_factory_get_icon ("stock_attach", E_ICON_SIZE_MENU);
|
||||||
|
+ day_view->attach_icon = e_icon_factory_get_icon ("mail-attachment", E_ICON_SIZE_MENU);
|
||||||
|
|
||||||
|
|
||||||
|
/* Set the canvas item colors. */
|
||||||
12
evolution-2.12.1-source-changed-event.patch
Normal file
12
evolution-2.12.1-source-changed-event.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -up evolution-2.12.1/calendar/gui/dialogs/task-page.c.source-changed-event evolution-2.12.1/calendar/gui/dialogs/task-page.c
|
||||||
|
--- evolution-2.12.1/calendar/gui/dialogs/task-page.c.source-changed-event 2007-11-16 19:07:11.000000000 +0100
|
||||||
|
+++ evolution-2.12.1/calendar/gui/dialogs/task-page.c 2007-11-16 19:08:06.000000000 +0100
|
||||||
|
@@ -1837,7 +1837,7 @@ init_widgets (TaskPage *tpage)
|
||||||
|
G_CALLBACK (categories_clicked_cb), tpage);
|
||||||
|
|
||||||
|
/* Source selector */
|
||||||
|
- g_signal_connect((priv->source_selector), "source_changed",
|
||||||
|
+ g_signal_connect((priv->source_selector), "changed",
|
||||||
|
G_CALLBACK (source_changed_cb), tpage);
|
||||||
|
|
||||||
|
/* Connect the default signal handler to use to make sure the "changed"
|
||||||
48
evolution-2.12.3-CVE-2008-0072.patch
Normal file
48
evolution-2.12.3-CVE-2008-0072.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
diff -up evolution-2.12.3/mail/em-format.c.CVE-2008-0072 evolution-2.12.3/mail/em-format.c
|
||||||
|
--- evolution-2.12.3/mail/em-format.c.CVE-2008-0072 2007-10-12 02:56:01.000000000 -0400
|
||||||
|
+++ evolution-2.12.3/mail/em-format.c 2008-03-04 15:59:30.000000000 -0500
|
||||||
|
@@ -1193,7 +1193,7 @@ emf_application_xpkcs7mime(EMFormat *emf
|
||||||
|
opart = camel_mime_part_new();
|
||||||
|
valid = camel_cipher_decrypt(context, part, opart, ex);
|
||||||
|
if (valid == NULL) {
|
||||||
|
- em_format_format_error(emf, stream, ex->desc?ex->desc:_("Could not parse S/MIME message: Unknown error"));
|
||||||
|
+ em_format_format_error(emf, stream, "%s", ex->desc?ex->desc:_("Could not parse S/MIME message: Unknown error"));
|
||||||
|
em_format_part_as(emf, stream, part, NULL);
|
||||||
|
} else {
|
||||||
|
if (emfc == NULL)
|
||||||
|
@@ -1350,7 +1350,7 @@ emf_multipart_encrypted(EMFormat *emf, C
|
||||||
|
if (valid == NULL) {
|
||||||
|
em_format_format_error(emf, stream, ex->desc?_("Could not parse PGP/MIME message"):_("Could not parse PGP/MIME message: Unknown error"));
|
||||||
|
if (ex->desc)
|
||||||
|
- em_format_format_error(emf, stream, ex->desc);
|
||||||
|
+ em_format_format_error(emf, stream, "%s", ex->desc);
|
||||||
|
em_format_part_as(emf, stream, part, "multipart/mixed");
|
||||||
|
} else {
|
||||||
|
if (emfc == NULL)
|
||||||
|
@@ -1515,7 +1515,7 @@ emf_multipart_signed(EMFormat *emf, Came
|
||||||
|
if (valid == NULL) {
|
||||||
|
em_format_format_error(emf, stream, ex->desc?_("Error verifying signature"):_("Unknown error verifying signature"));
|
||||||
|
if (ex->desc)
|
||||||
|
- em_format_format_error(emf, stream, ex->desc);
|
||||||
|
+ em_format_format_error(emf, stream, "%s", ex->desc);
|
||||||
|
em_format_part_as(emf, stream, part, "multipart/mixed");
|
||||||
|
} else {
|
||||||
|
if (emfc == NULL)
|
||||||
|
@@ -1586,7 +1586,7 @@ emf_inlinepgp_signed(EMFormat *emf, Came
|
||||||
|
if (!valid) {
|
||||||
|
em_format_format_error(emf, stream, ex->desc?_("Error verifying signature"):_("Unknown error verifying signature"));
|
||||||
|
if (ex->desc)
|
||||||
|
- em_format_format_error(emf, stream, ex->desc);
|
||||||
|
+ em_format_format_error(emf, stream, "%s", ex->desc);
|
||||||
|
em_format_format_source(emf, stream, ipart);
|
||||||
|
/* I think this will loop: em_format_part_as(emf, stream, part, "text/plain"); */
|
||||||
|
camel_exception_free(ex);
|
||||||
|
@@ -1657,7 +1657,7 @@ emf_inlinepgp_encrypted(EMFormat *emf, C
|
||||||
|
if (!valid) {
|
||||||
|
em_format_format_error(emf, stream, ex->desc?_("Could not parse PGP message"):_("Could not parse PGP message: Unknown error"));
|
||||||
|
if (ex->desc)
|
||||||
|
- em_format_format_error(emf, stream, ex->desc);
|
||||||
|
+ em_format_format_error(emf, stream, "%s", ex->desc);
|
||||||
|
em_format_format_source(emf, stream, ipart);
|
||||||
|
/* I think this will loop: em_format_part_as(emf, stream, part, "text/plain"); */
|
||||||
|
camel_exception_free(ex);
|
||||||
310
evolution-2.12.3-CVE-2008-1108.patch
Normal file
310
evolution-2.12.3-CVE-2008-1108.patch
Normal file
|
|
@ -0,0 +1,310 @@
|
||||||
|
diff -up evolution-2.12.3/calendar/gui/e-itip-control.c.CVE-2008-1108 evolution-2.12.3/calendar/gui/e-itip-control.c
|
||||||
|
--- evolution-2.12.3/calendar/gui/e-itip-control.c.CVE-2008-1108 2008-06-03 16:49:05.000000000 -0400
|
||||||
|
+++ evolution-2.12.3/calendar/gui/e-itip-control.c 2008-06-03 16:51:33.000000000 -0400
|
||||||
|
@@ -650,7 +650,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)
|
||||||
|
{
|
||||||
|
@@ -675,13 +675,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);
|
||||||
|
@@ -693,21 +693,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 *
|
||||||
|
@@ -744,19 +744,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;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -772,7 +770,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:
|
||||||
|
@@ -782,29 +783,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;
|
||||||
|
|
||||||
|
@@ -818,20 +826,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:
|
||||||
|
@@ -840,20 +849,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;
|
||||||
|
|
||||||
|
@@ -861,12 +872,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
|
||||||
|
@@ -874,47 +885,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) {
|
||||||
|
@@ -922,20 +937,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);
|
||||||
|
}
|
||||||
|
@@ -944,6 +961,8 @@ set_date_label (EItipControl *itip, GtkH
|
||||||
|
|
||||||
|
if (wrote)
|
||||||
|
gtk_html_stream_printf (html_stream, "<br>");
|
||||||
|
+
|
||||||
|
+ g_string_free (buffer, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
61
evolution-2.12.3-CVE-2008-1109.patch
Normal file
61
evolution-2.12.3-CVE-2008-1109.patch
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
diff -up evolution-2.12.3/calendar/gui/itip-utils.c.CVE-2008-1109 evolution-2.12.3/calendar/gui/itip-utils.c
|
||||||
|
--- evolution-2.12.3/calendar/gui/itip-utils.c.CVE-2008-1109 2007-10-12 03:04:17.000000000 -0400
|
||||||
|
+++ evolution-2.12.3/calendar/gui/itip-utils.c 2008-06-03 16:51:42.000000000 -0400
|
||||||
|
@@ -176,50 +176,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 *
|
||||||
36
evolution-2.12.3-no-drag-finish.patch
Normal file
36
evolution-2.12.3-no-drag-finish.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
diff -up evolution-2.12.3/mail/em-folder-tree.c.no-drag-finish evolution-2.12.3/mail/em-folder-tree.c
|
||||||
|
--- evolution-2.12.3/mail/em-folder-tree.c.no-drag-finish 2008-03-03 18:34:41.000000000 +0100
|
||||||
|
+++ evolution-2.12.3/mail/em-folder-tree.c 2008-03-03 18:34:45.000000000 +0100
|
||||||
|
@@ -927,23 +927,6 @@ emft_drop_async__exec (struct _DragDataR
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-emft_drop_async__done (struct _DragDataReceivedAsync *m)
|
||||||
|
-{
|
||||||
|
- gboolean success, delete;
|
||||||
|
-
|
||||||
|
- /* ?? */
|
||||||
|
- if (m->aborted) {
|
||||||
|
- success = FALSE;
|
||||||
|
- delete = FALSE;
|
||||||
|
- } else {
|
||||||
|
- success = !camel_exception_is_set (&m->base.ex);
|
||||||
|
- delete = success && m->move && !m->moved;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- gtk_drag_finish (m->context, success, delete, GDK_CURRENT_TIME);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void
|
||||||
|
emft_drop_async__free (struct _DragDataReceivedAsync *m)
|
||||||
|
{
|
||||||
|
g_object_unref(m->context);
|
||||||
|
@@ -958,7 +941,7 @@ static MailMsgInfo emft_drop_async_info
|
||||||
|
sizeof (struct _DragDataReceivedAsync),
|
||||||
|
(MailMsgDescFunc) emft_drop_async__desc,
|
||||||
|
(MailMsgExecFunc) emft_drop_async__exec,
|
||||||
|
- (MailMsgDoneFunc) emft_drop_async__done,
|
||||||
|
+ NULL,
|
||||||
|
(MailMsgFreeFunc) emft_drop_async__free
|
||||||
|
};
|
||||||
|
|
||||||
11
evolution-2.4.1-hide-switcher-buttons-by-default.patch
Normal file
11
evolution-2.4.1-hide-switcher-buttons-by-default.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- evolution-2.4.1/shell/apps_evolution_shell.schemas.in.hide-switcher-buttons-by-default 2005-10-26 16:21:15.000000000 -0400
|
||||||
|
+++ evolution-2.4.1/shell/apps_evolution_shell.schemas.in 2005-10-26 16:21:22.000000000 -0400
|
||||||
|
@@ -99,7 +99,7 @@
|
||||||
|
<applyto>/apps/evolution/shell/view_defaults/buttons_visible</applyto>
|
||||||
|
<owner>evolution</owner>
|
||||||
|
<type>bool</type>
|
||||||
|
- <default>TRUE</default>
|
||||||
|
+ <default>FALSE</default>
|
||||||
|
<locale name="C">
|
||||||
|
<short>Window buttons are visible</short>
|
||||||
|
<long>Whether the window buttons should be visible.</long>
|
||||||
88
evolution-2.5.4-fix-conduit-dir.patch
Normal file
88
evolution-2.5.4-fix-conduit-dir.patch
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
--- evolution-2.11.3/addressbook/conduit/Makefile.am.fix-conduit-dir 2007-06-03 11:07:44.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/addressbook/conduit/Makefile.am 2007-06-04 12:55:32.000000000 -0400
|
||||||
|
@@ -28,7 +28,7 @@ e-address.conduit: e-address.conduit.in
|
||||||
|
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||||
|
$< > $@
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-address.conduit
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
--- evolution-2.11.3/addressbook/conduit/Makefile.in.fix-conduit-dir 2007-06-04 07:36:46.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/addressbook/conduit/Makefile.in 2007-06-04 12:55:53.000000000 -0400
|
||||||
|
@@ -459,7 +459,7 @@ libeaddress_conduit_la_LIBADD = \
|
||||||
|
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||||
|
$(EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS)
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-address.conduit
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/todo/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/todo/Makefile.am 2007-06-04 12:56:19.000000000 -0400
|
||||||
|
@@ -25,7 +25,7 @@ e-todo.conduit: e-todo.conduit.in
|
||||||
|
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||||
|
$< > $@
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-todo.conduit
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/todo/Makefile.in.fix-conduit-dir 2007-06-04 07:36:51.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/todo/Makefile.in 2007-06-04 12:56:28.000000000 -0400
|
||||||
|
@@ -456,7 +456,7 @@ libetodo_conduit_la_LIBADD = \
|
||||||
|
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||||
|
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-todo.conduit
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/memo/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/memo/Makefile.am 2007-06-04 12:56:49.000000000 -0400
|
||||||
|
@@ -25,7 +25,7 @@ e-memo.conduit: e-memo.conduit.in
|
||||||
|
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||||
|
$< > $@
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-memo.conduit
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/memo/Makefile.in.fix-conduit-dir 2007-06-04 07:36:50.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/memo/Makefile.in 2007-06-04 12:56:40.000000000 -0400
|
||||||
|
@@ -456,7 +456,7 @@ libememo_conduit_la_LIBADD = \
|
||||||
|
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||||
|
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-memo.conduit
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/calendar/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/calendar/Makefile.am 2007-06-04 12:57:02.000000000 -0400
|
||||||
|
@@ -25,7 +25,7 @@ e-calendar.conduit: e-calendar.conduit.i
|
||||||
|
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||||
|
$< > $@
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-calendar.conduit
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
--- evolution-2.11.3/calendar/conduits/calendar/Makefile.in.fix-conduit-dir 2007-06-04 07:36:50.000000000 -0400
|
||||||
|
+++ evolution-2.11.3/calendar/conduits/calendar/Makefile.in 2007-06-04 12:57:11.000000000 -0400
|
||||||
|
@@ -458,7 +458,7 @@ libecalendar_conduit_la_LIBADD = \
|
||||||
|
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||||
|
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||||
|
|
||||||
|
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||||
|
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||||
|
conduit_DATA = e-calendar.conduit
|
||||||
|
BUILT_SOURCES = $(conduit_DATA)
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
515
evolution-2.5.4-fix-conduits.patch
Normal file
515
evolution-2.5.4-fix-conduits.patch
Normal file
|
|
@ -0,0 +1,515 @@
|
||||||
|
--- evolution-2.5.4/addressbook/conduit/address-conduit.c.fix-conduits 2005-12-08 03:15:02.000000000 -0500
|
||||||
|
+++ evolution-2.5.4/addressbook/conduit/address-conduit.c 2006-01-10 19:33:44.000000000 -0500
|
||||||
|
@@ -462,14 +462,19 @@
|
||||||
|
{
|
||||||
|
static char buff[ 4096 ];
|
||||||
|
struct Address addr;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
if (remote == NULL) {
|
||||||
|
sprintf (buff, "[NULL]");
|
||||||
|
return buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&addr, 0, sizeof (struct Address));
|
||||||
|
- unpack_Address (&addr, remote->record, remote->length);
|
||||||
|
+ unpack_Address (&addr, &piBuf, address_v1);
|
||||||
|
|
||||||
|
g_snprintf (buff, 4096, "['%s' '%s' '%s']",
|
||||||
|
addr.entry[entryLastname] ?
|
||||||
|
@@ -791,7 +796,8 @@
|
||||||
|
EAddrConduitContext *ctxt)
|
||||||
|
{
|
||||||
|
GnomePilotRecord p;
|
||||||
|
- static char record[0xffff];
|
||||||
|
+ static unsigned char record[0xffff];
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_assert (local->addr != NULL );
|
||||||
|
|
||||||
|
@@ -803,9 +809,17 @@
|
||||||
|
p.archived = local->local.archived;
|
||||||
|
p.secret = local->local.secret;
|
||||||
|
|
||||||
|
+ memset (&piBuf, 0, sizeof (piBuf));
|
||||||
|
+ memset (record, 0, sizeof (record));
|
||||||
|
+ pack_Address (local->addr, &piBuf, address_v1);
|
||||||
|
+
|
||||||
|
/* Generate pilot record structure */
|
||||||
|
+ if (piBuf.used > 0)
|
||||||
|
+ memcpy (record, piBuf.data, piBuf.used);
|
||||||
|
p.record = record;
|
||||||
|
- p.length = pack_Address (local->addr, p.record, 0xffff);
|
||||||
|
+ p.length = piBuf.used;
|
||||||
|
+ if (piBuf.data)
|
||||||
|
+ free (piBuf.data);
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
@@ -834,16 +848,16 @@
|
||||||
|
*/
|
||||||
|
if (local->local.ID != 0) {
|
||||||
|
struct Address addr;
|
||||||
|
- char record[0xffff];
|
||||||
|
+ pi_buffer_t *buffer = pi_buffer_new (0xffff);
|
||||||
|
int cat = 0;
|
||||||
|
|
||||||
|
if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
|
||||||
|
ctxt->dbi->db_handle,
|
||||||
|
- local->local.ID, &record,
|
||||||
|
- NULL, NULL, NULL, &cat) > 0) {
|
||||||
|
+ local->local.ID, buffer,
|
||||||
|
+ NULL, NULL, &cat) > 0) {
|
||||||
|
local->local.category = cat;
|
||||||
|
memset (&addr, 0, sizeof (struct Address));
|
||||||
|
- unpack_Address (&addr, record, 0xffff);
|
||||||
|
+ unpack_Address (&addr, buffer, address_v1);
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
if (addr.entry[entryPhone1 + i])
|
||||||
|
local->addr->entry[entryPhone1 + i] =
|
||||||
|
@@ -858,6 +872,8 @@
|
||||||
|
}
|
||||||
|
free_Address (&addr);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
local->addr->entry[entryFirstname] = e_pilot_utf8_to_pchar (e_contact_get_const (contact, E_CONTACT_GIVEN_NAME));
|
||||||
|
@@ -1019,10 +1035,16 @@
|
||||||
|
EContactField next_mail, next_home, next_work, next_fax;
|
||||||
|
EContactField next_other, next_main, next_pager, next_mobile;
|
||||||
|
int i;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_return_val_if_fail(remote!=NULL,NULL);
|
||||||
|
memset (&address, 0, sizeof (struct Address));
|
||||||
|
- unpack_Address (&address, remote->record, remote->length);
|
||||||
|
+
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
+ unpack_Address (&address, &piBuf, address_v1);
|
||||||
|
|
||||||
|
if (in_contact == NULL)
|
||||||
|
contact = e_contact_new ();
|
||||||
|
@@ -1212,7 +1234,7 @@
|
||||||
|
EBookQuery *query;
|
||||||
|
GList *l;
|
||||||
|
int len;
|
||||||
|
- unsigned char *buf;
|
||||||
|
+ pi_buffer_t *buffer;
|
||||||
|
char *filename;
|
||||||
|
char *change_id;
|
||||||
|
char *auth;
|
||||||
|
@@ -1302,9 +1324,9 @@
|
||||||
|
gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
|
||||||
|
gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
|
||||||
|
|
||||||
|
- buf = (unsigned char*)g_malloc (0xffff);
|
||||||
|
+ buffer = pi_buffer_new (0xffff);
|
||||||
|
len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
|
||||||
|
- (unsigned char *)buf, 0xffff);
|
||||||
|
+ -1, buffer);
|
||||||
|
|
||||||
|
if (len < 0) {
|
||||||
|
WARN (_("Could not read pilot's Address application block"));
|
||||||
|
@@ -1313,8 +1335,8 @@
|
||||||
|
_("Could not read pilot's Address application block"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
- unpack_AddressAppInfo (&(ctxt->ai), buf, len);
|
||||||
|
- g_free (buf);
|
||||||
|
+ unpack_AddressAppInfo (&(ctxt->ai), buffer->data, len);
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
|
||||||
|
check_for_slow_setting (conduit, ctxt);
|
||||||
|
if (ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyToPilot
|
||||||
|
--- evolution-2.5.4/calendar/conduits/calendar/calendar-conduit.c.fix-conduits 2006-01-02 06:38:57.000000000 -0500
|
||||||
|
+++ evolution-2.5.4/calendar/conduits/calendar/calendar-conduit.c 2006-01-10 19:33:44.000000000 -0500
|
||||||
|
@@ -413,14 +413,20 @@
|
||||||
|
{
|
||||||
|
static char buff[ 4096 ];
|
||||||
|
struct Appointment appt;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
if (remote == NULL) {
|
||||||
|
sprintf (buff, "[NULL]");
|
||||||
|
return buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&appt, 0, sizeof (struct Appointment));
|
||||||
|
- unpack_Appointment (&appt, remote->record, remote->length);
|
||||||
|
+ unpack_Appointment (&appt, &piBuf, datebook_v1);
|
||||||
|
|
||||||
|
g_snprintf (buff, 4096, "[%ld %ld '%s' '%s']",
|
||||||
|
mktime (&appt.begin),
|
||||||
|
@@ -818,7 +824,8 @@
|
||||||
|
ECalConduitContext *ctxt)
|
||||||
|
{
|
||||||
|
GnomePilotRecord p;
|
||||||
|
- static char record[0xffff];
|
||||||
|
+ static unsigned char record[0xffff];
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_assert (local->comp != NULL);
|
||||||
|
g_assert (local->appt != NULL );
|
||||||
|
@@ -829,9 +836,17 @@
|
||||||
|
p.archived = local->local.archived;
|
||||||
|
p.secret = local->local.secret;
|
||||||
|
|
||||||
|
+ memset (&piBuf, 0, sizeof (piBuf));
|
||||||
|
+ memset (record, 0, sizeof (record));
|
||||||
|
+ pack_Appointment (local->appt, &piBuf, datebook_v1);
|
||||||
|
+
|
||||||
|
/* Generate pilot record structure */
|
||||||
|
+ if (piBuf.used > 0)
|
||||||
|
+ memcpy (record, piBuf.data, piBuf.used);
|
||||||
|
p.record = record;
|
||||||
|
- p.length = pack_Appointment (local->appt, p.record, 0xffff);
|
||||||
|
+ p.length = piBuf.used;
|
||||||
|
+ if (piBuf.data)
|
||||||
|
+ free (piBuf.data);
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
@@ -867,22 +882,24 @@
|
||||||
|
* we don't overwrite them
|
||||||
|
*/
|
||||||
|
if (local->local.ID != 0) {
|
||||||
|
- struct Appointment appt;
|
||||||
|
- char record[0xffff];
|
||||||
|
+ struct Appointment appt;
|
||||||
|
+ pi_buffer_t *buffer = pi_buffer_new (0xffff);
|
||||||
|
int cat = 0;
|
||||||
|
|
||||||
|
if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
|
||||||
|
ctxt->dbi->db_handle,
|
||||||
|
- local->local.ID, &record,
|
||||||
|
- NULL, NULL, NULL, &cat) > 0) {
|
||||||
|
+ local->local.ID, buffer,
|
||||||
|
+ NULL, NULL, &cat) > 0) {
|
||||||
|
local->local.category = cat;
|
||||||
|
memset (&appt, 0, sizeof (struct Appointment));
|
||||||
|
- unpack_Appointment (&appt, record, 0xffff);
|
||||||
|
+ unpack_Appointment (&appt, buffer, datebook_v1);
|
||||||
|
local->appt->alarm = appt.alarm;
|
||||||
|
local->appt->advance = appt.advance;
|
||||||
|
local->appt->advanceUnits = appt.advanceUnits;
|
||||||
|
free_Appointment (&appt);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* STOP: don't replace these with g_strdup, since free_Appointment
|
||||||
|
@@ -1140,11 +1157,17 @@
|
||||||
|
GSList *edl = NULL;
|
||||||
|
char *txt;
|
||||||
|
int pos, i;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_return_val_if_fail (remote != NULL, NULL);
|
||||||
|
|
||||||
|
+
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&appt, 0, sizeof (struct Appointment));
|
||||||
|
- unpack_Appointment (&appt, remote->record, remote->length);
|
||||||
|
+ unpack_Appointment (&appt, &piBuf, datebook_v1);
|
||||||
|
|
||||||
|
if (in_comp == NULL) {
|
||||||
|
comp = e_cal_component_new ();
|
||||||
|
@@ -1409,7 +1432,7 @@
|
||||||
|
GnomePilotConduitSyncAbs *abs_conduit;
|
||||||
|
GList *removed = NULL, *added = NULL, *l;
|
||||||
|
int len;
|
||||||
|
- unsigned char *buf;
|
||||||
|
+ pi_buffer_t *buffer;
|
||||||
|
char *filename, *change_id;
|
||||||
|
icalcomponent *icalcomp;
|
||||||
|
gint num_records, add_records = 0, mod_records = 0, del_records = 0;
|
||||||
|
@@ -1521,9 +1544,9 @@
|
||||||
|
gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
|
||||||
|
gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
|
||||||
|
|
||||||
|
- buf = (unsigned char*)g_malloc (0xffff);
|
||||||
|
+ buffer = pi_buffer_new (0xffff);
|
||||||
|
len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
|
||||||
|
- (unsigned char *)buf, 0xffff);
|
||||||
|
+ -1, buffer);
|
||||||
|
|
||||||
|
if (len < 0) {
|
||||||
|
WARN (_("Could not read pilot's Calendar application block"));
|
||||||
|
@@ -1532,8 +1555,8 @@
|
||||||
|
_("Could not read pilot's Calendar application block"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
- unpack_AppointmentAppInfo (&(ctxt->ai), buf, len);
|
||||||
|
- g_free (buf);
|
||||||
|
+ unpack_AppointmentAppInfo (&(ctxt->ai), buffer->data, len);
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
|
||||||
|
check_for_slow_setting (conduit, ctxt);
|
||||||
|
if (ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyToPilot
|
||||||
|
--- evolution-2.5.4/calendar/conduits/todo/todo-conduit.c.fix-conduits 2005-12-08 03:15:03.000000000 -0500
|
||||||
|
+++ evolution-2.5.4/calendar/conduits/todo/todo-conduit.c 2006-01-10 19:33:44.000000000 -0500
|
||||||
|
@@ -402,14 +402,19 @@
|
||||||
|
{
|
||||||
|
static char buff[ 4096 ];
|
||||||
|
struct ToDo todo;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
if (remote == NULL) {
|
||||||
|
sprintf (buff, "[NULL]");
|
||||||
|
return buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&todo, 0, sizeof (struct ToDo));
|
||||||
|
- unpack_ToDo (&todo, remote->record, remote->length);
|
||||||
|
+ unpack_ToDo (&todo, &piBuf, todo_v1);
|
||||||
|
|
||||||
|
g_snprintf (buff, 4096, "[%d %ld %d %d '%s' '%s' %d]",
|
||||||
|
todo.indefinite,
|
||||||
|
@@ -594,7 +599,8 @@
|
||||||
|
EToDoConduitContext *ctxt)
|
||||||
|
{
|
||||||
|
GnomePilotRecord p;
|
||||||
|
- static char record[0xffff];
|
||||||
|
+ static unsigned char record[0xffff];
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_assert (local->comp != NULL);
|
||||||
|
g_assert (local->todo != NULL );
|
||||||
|
@@ -607,9 +613,17 @@
|
||||||
|
p.archived = local->local.archived;
|
||||||
|
p.secret = local->local.secret;
|
||||||
|
|
||||||
|
+ memset (&piBuf, 0, sizeof (piBuf));
|
||||||
|
+ memset (record, 0, sizeof (record));
|
||||||
|
+ pack_ToDo (local->todo, &piBuf, todo_v1);
|
||||||
|
+
|
||||||
|
/* Generate pilot record structure */
|
||||||
|
+ if (piBuf.used > 0)
|
||||||
|
+ memcpy (record, piBuf.data, piBuf.used);
|
||||||
|
p.record = record;
|
||||||
|
- p.length = pack_ToDo (local->todo, p.record, 0xffff);
|
||||||
|
+ p.length = piBuf.used;
|
||||||
|
+ if (piBuf.data)
|
||||||
|
+ free (piBuf.data);
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
@@ -696,15 +710,17 @@
|
||||||
|
|
||||||
|
/* Don't overwrite the category */
|
||||||
|
if (local->local.ID != 0) {
|
||||||
|
- char record[0xffff];
|
||||||
|
+ pi_buffer_t *buffer = pi_buffer_new (0xffff);
|
||||||
|
int cat = 0;
|
||||||
|
|
||||||
|
if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
|
||||||
|
ctxt->dbi->db_handle,
|
||||||
|
- local->local.ID, &record,
|
||||||
|
- NULL, NULL, NULL, &cat) > 0) {
|
||||||
|
+ local->local.ID, buffer,
|
||||||
|
+ NULL, NULL, &cat) > 0) {
|
||||||
|
local->local.category = cat;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -859,12 +875,17 @@
|
||||||
|
icaltimezone *utc_zone;
|
||||||
|
int priority;
|
||||||
|
char *txt;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
char *category;
|
||||||
|
|
||||||
|
g_return_val_if_fail (remote != NULL, NULL);
|
||||||
|
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&todo, 0, sizeof (struct ToDo));
|
||||||
|
- unpack_ToDo (&todo, remote->record, remote->length);
|
||||||
|
+ unpack_ToDo (&todo, &piBuf, todo_v1);
|
||||||
|
|
||||||
|
utc_zone = icaltimezone_get_utc_timezone ();
|
||||||
|
now = icaltime_from_timet_with_zone (time (NULL), FALSE,
|
||||||
|
@@ -1014,7 +1035,7 @@
|
||||||
|
GnomePilotConduitSyncAbs *abs_conduit;
|
||||||
|
GList *l;
|
||||||
|
int len;
|
||||||
|
- unsigned char *buf;
|
||||||
|
+ pi_buffer_t *buffer;
|
||||||
|
char *filename, *change_id;
|
||||||
|
icalcomponent *icalcomp;
|
||||||
|
gint num_records, add_records = 0, mod_records = 0, del_records = 0;
|
||||||
|
@@ -1104,9 +1125,9 @@
|
||||||
|
g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
|
||||||
|
num_records, add_records, mod_records, del_records);
|
||||||
|
|
||||||
|
- buf = (unsigned char*)g_malloc (0xffff);
|
||||||
|
+ buffer = pi_buffer_new (0xffff);
|
||||||
|
len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
|
||||||
|
- (unsigned char *)buf, 0xffff);
|
||||||
|
+ -1, buffer);
|
||||||
|
|
||||||
|
if (len < 0) {
|
||||||
|
WARN (_("Could not read pilot's ToDo application block"));
|
||||||
|
@@ -1115,8 +1136,8 @@
|
||||||
|
_("Could not read pilot's ToDo application block"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
- unpack_ToDoAppInfo (&(ctxt->ai), buf, len);
|
||||||
|
- g_free (buf);
|
||||||
|
+ unpack_ToDoAppInfo (&(ctxt->ai), buffer->data, len);
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
|
||||||
|
lastDesktopUniqueID = 128;
|
||||||
|
|
||||||
|
--- evolution-2.5.4/calendar/conduits/memo/memo-conduit.c.fix-conduits 2006-01-10 22:52:28.000000000 -0500
|
||||||
|
+++ evolution-2.5.4/calendar/conduits/memo/memo-conduit.c 2006-01-10 23:11:47.000000000 -0500
|
||||||
|
@@ -331,14 +331,19 @@
|
||||||
|
{
|
||||||
|
static char buff[ 64 ];
|
||||||
|
struct Memo memo;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
if (remote == NULL) {
|
||||||
|
sprintf (buff, "[NULL]");
|
||||||
|
return buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&memo, 0, sizeof (struct Memo));
|
||||||
|
- unpack_Memo (&memo, remote->record, remote->length);
|
||||||
|
+ unpack_Memo (&memo, &piBuf, memo_v1);
|
||||||
|
|
||||||
|
g_snprintf (buff, 64, "['%s']",
|
||||||
|
memo.text ?
|
||||||
|
@@ -451,7 +456,8 @@
|
||||||
|
EMemoConduitContext *ctxt)
|
||||||
|
{
|
||||||
|
GnomePilotRecord p;
|
||||||
|
- static char record[0xffff];
|
||||||
|
+ static unsigned char record[0xffff];
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
|
||||||
|
g_assert (local->comp != NULL);
|
||||||
|
g_assert (local->memo != NULL );
|
||||||
|
@@ -466,8 +472,14 @@
|
||||||
|
|
||||||
|
/* Generate pilot record structure */
|
||||||
|
p.record = record;
|
||||||
|
- p.length = pack_Memo (local->memo, p.record, 0xffff);
|
||||||
|
-
|
||||||
|
+ memset (&piBuf, 0, sizeof (piBuf));
|
||||||
|
+ memset (record, 0, sizeof (record));
|
||||||
|
+ p.length = pack_Memo (local->memo, &piBuf, memo_v1);
|
||||||
|
+ if (piBuf.used > 0)
|
||||||
|
+ memcpy (record, piBuf.data, piBuf.used);
|
||||||
|
+ p.length = piBuf.used;
|
||||||
|
+ if (piBuf.data)
|
||||||
|
+ free (piBuf.data);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -568,16 +580,17 @@
|
||||||
|
|
||||||
|
/* Don't overwrite the category */
|
||||||
|
if (local->local.ID != 0) {
|
||||||
|
- char record[0xffff];
|
||||||
|
+ pi_buffer_t *buffer = pi_buffer_new (0xffff);
|
||||||
|
int cat = 0;
|
||||||
|
|
||||||
|
LOG(fprintf(stderr, "local_record_from_comp: calling dlp_ReadRecordById\n"));
|
||||||
|
if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
|
||||||
|
ctxt->dbi->db_handle,
|
||||||
|
- local->local.ID, &record,
|
||||||
|
- NULL, NULL, NULL, &cat) > 0) {
|
||||||
|
+ local->local.ID, buffer,
|
||||||
|
+ NULL, NULL, &cat) > 0) {
|
||||||
|
local->local.category = cat;
|
||||||
|
}
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
LOG(fprintf(stderr, "local_record_from_comp: done calling dlp_ReadRecordById\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -699,6 +712,7 @@
|
||||||
|
{
|
||||||
|
ECalComponent *comp;
|
||||||
|
struct Memo memo;
|
||||||
|
+ pi_buffer_t piBuf;
|
||||||
|
struct icaltimetype now;
|
||||||
|
icaltimezone *utc_zone;
|
||||||
|
char *txt, *txt2, *txt3;
|
||||||
|
@@ -707,8 +721,12 @@
|
||||||
|
|
||||||
|
g_return_val_if_fail (remote != NULL, NULL);
|
||||||
|
|
||||||
|
+ piBuf.data = remote->record;
|
||||||
|
+ piBuf.allocated = remote->length;
|
||||||
|
+ piBuf.used = remote->length;
|
||||||
|
+
|
||||||
|
memset (&memo, 0, sizeof (struct Memo));
|
||||||
|
- unpack_Memo (&memo, remote->record, remote->length);
|
||||||
|
+ unpack_Memo (&memo, &piBuf, memo_v1);
|
||||||
|
|
||||||
|
utc_zone = icaltimezone_get_utc_timezone ();
|
||||||
|
now = icaltime_from_timet_with_zone (time (NULL), FALSE,
|
||||||
|
@@ -836,7 +854,7 @@
|
||||||
|
GnomePilotConduitSyncAbs *abs_conduit;
|
||||||
|
GList *l;
|
||||||
|
int len;
|
||||||
|
- unsigned char *buf;
|
||||||
|
+ pi_buffer_t *buffer;
|
||||||
|
char *filename, *change_id;
|
||||||
|
icalcomponent *icalcomp;
|
||||||
|
gint num_records, add_records = 0, mod_records = 0, del_records = 0;
|
||||||
|
@@ -929,9 +947,9 @@
|
||||||
|
g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
|
||||||
|
num_records, add_records, mod_records, del_records);
|
||||||
|
|
||||||
|
- buf = (unsigned char*)g_malloc (0xffff);
|
||||||
|
+ buffer = pi_buffer_new (0xffff);
|
||||||
|
len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
|
||||||
|
- (unsigned char *)buf, 0xffff);
|
||||||
|
+ -1, buffer);
|
||||||
|
|
||||||
|
if (len < 0) {
|
||||||
|
WARN (_("Could not read pilot's Memo application block"));
|
||||||
|
@@ -940,8 +958,8 @@
|
||||||
|
_("Could not read pilot's Memo application block"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
- unpack_MemoAppInfo (&(ctxt->ai), buf, len);
|
||||||
|
- g_free (buf);
|
||||||
|
+ unpack_MemoAppInfo (&(ctxt->ai), buffer->data, len);
|
||||||
|
+ pi_buffer_free (buffer);
|
||||||
|
|
||||||
|
lastDesktopUniqueID = 128;
|
||||||
|
|
||||||
242
evolution-2.5.5.1-commit-enter-on-calendar.patch
Normal file
242
evolution-2.5.5.1-commit-enter-on-calendar.patch
Normal file
|
|
@ -0,0 +1,242 @@
|
||||||
|
--- evolution-2.5.5.1/calendar/gui/e-day-view.c.commit-enter-on-calendar 2006-01-16 09:42:17.000000000 -0500
|
||||||
|
+++ evolution-2.5.5.1/calendar/gui/e-day-view.c 2006-01-25 23:48:24.000000000 -0500
|
||||||
|
@@ -334,6 +334,10 @@
|
||||||
|
gint event_num,
|
||||||
|
gchar *initial_text);
|
||||||
|
static void e_day_view_stop_editing_event (EDayView *day_view);
|
||||||
|
+static gboolean e_day_view_text_keypress (GnomeCanvasItem *item,
|
||||||
|
+ guint keyval,
|
||||||
|
+ guint state,
|
||||||
|
+ EDayView *day_view);
|
||||||
|
static gboolean e_day_view_on_text_item_event (GnomeCanvasItem *item,
|
||||||
|
GdkEvent *event,
|
||||||
|
EDayView *day_view);
|
||||||
|
@@ -4484,6 +4488,8 @@
|
||||||
|
G_CALLBACK (e_day_view_on_text_item_event), day_view);
|
||||||
|
g_signal_emit_by_name (G_OBJECT(day_view),
|
||||||
|
"event_added", event);
|
||||||
|
+ g_signal_connect (event->canvas_item, "keypress",
|
||||||
|
+ G_CALLBACK (e_day_view_text_keypress), day_view);
|
||||||
|
|
||||||
|
e_day_view_update_long_event_label (day_view, event_num);
|
||||||
|
}
|
||||||
|
@@ -4667,6 +4673,8 @@
|
||||||
|
G_CALLBACK (e_day_view_on_text_item_event), day_view);
|
||||||
|
g_signal_emit_by_name (G_OBJECT(day_view),
|
||||||
|
"event_added", event);
|
||||||
|
+ g_signal_connect (event->canvas_item, "keypress",
|
||||||
|
+ G_CALLBACK (e_day_view_text_keypress), day_view);
|
||||||
|
|
||||||
|
e_day_view_update_event_label (day_view, day, event_num);
|
||||||
|
}
|
||||||
|
@@ -5824,46 +5832,74 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
+e_day_view_text_keypress (GnomeCanvasItem *item,
|
||||||
|
+ guint keyval,
|
||||||
|
+ guint state,
|
||||||
|
+ EDayView *day_view)
|
||||||
|
+{
|
||||||
|
+ gboolean retval = FALSE;
|
||||||
|
+
|
||||||
|
+ tooltip_destroy (day_view, item);
|
||||||
|
+
|
||||||
|
+ if (keyval == GDK_Return) {
|
||||||
|
+ EText *text = E_TEXT (item);
|
||||||
|
+ gint new_pos = 0;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * HACK: last character which should be \n needs to be deleted
|
||||||
|
+ * here so that GDK_Return was already processed on EText
|
||||||
|
+ * before E_TEXT_KEYPRESS event is emitted.
|
||||||
|
+ */
|
||||||
|
+ if (text->selection_end >= 1)
|
||||||
|
+ new_pos = text->selection_end - 1;
|
||||||
|
+
|
||||||
|
+ text->selection_end = e_text_model_validate_position (text->model, new_pos);
|
||||||
|
+ e_text_delete_selection (text);
|
||||||
|
+
|
||||||
|
+ day_view->resize_event_num = -1;
|
||||||
|
+
|
||||||
|
+ /* We set the keyboard focus to the EDayView, so the
|
||||||
|
+ EText item loses it and stops the edit. */
|
||||||
|
+ gtk_widget_grab_focus (GTK_WIDGET (day_view));
|
||||||
|
+
|
||||||
|
+ /* Stop the signal last or we will also stop any
|
||||||
|
+ other events getting to the EText item. */
|
||||||
|
+ gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
|
||||||
|
+ "event");
|
||||||
|
+
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ } else if (keyval == GDK_Escape) {
|
||||||
|
+ cancel_editing (day_view);
|
||||||
|
+ gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
|
||||||
|
+ /* focus should go to day view when stop editing */
|
||||||
|
+ gtk_widget_grab_focus (GTK_WIDGET (day_view));
|
||||||
|
+
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ } else if ((keyval == GDK_Up)
|
||||||
|
+ && (state & GDK_SHIFT_MASK)
|
||||||
|
+ && (state & GDK_CONTROL_MASK)
|
||||||
|
+ && !(state & GDK_MOD1_MASK)) {
|
||||||
|
+ e_day_view_change_event_end_time_up (day_view);
|
||||||
|
+
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ } else if ((keyval == GDK_Down)
|
||||||
|
+ && (state & GDK_SHIFT_MASK)
|
||||||
|
+ && (state & GDK_CONTROL_MASK)
|
||||||
|
+ && !(state & GDK_MOD1_MASK)) {
|
||||||
|
+ e_day_view_change_event_end_time_down (day_view);
|
||||||
|
+
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return retval;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static gboolean
|
||||||
|
e_day_view_on_text_item_event (GnomeCanvasItem *item,
|
||||||
|
GdkEvent *event,
|
||||||
|
EDayView *day_view)
|
||||||
|
{
|
||||||
|
switch (event->type) {
|
||||||
|
- case GDK_KEY_PRESS:
|
||||||
|
- tooltip_destroy (day_view, item);
|
||||||
|
- if (event && event->key.keyval == GDK_Return) {
|
||||||
|
- day_view->resize_event_num = -1;
|
||||||
|
- day_view->resize_event_num = -1;
|
||||||
|
-
|
||||||
|
- /* We set the keyboard focus to the EDayView, so the
|
||||||
|
- EText item loses it and stops the edit. */
|
||||||
|
- gtk_widget_grab_focus (GTK_WIDGET (day_view));
|
||||||
|
-
|
||||||
|
- /* Stop the signal last or we will also stop any
|
||||||
|
- other events getting to the EText item. */
|
||||||
|
- gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
|
||||||
|
- "event");
|
||||||
|
- return TRUE;
|
||||||
|
- } else if (event->key.keyval == GDK_Escape) {
|
||||||
|
- cancel_editing (day_view);
|
||||||
|
- gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
|
||||||
|
- /* focus should go to day view when stop editing */
|
||||||
|
- gtk_widget_grab_focus (GTK_WIDGET (day_view));
|
||||||
|
- return TRUE;
|
||||||
|
- } else if ((event->key.keyval == GDK_Up)
|
||||||
|
- && (event->key.state & GDK_SHIFT_MASK)
|
||||||
|
- && (event->key.state & GDK_CONTROL_MASK)
|
||||||
|
- && !(event->key.state & GDK_MOD1_MASK)) {
|
||||||
|
- e_day_view_change_event_end_time_up (day_view);
|
||||||
|
- return TRUE;
|
||||||
|
- } else if ((event->key.keyval == GDK_Down)
|
||||||
|
- && (event->key.state & GDK_SHIFT_MASK)
|
||||||
|
- && (event->key.state & GDK_CONTROL_MASK)
|
||||||
|
- && !(event->key.state & GDK_MOD1_MASK)) {
|
||||||
|
- e_day_view_change_event_end_time_down (day_view);
|
||||||
|
- return TRUE;
|
||||||
|
- }
|
||||||
|
- break;
|
||||||
|
case GDK_2BUTTON_PRESS:
|
||||||
|
#if 0
|
||||||
|
g_print ("Item got double-click\n");
|
||||||
|
--- evolution-2.5.5.1/calendar/gui/e-week-view.c.commit-enter-on-calendar 2006-01-16 09:42:17.000000000 -0500
|
||||||
|
+++ evolution-2.5.5.1/calendar/gui/e-week-view.c 2006-01-25 23:46:43.000000000 -0500
|
||||||
|
@@ -175,6 +175,10 @@
|
||||||
|
const gchar *uid,
|
||||||
|
EWeekViewForeachEventCallback callback,
|
||||||
|
gpointer data);
|
||||||
|
+static gboolean e_week_view_text_keypress (GnomeCanvasItem *item,
|
||||||
|
+ guint keyval,
|
||||||
|
+ guint state,
|
||||||
|
+ EWeekView *week_view);
|
||||||
|
static gboolean e_week_view_on_text_item_event (GnomeCanvasItem *item,
|
||||||
|
GdkEvent *event,
|
||||||
|
EWeekView *week_view);
|
||||||
|
@@ -2771,6 +2775,8 @@
|
||||||
|
week_view);
|
||||||
|
g_signal_emit_by_name (G_OBJECT(week_view),
|
||||||
|
"event_added", event);
|
||||||
|
+ g_signal_connect (span->text_item, "keypress",
|
||||||
|
+ G_CALLBACK (e_week_view_text_keypress), week_view);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3028,6 +3034,51 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
+e_week_view_text_keypress (GnomeCanvasItem *item,
|
||||||
|
+ guint keyval,
|
||||||
|
+ guint state,
|
||||||
|
+ EWeekView *week_view)
|
||||||
|
+{
|
||||||
|
+ gboolean retval = FALSE;
|
||||||
|
+
|
||||||
|
+ tooltip_destroy (week_view, item);
|
||||||
|
+
|
||||||
|
+ if (keyval == GDK_Return) {
|
||||||
|
+ EText *text = E_TEXT (item);
|
||||||
|
+ gint new_pos = 0;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * HACK: last charater which should be \n needs to be deleted
|
||||||
|
+ * here so that GDK_Return was already processed on EText
|
||||||
|
+ * before E_TEXT_KEYPRESS event is emitted.
|
||||||
|
+ */
|
||||||
|
+ if (text->selection_end >= 1)
|
||||||
|
+ new_pos = text->selection_end - 1;
|
||||||
|
+
|
||||||
|
+ text->selection_end = e_text_model_validate_position (text->model, new_pos);
|
||||||
|
+ e_text_delete_selection (text);
|
||||||
|
+
|
||||||
|
+ /* We set the keyboard focus to the EDayView, so the
|
||||||
|
+ EText item loses it and stops the edit. */
|
||||||
|
+ gtk_widget_grab_focus (GTK_WIDGET (week_view));
|
||||||
|
+
|
||||||
|
+ /* Stop the signal last or we will also stop any
|
||||||
|
+ other events getting to the EText item. */
|
||||||
|
+ gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
|
||||||
|
+ "event");
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ } else if (keyval == GDK_Escape) {
|
||||||
|
+ cancel_editing (week_view);
|
||||||
|
+ gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
|
||||||
|
+ /* focus should go to week view when stop editing */
|
||||||
|
+ gtk_widget_grab_focus (GTK_WIDGET (week_view));
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return retval;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static gboolean
|
||||||
|
e_week_view_on_text_item_event (GnomeCanvasItem *item,
|
||||||
|
GdkEvent *gdkevent,
|
||||||
|
EWeekView *week_view)
|
||||||
|
@@ -3044,26 +3095,6 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (gdkevent->type) {
|
||||||
|
- case GDK_KEY_PRESS:
|
||||||
|
- tooltip_destroy (week_view, item);
|
||||||
|
- if (gdkevent && gdkevent->key.keyval == GDK_Return) {
|
||||||
|
- /* We set the keyboard focus to the EDayView, so the
|
||||||
|
- EText item loses it and stops the edit. */
|
||||||
|
- gtk_widget_grab_focus (GTK_WIDGET (week_view));
|
||||||
|
-
|
||||||
|
- /* Stop the signal last or we will also stop any
|
||||||
|
- other events getting to the EText item. */
|
||||||
|
- gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
|
||||||
|
- "event");
|
||||||
|
- return TRUE;
|
||||||
|
- } else if (gdkevent->key.keyval == GDK_Escape) {
|
||||||
|
- cancel_editing (week_view);
|
||||||
|
- gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
|
||||||
|
- /* focus should go to week view when stop editing */
|
||||||
|
- gtk_widget_grab_focus (GTK_WIDGET (week_view));
|
||||||
|
- return TRUE;
|
||||||
|
- }
|
||||||
|
- break;
|
||||||
|
case GDK_2BUTTON_PRESS:
|
||||||
|
if (!e_week_view_find_event_from_item (week_view, item,
|
||||||
|
&event_num, &span_num))
|
||||||
21
evolution-2.6.0-prototypes.patch
Normal file
21
evolution-2.6.0-prototypes.patch
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
--- evolution-2.6.0/calendar/gui/dialogs/event-page.c.prototypes 2006-03-14 01:00:04.000000000 -0500
|
||||||
|
+++ evolution-2.6.0/calendar/gui/dialogs/event-page.c 2006-03-14 01:00:21.000000000 -0500
|
||||||
|
@@ -59,6 +59,8 @@
|
||||||
|
#include "event-page.h"
|
||||||
|
#include "e-send-options-utils.h"
|
||||||
|
|
||||||
|
+GtkWidget *alarm_list_dialog_peek (ECal *ecal, EAlarmList *list_store);
|
||||||
|
+
|
||||||
|
|
||||||
|
|
||||||
|
/* Private part of the EventPage structure */
|
||||||
|
--- evolution-2.6.0/calendar/gui/dialogs/cal-prefs-dialog.c.prototypes 2006-03-13 14:14:07.000000000 -0500
|
||||||
|
+++ evolution-2.6.0/calendar/gui/dialogs/cal-prefs-dialog.c 2006-03-13 14:14:24.000000000 -0500
|
||||||
|
@@ -32,6 +32,7 @@
|
||||||
|
#include "../calendar-config.h"
|
||||||
|
#include "cal-prefs-dialog.h"
|
||||||
|
#include <libgnomeui/gnome-color-picker.h>
|
||||||
|
+#include <libgnomeui/gnome-file-entry.h>
|
||||||
|
#include <widgets/misc/e-dateedit.h>
|
||||||
|
#include <e-util/e-dialog-widgets.h>
|
||||||
|
#include <e-util/e-util-private.h>
|
||||||
154
evolution-2.7.1-no-gnome-common.patch
Normal file
154
evolution-2.7.1-no-gnome-common.patch
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
diff -up evolution-2.12.1/configure.in.no-gnome-common evolution-2.12.1/configure.in
|
||||||
|
--- evolution-2.12.1/configure.in.no-gnome-common 2007-10-15 08:30:42.000000000 +0200
|
||||||
|
+++ evolution-2.12.1/configure.in 2007-10-15 17:54:01.000000000 +0200
|
||||||
|
@@ -1282,9 +1282,6 @@ AC_SUBST_FILE(EVO_MARSHAL_RULE)
|
||||||
|
dnl *************************
|
||||||
|
dnl CFLAGS and LIBS and stuff
|
||||||
|
dnl *************************
|
||||||
|
-
|
||||||
|
-GNOME_COMPILE_WARNINGS(yes)
|
||||||
|
-CFLAGS="$CFLAGS $WARN_CFLAGS"
|
||||||
|
case $CFLAGS in
|
||||||
|
*-Wall*)
|
||||||
|
# Turn off the annoying "comparison between signed and unsigned"
|
||||||
|
diff -up evolution-2.12.1/configure.no-gnome-common evolution-2.12.1/configure
|
||||||
|
--- evolution-2.12.1/configure.no-gnome-common 2007-10-15 17:54:01.000000000 +0200
|
||||||
|
+++ evolution-2.12.1/configure 2007-10-15 18:47:03.000000000 +0200
|
||||||
|
@@ -31564,137 +31564,6 @@ EVO_MARSHAL_RULE=$srcdir/marshal.mk
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- # Check whether --enable-compile-warnings was given.
|
||||||
|
-if test "${enable_compile_warnings+set}" = set; then
|
||||||
|
- enableval=$enable_compile_warnings;
|
||||||
|
-else
|
||||||
|
- enable_compile_warnings="yes"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- warnCFLAGS=
|
||||||
|
- if test "x$GCC" != xyes; then
|
||||||
|
- enable_compile_warnings=no
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- warning_flags=
|
||||||
|
- realsave_CFLAGS="$CFLAGS"
|
||||||
|
-
|
||||||
|
- case "$enable_compile_warnings" in
|
||||||
|
- no)
|
||||||
|
- warning_flags=
|
||||||
|
- ;;
|
||||||
|
- minimum)
|
||||||
|
- warning_flags="-Wall"
|
||||||
|
- ;;
|
||||||
|
- yes)
|
||||||
|
- warning_flags="-Wall -Wmissing-prototypes"
|
||||||
|
- ;;
|
||||||
|
- maximum|error)
|
||||||
|
- warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
|
||||||
|
- CFLAGS="$warning_flags $CFLAGS"
|
||||||
|
- for option in -Wno-sign-compare; do
|
||||||
|
- SAVE_CFLAGS="$CFLAGS"
|
||||||
|
- CFLAGS="$CFLAGS $option"
|
||||||
|
- { echo "$as_me:$LINENO: checking whether gcc understands $option" >&5
|
||||||
|
-echo $ECHO_N "checking whether gcc understands $option... $ECHO_C" >&6; }
|
||||||
|
- cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
-/* confdefs.h. */
|
||||||
|
-_ACEOF
|
||||||
|
-cat confdefs.h >>conftest.$ac_ext
|
||||||
|
-cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
-/* end confdefs.h. */
|
||||||
|
-
|
||||||
|
-int
|
||||||
|
-main ()
|
||||||
|
-{
|
||||||
|
-
|
||||||
|
- ;
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-_ACEOF
|
||||||
|
-rm -f conftest.$ac_objext
|
||||||
|
-if { (ac_try="$ac_compile"
|
||||||
|
-case "(($ac_try" in
|
||||||
|
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
- *) ac_try_echo=$ac_try;;
|
||||||
|
-esac
|
||||||
|
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
- (eval "$ac_compile") 2>conftest.er1
|
||||||
|
- ac_status=$?
|
||||||
|
- grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
- rm -f conftest.er1
|
||||||
|
- cat conftest.err >&5
|
||||||
|
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
- (exit $ac_status); } && {
|
||||||
|
- test -z "$ac_c_werror_flag" ||
|
||||||
|
- test ! -s conftest.err
|
||||||
|
- } && test -s conftest.$ac_objext; then
|
||||||
|
- has_option=yes
|
||||||
|
-else
|
||||||
|
- echo "$as_me: failed program was:" >&5
|
||||||
|
-sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
-
|
||||||
|
- has_option=no
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
- CFLAGS="$SAVE_CFLAGS"
|
||||||
|
- { echo "$as_me:$LINENO: result: $has_option" >&5
|
||||||
|
-echo "${ECHO_T}$has_option" >&6; }
|
||||||
|
- if test $has_option = yes; then
|
||||||
|
- warning_flags="$warning_flags $option"
|
||||||
|
- fi
|
||||||
|
- unset has_option
|
||||||
|
- unset SAVE_CFLAGS
|
||||||
|
- done
|
||||||
|
- unset option
|
||||||
|
- if test "$enable_compile_warnings" = "error" ; then
|
||||||
|
- warning_flags="$warning_flags -Werror"
|
||||||
|
- fi
|
||||||
|
- ;;
|
||||||
|
- *)
|
||||||
|
- { { echo "$as_me:$LINENO: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&5
|
||||||
|
-echo "$as_me: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&2;}
|
||||||
|
- { (exit 1); exit 1; }; }
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
- CFLAGS="$realsave_CFLAGS"
|
||||||
|
- { echo "$as_me:$LINENO: checking what warning flags to pass to the C compiler" >&5
|
||||||
|
-echo $ECHO_N "checking what warning flags to pass to the C compiler... $ECHO_C" >&6; }
|
||||||
|
- { echo "$as_me:$LINENO: result: $warning_flags" >&5
|
||||||
|
-echo "${ECHO_T}$warning_flags" >&6; }
|
||||||
|
-
|
||||||
|
- # Check whether --enable-iso-c was given.
|
||||||
|
-if test "${enable_iso_c+set}" = set; then
|
||||||
|
- enableval=$enable_iso_c;
|
||||||
|
-else
|
||||||
|
- enable_iso_c=no
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- { echo "$as_me:$LINENO: checking what language compliance flags to pass to the C compiler" >&5
|
||||||
|
-echo $ECHO_N "checking what language compliance flags to pass to the C compiler... $ECHO_C" >&6; }
|
||||||
|
- complCFLAGS=
|
||||||
|
- if test "x$enable_iso_c" != "xno"; then
|
||||||
|
- if test "x$GCC" = "xyes"; then
|
||||||
|
- case " $CFLAGS " in
|
||||||
|
- *\ \ -ansi\ \ *) ;;
|
||||||
|
- *) complCFLAGS="$complCFLAGS -ansi" ;;
|
||||||
|
- esac
|
||||||
|
- case " $CFLAGS " in
|
||||||
|
- *\ \ -pedantic\ \ *) ;;
|
||||||
|
- *) complCFLAGS="$complCFLAGS -pedantic" ;;
|
||||||
|
- esac
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
- { echo "$as_me:$LINENO: result: $complCFLAGS" >&5
|
||||||
|
-echo "${ECHO_T}$complCFLAGS" >&6; }
|
||||||
|
-
|
||||||
|
- WARN_CFLAGS="$warning_flags $complCFLAGS"
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-CFLAGS="$CFLAGS $WARN_CFLAGS"
|
||||||
|
case $CFLAGS in
|
||||||
|
*-Wall*)
|
||||||
|
# Turn off the annoying "comparison between signed and unsigned"
|
||||||
51
evolution-2.7.1-notification-cleanups.patch
Normal file
51
evolution-2.7.1-notification-cleanups.patch
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
--- evolution-2.7.2.1/calendar/gui/alarm-notify/alarm-queue.c.notification-cleanups 2006-04-22 00:39:20.000000000 -0400
|
||||||
|
+++ evolution-2.7.2.1/calendar/gui/alarm-notify/alarm-queue.c 2006-05-23 16:04:23.000000000 -0400
|
||||||
|
@@ -1566,10 +1566,11 @@
|
||||||
|
const char *summary, *location;
|
||||||
|
GtkTooltips *tooltips;
|
||||||
|
ECalComponentText text;
|
||||||
|
- char *str, *start_str, *end_str, *alarm_str, *time_str;
|
||||||
|
+ char *start_str, *end_str, *alarm_str, *time_str;
|
||||||
|
icaltimezone *current_zone;
|
||||||
|
ECalComponentOrganizer organiser;
|
||||||
|
char *body;
|
||||||
|
+ NotifyNotification *n;
|
||||||
|
|
||||||
|
d(printf("%s:%d (popup_notification)\n",__FILE__, __LINE__));
|
||||||
|
|
||||||
|
@@ -1601,9 +1602,6 @@
|
||||||
|
end_str = timet_to_str_with_zone (qa->instance->occur_end, current_zone);
|
||||||
|
time_str = calculate_time (qa->instance->occur_start, qa->instance->occur_end);
|
||||||
|
|
||||||
|
- str = g_strdup_printf ("%s %s",
|
||||||
|
- start_str, time_str);
|
||||||
|
-
|
||||||
|
if (organiser.cn) {
|
||||||
|
if (location)
|
||||||
|
body = g_strdup_printf ("<b>%s</b>\n%s %s\n%s %s", organiser.cn, _("Location:"), location, start_str, time_str);
|
||||||
|
@@ -1617,16 +1615,21 @@
|
||||||
|
body = g_strdup_printf ("%s %s", start_str, time_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
- NotifyNotification *n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL);
|
||||||
|
- if (!notify_notification_show(n, NULL))
|
||||||
|
+ n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL);
|
||||||
|
+
|
||||||
|
+ /* Notifications don't timeout: require explicit user action: */
|
||||||
|
+ notify_notification_set_timeout (n, NOTIFY_EXPIRES_NEVER);
|
||||||
|
+
|
||||||
|
+ if (!notify_notification_show (n, NULL))
|
||||||
|
g_warning ("Could not send notification to daemon\n");
|
||||||
|
|
||||||
|
- /* create the private structure */
|
||||||
|
+ g_object_unref (n);
|
||||||
|
+
|
||||||
|
+ g_free (body);
|
||||||
|
g_free (start_str);
|
||||||
|
g_free (end_str);
|
||||||
|
g_free (alarm_str);
|
||||||
|
g_free (time_str);
|
||||||
|
- g_free (str);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
22
evolution-2.7.3-replicated-cjk-input.patch
Normal file
22
evolution-2.7.3-replicated-cjk-input.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
--- evolution-2.7.3/widgets/text/e-text.c.replicated_cjk_input 2006-07-06 09:57:22.000000000 -0400
|
||||||
|
+++ evolution-2.7.3/widgets/text/e-text.c 2006-07-06 09:58:27.000000000 -0400
|
||||||
|
@@ -1498,7 +1498,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- insert_preedit_text (text);
|
||||||
|
+ if (text->im_context_signals_registered)
|
||||||
|
+ insert_preedit_text (text);
|
||||||
|
|
||||||
|
if (!pango_layout_get_text (text->layout))
|
||||||
|
return;
|
||||||
|
@@ -2212,7 +2213,8 @@
|
||||||
|
G_SIGNAL_MATCH_DATA,
|
||||||
|
0, 0, NULL,
|
||||||
|
NULL, save_text);
|
||||||
|
- save_text->im_context_signals_registered = FALSE;
|
||||||
|
+ save_text->im_context_signals_registered = FALSE;
|
||||||
|
+ reset_layout (save_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (text->im_context) {
|
||||||
110
evolution-2.7.4-deleting-preedit-buffer.patch
Normal file
110
evolution-2.7.4-deleting-preedit-buffer.patch
Normal file
|
|
@ -0,0 +1,110 @@
|
||||||
|
--- evolution-2.7.90/widgets/text/e-text.c.deleting-preedit-buffer 2006-07-26 10:16:02.000000000 -0400
|
||||||
|
+++ evolution-2.7.90/widgets/text/e-text.c 2006-07-26 10:25:29.000000000 -0400
|
||||||
|
@@ -284,7 +284,7 @@
|
||||||
|
PangoAttrList *preedit_attrs = NULL;
|
||||||
|
gchar *preedit_string = NULL;
|
||||||
|
GString *tmp_string = g_string_new (NULL);
|
||||||
|
- gint length = 0, cpos = 0, preedit_length = 0;
|
||||||
|
+ gint length = 0, cpos = 0;
|
||||||
|
gboolean new_attrs = FALSE;
|
||||||
|
|
||||||
|
if (text->layout == NULL || !GTK_IS_IM_CONTEXT (text->im_context))
|
||||||
|
@@ -295,19 +295,15 @@
|
||||||
|
|
||||||
|
g_string_prepend_len (tmp_string, text->text,length);
|
||||||
|
|
||||||
|
- if (text->preedit_len)
|
||||||
|
- gtk_im_context_get_preedit_string (text->im_context,
|
||||||
|
- &preedit_string, &preedit_attrs,
|
||||||
|
- NULL);
|
||||||
|
+ /* we came into this function only when text->preedit_len was not 0
|
||||||
|
+ so we can saftely fetch the preedit string */
|
||||||
|
+ gtk_im_context_get_preedit_string (text->im_context, &preedit_string, &preedit_attrs, NULL);
|
||||||
|
|
||||||
|
if (preedit_string && g_utf8_validate (preedit_string, -1, NULL))
|
||||||
|
- text->preedit_len = preedit_length = strlen (preedit_string);
|
||||||
|
- else
|
||||||
|
- text->preedit_len = preedit_length = 0;
|
||||||
|
-
|
||||||
|
- cpos = g_utf8_offset_to_pointer (text->text, text->selection_start) - text->text;
|
||||||
|
+ {
|
||||||
|
+ text->preedit_len = strlen (preedit_string);
|
||||||
|
+ cpos = g_utf8_offset_to_pointer (text->text, text->selection_start) - text->text;
|
||||||
|
|
||||||
|
- if (preedit_length) {
|
||||||
|
g_string_insert (tmp_string, cpos, preedit_string);
|
||||||
|
|
||||||
|
reset_layout_attrs (text);
|
||||||
|
@@ -320,15 +316,17 @@
|
||||||
|
|
||||||
|
pango_layout_set_text (text->layout, tmp_string->str, tmp_string->len);
|
||||||
|
|
||||||
|
- pango_attr_list_splice (attrs, preedit_attrs, cpos, preedit_length);
|
||||||
|
+ pango_attr_list_splice (attrs, preedit_attrs, cpos, text->preedit_len);
|
||||||
|
|
||||||
|
if (new_attrs) {
|
||||||
|
pango_layout_set_attributes (text->layout, attrs);
|
||||||
|
pango_attr_list_unref (attrs);
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
update_im_cursor_position (text);
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ text->preedit_len = 0;
|
||||||
|
|
||||||
|
if (preedit_string)
|
||||||
|
g_free (preedit_string);
|
||||||
|
@@ -385,9 +383,12 @@
|
||||||
|
pango_attr_list_insert_before (attrs, attr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
pango_layout_set_attributes (text->layout, attrs);
|
||||||
|
+
|
||||||
|
if (attrs)
|
||||||
|
pango_attr_list_unref (attrs);
|
||||||
|
+
|
||||||
|
calc_height (text);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1510,9 +1511,14 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
- if (text->im_context_signals_registered)
|
||||||
|
- insert_preedit_text (text);
|
||||||
|
+ /* Insert preedit text only when im_context signals are connected & text->preedit_len is not zero */
|
||||||
|
+ if (text->im_context_signals_registered && text->preedit_len)
|
||||||
|
+ insert_preedit_text (text);
|
||||||
|
+
|
||||||
|
+ /* Need to reset the layout to cleanly clear the preedit buffer
|
||||||
|
+ * when typing in CJK & using backspace on the preedit */
|
||||||
|
+ if(!text->preedit_len)
|
||||||
|
+ reset_layout (text);
|
||||||
|
|
||||||
|
if (!pango_layout_get_text (text->layout))
|
||||||
|
return;
|
||||||
|
@@ -2220,11 +2226,12 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (save_text && save_text->im_context) {
|
||||||
|
+ gtk_im_context_focus_out(save_text->im_context);
|
||||||
|
g_signal_handlers_disconnect_matched (save_text->im_context,
|
||||||
|
G_SIGNAL_MATCH_DATA,
|
||||||
|
0, 0, NULL,
|
||||||
|
NULL, save_text);
|
||||||
|
- save_text->im_context_signals_registered = FALSE;
|
||||||
|
+ save_text->im_context_signals_registered = FALSE;
|
||||||
|
reset_layout (save_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2240,6 +2247,7 @@
|
||||||
|
G_CALLBACK (e_text_delete_surrounding_cb), text);
|
||||||
|
text->im_context_signals_registered = TRUE;
|
||||||
|
}
|
||||||
|
+ gtk_im_context_focus_in(text->im_context);
|
||||||
|
}
|
||||||
|
start_editing (text);
|
||||||
|
text->show_cursor = FALSE; /* so we'll redraw and the cursor will be shown */
|
||||||
7204
evolution-2.8.1-kill-ethread.patch
Normal file
7204
evolution-2.8.1-kill-ethread.patch
Normal file
File diff suppressed because it is too large
Load diff
12
evolution-2.9.1-im-context-reset.patch
Normal file
12
evolution-2.9.1-im-context-reset.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
--- evolution-2.9.1/calendar/gui/e-day-view.c.im-context-reset 2006-11-06 10:14:26.000000000 -0500
|
||||||
|
+++ evolution-2.9.1/calendar/gui/e-day-view.c 2006-11-06 10:15:39.000000000 -0500
|
||||||
|
@@ -6928,6 +6928,9 @@
|
||||||
|
if (!event->canvas_item)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ /* Reset IM context. */
|
||||||
|
+ gtk_im_context_reset (E_TEXT (event->canvas_item)->im_context);
|
||||||
|
+
|
||||||
|
/* We must grab the focus before setting the initial text, since
|
||||||
|
grabbing the focus will result in a call to
|
||||||
|
e_day_view_on_editing_started(), which will reset the text to get
|
||||||
19
evolution-2.9.3-source-path-entry.patch
Normal file
19
evolution-2.9.3-source-path-entry.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
--- evolution-2.9.3/mail/mail-config.glade.source-path-entry 2006-12-08 20:15:16.000000000 -0500
|
||||||
|
+++ evolution-2.9.3/mail/mail-config.glade 2006-12-08 20:16:13.000000000 -0500
|
||||||
|
@@ -1343,7 +1343,7 @@
|
||||||
|
<widget class="GtkFileChooserButton" id="source_path_entry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="title" translatable="yes">Mailbox location</property>
|
||||||
|
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
|
||||||
|
+ <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
|
||||||
|
<property name="local_only">True</property>
|
||||||
|
<property name="show_hidden">False</property>
|
||||||
|
<property name="do_overwrite_confirmation">False</property>
|
||||||
|
@@ -1354,7 +1354,6 @@
|
||||||
|
<property name="right_attach">2</property>
|
||||||
|
<property name="top_attach">2</property>
|
||||||
|
<property name="bottom_attach">3</property>
|
||||||
|
- <property name="x_options">fill</property>
|
||||||
|
<property name="y_options"></property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
46
evolution-2.9.3-view-attachment-uri.patch
Normal file
46
evolution-2.9.3-view-attachment-uri.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
--- evolution-2.9.3/mail/mail-ops.c.view-attachment-uri 2006-12-06 10:26:24.000000000 -0500
|
||||||
|
+++ evolution-2.9.3/mail/mail-ops.c 2006-12-06 11:16:46.000000000 -0500
|
||||||
|
@@ -2089,21 +2089,23 @@
|
||||||
|
save_part_save (struct _mail_msg *mm)
|
||||||
|
{
|
||||||
|
struct _save_part_msg *m = (struct _save_part_msg *)mm;
|
||||||
|
+ mode_t mode = S_IRUSR | S_IRGRP | S_IROTH;
|
||||||
|
+ int flags = O_WRONLY | O_CREAT | O_TRUNC;
|
||||||
|
CamelDataWrapper *content;
|
||||||
|
CamelStream *stream;
|
||||||
|
-
|
||||||
|
- if(!m->readonly){
|
||||||
|
- if (!(stream = camel_stream_vfs_new_with_uri (m->path, O_WRONLY | O_CREAT | O_TRUNC, 0644))) {
|
||||||
|
- camel_exception_setv (&mm->ex, CAMEL_EXCEPTION_SYSTEM,
|
||||||
|
- _("Cannot create output file: %s:\n %s"),
|
||||||
|
- m->path, g_strerror (errno));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- } else if (!(stream = camel_stream_vfs_new_with_uri (m->path, O_WRONLY | O_CREAT | O_TRUNC, 0444))) {
|
||||||
|
+ gchar *uri;
|
||||||
|
+
|
||||||
|
+ uri = g_filename_to_uri (m->path, NULL, NULL);
|
||||||
|
+
|
||||||
|
+ if (!m->readonly)
|
||||||
|
+ mode |= S_IWUSR;
|
||||||
|
+
|
||||||
|
+ stream = camel_stream_vfs_new_with_uri (uri, flags, mode);
|
||||||
|
+ if (stream == NULL) {
|
||||||
|
camel_exception_setv (&mm->ex, CAMEL_EXCEPTION_SYSTEM,
|
||||||
|
_("Cannot create output file: %s:\n %s"),
|
||||||
|
m->path, g_strerror (errno));
|
||||||
|
- return;
|
||||||
|
+ goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
content = camel_medium_get_content_object (CAMEL_MEDIUM (m->part));
|
||||||
|
@@ -2115,6 +2117,9 @@
|
||||||
|
g_strerror (errno));
|
||||||
|
|
||||||
|
camel_object_unref (stream);
|
||||||
|
+
|
||||||
|
+exit:
|
||||||
|
+ g_free (uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
2678
evolution.spec
2678
evolution.spec
File diff suppressed because it is too large
Load diff
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# see https://gitlab.gnome.org/GNOME/glib/issues/1737
|
|
||||||
# previous versions used milliseconds instead of seconds as the timeout argument",
|
|
||||||
(`pkg-config --atleast-version 2.60.1 gio-2.0` || `pkg-config --atleast-version 2.61.0 gio-2.0`) && TIMEOUTMULT= || TIMEOUTMULT=000
|
|
||||||
|
|
||||||
sed -e "s|\@SOURCES_SERVICE\@|$(pkg-config --variable=sourcesdbusservicename evolution-data-server-1.2)|" \
|
|
||||||
-e "s|\@ADDRESSBOOK_SERVICE\@|$(pkg-config --variable=addressbookdbusservicename evolution-data-server-1.2)|" \
|
|
||||||
-e "s|\@CALENDAR_SERVICE\@|$(pkg-config --variable=calendardbusservicename evolution-data-server-1.2)|" \
|
|
||||||
-e "s|\@TIMEOUTMULT\@|${TIMEOUTMULT}|"
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$1" = "--quit" -o "$1" = "--force-shutdown" ]; then
|
|
||||||
/app/bin/evolution.bin "$@"
|
|
||||||
else
|
|
||||||
export BOGOFILTER_DIR="${XDG_DATA_HOME}/bogofilter/"
|
|
||||||
export GIO_USE_NETWORK_MONITOR=base
|
|
||||||
gsettings reset org.gnome.evolution-data-server network-monitor-gio-name
|
|
||||||
|
|
||||||
LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @SOURCES_SERVICE@ | wc -l)
|
|
||||||
if [ "${LINES}" = "0" ]; then
|
|
||||||
/app/libexec/evolution-source-registry &
|
|
||||||
gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @ADDRESSBOOK_SERVICE@ | wc -l)
|
|
||||||
if [ "${LINES}" = "0" ]; then
|
|
||||||
/app/libexec/evolution-addressbook-factory -r &
|
|
||||||
gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @CALENDAR_SERVICE@ | wc -l)
|
|
||||||
if [ "${LINES}" = "0" ]; then
|
|
||||||
/app/libexec/evolution-calendar-factory -r &
|
|
||||||
gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@
|
|
||||||
fi
|
|
||||||
|
|
||||||
/app/bin/evolution.bin "$@"
|
|
||||||
fi
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
runpath:
|
|
||||||
allowed_paths:
|
|
||||||
- /usr/lib/evolution
|
|
||||||
- /usr/lib64/evolution
|
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (evolution-3.59.1.tar.xz) = 26d6d4dfcdbc3d89f88d9e24096c7ff910d221119def75d7f80a397f682be96860726832c7c62b46769ce9cfcc15e5844cbcc016facc9b21b4eb9bbb2c17360d
|
554698d7387aee82c5f4d4520760503d evolution-2.12.3.tar.bz2
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue