Compare commits
19 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e309a65230 | ||
|
|
bc71d9301c | ||
|
|
d8f8c02452 | ||
|
|
e71b1dd66c | ||
|
|
3fa449c978 | ||
|
|
b049b0dc03 | ||
|
|
50807c7d26 | ||
|
|
0e77303d91 | ||
|
|
11e4fb193c | ||
|
|
0aa7fad574 | ||
|
|
a225c0caf7 | ||
|
|
68c2257bfa | ||
|
|
d8f267efca | ||
|
|
605188aa23 | ||
|
|
a8f5d57bb1 | ||
|
|
283a929714 | ||
|
|
0df3889337 | ||
|
|
02f6231b7f | ||
|
|
4e7ca67286 |
51 changed files with 19531 additions and 559 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1 @@
|
|||
/evolution-*.tar.xz
|
||||
evolution-2.10.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;
|
||||
39
evolution-2.10.0-drop-old-glib-support.patch
Normal file
39
evolution-2.10.0-drop-old-glib-support.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
--- evolution-2.10.0/mail/em-utils.c.drop-old-glib-support 2007-03-18 08:17:46.000000000 -0400
|
||||
+++ evolution-2.10.0/mail/em-utils.c 2007-03-18 08:24:07.000000000 -0400
|
||||
@@ -42,10 +42,6 @@
|
||||
#undef interface
|
||||
#endif
|
||||
|
||||
-#if !GLIB_CHECK_VERSION (2, 8, 0)
|
||||
-#define g_access access
|
||||
-#endif
|
||||
-
|
||||
#include <camel/camel-stream-fs.h>
|
||||
#include <camel/camel-url-scanner.h>
|
||||
#include <camel/camel-file-utils.h>
|
||||
--- evolution-2.10.0/mail/mail-config.c.drop-old-glib-support 2007-01-03 10:34:12.000000000 -0500
|
||||
+++ evolution-2.10.0/mail/mail-config.c 2007-03-18 08:24:07.000000000 -0400
|
||||
@@ -76,10 +76,6 @@
|
||||
#include "mail-mt.h"
|
||||
#include "mail-tools.h"
|
||||
|
||||
-#if !GLIB_CHECK_VERSION (2, 8, 0)
|
||||
-#define g_creat creat
|
||||
-#endif
|
||||
-
|
||||
/* Note, the first element of each MailConfigLabel must NOT be translated */
|
||||
MailConfigLabel label_defaults[5] = {
|
||||
{ "important", N_("I_mportant"), "#ff0000" }, /* red */
|
||||
--- evolution-2.10.0/plugins/save-attachments/save-attachments.c.drop-old-glib-support 2007-03-18 08:17:29.000000000 -0400
|
||||
+++ evolution-2.10.0/plugins/save-attachments/save-attachments.c 2007-03-18 08:24:07.000000000 -0400
|
||||
@@ -32,10 +32,6 @@
|
||||
#include <glib/gi18n.h>
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
-#if !GLIB_CHECK_VERSION (2, 8, 0)
|
||||
-#define g_access access
|
||||
-#endif
|
||||
-
|
||||
#include <gtk/gtkcheckbutton.h>
|
||||
#include <gtk/gtkdialog.h>
|
||||
#include <gtk/gtkmessagedialog.h>
|
||||
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;
|
||||
1155
evolution-2.10.0-e-source-combo-box.patch
Normal file
1155
evolution-2.10.0-e-source-combo-box.patch
Normal file
File diff suppressed because it is too large
Load diff
274
evolution-2.10.0-shell-main-cleanups.patch
Normal file
274
evolution-2.10.0-shell-main-cleanups.patch
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
--- evolution-2.10.0/shell/main.c.shell-main-cleanups 2007-03-17 22:19:29.000000000 -0400
|
||||
+++ evolution-2.10.0/shell/main.c 2007-03-17 22:21:01.000000000 -0400
|
||||
@@ -88,6 +88,9 @@
|
||||
|
||||
#include "e-util/e-plugin.h"
|
||||
|
||||
+#define SKIP_WARNING_DIALOG_KEY \
|
||||
+ "/apps/evolution/shell/skip_warning_dialog"
|
||||
+
|
||||
static EShell *shell = NULL;
|
||||
|
||||
/* Command-line options. */
|
||||
@@ -100,7 +103,7 @@
|
||||
#endif
|
||||
static gboolean disable_eplugin = FALSE;
|
||||
|
||||
-static gint idle_cb (void *data);
|
||||
+static gboolean idle_cb (gchar **uris);
|
||||
|
||||
static char *default_component_id = NULL;
|
||||
static char *evolution_debug_log = NULL;
|
||||
@@ -133,6 +136,7 @@
|
||||
system (KILL_PROCESS_CMD " -9 evolution-data-server-1.2 2> /dev/null");
|
||||
system (KILL_PROCESS_CMD " -9 evolution-data-server-1.4 2> /dev/null");
|
||||
system (KILL_PROCESS_CMD " -9 evolution-data-server-1.6 2> /dev/null");
|
||||
+ system (KILL_PROCESS_CMD " -9 evolution-data-server-1.8 2> /dev/null");
|
||||
|
||||
system (KILL_PROCESS_CMD " -9 lt-evolution-alarm-notify 2> /dev/null");
|
||||
system (KILL_PROCESS_CMD " -9 evolution-alarm-notify 2> /dev/null");
|
||||
@@ -182,35 +186,15 @@
|
||||
|
||||
/* Warning dialog to scare people off a little bit. */
|
||||
|
||||
-static void
|
||||
-warning_dialog_response_callback (GtkDialog *dialog,
|
||||
- int button_number,
|
||||
- void *data)
|
||||
-{
|
||||
- GtkCheckButton *dont_bother_me_again_checkbox;
|
||||
- GConfClient *client;
|
||||
-
|
||||
- dont_bother_me_again_checkbox = GTK_CHECK_BUTTON (data);
|
||||
-
|
||||
- client = gconf_client_get_default ();
|
||||
- gconf_client_set_bool (client, "/apps/evolution/shell/skip_warning_dialog",
|
||||
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dont_bother_me_again_checkbox)),
|
||||
- NULL);
|
||||
- g_object_unref (client);
|
||||
-
|
||||
- gtk_widget_destroy (GTK_WIDGET (dialog));
|
||||
-
|
||||
- idle_cb(NULL);
|
||||
-}
|
||||
-
|
||||
-static void
|
||||
+static gboolean
|
||||
show_development_warning(void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *warning_dialog;
|
||||
- GtkWidget *dont_bother_me_again_checkbox;
|
||||
+ GtkWidget *checkbox;
|
||||
GtkWidget *alignment;
|
||||
+ gboolean skip;
|
||||
char *text;
|
||||
|
||||
warning_dialog = gtk_dialog_new ();
|
||||
@@ -262,59 +246,58 @@
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0);
|
||||
|
||||
- dont_bother_me_again_checkbox = gtk_check_button_new_with_label (_("Do not tell me again"));
|
||||
+ checkbox = gtk_check_button_new_with_label (_("Do not tell me again"));
|
||||
|
||||
alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0);
|
||||
|
||||
- gtk_container_add (GTK_CONTAINER (alignment), dont_bother_me_again_checkbox);
|
||||
+ gtk_container_add (GTK_CONTAINER (alignment), checkbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 0);
|
||||
|
||||
gtk_widget_show_all (warning_dialog);
|
||||
|
||||
- g_signal_connect (warning_dialog, "response",
|
||||
- G_CALLBACK (warning_dialog_response_callback),
|
||||
- dont_bother_me_again_checkbox);
|
||||
+ gtk_dialog_run (GTK_DIALOG (warning_dialog));
|
||||
+
|
||||
+ skip = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox));
|
||||
+
|
||||
+ gtk_widget_destroy (warning_dialog);
|
||||
+
|
||||
+ idle_cb (NULL);
|
||||
+
|
||||
+ return skip;
|
||||
}
|
||||
|
||||
static void
|
||||
-destroy_config (void)
|
||||
+destroy_config (GConfClient *client)
|
||||
{
|
||||
- GConfClient *gconf;
|
||||
-
|
||||
- gconf = gconf_client_get_default ();
|
||||
-
|
||||
/* Unset the source stuff */
|
||||
- gconf_client_unset (gconf, "/apps/evolution/calendar/sources", NULL);
|
||||
- gconf_client_unset (gconf, "/apps/evolution/tasks/sources", NULL);
|
||||
- gconf_client_unset (gconf, "/apps/evolution/addressbook/sources", NULL);
|
||||
- gconf_client_unset (gconf, "/apps/evolution/addressbook/sources", NULL);
|
||||
+ gconf_client_unset (client, "/apps/evolution/calendar/sources", NULL);
|
||||
+ gconf_client_unset (client, "/apps/evolution/tasks/sources", NULL);
|
||||
+ gconf_client_unset (client, "/apps/evolution/addressbook/sources", NULL);
|
||||
|
||||
/* Reset the version */
|
||||
- gconf_client_set_string (gconf, "/apps/evolution/version", "1.4.0", NULL);
|
||||
+ gconf_client_set_string (client, "/apps/evolution/version", "1.4.0", NULL);
|
||||
|
||||
/* Clear the dir */
|
||||
system ("rm -Rf ~/.evolution");
|
||||
-
|
||||
- g_object_unref (gconf);
|
||||
}
|
||||
|
||||
#endif /* DEVELOPMENT */
|
||||
|
||||
static void
|
||||
-open_uris (GNOME_Evolution_Shell corba_shell, GSList *uri_list)
|
||||
+open_uris (GNOME_Evolution_Shell corba_shell, gchar **uris)
|
||||
{
|
||||
- GSList *p;
|
||||
CORBA_Environment ev;
|
||||
+ guint n_uris, ii;
|
||||
|
||||
- CORBA_exception_init (&ev);
|
||||
+ g_assert (uris != NULL);
|
||||
+ n_uris = g_strv_length (uris);
|
||||
|
||||
- for (p = uri_list; p != NULL; p = p->next) {
|
||||
- const char *uri;
|
||||
+ CORBA_exception_init (&ev);
|
||||
|
||||
- uri = (const char *) p->data;
|
||||
- GNOME_Evolution_Shell_handleURI (corba_shell, uri, &ev);
|
||||
+ for (ii = 0; ii < n_uris; ii++) {
|
||||
+ GNOME_Evolution_Shell_handleURI (corba_shell, uris[ii], &ev);
|
||||
if (ev._major != CORBA_NO_EXCEPTION) {
|
||||
- g_warning ("Invalid URI: %s", uri);
|
||||
+ g_warning ("Invalid URI: %s", uris[ii]);
|
||||
CORBA_exception_free (&ev);
|
||||
}
|
||||
}
|
||||
@@ -324,23 +307,22 @@
|
||||
|
||||
/* This is for doing stuff that requires the GTK+ loop to be running already. */
|
||||
|
||||
-static gint
|
||||
-idle_cb (void *data)
|
||||
+static gboolean
|
||||
+idle_cb (gchar **uris)
|
||||
{
|
||||
- GSList *uri_list;
|
||||
GNOME_Evolution_Shell corba_shell;
|
||||
CORBA_Environment ev;
|
||||
EShellConstructResult result;
|
||||
EShellStartupLineMode startup_line_mode;
|
||||
|
||||
+ g_assert (uris == NULL || g_strv_length (uris) > 0);
|
||||
+
|
||||
#ifdef KILL_PROCESS_CMD
|
||||
kill_old_dataserver ();
|
||||
#endif
|
||||
|
||||
CORBA_exception_init (&ev);
|
||||
|
||||
- uri_list = (GSList *) data;
|
||||
-
|
||||
if (! start_online && ! start_offline)
|
||||
startup_line_mode = E_SHELL_STARTUP_LINE_MODE_CONFIG;
|
||||
else if (start_online)
|
||||
@@ -378,15 +360,16 @@
|
||||
}
|
||||
|
||||
if (shell != NULL) {
|
||||
- if (g_slist_length (uri_list) == 0)
|
||||
+ if (uris != NULL)
|
||||
+ open_uris (corba_shell, uris);
|
||||
+ else
|
||||
e_shell_create_window (shell, default_component_id, NULL);
|
||||
- open_uris (corba_shell, uri_list);
|
||||
} else {
|
||||
CORBA_Environment ev;
|
||||
|
||||
CORBA_exception_init (&ev);
|
||||
- if (uri_list != NULL)
|
||||
- open_uris (corba_shell, uri_list);
|
||||
+ if (uris != NULL)
|
||||
+ open_uris (corba_shell, uris);
|
||||
else
|
||||
if (default_component_id == NULL)
|
||||
GNOME_Evolution_Shell_createNewWindow (corba_shell, "", &ev);
|
||||
@@ -396,8 +379,6 @@
|
||||
CORBA_exception_free (&ev);
|
||||
}
|
||||
|
||||
- g_slist_free (uri_list);
|
||||
-
|
||||
CORBA_Object_release (corba_shell, &ev);
|
||||
|
||||
CORBA_exception_free (&ev);
|
||||
@@ -501,7 +482,6 @@
|
||||
GConfClient *client;
|
||||
gboolean skip_warning_dialog;
|
||||
#endif
|
||||
- GSList *uri_list;
|
||||
GnomeProgram *program;
|
||||
GOptionContext *context;
|
||||
char *filename;
|
||||
@@ -543,8 +523,10 @@
|
||||
#endif
|
||||
|
||||
#if DEVELOPMENT
|
||||
+ client = g_conf_client_get_default ();
|
||||
+
|
||||
if (force_migrate) {
|
||||
- destroy_config ();
|
||||
+ destroy_config (client);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -571,17 +553,6 @@
|
||||
if (setup_only)
|
||||
exit (0);
|
||||
|
||||
- uri_list = NULL;
|
||||
-
|
||||
- if (remaining_args != NULL) {
|
||||
- const char **p;
|
||||
-
|
||||
- for (p = (const char**)remaining_args; *p != NULL; p++)
|
||||
- uri_list = g_slist_prepend (uri_list, (char *) *p);
|
||||
- }
|
||||
- uri_list = g_slist_reverse (uri_list);
|
||||
-
|
||||
-
|
||||
gnome_sound_init ("localhost");
|
||||
|
||||
if (!disable_eplugin) {
|
||||
@@ -597,15 +568,20 @@
|
||||
}
|
||||
|
||||
#if DEVELOPMENT
|
||||
- client = gconf_client_get_default ();
|
||||
- skip_warning_dialog = gconf_client_get_bool (client, "/apps/evolution/shell/skip_warning_dialog", NULL);
|
||||
- g_object_unref (client);
|
||||
+ skip_warning_dialog = gconf_client_get_bool (
|
||||
+ client, SKIP_WARNING_DIALOG_KEY, NULL);
|
||||
|
||||
if (!skip_warning_dialog && !getenv ("EVOLVE_ME_HARDER"))
|
||||
- show_development_warning();
|
||||
+ gconf_client_set_bool (
|
||||
+ client, SKIP_WARNING_DIALOG_KEY,
|
||||
+ show_development_warning (), NULL);
|
||||
else
|
||||
+ g_idle_add ((GSourceFunc) idle_cb, remaining_args);
|
||||
+
|
||||
+ g_object_unref (client);
|
||||
+#else
|
||||
+ g_idle_add ((GSourceFunc) idle_cb, remaining_args);
|
||||
#endif
|
||||
- g_idle_add (idle_cb, uri_list);
|
||||
|
||||
bonobo_main ();
|
||||
|
||||
3348
evolution-2.10.0-use-glib-i18n.patch
Normal file
3348
evolution-2.10.0-use-glib-i18n.patch
Normal file
File diff suppressed because it is too large
Load diff
357
evolution-2.10.1-check-uri-before-strcmp.patch
Normal file
357
evolution-2.10.1-check-uri-before-strcmp.patch
Normal file
|
|
@ -0,0 +1,357 @@
|
|||
--- evolution-2.10.1/plugins/exchange-operations/exchange-config-listener.c.check-uri-before-strcmp 2007-04-09 09:09:13.000000000 -0400
|
||||
+++ evolution-2.10.1/plugins/exchange-operations/exchange-config-listener.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -1250,26 +1250,30 @@
|
||||
exchange_add_autocompletion_folders (GConfClient *gc_client, ExchangeAccount *account)
|
||||
{
|
||||
ESourceList *sl=NULL;
|
||||
- ESourceGroup *group;
|
||||
ESource *source;
|
||||
- GSList *groups, *sources;
|
||||
+ GSList *groups;
|
||||
gboolean found_group=FALSE;
|
||||
|
||||
sl = e_source_list_new_for_gconf (gc_client, CONF_KEY_CONTACTS);
|
||||
groups = e_source_list_peek_groups (sl);
|
||||
|
||||
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
|
||||
- group = E_SOURCE_GROUP (groups->data);
|
||||
+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
|
||||
+
|
||||
if (strcmp (e_source_group_peek_name (group), account->account_name) == 0
|
||||
&&
|
||||
strcmp (e_source_group_peek_base_uri (group), EXCHANGE_URI_PREFIX) == 0) {
|
||||
-
|
||||
- sources = e_source_group_peek_sources (group);
|
||||
+ GSList *sources = e_source_group_peek_sources (group);
|
||||
|
||||
for( ; sources != NULL; sources = g_slist_next (sources)) {
|
||||
- source = E_SOURCE (sources->data);
|
||||
- if (g_str_has_prefix (e_source_peek_absolute_uri (source),
|
||||
- "gal://")) {
|
||||
+ ESource *source = E_SOURCE (sources->data);
|
||||
+ const gchar *absolute_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ absolute_uri = e_source_peek_absolute_uri (source);
|
||||
+ if (absolute_uri == NULL)
|
||||
+ continue;
|
||||
+ if (g_str_has_prefix (absolute_uri, "gal://")) {
|
||||
/* Set autocompletion on GAL alone by default */
|
||||
e_source_set_property (source, "completion", "true");
|
||||
break;
|
||||
--- evolution-2.10.1/plugins/groupwise-account-setup/camel-gw-listener.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/plugins/groupwise-account-setup/camel-gw-listener.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -254,10 +254,7 @@
|
||||
remove_esource (const char *conf_key, const char *group_name, char* source_name, const char* relative_uri)
|
||||
{
|
||||
ESourceList *list;
|
||||
- ESourceGroup *group;
|
||||
- ESource *source;
|
||||
GSList *groups;
|
||||
- GSList *sources;
|
||||
gboolean found_group;
|
||||
GConfClient* client;
|
||||
GSList *ids;
|
||||
@@ -271,19 +268,21 @@
|
||||
found_group = FALSE;
|
||||
|
||||
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
|
||||
-
|
||||
- group = E_SOURCE_GROUP (groups->data);
|
||||
+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
|
||||
|
||||
if (strcmp (e_source_group_peek_name (group), group_name) == 0 &&
|
||||
strcmp (e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX ) == 0) {
|
||||
-
|
||||
- sources = e_source_group_peek_sources (group);
|
||||
+ GSList *sources = e_source_group_peek_sources (group);
|
||||
|
||||
for( ; sources != NULL; sources = g_slist_next (sources)) {
|
||||
-
|
||||
- source = E_SOURCE (sources->data);
|
||||
-
|
||||
- if (strcmp (e_source_peek_relative_uri (source), relative_uri) == 0) {
|
||||
+ ESource *source = E_SOURCE (sources->data);
|
||||
+ const gchar *source_relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ source_relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (source_relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (strcmp (source_relative_uri, relative_uri) == 0) {
|
||||
|
||||
if (!strcmp (conf_key, CALENDAR_SOURCES))
|
||||
source_selection_key = SELECTED_CALENDARS;
|
||||
@@ -328,16 +327,12 @@
|
||||
modify_esource (const char* conf_key, GwAccountInfo *old_account_info, const char* new_group_name, CamelURL *new_url)
|
||||
{
|
||||
ESourceList *list;
|
||||
- ESourceGroup *group;
|
||||
- ESource *source;
|
||||
GSList *groups;
|
||||
- GSList *sources;
|
||||
char *old_relative_uri;
|
||||
CamelURL *url;
|
||||
gboolean found_group;
|
||||
GConfClient* client;
|
||||
const char *poa_address;
|
||||
- char *new_relative_uri;
|
||||
const char *new_poa_address;
|
||||
|
||||
url = camel_url_new (old_account_info->source_url, NULL);
|
||||
@@ -354,20 +349,23 @@
|
||||
found_group = FALSE;
|
||||
|
||||
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
|
||||
-
|
||||
- group = E_SOURCE_GROUP (groups->data);
|
||||
+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
|
||||
|
||||
if (strcmp (e_source_group_peek_name (group), old_account_info->name) == 0 &&
|
||||
strcmp (e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0) {
|
||||
-
|
||||
- sources = e_source_group_peek_sources (group);
|
||||
+ GSList *sources = e_source_group_peek_sources (group);
|
||||
|
||||
for ( ; sources != NULL; sources = g_slist_next (sources)) {
|
||||
-
|
||||
- source = E_SOURCE (sources->data);
|
||||
-
|
||||
- if (strcmp (e_source_peek_relative_uri (source), old_relative_uri) == 0) {
|
||||
-
|
||||
+ ESource *source = E_SOURCE (sources->data);
|
||||
+ const gchar *source_relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ source_relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (source_relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (strcmp (source_relative_uri, old_relative_uri) == 0) {
|
||||
+ gchar *new_relative_uri;
|
||||
+
|
||||
new_relative_uri = g_strdup_printf ("%s@%s/", new_url->user, new_poa_address);
|
||||
e_source_group_set_name (group, new_group_name);
|
||||
e_source_set_relative_uri (source, new_relative_uri);
|
||||
--- evolution-2.10.1/plugins/hula-account-setup/camel-hula-listener.c.check-uri-before-strcmp 2007-04-09 09:09:14.000000000 -0400
|
||||
+++ evolution-2.10.1/plugins/hula-account-setup/camel-hula-listener.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -241,10 +241,7 @@
|
||||
remove_esource (const char *conf_key, const char *group_name, char* source_name, const char* relative_uri)
|
||||
{
|
||||
ESourceList *list;
|
||||
- ESourceGroup *group;
|
||||
- ESource *source;
|
||||
GSList *groups;
|
||||
- GSList *sources;
|
||||
gboolean found_group;
|
||||
GConfClient* client;
|
||||
GSList *ids;
|
||||
@@ -258,19 +255,21 @@
|
||||
found_group = FALSE;
|
||||
|
||||
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
|
||||
-
|
||||
- group = E_SOURCE_GROUP (groups->data);
|
||||
+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
|
||||
|
||||
if (strcmp (e_source_group_peek_name (group), group_name) == 0 &&
|
||||
strcmp (e_source_group_peek_base_uri (group), HULA_CALDAV_URI_PREFIX ) == 0) {
|
||||
-
|
||||
- sources = e_source_group_peek_sources (group);
|
||||
+ GSList *sources = e_source_group_peek_sources (group);
|
||||
|
||||
for( ; sources != NULL; sources = g_slist_next (sources)) {
|
||||
-
|
||||
- source = E_SOURCE (sources->data);
|
||||
-
|
||||
- if (strcmp (e_source_peek_relative_uri (source), relative_uri) == 0) {
|
||||
+ ESource *source = E_SOURCE (sources->data);
|
||||
+ const gchar *source_relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ source_relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (source_relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (strcmp (source_relative_uri, relative_uri) == 0) {
|
||||
|
||||
if (!strcmp (conf_key, CALENDAR_SOURCES))
|
||||
source_selection_key = SELECTED_CALENDARS;
|
||||
@@ -311,15 +310,11 @@
|
||||
modify_esource (const char* conf_key, HulaAccountInfo *old_account_info, const char* new_group_name, CamelURL *new_url)
|
||||
{
|
||||
ESourceList *list;
|
||||
- ESourceGroup *group;
|
||||
- ESource *source;
|
||||
GSList *groups;
|
||||
- GSList *sources;
|
||||
char *old_relative_uri;
|
||||
CamelURL *url;
|
||||
gboolean found_group;
|
||||
GConfClient* client;
|
||||
- char *new_relative_uri;
|
||||
|
||||
url = camel_url_new (old_account_info->source_url, NULL);
|
||||
if (!url->host || strlen (url->host) ==0)
|
||||
@@ -334,19 +329,23 @@
|
||||
|
||||
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
|
||||
|
||||
- group = E_SOURCE_GROUP (groups->data);
|
||||
+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
|
||||
|
||||
if (strcmp (e_source_group_peek_name (group), old_account_info->name) == 0 &&
|
||||
strcmp (e_source_group_peek_base_uri (group), HULA_CALDAV_URI_PREFIX) == 0) {
|
||||
-
|
||||
- sources = e_source_group_peek_sources (group);
|
||||
+ GSList *sources = e_source_group_peek_sources (group);
|
||||
|
||||
for ( ; sources != NULL; sources = g_slist_next (sources)) {
|
||||
-
|
||||
- source = E_SOURCE (sources->data);
|
||||
-
|
||||
- if (strcmp (e_source_peek_relative_uri (source), old_relative_uri) == 0) {
|
||||
-
|
||||
+ ESource *source = E_SOURCE (sources->data);
|
||||
+ const gchar *source_relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ source_relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (source_relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (strcmp (source_relative_uri, old_relative_uri) == 0) {
|
||||
+ gchar *new_relative_uri;
|
||||
+
|
||||
new_relative_uri = g_strdup_printf ("%s@%s:%d/dav/%s/calendar/Personal", new_url->user, new_url->host, new_url->port, new_url->user);
|
||||
e_source_group_set_name (group, new_group_name);
|
||||
e_source_set_relative_uri (source, new_relative_uri);
|
||||
--- evolution-2.10.1/addressbook/gui/component/addressbook-component.c.check-uri-before-strcmp 2007-04-09 09:07:42.000000000 -0400
|
||||
+++ evolution-2.10.1/addressbook/gui/component/addressbook-component.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -118,7 +118,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
personal_source = source;
|
||||
break;
|
||||
}
|
||||
--- evolution-2.10.1/addressbook/gui/component/addressbook-migrate.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/addressbook/gui/component/addressbook-migrate.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -472,7 +472,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
*personal_source = g_object_ref (source);
|
||||
break;
|
||||
}
|
||||
--- evolution-2.10.1/calendar/gui/calendar-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/calendar/gui/calendar-component.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -210,7 +210,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
personal_source = source;
|
||||
break;
|
||||
}
|
||||
--- evolution-2.10.1/calendar/gui/tasks-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/calendar/gui/tasks-component.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -170,7 +170,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
personal_source = source;
|
||||
break;
|
||||
}
|
||||
--- evolution-2.10.1/calendar/gui/memos-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/calendar/gui/memos-component.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -174,7 +174,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
personal_source = source;
|
||||
break;
|
||||
}
|
||||
--- evolution-2.10.1/calendar/gui/migration.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
|
||||
+++ evolution-2.10.1/calendar/gui/migration.c 2007-05-14 13:34:13.000000000 -0400
|
||||
@@ -466,7 +466,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
*personal_source = g_object_ref (source);
|
||||
break;
|
||||
}
|
||||
@@ -562,7 +568,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
*personal_source = g_object_ref (source);
|
||||
break;
|
||||
}
|
||||
@@ -1070,7 +1082,13 @@
|
||||
GSList *s;
|
||||
for (s = sources; s; s = s->next) {
|
||||
ESource *source = E_SOURCE (s->data);
|
||||
- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
|
||||
+ const gchar *relative_uri;
|
||||
+
|
||||
+ g_assert (source != NULL);
|
||||
+ relative_uri = e_source_peek_relative_uri (source);
|
||||
+ if (relative_uri == NULL)
|
||||
+ continue;
|
||||
+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
|
||||
*personal_source = g_object_ref (source);
|
||||
break;
|
||||
}
|
||||
11
evolution-2.10.1-en_CA-attribution-format.patch
Normal file
11
evolution-2.10.1-en_CA-attribution-format.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- evolution-2.10.1/po/en_CA.po.en_CA-attribution-format 2007-04-27 22:58:06.000000000 -0400
|
||||
+++ evolution-2.10.1/po/en_CA.po 2007-04-27 22:58:36.000000000 -0400
|
||||
@@ -10992,7 +10992,7 @@
|
||||
"On ${AbbrevWeekdayName}, ${Year}-${Month}-${Day} at ${24Hour}:${Minute} "
|
||||
"${TimeZone}, ${Sender} wrote:"
|
||||
msgstr ""
|
||||
-"On ${AbbrevWeekdayName}, ${Year}-${Day}-${Month} at ${24Hour}:${Minute} "
|
||||
+"On ${AbbrevWeekdayName}, ${Year}-${Month}-${Day} at ${24Hour}:${Minute} "
|
||||
"${TimeZone}, ${Sender} wrote:"
|
||||
|
||||
#: ../mail/em-filter-editor.c:155
|
||||
14
evolution-2.10.1-fix-uri-handling.patch
Normal file
14
evolution-2.10.1-fix-uri-handling.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
--- evolution-2.10.1/calendar/gui/GNOME_Evolution_Calendar.server.in.in.fix-uri-handling 2007-04-09 09:10:33.000000000 -0400
|
||||
+++ evolution-2.10.1/calendar/gui/GNOME_Evolution_Calendar.server.in.in 2007-05-14 14:11:59.000000000 -0400
|
||||
@@ -50,9 +50,11 @@
|
||||
<oaf_attribute name="evolution:button_icon" type="string" value="stock_calendar"/>
|
||||
<oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
|
||||
|
||||
+<!-- FIXME: See bug 407104: Write a interface to launch without shell.
|
||||
<oaf_attribute name="evolution:uri_schemas" type="stringv">
|
||||
<item value="calendar"/>
|
||||
</oaf_attribute>
|
||||
+-->
|
||||
|
||||
</oaf_server>
|
||||
|
||||
222
evolution-2.10.1-saving-attachments.patch
Normal file
222
evolution-2.10.1-saving-attachments.patch
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
--- evolution-2.10.2/mail/em-utils.c.saving-attachments 2007-05-29 00:07:55.000000000 -0400
|
||||
+++ evolution-2.10.2/mail/em-utils.c 2007-05-29 01:26:46.000000000 -0400
|
||||
@@ -354,28 +354,23 @@
|
||||
|
||||
/* Saving messages... */
|
||||
|
||||
-static void
|
||||
-emu_save_part_response(GtkWidget *filesel, int response, CamelMimePart *part)
|
||||
+static const gchar *
|
||||
+emu_save_get_filename_for_part (CamelMimePart *part)
|
||||
{
|
||||
- char *uri;
|
||||
-
|
||||
- if (response == GTK_RESPONSE_OK) {
|
||||
- uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (filesel));
|
||||
-
|
||||
- if (!e_file_can_save((GtkWindow *)filesel, uri)) {
|
||||
- g_free(uri);
|
||||
- return;
|
||||
- }
|
||||
+ const gchar *filename;
|
||||
|
||||
- e_file_update_save_path(gtk_file_chooser_get_current_folder_uri(
|
||||
- GTK_FILE_CHOOSER(filesel)), TRUE);
|
||||
- /* FIXME: popup error if it fails? */
|
||||
- mail_save_part(part, uri, NULL, NULL, FALSE);
|
||||
- g_free(uri);
|
||||
+ filename = camel_mime_part_get_filename (part);
|
||||
+ if (filename == NULL) {
|
||||
+ if (CAMEL_IS_MIME_MESSAGE (part)) {
|
||||
+ filename = camel_mime_message_get_subject (
|
||||
+ CAMEL_MIME_MESSAGE (part));
|
||||
+ if (filename == NULL)
|
||||
+ filename = _("message");
|
||||
+ } else
|
||||
+ filename = _("attachment");
|
||||
}
|
||||
|
||||
- gtk_widget_destroy((GtkWidget *)filesel);
|
||||
- camel_object_unref(part);
|
||||
+ return filename;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -387,85 +382,79 @@
|
||||
* Saves a mime part to disk (prompting the user for filename).
|
||||
**/
|
||||
void
|
||||
-em_utils_save_part(GtkWidget *parent, const char *prompt, CamelMimePart *part)
|
||||
+em_utils_save_part (GtkWidget *parent, const char *prompt, CamelMimePart *part)
|
||||
{
|
||||
- const char *name;
|
||||
- GtkWidget *filesel;
|
||||
+ GtkWidget *file_chooser;
|
||||
+ const gchar *filename;
|
||||
+ gchar *uri = NULL;
|
||||
+
|
||||
+ filename = emu_save_get_filename_for_part (part);
|
||||
|
||||
- name = camel_mime_part_get_filename(part);
|
||||
- if (name == NULL) {
|
||||
- if (CAMEL_IS_MIME_MESSAGE(part)) {
|
||||
- name = camel_mime_message_get_subject((CamelMimeMessage *)part);
|
||||
- if (name == NULL)
|
||||
- name = _("message");
|
||||
- } else {
|
||||
- name = _("attachment");
|
||||
- }
|
||||
- }
|
||||
+ file_chooser = e_file_get_save_filesel (
|
||||
+ parent, prompt, filename, GTK_FILE_CHOOSER_ACTION_SAVE);
|
||||
|
||||
- filesel = e_file_get_save_filesel(parent, prompt, name, GTK_FILE_CHOOSER_ACTION_SAVE);
|
||||
- camel_object_ref(part);
|
||||
- g_signal_connect (filesel, "response", G_CALLBACK (emu_save_part_response), part);
|
||||
- gtk_widget_show (filesel);
|
||||
-}
|
||||
+ if (gtk_dialog_run (GTK_DIALOG (file_chooser)) != GTK_RESPONSE_OK)
|
||||
+ goto exit;
|
||||
|
||||
-static void
|
||||
-emu_save_parts_response (GtkWidget *filesel, int response, GSList *parts)
|
||||
-{
|
||||
- GSList *selected;
|
||||
- char *uri = NULL;
|
||||
- if (response == GTK_RESPONSE_OK) {
|
||||
- uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER (filesel));
|
||||
- e_file_update_save_path(uri, FALSE);
|
||||
-
|
||||
- for ( selected = parts; selected != NULL; selected = selected->next) {
|
||||
- const char *file_name;
|
||||
- char *safe_name = NULL;
|
||||
- char *file_path;
|
||||
- CamelMimePart *part = selected->data;
|
||||
-
|
||||
- file_name = camel_mime_part_get_filename(part);
|
||||
- if (file_name == NULL) {
|
||||
- if (CAMEL_IS_MIME_MESSAGE(part)) {
|
||||
- file_name = camel_mime_message_get_subject((CamelMimeMessage *)part);
|
||||
- if (file_name == NULL)
|
||||
- file_name = _("message");
|
||||
- } else {
|
||||
- file_name = _("attachment");
|
||||
- }
|
||||
- } else {
|
||||
- safe_name = g_strdup(file_name);
|
||||
- em_filename_make_safe(safe_name);
|
||||
- file_name = safe_name;
|
||||
- }
|
||||
-
|
||||
- file_path = g_build_filename (uri, file_name, NULL);
|
||||
- if (!e_file_check_local(file_path) || !g_file_test(file_path, (G_FILE_TEST_EXISTS)) || e_error_run(NULL, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, file_name, NULL) == GTK_RESPONSE_OK)
|
||||
- mail_save_part(part, file_path, NULL, NULL, FALSE);
|
||||
- else
|
||||
- g_warning ("Could not save %s. File already exists", file_path);
|
||||
+ uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (file_chooser));
|
||||
+
|
||||
+ /* XXX Would be nice to mention _why_ we can't save. */
|
||||
+ if (!e_file_can_save (GTK_WINDOW (file_chooser), uri)) {
|
||||
+ g_warning ("Unable to save %s", uri);
|
||||
+ goto exit;
|
||||
+ }
|
||||
+
|
||||
+ e_file_update_save_path (
|
||||
+ gtk_file_chooser_get_current_folder_uri (
|
||||
+ GTK_FILE_CHOOSER (file_chooser)), TRUE);
|
||||
|
||||
- g_free (file_path);
|
||||
- g_free (safe_name);
|
||||
- }
|
||||
+ mail_save_part (part, uri, NULL, NULL, FALSE);
|
||||
|
||||
- g_free (uri);
|
||||
- }
|
||||
-
|
||||
- g_slist_free (parts);
|
||||
- gtk_widget_destroy((GtkWidget *)filesel);
|
||||
+exit:
|
||||
+ gtk_widget_destroy (file_chooser);
|
||||
+ g_free (uri);
|
||||
}
|
||||
-
|
||||
+
|
||||
void
|
||||
-em_utils_save_parts (GtkWidget *parent, const char *prompt, GSList * parts)
|
||||
+em_utils_save_parts (GtkWidget *parent, const gchar *prompt, GSList *parts)
|
||||
{
|
||||
- GtkWidget *filesel;
|
||||
+ GtkWidget *file_chooser;
|
||||
+ gchar *path_uri;
|
||||
+ GSList *iter;
|
||||
|
||||
- filesel = e_file_get_save_filesel (parent, prompt, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
|
||||
- g_signal_connect (filesel, "response", G_CALLBACK (emu_save_parts_response), parts);
|
||||
- gtk_widget_show (filesel);
|
||||
-}
|
||||
+ file_chooser = e_file_get_save_filesel (
|
||||
+ parent, prompt, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
|
||||
+
|
||||
+ if (gtk_dialog_run (GTK_DIALOG (file_chooser)) != GTK_RESPONSE_OK)
|
||||
+ goto exit;
|
||||
+
|
||||
+ path_uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (file_chooser));
|
||||
+
|
||||
+ e_file_update_save_path (path_uri, FALSE);
|
||||
+
|
||||
+ for (iter = parts; iter != NULL; iter = iter->next) {
|
||||
+ CamelMimePart *part = iter->data;
|
||||
+ const gchar *filename;
|
||||
+ gchar *uri;
|
||||
+
|
||||
+ filename = emu_save_get_filename_for_part (part);
|
||||
|
||||
+ uri = g_build_path ("/", path_uri, filename, NULL);
|
||||
+
|
||||
+ /* XXX Would be nice to mention _why_ we can't save. */
|
||||
+ if (e_file_can_save (GTK_WINDOW (file_chooser), uri))
|
||||
+ mail_save_part (part, uri, NULL, NULL, FALSE);
|
||||
+ else
|
||||
+ g_warning ("Unable to save %s", uri);
|
||||
+
|
||||
+ g_free (uri);
|
||||
+ }
|
||||
+
|
||||
+ g_free (path_uri);
|
||||
+
|
||||
+exit:
|
||||
+ gtk_widget_destroy (file_chooser);
|
||||
+}
|
||||
|
||||
/**
|
||||
* em_utils_save_part_to_file:
|
||||
--- evolution-2.10.2/mail/em-format-html-display.c.saving-attachments 2007-05-29 00:07:55.000000000 -0400
|
||||
+++ evolution-2.10.2/mail/em-format-html-display.c 2007-05-29 00:07:55.000000000 -0400
|
||||
@@ -2099,12 +2099,24 @@
|
||||
}
|
||||
|
||||
static void
|
||||
-attachments_save_all_clicked(GtkWidget *w, EMFormatHTMLDisplay *efhd)
|
||||
+attachments_save_all_clicked (GtkWidget *widget, EMFormatHTMLDisplay *efhd)
|
||||
{
|
||||
GSList *attachment_parts;
|
||||
+ guint n_attachment_parts;
|
||||
|
||||
- attachment_parts = e_attachment_bar_get_parts(E_ATTACHMENT_BAR(efhd->priv->attachment_bar));
|
||||
- em_utils_save_parts(w, _("Select folder to save all attachments..."), attachment_parts);
|
||||
+ attachment_parts = e_attachment_bar_get_parts (
|
||||
+ E_ATTACHMENT_BAR (efhd->priv->attachment_bar));
|
||||
+ n_attachment_parts = g_slist_length (attachment_parts);
|
||||
+ g_return_if_fail (n_attachment_parts > 0);
|
||||
+
|
||||
+ if (n_attachment_parts == 1)
|
||||
+ em_utils_save_part (
|
||||
+ widget, _("Save attachment as"),
|
||||
+ attachment_parts->data);
|
||||
+ else
|
||||
+ em_utils_save_parts (
|
||||
+ widget, _("Select folder to save all attachments"),
|
||||
+ attachment_parts);
|
||||
}
|
||||
|
||||
static void
|
||||
85
evolution-2.10.1-send-recv-dialog.patch
Normal file
85
evolution-2.10.1-send-recv-dialog.patch
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
--- evolution-2.10.1/mail/mail-send-recv.c.send-recv-dialog 2007-05-15 14:26:24.000000000 -0400
|
||||
+++ evolution-2.10.1/mail/mail-send-recv.c 2007-05-15 14:30:51.000000000 -0400
|
||||
@@ -312,21 +312,6 @@
|
||||
return SEND_INVALID;
|
||||
}
|
||||
|
||||
-gboolean
|
||||
-dialog_map (GtkWidget *window, GdkEvent *event, GtkWidget *table)
|
||||
-{
|
||||
- int h, w;
|
||||
-
|
||||
- w = table->allocation.width + 30 /* Spacing around the table */;
|
||||
- h = table->allocation.height + 60 /* Cancell All button and Seperator and outer spacing */;
|
||||
-
|
||||
- if (w > 750)
|
||||
- w = 750;
|
||||
- if (h > 400)
|
||||
- h = 400;
|
||||
- gtk_widget_set_usize (window, w, h);
|
||||
-}
|
||||
-
|
||||
static struct _send_data *
|
||||
build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destination)
|
||||
{
|
||||
@@ -385,7 +370,7 @@
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
- GTK_POLICY_AUTOMATIC,
|
||||
+ GTK_POLICY_NEVER,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), table);
|
||||
@@ -443,6 +428,7 @@
|
||||
recv_icon = e_icon_factory_get_image ("stock_mail-receive", E_ICON_SIZE_LARGE_TOOLBAR);
|
||||
pretty_url = format_url (source->url, account->name);
|
||||
label = (GtkLabel *)gtk_label_new (NULL);
|
||||
+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
|
||||
gtk_label_set_markup (label, pretty_url);
|
||||
g_free (pretty_url);
|
||||
|
||||
@@ -457,10 +443,10 @@
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
|
||||
gtk_misc_set_alignment (GTK_MISC (status_label), 0, .5);
|
||||
|
||||
- gtk_table_attach (table, (GtkWidget *)recv_icon, 0, 1, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
+ gtk_table_attach (table, (GtkWidget *)recv_icon, 0, 1, row, row+2, 0, 0, 0, 0);
|
||||
gtk_table_attach (table, (GtkWidget *)label, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
- gtk_table_attach (table, (GtkWidget *)bar, 2, 3, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
- gtk_table_attach (table, (GtkWidget *)stop, 3, 4, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
+ gtk_table_attach (table, (GtkWidget *)bar, 2, 3, row, row+2, 0, 0, 0, 0);
|
||||
+ gtk_table_attach (table, (GtkWidget *)stop, 3, 4, row, row+2, 0, 0, 0, 0);
|
||||
gtk_table_attach (table, (GtkWidget *)status_label, 1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
info->bar = bar;
|
||||
@@ -496,6 +482,7 @@
|
||||
send_icon = e_icon_factory_get_image ("stock_mail-send", E_ICON_SIZE_LARGE_TOOLBAR);
|
||||
pretty_url = format_url (destination, NULL);
|
||||
label = (GtkLabel *)gtk_label_new (NULL);
|
||||
+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
|
||||
gtk_label_set_markup (label, pretty_url);
|
||||
|
||||
g_free (pretty_url);
|
||||
@@ -508,10 +495,10 @@
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
|
||||
gtk_misc_set_alignment (GTK_MISC (status_label), 0, .5);
|
||||
|
||||
- gtk_table_attach (table, GTK_WIDGET (send_icon), 0, 1, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
+ gtk_table_attach (table, GTK_WIDGET (send_icon), 0, 1, row, row+2, 0, 0, 0, 0);
|
||||
gtk_table_attach (table, GTK_WIDGET (label), 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
- gtk_table_attach (table, GTK_WIDGET (bar), 2, 3, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
- gtk_table_attach (table, GTK_WIDGET (stop), 3, 4, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
+ gtk_table_attach (table, GTK_WIDGET (bar), 2, 3, row, row+2, 0, 0, 0, 0);
|
||||
+ gtk_table_attach (table, GTK_WIDGET (stop), 3, 4, row, row+2, 0, 0, 0, 0);
|
||||
gtk_table_attach (table, GTK_WIDGET (status_label), 1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
info->bar = bar;
|
||||
@@ -526,7 +513,6 @@
|
||||
gtk_widget_show (GTK_WIDGET (gd));
|
||||
|
||||
g_signal_connect (gd, "response", G_CALLBACK (dialog_response), data);
|
||||
- g_signal_connect (gd, "map-event", G_CALLBACK (dialog_map), table);
|
||||
|
||||
g_object_weak_ref ((GObject *) gd, (GWeakNotify) dialog_destroy_cb, data);
|
||||
|
||||
48
evolution-2.10.3-CVE-2008-0072.patch
Normal file
48
evolution-2.10.3-CVE-2008-0072.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
diff -up evolution-2.10.3/mail/em-format.c.CVE-2008-0072 evolution-2.10.3/mail/em-format.c
|
||||
--- evolution-2.10.3/mail/em-format.c.CVE-2008-0072 2008-03-04 15:44:32.000000000 -0500
|
||||
+++ evolution-2.10.3/mail/em-format.c 2008-03-04 15:45:23.000000000 -0500
|
||||
@@ -1155,7 +1155,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)
|
||||
@@ -1305,7 +1305,7 @@ emf_multipart_encrypted(EMFormat *emf, C
|
||||
if (valid == NULL) {
|
||||
em_format_format_error(emf, stream, ex->desc?("Could not parse S/MIME message"):_("Could not parse S/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)
|
||||
@@ -1470,7 +1470,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)
|
||||
@@ -1536,7 +1536,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);
|
||||
@@ -1607,7 +1607,7 @@ emf_inlinepgp_encrypted(EMFormat *emf, C
|
||||
if (!valid) {
|
||||
em_format_format_error(emf, stream, ex->desc?("Could not parse S/MIME message"):_("Could not parse S/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_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.10.3-CVE-2008-1108.patch
Normal file
310
evolution-2.10.3-CVE-2008-1108.patch
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
diff -up evolution-2.10.3/calendar/gui/e-itip-control.c.CVE-2008-1108 evolution-2.10.3/calendar/gui/e-itip-control.c
|
||||
--- evolution-2.10.3/calendar/gui/e-itip-control.c.CVE-2008-1108 2008-06-04 05:55:50.000000000 -0400
|
||||
+++ evolution-2.10.3/calendar/gui/e-itip-control.c 2008-06-04 06:00:35.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_assert_not_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.10.3-CVE-2008-1109.patch
Normal file
61
evolution-2.10.3-CVE-2008-1109.patch
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
diff -up evolution-2.10.3/calendar/gui/itip-utils.c.CVE-2008-1109 evolution-2.10.3/calendar/gui/itip-utils.c
|
||||
--- evolution-2.10.3/calendar/gui/itip-utils.c.CVE-2008-1109 2008-06-04 05:55:50.000000000 -0400
|
||||
+++ evolution-2.10.3/calendar/gui/itip-utils.c 2008-06-04 05:58:49.000000000 -0400
|
||||
@@ -158,50 +158,16 @@ get_attendee (GSList *attendees, char *a
|
||||
|
||||
|
||||
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 *
|
||||
50
evolution-2.10.3-fix-ETreeTableAdapter-crash.patch
Normal file
50
evolution-2.10.3-fix-ETreeTableAdapter-crash.patch
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
--- trunk/widgets/table/e-tree-table-adapter.c 2007/08/07 09:35:42 33964
|
||||
+++ trunk/widgets/table/e-tree-table-adapter.c 2007/08/24 09:10:55 34090
|
||||
@@ -80,6 +80,8 @@
|
||||
int node_removed_id;
|
||||
int node_request_collapse_id;
|
||||
int sort_info_changed_id;
|
||||
+
|
||||
+ guint resort_idle_id;
|
||||
};
|
||||
|
||||
static void etta_sort_info_changed (ETableSortInfo *sort_info, ETreeTableAdapter *etta);
|
||||
@@ -498,6 +500,11 @@
|
||||
{
|
||||
ETreeTableAdapter *etta = E_TREE_TABLE_ADAPTER (object);
|
||||
|
||||
+ if (etta->priv->resort_idle_id) {
|
||||
+ g_source_remove (etta->priv->resort_idle_id);
|
||||
+ etta->priv->resort_idle_id = 0;
|
||||
+ }
|
||||
+
|
||||
if (etta->priv->root) {
|
||||
kill_gnode(etta->priv->root, etta);
|
||||
etta->priv->root = NULL;
|
||||
@@ -728,6 +735,8 @@
|
||||
etta->priv->node_inserted_id = 0;
|
||||
etta->priv->node_removed_id = 0;
|
||||
etta->priv->node_request_collapse_id = 0;
|
||||
+
|
||||
+ etta->priv->resort_idle_id = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -746,6 +755,7 @@
|
||||
resort_model (ETreeTableAdapter *etta)
|
||||
{
|
||||
etta_sort_info_changed (NULL, etta);
|
||||
+ etta->priv->resort_idle_id = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -758,7 +768,8 @@
|
||||
/* FIXME: Really it shouldnt be required. But a lot of thread
|
||||
* which were supposed to be present in the list is way below
|
||||
*/
|
||||
- g_idle_add (resort_model, etta);
|
||||
+ if (!etta->priv->resort_idle_id)
|
||||
+ etta->priv->resort_idle_id = g_idle_add ((GSourceFunc) resort_model, etta);
|
||||
}
|
||||
|
||||
static void
|
||||
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;
|
||||
}
|
||||
12
evolution-2.10.3-todo-conduit.patch
Normal file
12
evolution-2.10.3-todo-conduit.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
diff -up evolution-2.10.3/calendar/conduits/todo/todo-conduit.c.todo-conduit evolution-2.10.3/calendar/conduits/todo/todo-conduit.c
|
||||
--- evolution-2.10.3/calendar/conduits/todo/todo-conduit.c.todo-conduit 2007-11-03 15:21:56.000000000 -0400
|
||||
+++ evolution-2.10.3/calendar/conduits/todo/todo-conduit.c 2007-11-03 15:22:10.000000000 -0400
|
||||
@@ -992,7 +992,7 @@ comp_from_remote_record (GnomePilotCondu
|
||||
e_cal_component_set_status (comp, ICAL_STATUS_NEEDSACTION);
|
||||
}
|
||||
|
||||
- if (!is_empty_time (todo.due)) {
|
||||
+ if (!todo.indefinite && !is_empty_time (todo.due)) {
|
||||
due = tm_to_icaltimetype (&todo.due, TRUE);
|
||||
dt.value = &due;
|
||||
e_cal_component_set_due (comp, &dt);
|
||||
347
evolution-2.10.3-version-checks.patch
Normal file
347
evolution-2.10.3-version-checks.patch
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
--- evolution-2.10.3/a11y/Makefile.am.version-checks 2007-04-09 09:10:38.000000000 -0400
|
||||
+++ evolution-2.10.3/a11y/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -31,4 +31,4 @@ libevolution_a11y_la_LIBADD = \
|
||||
e-text/libgal-a11y-etext.la \
|
||||
e-table/libgal-a11y-etable.la \
|
||||
$(top_builddir)/e-util/libeutil.la \
|
||||
- $(EXTRA_GNOME_LIBS)
|
||||
+ $(GNOME_PLATFORM_LIBS)
|
||||
--- evolution-2.10.3/a11y/e-text/Makefile.am.version-checks 2007-04-09 09:10:36.000000000 -0400
|
||||
+++ evolution-2.10.3/a11y/e-text/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -1,7 +1,7 @@
|
||||
INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/widgets \
|
||||
- $(EXTRA_GNOME_CFLAGS) \
|
||||
+ $(GNOME_PLATFORM_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"e-text\"
|
||||
|
||||
noinst_LTLIBRARIES = libgal-a11y-etext.la
|
||||
--- evolution-2.10.3/a11y/e-table/Makefile.am.version-checks 2007-04-09 09:10:38.000000000 -0400
|
||||
+++ evolution-2.10.3/a11y/e-table/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -1,7 +1,7 @@
|
||||
INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/widgets \
|
||||
- $(EXTRA_GNOME_CFLAGS) \
|
||||
+ $(GNOME_PLATFORM_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"e-table\"
|
||||
|
||||
noinst_LTLIBRARIES = libgal-a11y-etable.la
|
||||
--- evolution-2.10.3/configure.in.version-checks 2007-07-27 10:45:06.000000000 -0400
|
||||
+++ evolution-2.10.3/configure.in 2007-07-27 10:55:54.000000000 -0400
|
||||
@@ -4,6 +4,34 @@ AC_PREREQ(2.52)
|
||||
AC_INIT(evolution, 2.10.3, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution)
|
||||
AC_CONFIG_SRCDIR(README)
|
||||
|
||||
+# Some requirements have versioned package names
|
||||
+# XXX In the spirit of getting rid of versioned
|
||||
+# files, can we drop these suffixes?
|
||||
+EDS_PACKAGE=1.2
|
||||
+GTKHTML_PACKAGE=3.14
|
||||
+
|
||||
+# Required Packages
|
||||
+m4_define([gtk_minimum_version], [2.10.0])
|
||||
+m4_define([eds_minimum_version], [1.9.4])
|
||||
+m4_define([gnome_icon_theme_minimum_version], [1.2.0])
|
||||
+m4_define([gnome_vfs_minimum_version], [2.4.0])
|
||||
+m4_define([libbonoboui_minimum_version], [2.4.2])
|
||||
+m4_define([libgtkhtml_minimum_version], [3.14.0])
|
||||
+m4_define([gconf_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
+m4_define([libglade_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
+m4_define([libgnomecanvas_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
+m4_define([libgnomeui_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
+m4_define([libxml_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
+
|
||||
+# Optional Packages
|
||||
+#
|
||||
+# FIXME Minimum versions for dbus-glib-1 and libnm_glib ?
|
||||
+# FIXME Move audio-inline plugin from gstreamer-0.8 to 0.10 ?
|
||||
+#
|
||||
+m4_define([dbus_minimum_version], [1.0.0])
|
||||
+m4_define([hal_minimum_version], [0.5.4])
|
||||
+m4_define([libnotify_minimum_version], [0.3.0])
|
||||
+m4_define([gnome_pilot_minimum_version], [2.0.0]) # XXX Just a Guess
|
||||
|
||||
# GNOME Documentation
|
||||
GNOME_DOC_INIT
|
||||
@@ -127,6 +155,27 @@ AM_CONDITIONAL(OS_WIN32, [test $os_win32
|
||||
AC_SUBST(NO_UNDEFINED)
|
||||
AC_SUBST(SOEXT)
|
||||
|
||||
+# Check for base dependencies early.
|
||||
+PKG_CHECK_MODULES(GNOME_PLATFORM,
|
||||
+ [gtk+-2.0 >= gtk_minimum_version
|
||||
+ gconf-2.0 >= gconf_minimum_version
|
||||
+ gnome-vfs-2.0 >= gnome_vfs_minimum_version
|
||||
+ libbonoboui-2.0 >= libbonoboui_minimum_version
|
||||
+ libglade-2.0 >= libglade_minimum_version
|
||||
+ libgnomecanvas-2.0 >= libgnomecanvas_minimum_version
|
||||
+ libgnomeui-2.0 >= libgnomeui_minimum_version
|
||||
+ libxml-2.0 >= libxml_minimum_version])
|
||||
+AC_SUBST(GNOME_PLATFORM_CFLAGS)
|
||||
+AC_SUBST(GNOME_PLATFORM_LIBS)
|
||||
+
|
||||
+PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER,
|
||||
+ [libebook-$EDS_PACKAGE >= eds_minimum_version
|
||||
+ libecal-$EDS_PACKAGE >= eds_minimum_version
|
||||
+ libedataserver-$EDS_PACKAGE >= eds_minimum_version
|
||||
+ libedataserverui-$EDS_PACKAGE >= eds_minimum_version
|
||||
+ libegroupwise-$EDS_PACKAGE >= eds_minimum_version
|
||||
+ libexchange-storage-$EDS_PACKAGE >= eds_minimum_version])
|
||||
+
|
||||
dnl ******************************
|
||||
dnl iconv checking
|
||||
dnl ******************************
|
||||
@@ -403,7 +452,7 @@ AC_CHECK_FUNCS(statfs)
|
||||
dnl **************************************************
|
||||
dnl * Gnome Icon Theme
|
||||
dnl **************************************************
|
||||
-PKG_CHECK_MODULES(GIT, gnome-icon-theme >= 1.2.0)
|
||||
+PKG_CHECK_MODULES(GIT, gnome-icon-theme >= gnome_icon_theme_minimum_version)
|
||||
|
||||
dnl **************************************************
|
||||
dnl * Accessibility support
|
||||
@@ -563,7 +612,8 @@ AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(re
|
||||
[AC_MSG_ERROR([No regex library found])])])
|
||||
AC_SUBST(REGEX_LIBS)
|
||||
|
||||
-PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14)
|
||||
+# XXX Drop the version from the package name?
|
||||
+PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14 >= libgtkhtml_minimum_version)
|
||||
AC_SUBST(GTKHTML_CFLAGS)
|
||||
AC_SUBST(GTKHTML_LIBS)
|
||||
GTKHTML_DATADIR=`$PKG_CONFIG --variable gtkhtml_datadir libgtkhtml-3.14`
|
||||
@@ -580,7 +630,7 @@ dnl ******************************
|
||||
AC_ARG_ENABLE(pilot-conduits,
|
||||
[ --enable-pilot-conduits=[no/yes] Enable support for building pilot conduits.],,enable_pilot_conduits=no)
|
||||
if test "x$enable_pilot_conduits" = "xyes"; then
|
||||
- PKG_CHECK_MODULES(GNOME_PILOT, gnome-pilot-2.0)
|
||||
+ PKG_CHECK_MODULES(GNOME_PILOT, gnome-pilot-2.0 >= gnome_pilot_minimum_version)
|
||||
|
||||
CFLAGS_save="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $GNOME_PILOT_CFLAGS"
|
||||
@@ -1178,27 +1228,12 @@ fi
|
||||
|
||||
dnl --- Required version numbers
|
||||
|
||||
-GTKHTML_REQUIRED=3.14.0
|
||||
-GTKHTML_PACKAGE=3.14
|
||||
-EDS_REQUIRED=1.9.4
|
||||
-EDS_PACKAGE=1.2
|
||||
-BONOBOUI_REQUIRED=2.4.2
|
||||
-GNOME_VFS_REQUIRED=2.4
|
||||
-
|
||||
-AC_SUBST(GTKHTML_REQUIRED)
|
||||
-AC_SUBST(GTKHTML_PACKAGE)
|
||||
-AC_SUBST(EDS_REQUIRED)
|
||||
-AC_SUBST(EDS_PACKAGE)
|
||||
+BONOBOUI_REQUIRED=libbonoboui_minimum_version
|
||||
AC_SUBST(BONOBOUI_REQUIRED)
|
||||
-AC_SUBST(GNOME_VFS_REQUIRED)
|
||||
|
||||
dnl --- Flags to get all the GNOME stuff
|
||||
|
||||
-FULL_GNOME_DEPS="glib-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED libgnomeui-2.0 libglade-2.0 libgnomecanvas-2.0 libxml-2.0 gconf-2.0"
|
||||
-
|
||||
-EVO_SET_COMPILE_FLAGS(GNOME_FULL, $FULL_GNOME_DEPS)
|
||||
-AC_SUBST(GNOME_FULL_CFLAGS)
|
||||
-AC_SUBST(GNOME_FULL_LIBS)
|
||||
+FULL_GNOME_DEPS="libbonoboui-2.0 gnome-vfs-2.0 libgnomeui-2.0 libglade-2.0"
|
||||
|
||||
CPPFLAGS_save="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I libgnomeui-2.0`"
|
||||
@@ -1206,11 +1241,7 @@ AC_CHECK_HEADERS(libgnomeui/gnome-icon-l
|
||||
AC_CHECK_HEADERS(libgnomeui/gnome-thumbnail.h)
|
||||
CPPFLAGS="$CPPFLAGS_save"
|
||||
|
||||
-PKG_CHECK_MODULES(EXTRA_GNOME, libgnomeprint-2.2 >= 2.7.0 libgnomeprintui-2.2 >= 2.2.1 $FULL_GNOME_DEPS)
|
||||
-AC_SUBST(EXTRA_GNOME_LIBS)
|
||||
-AC_SUBST(EXTRA_GNOME_CFLAGS)
|
||||
-
|
||||
-PKG_CHECK_MODULES(HAL, hal >= 0.5.4, HAVE_HAL="yes", HAVE_HAL="no")
|
||||
+PKG_CHECK_MODULES(HAL, hal >= hal_minimum_version, HAVE_HAL="yes", HAVE_HAL="no")
|
||||
if test "x$HAVE_HAL" = "xyes"; then
|
||||
AC_DEFINE(HAVE_HAL, 1, [hal available])
|
||||
HAL_REQUIREMENT="hal"
|
||||
@@ -1226,7 +1257,7 @@ EVO_SET_COMPILE_FLAGS(CAMEL, camel-provi
|
||||
AC_SUBST(CAMEL_CFLAGS)
|
||||
AC_SUBST(CAMEL_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(CAMEL_GROUPWISE, camel-provider-$EDS_PACKAGE libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED libegroupwise-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(CAMEL_GROUPWISE, camel-provider-$EDS_PACKAGE libedataserver-$EDS_PACKAGE libegroupwise-$EDS_PACKAGE)
|
||||
AC_SUBST(CAMEL_GROUPWISE_CFLAGS)
|
||||
AC_SUBST(CAMEL_GROUPWISE_LIBS)
|
||||
|
||||
@@ -1239,33 +1270,33 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(CERT_UI, libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED libglade-2.0 gtk+-2.0 glib-2.0 gobject-2.0 gthread-2.0,
|
||||
+EVO_SET_COMPILE_FLAGS(CERT_UI, libedataserverui-$EDS_PACKAGE libglade-2.0 gthread-2.0,
|
||||
$MANUAL_NSS_CFLAGS $MOZILLA_NSS_CFLAGS,
|
||||
$MOZILLA_L_DIR $MANUAL_NSS_LIBS $MOZILLA_NSS_LIBS)
|
||||
AC_SUBST(CERT_UI_CFLAGS)
|
||||
AC_SUBST(CERT_UI_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(E_NAME, libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(E_NAME, libgnomeui-2.0 libbonoboui-2.0)
|
||||
AC_SUBST(E_NAME_CFLAGS)
|
||||
AC_SUBST(E_NAME_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(E_UTIL, gthread-2.0 gconf-2.0 libxml-2.0 gtk+-unix-print-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 libgnomeprintui-2.2 libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED $mozilla_nspr $mono_package, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
|
||||
+EVO_SET_COMPILE_FLAGS(E_UTIL, libbonoboui-2.0 libglade-2.0 libgnomeui-2.0 libedataserver-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE $mozilla_nspr $mono_package, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
|
||||
AC_SUBST(E_UTIL_CFLAGS)
|
||||
AC_SUBST(E_UTIL_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(TZDIALOG, libecal-$EDS_PACKAGE >= $EDS_REQUIRED, $GNOME_FULL_CFLAGS, $GNOME_FULL_LIBS)
|
||||
+EVO_SET_COMPILE_FLAGS(TZDIALOG, libecal-$EDS_PACKAGE, $GNOME_PLATFORM_CFLAGS, $GNOME_PLATFORM_LIBS)
|
||||
AC_SUBST(TZDIALOG_CFLAGS)
|
||||
AC_SUBST(TZDIALOG_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(E_WIDGETS, glib-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gnome-vfs-2.0 gnome-vfs-module-2.0 libgnomeui-2.0 libglade-2.0 libgnomecanvas-2.0 libxml-2.0 gconf-2.0 libedataserverui-$EDS_PACKAGE libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(E_WIDGETS, libbonoboui-2.0 gnome-vfs-module-2.0 libgnomeui-2.0 libglade-2.0 libedataserverui-$EDS_PACKAGE libedataserver-$EDS_PACKAGE)
|
||||
AC_SUBST(E_WIDGETS_CFLAGS)
|
||||
AC_SUBST(E_WIDGETS_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(IMPORTERS, libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED camel-provider-$EDS_PACKAGE camel-$EDS_PACKAGE gconf-2.0 libglade-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libgnomeui-2.0 libebook-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(IMPORTERS, libedataserverui-$EDS_PACKAGE camel-provider-$EDS_PACKAGE camel-$EDS_PACKAGE libglade-2.0 libbonoboui-2.0 libgnomeui-2.0 libebook-$EDS_PACKAGE)
|
||||
AC_SUBST(IMPORTERS_CFLAGS)
|
||||
AC_SUBST(IMPORTERS_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(LIBFILTER, libgnome-2.0 libgnomeui-2.0 libglade-2.0 libxml-2.0 gconf-2.0 libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(LIBFILTER, libgnomeui-2.0 libglade-2.0 libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
AC_SUBST(LIBFILTER_CFLAGS)
|
||||
AC_SUBST(LIBFILTER_LIBS)
|
||||
|
||||
@@ -1292,14 +1323,14 @@ AM_CONDITIONAL(NM_SUPPORT_GLIB, test x$N
|
||||
AM_CONDITIONAL(NM_SUPPORT, test x$NM_SUPPORT = xyes)
|
||||
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(SHELL, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 gnome-vfs-2.0 libgtkhtml-$GTKHTML_PACKAGE >= $GTKHTML_REQUIRED $NM_SUPPORT_PACKAGES)
|
||||
+EVO_SET_COMPILE_FLAGS(SHELL, libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gnome-vfs-2.0 libgtkhtml-$GTKHTML_PACKAGE $NM_SUPPORT_PACKAGES)
|
||||
|
||||
AC_SUBST(SHELL_CFLAGS)
|
||||
AC_SUBST(SHELL_LIBS)
|
||||
|
||||
dnl --- evolution-addressbook flags
|
||||
|
||||
-EVOLUTION_ADDRESSBOOK_DEPS="gconf-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 gtk+-unix-print-2.0 gnome-vfs-2.0 libgnomeprintui-2.2 libgtkhtml-$GTKHTML_PACKAGE >= $GTKHTML_REQUIRED libebook-$EDS_PACKAGE >= $EDS_REQUIRED libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED camel-$EDS_PACKAGE"
|
||||
+EVOLUTION_ADDRESSBOOK_DEPS="libbonoboui-2.0 libglade-2.0 libgnomeui-2.0 gnome-vfs-2.0 libgtkhtml-$GTKHTML_PACKAGE libebook-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE camel-$EDS_PACKAGE"
|
||||
|
||||
EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
|
||||
AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
|
||||
@@ -1313,7 +1344,7 @@ fi
|
||||
|
||||
LIBNOTIFY_CFLAGS=
|
||||
LIBNOTIFY_LIBS=
|
||||
-PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= 0.3.0, HAVE_LIBNOTIFY="yes", HAVE_LIBNOTIFY="no")
|
||||
+PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= libnotify_minimum_version, HAVE_LIBNOTIFY="yes", HAVE_LIBNOTIFY="no")
|
||||
if test "x$HAVE_LIBNOTIFY" = "xyes"; then
|
||||
AC_DEFINE(HAVE_LIBNOTIFY, 1, [libnotify available])
|
||||
libnotify="libnotify"
|
||||
@@ -1337,7 +1368,7 @@ EVO_SET_COMPILE_FLAGS(LIBSOUP, $LIBSOUP
|
||||
AC_SUBST(LIBSOUP_CFLAGS)
|
||||
AC_SUBST(LIBSOUP_LIBS)
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gnome-vfs-2.0 gtk+-unix-print-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 gnome-vfs-module-2.0 libgtkhtml-$GTKHTML_PACKAGE >= $GTKHTML_REQUIRED libebook-$EDS_PACKAGE >= $EDS_REQUIRED libecal-$EDS_PACKAGE >= $EDS_REQUIRED libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED $HAL_REQUIREMENT $libnotify)
|
||||
+EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gnome-vfs-module-2.0 libgtkhtml-$GTKHTML_PACKAGE libebook-$EDS_PACKAGE libecal-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE $HAL_REQUIREMENT $libnotify)
|
||||
AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
|
||||
AC_SUBST(EVOLUTION_CALENDAR_LIBS)
|
||||
|
||||
@@ -1349,7 +1380,7 @@ fi
|
||||
|
||||
dnl --- evolution-mail flags
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(EVOLUTION_MAIL, camel-provider-$EDS_PACKAGE libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 gnome-vfs-module-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-$GTKHTML_PACKAGE >= $GTKHTML_REQUIRED libxml-2.0 bonobo-activation-2.0 gthread-2.0 gconf-2.0 gtk+-unix-print-2.0 $mozilla_nss libebook-$EDS_PACKAGE >= $EDS_REQUIRED libedataserverui-$EDS_PACKAGE >= $EDS_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(EVOLUTION_MAIL, camel-provider-$EDS_PACKAGE libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gnome-vfs-module-2.0 libgtkhtml-$GTKHTML_PACKAGE bonobo-activation-2.0 $mozilla_nss libebook-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE)
|
||||
AC_SUBST(EVOLUTION_MAIL_CFLAGS)
|
||||
AC_SUBST(EVOLUTION_MAIL_LIBS)
|
||||
|
||||
@@ -1372,7 +1403,7 @@ fi
|
||||
|
||||
dnl --- evolution-test flags
|
||||
|
||||
-EVO_SET_COMPILE_FLAGS(EVOLUTION_TEST, libgnome-2.0 libgnomeui-2.0 libbonobo-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED)
|
||||
+EVO_SET_COMPILE_FLAGS(EVOLUTION_TEST, libgnomeui-2.0 libbonoboui-2.0)
|
||||
AC_SUBST(EVOLUTION_TEST_CFLAGS)
|
||||
AC_SUBST(EVOLUTION_TEST_LIBS)
|
||||
|
||||
@@ -1591,7 +1622,7 @@ if echo ${plugins_enabled} | grep "excha
|
||||
dnl **************************************************
|
||||
dnl * Exchange Operations plugin
|
||||
dnl **************************************************
|
||||
- EVO_SET_COMPILE_FLAGS(CAMEL_EXCHANGE, libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 gthread-2.0 gconf-2.0 camel-provider-$EDS_PACKAGE libebook-$EDS_PACKAGE >= $EDS_REQUIRED libedataserverui-$EDS_PACKAGE libexchange-storage-$EDS_PACKAGE >= $EDS_REQUIRED libecal-$EDS_PACKAGE)
|
||||
+ EVO_SET_COMPILE_FLAGS(CAMEL_EXCHANGE, libbonoboui-2.0 libglade-2.0 gconf-2.0 camel-provider-$EDS_PACKAGE libebook-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE libexchange-storage-$EDS_PACKAGE libecal-$EDS_PACKAGE)
|
||||
AC_SUBST(CAMEL_EXCHANGE_CFLAGS)
|
||||
AC_SUBST(CAMEL_EXCHANGE_LIBS)
|
||||
else
|
||||
--- evolution-2.10.3/widgets/misc/Makefile.am.version-checks 2007-04-09 09:10:24.000000000 -0400
|
||||
+++ evolution-2.10.3/widgets/misc/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -10,7 +10,7 @@ INCLUDES = \
|
||||
-DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
|
||||
-DG_LOG_DOMAIN=__FILE__ \
|
||||
$(EVOLUTION_MAIL_CFLAGS) \
|
||||
- $(EXTRA_GNOME_CFLAGS) \
|
||||
+ $(GNOME_PLATFORM_CFLAGS) \
|
||||
$(ICONV_CFLAGS)
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ libemiscwidgets_la_LIBADD = $(top_buildd
|
||||
$(top_builddir)/a11y/widgets/libevolution-widgets-a11y.la \
|
||||
$(top_builddir)/a11y/libevolution-a11y.la \
|
||||
$(CAMEL_LIBS) \
|
||||
- $(EXTRA_GNOME_LIBS) \
|
||||
+ $(GNOME_PLATFORM_LIBS) \
|
||||
$(ICONV_LIBS)
|
||||
|
||||
libefilterbar_la_SOURCES = \
|
||||
--- evolution-2.10.3/widgets/table/Makefile.am.version-checks 2007-04-09 09:10:21.000000000 -0400
|
||||
+++ evolution-2.10.3/widgets/table/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -13,7 +13,7 @@ INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/widgets \
|
||||
$(E_WIDGETS_CFLAGS) \
|
||||
- $(EXTRA_GNOME_CFLAGS) \
|
||||
+ $(GNOME_PLATFORM_CFLAGS) \
|
||||
-DEVOLUTION_GLADEDIR=\"$(gladedir)\" \
|
||||
-DG_LOG_DOMAIN=\"e-table\"
|
||||
|
||||
@@ -155,7 +155,7 @@ libetable_la_LIBADD = \
|
||||
$(top_builddir)/e-util/libeutil.la \
|
||||
$(top_builddir)/a11y/libevolution-a11y.la \
|
||||
$(E_WIDGETS_LIBS) \
|
||||
- $(EXTRA_GNOME_LIBS)
|
||||
+ $(GNOME_PLATFORM_LIBS)
|
||||
|
||||
icons = \
|
||||
add-col.xpm \
|
||||
--- evolution-2.10.3/widgets/text/Makefile.am.version-checks 2007-04-09 09:10:17.000000000 -0400
|
||||
+++ evolution-2.10.3/widgets/text/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -5,7 +5,7 @@ endif
|
||||
INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/widgets \
|
||||
- $(EXTRA_GNOME_CFLAGS) \
|
||||
+ $(GNOME_PLATFORM_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"e-text\"
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ libetext_la_LIBADD = \
|
||||
$(top_builddir)/e-util/libeutil.la \
|
||||
$(top_builddir)/a11y/libevolution-a11y.la \
|
||||
$(top_builddir)/widgets/table/libetable.la \
|
||||
- $(EXTRA_GNOME_LIBS) \
|
||||
+ $(GNOME_PLATFORM_LIBS) \
|
||||
$(REGEX_LIBS)
|
||||
--- evolution-2.10.3/tools/Makefile.am.version-checks 2007-04-09 09:07:44.000000000 -0400
|
||||
+++ evolution-2.10.3/tools/Makefile.am 2007-07-27 10:45:41.000000000 -0400
|
||||
@@ -16,7 +16,7 @@ INCLUDES = \
|
||||
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DDATADIR=\""$(datadir)"\" \
|
||||
-DLIBDIR=\""$(libdir)"\" \
|
||||
- $(GNOME_FULL_CFLAGS)
|
||||
+ $(GNOME_PLATFORM_CFLAGS)
|
||||
|
||||
EXTRA_DIST = verify-evolution-install.sh
|
||||
|
||||
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.in.hide-switcher-buttons-by-default 2005-10-26 16:21:15.000000000 -0400
|
||||
+++ evolution-2.4.1/shell/apps_evolution_shell.schemas.in.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.9.5/addressbook/conduit/Makefile.am.fix-conduit-dir 2007-01-03 10:32:47.000000000 -0500
|
||||
+++ evolution-2.9.5/addressbook/conduit/Makefile.am 2007-01-21 22:05:23.000000000 -0500
|
||||
@@ -28,7 +28,7 @@
|
||||
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||
$< > $@
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-address-$(BASE_VERSION).conduit
|
||||
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
--- evolution-2.9.5/addressbook/conduit/Makefile.in.fix-conduit-dir 2007-01-21 22:05:44.000000000 -0500
|
||||
+++ evolution-2.9.5/addressbook/conduit/Makefile.in 2007-01-21 22:06:04.000000000 -0500
|
||||
@@ -459,7 +459,7 @@
|
||||
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||
$(EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS)
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-address-$(BASE_VERSION).conduit
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
--- evolution-2.9.5/calendar/conduits/todo/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/todo/Makefile.am 2007-01-21 22:05:23.000000000 -0500
|
||||
@@ -24,7 +24,7 @@
|
||||
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||
$< > $@
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-todo-$(BASE_VERSION).conduit
|
||||
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
--- evolution-2.9.5/calendar/conduits/todo/Makefile.in.fix-conduit-dir 2007-01-21 22:06:31.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/todo/Makefile.in 2007-01-21 22:06:39.000000000 -0500
|
||||
@@ -454,7 +454,7 @@
|
||||
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-todo-$(BASE_VERSION).conduit
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
--- evolution-2.9.5/calendar/conduits/memo/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/memo/Makefile.am 2007-01-21 22:05:23.000000000 -0500
|
||||
@@ -24,7 +24,7 @@
|
||||
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||
$< > $@
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-memo-$(BASE_VERSION).conduit
|
||||
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
--- evolution-2.9.5/calendar/conduits/memo/Makefile.in.fix-conduit-dir 2007-01-21 22:06:46.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/memo/Makefile.in 2007-01-21 22:06:54.000000000 -0500
|
||||
@@ -454,7 +454,7 @@
|
||||
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-memo-$(BASE_VERSION).conduit
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
--- evolution-2.9.5/calendar/conduits/calendar/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/calendar/Makefile.am 2007-01-21 22:05:23.000000000 -0500
|
||||
@@ -24,7 +24,7 @@
|
||||
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
|
||||
$< > $@
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-calendar-$(BASE_VERSION).conduit
|
||||
|
||||
BUILT_SOURCES = $(conduit_DATA)
|
||||
--- evolution-2.9.5/calendar/conduits/calendar/Makefile.in.fix-conduit-dir 2007-01-21 22:06:15.000000000 -0500
|
||||
+++ evolution-2.9.5/calendar/conduits/calendar/Makefile.in 2007-01-21 22:06:23.000000000 -0500
|
||||
@@ -456,7 +456,7 @@
|
||||
$(top_builddir)/widgets/misc/libemiscwidgets.la \
|
||||
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
|
||||
|
||||
-conduitdir = $(datadir)/gnome-pilot/conduits/
|
||||
+conduitdir = $(libdir)/gnome-pilot/conduits/
|
||||
conduit_DATA = e-calendar-$(BASE_VERSION).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>
|
||||
169
evolution-2.7.1-no-gnome-common.patch
Normal file
169
evolution-2.7.1-no-gnome-common.patch
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
--- evolution-2.10.1/configure.no-gnome-common 2007-04-09 12:32:23.000000000 -0400
|
||||
+++ evolution-2.10.1/configure 2007-04-09 12:33:02.000000000 -0400
|
||||
@@ -33161,154 +33161,6 @@
|
||||
|
||||
|
||||
|
||||
- # 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); } &&
|
||||
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
- { (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_try") 2>&5
|
||||
- ac_status=$?
|
||||
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
- (exit $ac_status); }; } &&
|
||||
- { ac_try='test -s conftest.$ac_objext'
|
||||
- { (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_try") 2>&5
|
||||
- ac_status=$?
|
||||
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
- (exit $ac_status); }; }; 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"
|
||||
--- evolution-2.10.1/configure.in.no-gnome-common 2007-04-09 09:11:47.000000000 -0400
|
||||
+++ evolution-2.10.1/configure.in 2007-04-09 12:32:23.000000000 -0400
|
||||
@@ -1136,9 +1136,6 @@
|
||||
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"
|
||||
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);
|
||||
|
||||
|
||||
}
|
||||
178
evolution-2.7.3-filter-datespec.patch
Normal file
178
evolution-2.7.3-filter-datespec.patch
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
diff -ur evolution-2.7.3/filter/filter-datespec.c my-evolution-2.7.3/filter/filter-datespec.c
|
||||
--- evolution-2.7.3/filter/filter-datespec.c 2005-08-09 17:29:27.000000000 -0600
|
||||
+++ my-evolution-2.7.3/filter/filter-datespec.c 2006-06-28 20:51:01.000000000 -0600
|
||||
@@ -61,8 +61,10 @@
|
||||
|
||||
typedef struct _timespan {
|
||||
guint32 seconds;
|
||||
- const char *singular;
|
||||
- const char *plural;
|
||||
+ const char *past_singular;
|
||||
+ const char *past_plural;
|
||||
+ const char *future_singular;
|
||||
+ const char *future_plural;
|
||||
float max;
|
||||
} timespan;
|
||||
|
||||
@@ -75,13 +77,13 @@
|
||||
#define ngettext(a, b) a, b
|
||||
|
||||
static const timespan timespans[] = {
|
||||
- { 1, ngettext("1 second ago", "%d seconds ago"), 59.0 },
|
||||
- { 60, ngettext("1 minute ago", "%d minutes ago"), 59.0 },
|
||||
- { 3600, ngettext("1 hour ago", "%d hours ago"), 23.0 },
|
||||
- { 86400, ngettext("1 day ago", "%d days ago"), 31.0 },
|
||||
- { 604800, ngettext("1 week ago", "%d weeks ago"), 52.0 },
|
||||
- { 2419200, ngettext("1 month ago", "%d months ago"), 12.0 },
|
||||
- { 31557600, ngettext("1 year ago", "%d years ago"), 1000.0 },
|
||||
+ { 1, ngettext("1 second ago", "%d seconds ago"), ngettext("1 second in the future", "%d seconds in the future"), 59.0 },
|
||||
+ { 60, ngettext("1 minute ago", "%d minutes ago"), ngettext("1 minute in the future", "%d minutes in the future"), 59.0 },
|
||||
+ { 3600, ngettext("1 hour ago", "%d hours ago"), ngettext("1 hour in the future", "%d hours in the future"), 23.0 },
|
||||
+ { 86400, ngettext("1 day ago", "%d days ago"), ngettext("1 day in the future", "%d days in the future"), 31.0 },
|
||||
+ { 604800, ngettext("1 week ago", "%d weeks ago"), ngettext("1 week in the future", "%d weeks in the future"), 52.0 },
|
||||
+ { 2419200, ngettext("1 month ago", "%d months ago"), ngettext("1 month in the future", "%d months in the future"), 12.0 },
|
||||
+ { 31557600, ngettext("1 year ago", "%d years ago"), ngettext("1 year in the future", "%d years in the future"), 1000.0 },
|
||||
};
|
||||
|
||||
/* now we let the compiler see the real function call */
|
||||
@@ -92,7 +94,7 @@
|
||||
|
||||
struct _FilterDatespecPrivate {
|
||||
GtkWidget *label_button;
|
||||
- GtkWidget *notebook_type, *option_type, *calendar_specify, *spin_relative, *option_relative;
|
||||
+ GtkWidget *notebook_type, *option_type, *calendar_specify, *spin_relative, *option_relative, *option_past_future;
|
||||
FilterDatespec_type type;
|
||||
int span;
|
||||
};
|
||||
@@ -264,7 +266,7 @@
|
||||
get_best_span (time_t val)
|
||||
{
|
||||
int i;
|
||||
-
|
||||
+
|
||||
for (i=N_TIMESPANS-1;i>=0;i--) {
|
||||
if (val % timespans[i].seconds == 0)
|
||||
return i;
|
||||
@@ -302,8 +304,18 @@
|
||||
|
||||
span = get_best_span(fds->value);
|
||||
count = fds->value / timespans[span].seconds;
|
||||
+ sprintf(buf, ngettext(timespans[span].past_singular, timespans[span].past_plural, count), count);
|
||||
+ }
|
||||
+ break;
|
||||
+ case FDST_X_FUTURE:
|
||||
+ if (fds->value == 0)
|
||||
+ label = _("now");
|
||||
+ else {
|
||||
+ int span, count;
|
||||
|
||||
- sprintf(buf, ngettext(timespans[span].singular, timespans[span].plural, count), count);
|
||||
+ span = get_best_span(fds->value);
|
||||
+ count = fds->value / timespans[span].seconds;
|
||||
+ sprintf(buf, ngettext(timespans[span].future_singular, timespans[span].future_plural, count), count);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -329,6 +341,7 @@
|
||||
fds->value = mktime(&tm);
|
||||
/* what about timezone? */
|
||||
break; }
|
||||
+ case FDST_X_FUTURE:
|
||||
case FDST_X_AGO: {
|
||||
int val;
|
||||
|
||||
@@ -349,6 +362,8 @@
|
||||
struct _FilterDatespecPrivate *p = PRIV(fds);
|
||||
|
||||
p->type = fds->type==FDST_UNKNOWN ? FDST_NOW : fds->type;
|
||||
+
|
||||
+ int note_type = fds->type==FDST_X_FUTURE ? FDST_X_AGO : fds->type; // FUTURE and AGO use the same notebook pages/etc.
|
||||
|
||||
switch (p->type) {
|
||||
case FDST_NOW:
|
||||
@@ -368,11 +383,18 @@
|
||||
p->span = get_best_span(fds->value);
|
||||
gtk_spin_button_set_value((GtkSpinButton*)p->spin_relative, fds->value/timespans[p->span].seconds);
|
||||
gtk_option_menu_set_history((GtkOptionMenu*)p->option_relative, p->span);
|
||||
+ gtk_option_menu_set_history((GtkOptionMenu*)p->option_past_future, 0);
|
||||
+ break;
|
||||
+ case FDST_X_FUTURE:
|
||||
+ p->span = get_best_span(fds->value);
|
||||
+ gtk_spin_button_set_value((GtkSpinButton*)p->spin_relative, fds->value/timespans[p->span].seconds);
|
||||
+ gtk_option_menu_set_history((GtkOptionMenu*)p->option_relative, p->span);
|
||||
+ gtk_option_menu_set_history((GtkOptionMenu*)p->option_past_future, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
- gtk_notebook_set_current_page ((GtkNotebook*) p->notebook_type, p->type);
|
||||
- gtk_option_menu_set_history ((GtkOptionMenu*) p->option_type, p->type);
|
||||
+ gtk_notebook_set_current_page ((GtkNotebook*) p->notebook_type, note_type);
|
||||
+ gtk_option_menu_set_history ((GtkOptionMenu*) p->option_type, note_type);
|
||||
}
|
||||
|
||||
|
||||
@@ -397,6 +419,18 @@
|
||||
}
|
||||
|
||||
static void
|
||||
+set_option_past_future (GtkMenu *menu, FilterDatespec *fds)
|
||||
+{
|
||||
+ GtkWidget *w;
|
||||
+
|
||||
+ w = gtk_menu_get_active (menu);
|
||||
+ if(g_list_index (GTK_MENU_SHELL (menu)->children, w) == 0)
|
||||
+ fds->type = fds->priv->type = FDST_X_AGO;
|
||||
+ else
|
||||
+ fds->type = fds->priv->type = FDST_X_FUTURE;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
button_clicked (GtkButton *button, FilterDatespec *fds)
|
||||
{
|
||||
struct _FilterDatespecPrivate *p = PRIV(fds);
|
||||
@@ -424,6 +458,7 @@
|
||||
p->calendar_specify = glade_xml_get_widget (gui, "calendar_specify");
|
||||
p->spin_relative = glade_xml_get_widget (gui, "spin_relative");
|
||||
p->option_relative = glade_xml_get_widget (gui, "option_relative");
|
||||
+ p->option_past_future = glade_xml_get_widget (gui, "option_past_future");
|
||||
|
||||
set_values (fds);
|
||||
|
||||
@@ -431,6 +466,8 @@
|
||||
G_CALLBACK (set_option_type), fds);
|
||||
g_signal_connect (GTK_OPTION_MENU (p->option_relative)->menu, "deactivate",
|
||||
G_CALLBACK (set_option_relative), fds);
|
||||
+ g_signal_connect (GTK_OPTION_MENU (p->option_past_future)->menu, "deactivate",
|
||||
+ G_CALLBACK (set_option_past_future), fds);
|
||||
|
||||
gtk_box_pack_start ((GtkBox *) dialog->vbox, toplevel, TRUE, TRUE, 3);
|
||||
|
||||
@@ -486,5 +523,8 @@
|
||||
case FDST_X_AGO:
|
||||
g_string_append_printf (out, "(- (get-current-date) %d)", (int) fds->value);
|
||||
break;
|
||||
+ case FDST_X_FUTURE:
|
||||
+ g_string_append_printf (out, "(+ (get-current-date) %d)", (int) fds->value);
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
diff -ur evolution-2.7.3/filter/filter-datespec.h my-evolution-2.7.3/filter/filter-datespec.h
|
||||
--- evolution-2.7.3/filter/filter-datespec.h 2002-11-01 16:22:57.000000000 -0700
|
||||
+++ my-evolution-2.7.3/filter/filter-datespec.h 2006-06-28 17:25:55.000000000 -0600
|
||||
@@ -42,6 +42,7 @@
|
||||
FDST_NOW,
|
||||
FDST_SPECIFIED,
|
||||
FDST_X_AGO,
|
||||
+ FDST_X_FUTURE,
|
||||
} FilterDatespec_type;
|
||||
|
||||
struct _FilterDatespec {
|
||||
@@ -52,7 +53,7 @@
|
||||
|
||||
/* either a timespan, an absolute time, or 0
|
||||
* depending on type -- the above mapping to
|
||||
- * (X_AGO, SPECIFIED, NOW)
|
||||
+ * (X_FUTURE, X_AGO, SPECIFIED, NOW)
|
||||
*/
|
||||
|
||||
time_t value;
|
||||
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) {
|
||||
112
evolution-2.7.4-candidate-window-position-calendar.patch
Normal file
112
evolution-2.7.4-candidate-window-position-calendar.patch
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
--- evolution-2.7.4/widgets/text/e-text.h.cal 2006-07-13 10:15:56.000000000 -0400
|
||||
+++ evolution-2.7.4/widgets/text/e-text.h 2006-07-13 10:18:20.000000000 -0400
|
||||
@@ -109,6 +109,7 @@
|
||||
|
||||
const gchar *text; /* Text to display --- from the ETextModel */
|
||||
gint preedit_len; /* preedit length to display */
|
||||
+ gint preedit_pos; /* preedit cursor position */
|
||||
PangoLayout *layout;
|
||||
int num_lines; /* Number of lines of text */
|
||||
|
||||
--- evolution-2.7.4/widgets/text/e-text.c.cal 2006-07-13 10:15:51.000000000 -0400
|
||||
+++ evolution-2.7.4/widgets/text/e-text.c 2006-07-13 10:18:20.000000000 -0400
|
||||
@@ -132,6 +132,7 @@
|
||||
|
||||
static void reset_layout_attrs (EText *text);
|
||||
|
||||
+static void update_im_cursor_position (EText *text);
|
||||
#if 0
|
||||
/* GtkEditable Methods */
|
||||
static void e_text_editable_do_insert_text (GtkEditable *editable,
|
||||
@@ -325,6 +326,8 @@
|
||||
pango_layout_set_attributes (text->layout, attrs);
|
||||
pango_attr_list_unref (attrs);
|
||||
}
|
||||
+
|
||||
+ update_im_cursor_position (text);
|
||||
}
|
||||
|
||||
if (preedit_string)
|
||||
@@ -3723,6 +3726,7 @@
|
||||
text->model = e_text_model_new ();
|
||||
text->text = e_text_model_get_text (text->model);
|
||||
text->preedit_len = 0;
|
||||
+ text->preedit_pos = 0;
|
||||
text->layout = NULL;
|
||||
|
||||
text->revert = NULL;
|
||||
@@ -3840,17 +3844,71 @@
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Fetch cursor location into Strong or Weak positions so as to
|
||||
+ * display the preedit candidate selection window in the right place
|
||||
+ */
|
||||
+static void
|
||||
+e_text_get_cursor_locations (EText *text,
|
||||
+ GdkRectangle *strong_pos,
|
||||
+ GdkRectangle *weak_pos)
|
||||
+{
|
||||
+ double x1, y1;
|
||||
+ PangoRectangle pango_strong_pos;
|
||||
+ PangoRectangle pango_weak_pos;
|
||||
+ int cx, cy;
|
||||
+ gint index;
|
||||
+
|
||||
+ gnome_canvas_item_get_bounds (GNOME_CANVAS_ITEM (text), &x1, &y1, NULL, NULL);
|
||||
+
|
||||
+ gnome_canvas_get_scroll_offsets (GNOME_CANVAS (GNOME_CANVAS_ITEM (text)->canvas), &cx, &cy);
|
||||
+
|
||||
+ index = g_utf8_offset_to_pointer (text->text, text->selection_start) - text->text;
|
||||
+
|
||||
+ pango_layout_get_cursor_pos (text->layout, index + text->preedit_pos,
|
||||
+ strong_pos ? &pango_strong_pos : NULL,
|
||||
+ weak_pos ? &pango_weak_pos : NULL);
|
||||
+
|
||||
+ if (strong_pos) {
|
||||
+ strong_pos->x = x1 - cx - text->xofs_edit + pango_strong_pos.x / PANGO_SCALE;
|
||||
+ strong_pos->y = y1 - cy - text->yofs_edit + pango_strong_pos.y / PANGO_SCALE;
|
||||
+ strong_pos->width = 0;
|
||||
+ strong_pos->height = pango_strong_pos.height / PANGO_SCALE;
|
||||
+ }
|
||||
+
|
||||
+ if (weak_pos) {
|
||||
+ weak_pos->x = x1 - cx - text->xofs_edit + pango_weak_pos.x / PANGO_SCALE;
|
||||
+ weak_pos->y = y1 - cy - text->yofs_edit + pango_weak_pos.y / PANGO_SCALE;
|
||||
+ weak_pos->width = 0;
|
||||
+ weak_pos->height = pango_weak_pos.height / PANGO_SCALE;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/* Update IM's cursor position to display candidate selection window */
|
||||
+static void
|
||||
+update_im_cursor_position (EText *text)
|
||||
+{
|
||||
+ GdkRectangle area;
|
||||
+
|
||||
+ e_text_get_cursor_locations (text, &area, NULL);
|
||||
+
|
||||
+ gtk_im_context_set_cursor_location (text->im_context, &area);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
e_text_preedit_changed_cb (GtkIMContext *context,
|
||||
- EText *etext)
|
||||
+ EText *etext)
|
||||
{
|
||||
gchar *preedit_string = NULL;
|
||||
+ gint cursor_pos;
|
||||
|
||||
gtk_im_context_get_preedit_string (context, &preedit_string,
|
||||
- NULL, NULL);
|
||||
+ NULL, &cursor_pos);
|
||||
|
||||
+ cursor_pos = CLAMP (cursor_pos, 0, g_utf8_strlen (preedit_string, -1));
|
||||
etext->preedit_len = strlen (preedit_string);
|
||||
- g_free (preedit_string);
|
||||
+ etext->preedit_pos = g_utf8_offset_to_pointer (preedit_string, cursor_pos) - preedit_string;
|
||||
+ g_free (preedit_string);
|
||||
|
||||
g_signal_emit (etext, e_text_signals[E_TEXT_KEYPRESS], 0, 0, 0);
|
||||
}
|
||||
110
evolution-2.7.4-candidate-window-position-task.patch
Normal file
110
evolution-2.7.4-candidate-window-position-task.patch
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
--- evolution-2.7.4/widgets/table/e-cell-text.c.task 2006-07-13 10:56:19.000000000 -0400
|
||||
+++ evolution-2.7.4/widgets/table/e-cell-text.c 2006-07-13 10:56:27.000000000 -0400
|
||||
@@ -199,6 +199,7 @@
|
||||
gboolean im_context_signals_registered;
|
||||
|
||||
guint16 preedit_length; /* length of preedit string, in bytes */
|
||||
+ gint preedit_pos; /* position of preedit cursor */
|
||||
|
||||
ECellActions actions;
|
||||
};
|
||||
@@ -222,6 +223,7 @@
|
||||
static void _insert (ECellTextView *text_view, char *string, int value);
|
||||
static void _delete_selection (ECellTextView *text_view);
|
||||
static PangoAttrList* build_attr_list (ECellTextView *text_view, int row, int text_length);
|
||||
+static void update_im_cursor_location (ECellTextView *tv);
|
||||
|
||||
static ECellClass *parent_class;
|
||||
|
||||
@@ -560,6 +562,9 @@
|
||||
if (preedit_attrs)
|
||||
pango_attr_list_unref (preedit_attrs);
|
||||
pango_attr_list_unref (attrs);
|
||||
+
|
||||
+ update_im_cursor_location (text_view);
|
||||
+
|
||||
return layout;
|
||||
}
|
||||
|
||||
@@ -1863,6 +1868,66 @@
|
||||
/* IM Context Callbacks */
|
||||
|
||||
static void
|
||||
+e_cell_text_get_cursor_locations (ECellTextView *tv,
|
||||
+ GdkRectangle *strong_pos,
|
||||
+ GdkRectangle *weak_pos)
|
||||
+{
|
||||
+ GdkRectangle area;
|
||||
+ CellEdit *edit=tv->edit;
|
||||
+ ECellView *cell_view = (ECellView *)tv;
|
||||
+ ETableItem *item = E_TABLE_ITEM ((cell_view)->e_table_item_view);
|
||||
+ GnomeCanvasItem *parent_item = GNOME_CANVAS_ITEM (item)->parent;
|
||||
+ PangoRectangle pango_strong_pos;
|
||||
+ PangoRectangle pango_weak_pos;
|
||||
+ gint x, y, col, row;
|
||||
+ gdouble x1,y1;
|
||||
+ gint cx, cy;
|
||||
+ gint index;
|
||||
+
|
||||
+ row = edit->row;
|
||||
+ col = edit->view_col;
|
||||
+
|
||||
+ e_table_item_get_cell_geometry (item, &row, &col,
|
||||
+ &x, &y, NULL, &area.height);
|
||||
+
|
||||
+ gnome_canvas_item_get_bounds (GNOME_CANVAS_ITEM (parent_item), &x1, &y1, NULL, NULL);
|
||||
+
|
||||
+ gnome_canvas_get_scroll_offsets (GNOME_CANVAS (GNOME_CANVAS_ITEM (parent_item)->canvas), &cx, &cy);
|
||||
+
|
||||
+ index = edit->selection_end + edit->preedit_pos;
|
||||
+
|
||||
+ pango_layout_get_cursor_pos (edit->layout,
|
||||
+ index,
|
||||
+ strong_pos ? &pango_strong_pos : NULL,
|
||||
+ weak_pos ? &pango_weak_pos : NULL);
|
||||
+
|
||||
+ if (strong_pos) {
|
||||
+ strong_pos->x = x + x1 - cx - edit->xofs_edit + pango_strong_pos.x / PANGO_SCALE;
|
||||
+ strong_pos->y = y + y1 - cy - edit->yofs_edit + pango_strong_pos.y / PANGO_SCALE;
|
||||
+ strong_pos->width = 0;
|
||||
+ strong_pos->height = pango_strong_pos.height / PANGO_SCALE;
|
||||
+ }
|
||||
+
|
||||
+ if (weak_pos) {
|
||||
+ weak_pos->x = x + x1 - cx - edit->xofs_edit + pango_weak_pos.x / PANGO_SCALE;
|
||||
+ weak_pos->y = y + y1 - cy - edit->yofs_edit + pango_weak_pos.y / PANGO_SCALE;
|
||||
+ weak_pos->width = 0;
|
||||
+ weak_pos->height = pango_weak_pos.height / PANGO_SCALE;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+update_im_cursor_location (ECellTextView *tv)
|
||||
+{
|
||||
+ CellEdit *edit=tv->edit;
|
||||
+ GdkRectangle area;
|
||||
+
|
||||
+ e_cell_text_get_cursor_locations (tv, &area, NULL);
|
||||
+
|
||||
+ gtk_im_context_set_cursor_location (edit->im_context, &area);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
e_cell_text_preedit_changed_cb (GtkIMContext *context,
|
||||
ECellTextView *tv)
|
||||
{
|
||||
@@ -1871,10 +1936,12 @@
|
||||
CellEdit *edit=tv->edit;
|
||||
gtk_im_context_get_preedit_string (edit->im_context, &preedit_string,
|
||||
NULL, &cursor_pos);
|
||||
-
|
||||
+
|
||||
edit->preedit_length = strlen (preedit_string);
|
||||
- cursor_pos = CLAMP (cursor_pos, 0, g_utf8_strlen (preedit_string, -1));
|
||||
+ cursor_pos = CLAMP (cursor_pos, 0, g_utf8_strlen (preedit_string, -1));
|
||||
+ edit->preedit_pos = g_utf8_offset_to_pointer (preedit_string, cursor_pos) - preedit_string;
|
||||
g_free (preedit_string);
|
||||
+
|
||||
ect_queue_redraw (tv, edit->view_col, edit->row);
|
||||
}
|
||||
|
||||
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 */
|
||||
83
evolution-2.8.0-fix-indic-printing.patch
Normal file
83
evolution-2.8.0-fix-indic-printing.patch
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
--- evolution-2.9.91/plugins/print-message/print-message.c.fix-indic-printing 2007-02-12 01:58:01.000000000 -0500
|
||||
+++ evolution-2.9.91/plugins/print-message/print-message.c 2007-02-12 13:30:17.000000000 -0500
|
||||
@@ -83,7 +83,7 @@
|
||||
data->config = e_print_load_settings ();
|
||||
data->preview = 0;
|
||||
|
||||
- data->msg = e_msg_composer_get_message (composer, 1);
|
||||
+ data->msg = e_msg_composer_get_message_print (composer, 1);
|
||||
dialog = (GtkDialog *)e_print_get_dialog_with_config (_("Print Message"), 0, data->config);
|
||||
gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK);
|
||||
e_dialog_set_transient_for ((GtkWindow *) dialog, (GtkWidget *) composer);
|
||||
@@ -102,7 +102,7 @@
|
||||
data->config = e_print_load_settings ();
|
||||
data->preview = 0;
|
||||
|
||||
- data->msg = e_msg_composer_get_message (composer, 1);
|
||||
+ data->msg = e_msg_composer_get_message_print (composer, 1);
|
||||
|
||||
print_response(NULL, GTK_RESPONSE_APPLY, data);
|
||||
}
|
||||
--- evolution-2.9.91/composer/e-msg-composer.h.fix-indic-printing 2007-01-22 10:23:06.000000000 -0500
|
||||
+++ evolution-2.9.91/composer/e-msg-composer.h 2007-02-12 13:29:24.000000000 -0500
|
||||
@@ -101,6 +101,8 @@
|
||||
CamelMimePart *part);
|
||||
CamelMimeMessage *e_msg_composer_get_message (EMsgComposer *composer,
|
||||
gboolean save_html_object_data);
|
||||
+CamelMimeMessage *e_msg_composer_get_message_print (EMsgComposer *composer,
|
||||
+ gboolean save_html_object_data);
|
||||
CamelMimeMessage *e_msg_composer_get_message_draft (EMsgComposer *composer);
|
||||
void e_msg_composer_show_sig_file (EMsgComposer *composer);
|
||||
gboolean e_msg_composer_get_send_html (EMsgComposer *composer);
|
||||
--- evolution-2.9.91/composer/e-msg-composer.c.fix-indic-printing 2007-02-12 13:29:24.000000000 -0500
|
||||
+++ evolution-2.9.91/composer/e-msg-composer.c 2007-02-12 13:29:24.000000000 -0500
|
||||
@@ -5267,6 +5267,49 @@
|
||||
}
|
||||
|
||||
CamelMimeMessage *
|
||||
+e_msg_composer_get_message_print (EMsgComposer *composer, gboolean save_html_object_data)
|
||||
+{
|
||||
+ EMsgComposer *temp_composer;
|
||||
+ CamelMimeMessage *msg;
|
||||
+ GString *flags;
|
||||
+
|
||||
+ msg = build_message (composer, save_html_object_data);
|
||||
+ temp_composer = e_msg_composer_new_with_message (msg);
|
||||
+ camel_object_unref (msg);
|
||||
+
|
||||
+ /* build flags string */
|
||||
+ flags = g_string_sized_new (128);
|
||||
+ if (temp_composer->priv->send_html)
|
||||
+ g_string_append (flags, "text/html");
|
||||
+ else
|
||||
+ g_string_append (flags, "text/plain");
|
||||
+ if (temp_composer->priv->pgp_sign)
|
||||
+ g_string_append (flags, ", pgp-sign");
|
||||
+ if (temp_composer->priv->pgp_encrypt)
|
||||
+ g_string_append (flags, ", pgp-encrypt");
|
||||
+ if (temp_composer->priv->smime_sign)
|
||||
+ g_string_append (flags, ", smime-sign");
|
||||
+ if (temp_composer->priv->smime_encrypt)
|
||||
+ g_string_append (flags, ", smime-encrypt");
|
||||
+
|
||||
+ /* override composer flags */
|
||||
+ temp_composer->priv->send_html = TRUE;
|
||||
+ temp_composer->priv->pgp_sign = FALSE;
|
||||
+ temp_composer->priv->pgp_encrypt = FALSE;
|
||||
+ temp_composer->priv->smime_sign = FALSE;
|
||||
+ temp_composer->priv->smime_encrypt = FALSE;
|
||||
+
|
||||
+ msg = build_message (temp_composer, save_html_object_data);
|
||||
+ camel_medium_set_header (CAMEL_MEDIUM (msg),
|
||||
+ "X-Evolution-Format", flags->str);
|
||||
+
|
||||
+ e_msg_composer_delete (temp_composer);
|
||||
+ g_string_free (flags, TRUE);
|
||||
+
|
||||
+ return msg;
|
||||
+}
|
||||
+
|
||||
+CamelMimeMessage *
|
||||
e_msg_composer_get_message_draft (EMsgComposer *composer)
|
||||
{
|
||||
CamelMimeMessage *msg;
|
||||
117
evolution-2.8.0-indic-cursor-movement.patch
Normal file
117
evolution-2.8.0-indic-cursor-movement.patch
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
--- evolution-2.8.0/widgets/text/e-text.c.indic-cursor-movement 2006-09-13 14:53:39.000000000 -0400
|
||||
+++ evolution-2.8.0/widgets/text/e-text.c 2006-09-13 14:53:48.000000000 -0400
|
||||
@@ -2876,6 +2876,76 @@
|
||||
}
|
||||
}
|
||||
|
||||
+
|
||||
+
|
||||
+/* direction = TRUE (move forward), FALSE (move backward)
|
||||
+ Any error shall return length(text->text) or 0 or text->selection_end (as deemed fit) */
|
||||
+static int
|
||||
+_get_updated_position (EText *text, gboolean direction)
|
||||
+{
|
||||
+ PangoLogAttr *log_attrs = NULL;
|
||||
+ gint n_attrs;
|
||||
+ char *p = NULL;
|
||||
+ gint new_pos = 0;
|
||||
+ gint length = 0;
|
||||
+
|
||||
+ /* Basic sanity test, return whatever position we are currently at. */
|
||||
+ g_return_val_if_fail (text->layout != NULL, text->selection_end);
|
||||
+
|
||||
+ length = g_utf8_strlen (text->text, -1);
|
||||
+
|
||||
+ /* length checks to make sure we are not wandering off into nonexistant memory... */
|
||||
+ if((text->selection_end >= length) && (TRUE == direction)) /* forward */
|
||||
+ return length;
|
||||
+ /* checking for -ve value wont hurt! */
|
||||
+ if((text->selection_end <= 0) && (FALSE == direction)) /* backward */
|
||||
+ return 0;
|
||||
+
|
||||
+ /* check for validness of full text->text */
|
||||
+ if(!g_utf8_validate(text->text, -1, NULL))
|
||||
+ return text->selection_end;
|
||||
+
|
||||
+ /* get layout's PangoLogAttr to facilitate moving when moving across grapheme cluster as in indic langs */
|
||||
+ pango_layout_get_log_attrs (text->layout, &log_attrs, &n_attrs);
|
||||
+
|
||||
+ /* Fetch the current char index in the line & keep moving
|
||||
+ forward until we can display cursor */
|
||||
+ p = g_utf8_offset_to_pointer (text->text, text->selection_end);
|
||||
+
|
||||
+ new_pos = text->selection_end;
|
||||
+ while(1)
|
||||
+ {
|
||||
+ /* check before moving forward/backwards if we have more chars to move or not */
|
||||
+ if(TRUE == direction)
|
||||
+ p = g_utf8_next_char (p);
|
||||
+ else
|
||||
+ p = g_utf8_prev_char (p);
|
||||
+
|
||||
+ /* validate the new string & return with original position if check fails */
|
||||
+ if(!g_utf8_validate (p, -1, NULL))
|
||||
+ break; /* will return old value of new_pos */
|
||||
+
|
||||
+ new_pos = g_utf8_pointer_to_offset (text->text, p);
|
||||
+
|
||||
+ /* if is_cursor_position is set, cursor can appear in front of character.
|
||||
+ i.e. this is a grapheme boundary AND make some sanity checks */
|
||||
+ if((new_pos >=0) && (new_pos < n_attrs) && (log_attrs[new_pos].is_cursor_position))
|
||||
+ break;
|
||||
+ else if((new_pos < 0) || (new_pos >= n_attrs))
|
||||
+ {
|
||||
+ new_pos = text->selection_end;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(log_attrs)
|
||||
+ g_free(log_attrs);
|
||||
+
|
||||
+ return new_pos;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
static int
|
||||
_get_position(EText *text, ETextEventProcessorCommand *command)
|
||||
{
|
||||
@@ -2951,15 +3021,14 @@
|
||||
if (text->selection_end >= length)
|
||||
new_pos = length;
|
||||
else
|
||||
- new_pos = text->selection_end + 1;
|
||||
-
|
||||
+ new_pos = _get_updated_position(text, TRUE); /* get updated position to display cursor */
|
||||
+
|
||||
break;
|
||||
|
||||
case E_TEP_BACKWARD_CHARACTER:
|
||||
new_pos = 0;
|
||||
- if (text->selection_end >= 1) {
|
||||
- new_pos = text->selection_end - 1;
|
||||
- }
|
||||
+ if (text->selection_end >= 1)
|
||||
+ new_pos = _get_updated_position(text, FALSE); /* get updated position to display cursor */
|
||||
|
||||
break;
|
||||
|
||||
@@ -3341,6 +3410,7 @@
|
||||
if (!text->layout)
|
||||
create_layout (text);
|
||||
|
||||
+ /* We move cursor only if scroll is TRUE */
|
||||
if (scroll && !text->button_down) {
|
||||
/* XXX do we really need the @trailing logic here? if
|
||||
we don't we can scrap the loop and just use
|
||||
@@ -3349,7 +3419,9 @@
|
||||
int selection_index;
|
||||
PangoLayoutIter *iter = pango_layout_get_iter (text->layout);
|
||||
|
||||
+ /* check if we are using selection_start or selection_end for moving? */
|
||||
selection_index = use_start ? text->selection_start : text->selection_end;
|
||||
+
|
||||
/* convert to a byte index */
|
||||
selection_index = g_utf8_offset_to_pointer (text->text, selection_index) - text->text;
|
||||
|
||||
7144
evolution-2.8.1-kill-ethread.patch
Normal file
7144
evolution-2.8.1-kill-ethread.patch
Normal file
File diff suppressed because it is too large
Load diff
91
evolution-2.9.1-first-ascii.patch
Normal file
91
evolution-2.9.1-first-ascii.patch
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
--- evolution-2.9.1/calendar/gui/e-day-view.c.first-ascii 2006-11-06 11:25:23.000000000 -0500
|
||||
+++ evolution-2.9.1/calendar/gui/e-day-view.c 2006-11-06 11:34:32.000000000 -0500
|
||||
@@ -333,7 +333,7 @@
|
||||
static void e_day_view_start_editing_event (EDayView *day_view,
|
||||
gint day,
|
||||
gint event_num,
|
||||
- gchar *initial_text);
|
||||
+ GdkEventKey *key_event);
|
||||
static void e_day_view_stop_editing_event (EDayView *day_view);
|
||||
static gboolean e_day_view_text_keypress (GnomeCanvasItem *item,
|
||||
guint keyval,
|
||||
@@ -6012,7 +6012,6 @@
|
||||
ECalModel *model;
|
||||
ECalComponent *comp;
|
||||
gint day, event_num;
|
||||
- gchar *initial_text;
|
||||
guint keyval;
|
||||
gboolean stop_emission;
|
||||
time_t dtstart, dtend;
|
||||
@@ -6153,15 +6152,12 @@
|
||||
|
||||
/* We only want to start an edit with a return key or a simple
|
||||
character. */
|
||||
- if (keyval == GDK_Return) {
|
||||
- initial_text = NULL;
|
||||
- } else if (((keyval >= 0x20) && (keyval <= 0xFF)
|
||||
- && (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)))
|
||||
- || (event->length == 0)
|
||||
- || (keyval == GDK_Tab)) {
|
||||
+ if ((keyval != GDK_Return) &&
|
||||
+ (((keyval >= 0x20) && (keyval <= 0xFF)
|
||||
+ && (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)))
|
||||
+ || (event->length == 0)
|
||||
+ || (keyval == GDK_Tab)))
|
||||
return FALSE;
|
||||
- } else
|
||||
- initial_text = e_utf8_from_gtk_event_key (widget, event->keyval, event->string);
|
||||
|
||||
/* Add a new event covering the selected range */
|
||||
icalcomp = e_cal_model_create_component_with_defaults (model);
|
||||
@@ -6207,15 +6203,11 @@
|
||||
gtk_widget_queue_draw (day_view->main_canvas);
|
||||
|
||||
if (e_day_view_find_event_from_uid (day_view, ecal, uid, NULL, &day, &event_num)) {
|
||||
- e_day_view_start_editing_event (day_view, day, event_num,
|
||||
- initial_text);
|
||||
+ e_day_view_start_editing_event (day_view, day, event_num, event);
|
||||
} else {
|
||||
g_warning ("Couldn't find event to start editing.\n");
|
||||
}
|
||||
|
||||
- if (initial_text)
|
||||
- g_free (initial_text);
|
||||
-
|
||||
g_object_unref (comp);
|
||||
|
||||
return TRUE;
|
||||
@@ -6897,7 +6889,7 @@
|
||||
e_day_view_start_editing_event (EDayView *day_view,
|
||||
gint day,
|
||||
gint event_num,
|
||||
- gchar *initial_text)
|
||||
+ GdkEventKey *key_event)
|
||||
{
|
||||
EDayViewEvent *event;
|
||||
ETextEventProcessor *event_processor = NULL;
|
||||
@@ -6937,10 +6929,20 @@
|
||||
rid of the start and end times. */
|
||||
e_canvas_item_grab_focus (event->canvas_item, TRUE);
|
||||
|
||||
- if (initial_text) {
|
||||
- gnome_canvas_item_set (event->canvas_item,
|
||||
- "text", initial_text,
|
||||
- NULL);
|
||||
+ if (key_event) {
|
||||
+ if (gtk_im_context_filter_keypress (((EText *)(event->canvas_item))->im_context, key_event)) {
|
||||
+ ((EText *)(event->canvas_item))->need_im_reset = TRUE;
|
||||
+ }
|
||||
+ else {
|
||||
+ char *initial_text;
|
||||
+
|
||||
+ initial_text = e_utf8_from_gtk_event_key (GTK_WIDGET (day_view), key_event->keyval, key_event->string);
|
||||
+ gnome_canvas_item_set (event->canvas_item,
|
||||
+ "text", initial_text,
|
||||
+ NULL);
|
||||
+ if (initial_text)
|
||||
+ g_free (initial_text);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Try to move the cursor to the end of the text. */
|
||||
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
|
||||
299
evolution-2.9.1-kill-ememory.patch
Normal file
299
evolution-2.9.1-kill-ememory.patch
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
--- evolution-2.9.1/mail/message-list.c.ememory 2006-10-25 11:11:34.000000000 -0400
|
||||
+++ evolution-2.9.1/mail/message-list.c 2006-10-25 11:15:12.000000000 -0400
|
||||
@@ -412,70 +412,28 @@
|
||||
return info;
|
||||
}
|
||||
|
||||
-static const char *
|
||||
-get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int col)
|
||||
+static const gchar *
|
||||
+get_normalised_string (MessageList *message_list, const gchar *string)
|
||||
{
|
||||
- const char *string, *str;
|
||||
- char *normalised;
|
||||
- EPoolv *poolv;
|
||||
- int index;
|
||||
-
|
||||
- switch (col) {
|
||||
- case COL_SUBJECT_NORM:
|
||||
- string = camel_message_info_subject (info);
|
||||
- index = NORMALISED_SUBJECT;
|
||||
- break;
|
||||
- case COL_FROM_NORM:
|
||||
- string = camel_message_info_from (info);
|
||||
- index = NORMALISED_FROM;
|
||||
- break;
|
||||
- case COL_TO_NORM:
|
||||
- string = camel_message_info_to (info);
|
||||
- index = NORMALISED_TO;
|
||||
- break;
|
||||
- default:
|
||||
- string = NULL;
|
||||
- index = NORMALISED_LAST;
|
||||
- g_assert_not_reached ();
|
||||
- }
|
||||
-
|
||||
- /* slight optimisation */
|
||||
- if (string == NULL || string[0] == '\0')
|
||||
+ GHashTable *hash_table = message_list->normalised_hash;
|
||||
+ GStringChunk *string_chunk = message_list->string_chunk;
|
||||
+ gchar *collation_key, *temp;
|
||||
+
|
||||
+ if (string == NULL || *string == '\0')
|
||||
return "";
|
||||
-
|
||||
- poolv = g_hash_table_lookup (message_list->normalised_hash, camel_message_info_uid (info));
|
||||
- if (poolv == NULL) {
|
||||
- poolv = e_poolv_new (NORMALISED_LAST);
|
||||
- g_hash_table_insert (message_list->normalised_hash, (char *) camel_message_info_uid (info), poolv);
|
||||
- } else {
|
||||
- str = e_poolv_get (poolv, index);
|
||||
- if (*str)
|
||||
- return str;
|
||||
- }
|
||||
-
|
||||
- if (col == COL_SUBJECT_NORM) {
|
||||
- const unsigned char *subject;
|
||||
-
|
||||
- subject = (const unsigned char *) string;
|
||||
- while (!g_ascii_strncasecmp (subject, "Re:", 3)) {
|
||||
- subject += 3;
|
||||
-
|
||||
- /* jump over any spaces */
|
||||
- while (*subject && isspace ((int) *subject))
|
||||
- subject++;
|
||||
- }
|
||||
-
|
||||
- /* jump over any spaces */
|
||||
- while (*subject && isspace ((int) *subject))
|
||||
- subject++;
|
||||
-
|
||||
- string = (const char *) subject;
|
||||
- }
|
||||
-
|
||||
- normalised = g_utf8_collate_key (string, -1);
|
||||
- e_poolv_set (poolv, index, normalised, TRUE);
|
||||
-
|
||||
- return e_poolv_get (poolv, index);
|
||||
+
|
||||
+ collation_key = g_hash_table_lookup (hash_table, string);
|
||||
+ if (collation_key != NULL)
|
||||
+ return collation_key;
|
||||
+
|
||||
+ temp = g_utf8_collate_key (string, -1);
|
||||
+ collation_key = g_string_chunk_insert_const (string_chunk, temp);
|
||||
+ g_free (temp);
|
||||
+
|
||||
+ temp = g_string_chunk_insert_const (string_chunk, string);
|
||||
+ g_hash_table_insert (hash_table, temp, collation_key);
|
||||
+
|
||||
+ return collation_key;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1283,12 +1241,23 @@
|
||||
str = camel_message_info_from (msg_info);
|
||||
return (void *)(str ? str : "");
|
||||
case COL_FROM_NORM:
|
||||
- return (void *) get_normalised_string (message_list, msg_info, col);
|
||||
+ str = camel_message_info_from (msg_info);
|
||||
+ return (void *) get_normalised_string (message_list, str);
|
||||
case COL_SUBJECT:
|
||||
str = camel_message_info_subject (msg_info);
|
||||
return (void *)(str ? str : "");
|
||||
case COL_SUBJECT_NORM:
|
||||
- return (void *) get_normalised_string (message_list, msg_info, col);
|
||||
+ str = camel_message_info_subject (msg_info);
|
||||
+ while (str != NULL && *str != '\0') {
|
||||
+ /* skip over spaces and reply prefixes */
|
||||
+ if (g_ascii_strncasecmp (str, "Re:", 3) == 0)
|
||||
+ str += 3;
|
||||
+ else if (g_ascii_isspace (*str))
|
||||
+ str++;
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ return (void *) get_normalised_string (message_list, str);
|
||||
case COL_SENT: {
|
||||
ETreePath child;
|
||||
|
||||
@@ -1312,7 +1281,8 @@
|
||||
str = camel_message_info_to (msg_info);
|
||||
return (void *)(str ? str : "");
|
||||
case COL_TO_NORM:
|
||||
- return (void *) get_normalised_string (message_list, msg_info, col);
|
||||
+ str = camel_message_info_to (msg_info);
|
||||
+ return (void *) get_normalised_string (message_list, str);
|
||||
case COL_SIZE:
|
||||
return GINT_TO_POINTER (camel_message_info_size(msg_info));
|
||||
case COL_DELETED:
|
||||
@@ -2023,9 +1993,10 @@
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (message_list), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
|
||||
|
||||
message_list->normalised_hash = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
+ message_list->string_chunk = g_string_chunk_new (1024);
|
||||
|
||||
message_list->hidden = NULL;
|
||||
- message_list->hidden_pool = NULL;
|
||||
+ message_list->hidden_string_chunk = NULL;
|
||||
message_list->hide_before = ML_HIDE_NONE_START;
|
||||
message_list->hide_after = ML_HIDE_NONE_END;
|
||||
|
||||
@@ -2054,14 +2025,6 @@
|
||||
g_signal_connect (((GtkScrolledWindow *) message_list)->vscrollbar, "value-changed", G_CALLBACK (ml_scrolled), message_list);
|
||||
}
|
||||
|
||||
-static gboolean
|
||||
-normalised_free (gpointer key, gpointer value, gpointer user_data)
|
||||
-{
|
||||
- e_poolv_destroy (value);
|
||||
-
|
||||
- return TRUE;
|
||||
-}
|
||||
-
|
||||
static void
|
||||
message_list_destroy(GtkObject *object)
|
||||
{
|
||||
@@ -2127,17 +2090,17 @@
|
||||
MessageList *message_list = MESSAGE_LIST (object);
|
||||
struct _MessageListPrivate *p = message_list->priv;
|
||||
|
||||
- g_hash_table_foreach (message_list->normalised_hash, (GHFunc) normalised_free, NULL);
|
||||
g_hash_table_destroy (message_list->normalised_hash);
|
||||
+ g_string_chunk_free (message_list->string_chunk);
|
||||
|
||||
if (message_list->thread_tree)
|
||||
camel_folder_thread_messages_unref(message_list->thread_tree);
|
||||
|
||||
if (message_list->hidden) {
|
||||
g_hash_table_destroy(message_list->hidden);
|
||||
- e_mempool_destroy(message_list->hidden_pool);
|
||||
+ g_string_chunk_free(message_list->hidden_string_chunk);
|
||||
message_list->hidden = NULL;
|
||||
- message_list->hidden_pool = NULL;
|
||||
+ message_list->hidden_string_chunk = NULL;
|
||||
}
|
||||
|
||||
g_free(message_list->search);
|
||||
@@ -2940,17 +2903,6 @@
|
||||
d(printf("changed = %d added = %d removed = %d\n",
|
||||
changes->uid_changed->len, changes->uid_added->len, changes->uid_removed->len));
|
||||
|
||||
- for (i = 0; i < changes->uid_removed->len; i++) {
|
||||
- /* uncache the normalised strings for these uids */
|
||||
- EPoolv *poolv;
|
||||
-
|
||||
- poolv = g_hash_table_lookup (ml->normalised_hash, changes->uid_removed->pdata[i]);
|
||||
- if (poolv != NULL) {
|
||||
- g_hash_table_remove (ml->normalised_hash, changes->uid_removed->pdata[i]);
|
||||
- e_poolv_destroy (poolv);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
/* check if the hidden state has changed, if so modify accordingly, then regenerate */
|
||||
if (ml->hidejunk || ml->hidedeleted)
|
||||
mail_folder_hide_by_flag (folder, ml, &changes, (ml->hidejunk ? CAMEL_MESSAGE_JUNK : 0) | (ml->hidedeleted ? CAMEL_MESSAGE_DELETED : 0));
|
||||
@@ -3028,7 +2980,11 @@
|
||||
}
|
||||
|
||||
/* reset the normalised sort performance hack */
|
||||
- g_hash_table_foreach_remove (message_list->normalised_hash, normalised_free, NULL);
|
||||
+ /* XXX GLib 2.12 added g_hash_table_remove_all() */
|
||||
+ g_hash_table_destroy (message_list->normalised_hash);
|
||||
+ message_list->normalised_hash = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
+ g_string_chunk_free (message_list->string_chunk);
|
||||
+ message_list->string_chunk = g_string_chunk_new (1024);
|
||||
|
||||
mail_regen_cancel(message_list);
|
||||
|
||||
@@ -3479,14 +3435,14 @@
|
||||
MESSAGE_LIST_LOCK (ml, hide_lock);
|
||||
if (ml->hidden == NULL) {
|
||||
ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
- ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
|
||||
+ ml->hidden_string_chunk = g_string_chunk_new (512);
|
||||
}
|
||||
|
||||
- uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]);
|
||||
+ uid = g_string_chunk_insert (ml->hidden_string_chunk, uids->pdata[i]);
|
||||
g_hash_table_insert (ml->hidden, uid, uid);
|
||||
for ( ; i < uids->len; i++) {
|
||||
if (g_hash_table_lookup (ml->uid_nodemap, uids->pdata[i])) {
|
||||
- uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]);
|
||||
+ uid = g_string_chunk_insert (ml->hidden_string_chunk, uids->pdata[i]);
|
||||
g_hash_table_insert (ml->hidden, uid, uid);
|
||||
}
|
||||
}
|
||||
@@ -3507,9 +3463,9 @@
|
||||
MESSAGE_LIST_LOCK (ml, hide_lock);
|
||||
if (ml->hidden) {
|
||||
g_hash_table_destroy (ml->hidden);
|
||||
- e_mempool_destroy (ml->hidden_pool);
|
||||
+ g_string_chunk_free (ml->hidden_string_chunk);
|
||||
ml->hidden = NULL;
|
||||
- ml->hidden_pool = NULL;
|
||||
+ ml->hidden_string_chunk = NULL;
|
||||
}
|
||||
ml->hide_before = ML_HIDE_NONE_START;
|
||||
ml->hide_after = ML_HIDE_NONE_END;
|
||||
@@ -3545,9 +3501,9 @@
|
||||
MESSAGE_LIST_LOCK(ml, hide_lock);
|
||||
if (ml->hidden) {
|
||||
g_hash_table_destroy (ml->hidden);
|
||||
- e_mempool_destroy (ml->hidden_pool);
|
||||
+ g_string_chunk_free (ml->hidden_string_chunk);
|
||||
ml->hidden = NULL;
|
||||
- ml->hidden_pool = NULL;
|
||||
+ ml->hidden_string_chunk = NULL;
|
||||
}
|
||||
ml->hide_before = ML_HIDE_NONE_START;
|
||||
ml->hide_after = ML_HIDE_NONE_END;
|
||||
@@ -3558,7 +3514,7 @@
|
||||
camel_file_util_decode_fixed_int32 (in, &version);
|
||||
if (version == HIDE_STATE_VERSION) {
|
||||
ml->hidden = g_hash_table_new(g_str_hash, g_str_equal);
|
||||
- ml->hidden_pool = e_mempool_new(512, 256, E_MEMPOOL_ALIGN_BYTE);
|
||||
+ ml->hidden_string_chunk = g_string_chunk_new(512);
|
||||
camel_file_util_decode_fixed_int32 (in, &lower);
|
||||
ml->hide_before = lower;
|
||||
camel_file_util_decode_fixed_int32 (in, &upper);
|
||||
@@ -3567,7 +3523,7 @@
|
||||
char *olduid, *uid;
|
||||
|
||||
if (camel_file_util_decode_string (in, &olduid) != -1) {
|
||||
- uid = e_mempool_strdup(ml->hidden_pool, olduid);
|
||||
+ uid = g_string_chunk_insert(ml->hidden_string_chunk, olduid);
|
||||
g_free (olduid);
|
||||
g_hash_table_insert(ml->hidden, uid, uid);
|
||||
}
|
||||
@@ -3717,12 +3673,12 @@
|
||||
|
||||
if (m->ml->hidden == NULL) {
|
||||
m->ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
- m->ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
|
||||
+ m->ml->hidden_string_chunk = g_string_chunk_new (512);
|
||||
}
|
||||
|
||||
for (i = 0; i < uidnew->len; i++) {
|
||||
if (g_hash_table_lookup (m->ml->hidden, uidnew->pdata[i]) == 0) {
|
||||
- char *uid = e_mempool_strdup (m->ml->hidden_pool, uidnew->pdata[i]);
|
||||
+ char *uid = g_string_chunk_insert (m->ml->hidden_string_chunk, uidnew->pdata[i]);
|
||||
g_hash_table_insert (m->ml->hidden, uid, uid);
|
||||
}
|
||||
}
|
||||
--- evolution-2.9.1/mail/message-list.h.ememory 2006-09-28 04:56:51.000000000 -0400
|
||||
+++ evolution-2.9.1/mail/message-list.h 2006-10-25 11:15:12.000000000 -0400
|
||||
@@ -102,11 +102,12 @@
|
||||
GHashTable *uid_nodemap; /* uid (from info) -> tree node mapping */
|
||||
|
||||
GHashTable *normalised_hash;
|
||||
+ GStringChunk *string_chunk;
|
||||
|
||||
/* UID's to hide. Keys in the mempool */
|
||||
/* IMPORTANT: You MUST have obtained the hide lock, to operate on this data */
|
||||
GHashTable *hidden;
|
||||
- struct _EMemPool *hidden_pool;
|
||||
+ GStringChunk *hidden_string_chunk;
|
||||
int hide_unhidden; /* total length, before hiding */
|
||||
int hide_before, hide_after; /* hide ranges of messages */
|
||||
|
||||
153
evolution-2.9.2-gtk-font-button.patch
Normal file
153
evolution-2.9.2-gtk-font-button.patch
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
--- evolution-2.9.2/mail/em-mailer-prefs.c.gtk-font-button 2006-08-09 04:43:27.000000000 -0400
|
||||
+++ evolution-2.9.2/mail/em-mailer-prefs.c 2006-11-11 08:31:53.000000000 -0500
|
||||
@@ -36,8 +36,8 @@
|
||||
#include <bonobo/bonobo-generic-factory.h>
|
||||
|
||||
#include <libgnomeui/gnome-color-picker.h>
|
||||
-#include <libgnomeui/gnome-font-picker.h>
|
||||
#include <gtk/gtkfilechooserbutton.h>
|
||||
+#include <gtk/gtkfontbutton.h>
|
||||
|
||||
#include <glade/glade.h>
|
||||
|
||||
@@ -535,12 +535,14 @@
|
||||
}
|
||||
|
||||
static void
|
||||
-font_changed (GnomeFontPicker *fontpicker, const char *arg1, EMMailerPrefs *prefs)
|
||||
+font_changed (GtkFontButton *font_button, EMMailerPrefs *prefs)
|
||||
{
|
||||
- const char *key;
|
||||
+ const gchar *key;
|
||||
+ const gchar *font_name;
|
||||
|
||||
- key = g_object_get_data ((GObject *) fontpicker, "key");
|
||||
- gconf_client_set_string (prefs->gconf, key, gnome_font_picker_get_font_name (fontpicker), NULL);
|
||||
+ key = g_object_get_data (G_OBJECT (font_button), "key");
|
||||
+ font_name = gtk_font_button_get_font_name (font_button);
|
||||
+ gconf_client_set_string (prefs->gconf, key, font_name, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -841,8 +843,8 @@
|
||||
|
||||
/* Mail Fonts */
|
||||
font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL);
|
||||
- prefs->font_fixed = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "FontFixed"));
|
||||
- gnome_font_picker_set_font_name (prefs->font_fixed, font);
|
||||
+ prefs->font_fixed = GTK_FONT_BUTTON (glade_xml_get_widget (gui, "FontFixed"));
|
||||
+ gtk_font_button_set_font_name (prefs->font_fixed, font);
|
||||
g_free (font);
|
||||
g_object_set_data ((GObject *) prefs->font_fixed, "key", "/apps/evolution/mail/display/fonts/monospace");
|
||||
g_signal_connect (prefs->font_fixed, "font-set", G_CALLBACK (font_changed), prefs);
|
||||
@@ -850,8 +852,8 @@
|
||||
gtk_widget_set_sensitive ((GtkWidget *) prefs->font_fixed, FALSE);
|
||||
|
||||
font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", NULL);
|
||||
- prefs->font_variable = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "FontVariable"));
|
||||
- gnome_font_picker_set_font_name (prefs->font_variable, font);
|
||||
+ prefs->font_variable = GTK_FONT_BUTTON (glade_xml_get_widget (gui, "FontVariable"));
|
||||
+ gtk_font_button_set_font_name (prefs->font_variable, font);
|
||||
g_free (font);
|
||||
g_object_set_data ((GObject *) prefs->font_variable, "key", "/apps/evolution/mail/display/fonts/variable");
|
||||
g_signal_connect (prefs->font_variable, "font-set", G_CALLBACK (font_changed), prefs);
|
||||
--- evolution-2.9.2/mail/em-mailer-prefs.h.gtk-font-button 2006-05-25 00:59:47.000000000 -0400
|
||||
+++ evolution-2.9.2/mail/em-mailer-prefs.h 2006-11-11 08:31:53.000000000 -0500
|
||||
@@ -39,7 +39,7 @@
|
||||
struct _GladeXML;
|
||||
struct _GnomeColorPicker;
|
||||
struct _GtkFileChooserbutton;
|
||||
-struct _GnomeFontPicker;
|
||||
+struct _GtkFontButton;
|
||||
struct _GConfClient;
|
||||
struct _GtkButton;
|
||||
struct _GtkTreeView;
|
||||
@@ -92,8 +92,8 @@
|
||||
struct _GtkFileChooserButton *notify_sound_file;
|
||||
|
||||
/* HTML Mail tab */
|
||||
- struct _GnomeFontPicker *font_variable;
|
||||
- struct _GnomeFontPicker *font_fixed;
|
||||
+ struct _GtkFontButton *font_variable;
|
||||
+ struct _GtkFontButton *font_fixed;
|
||||
struct _GtkToggleButton *font_share;
|
||||
|
||||
/* Loading Images */
|
||||
--- evolution-2.9.2/mail/mail-config.glade.gtk-font-button 2006-07-19 11:26:27.000000000 -0400
|
||||
+++ evolution-2.9.2/mail/mail-config.glade 2006-11-11 08:31:53.000000000 -0500
|
||||
@@ -4700,14 +4700,14 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
- <widget class="GnomeFontPicker" id="FontFixed">
|
||||
+ <widget class="GtkFontButton" id="FontFixed">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="title" translatable="yes">Select HTML fixed width font</property>
|
||||
- <property name="mode">GNOME_FONT_PICKER_MODE_FONT_INFO</property>
|
||||
+ <property name="show_style">True</property>
|
||||
<property name="show_size">True</property>
|
||||
- <property name="use_font_in_label">False</property>
|
||||
- <property name="label_font_size">14</property>
|
||||
+ <property name="use_font">False</property>
|
||||
+ <property name="use_size">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="font_set" handler="changed"/>
|
||||
</widget>
|
||||
@@ -4722,14 +4722,14 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
- <widget class="GnomeFontPicker" id="FontVariable">
|
||||
+ <widget class="GtkFontButton" id="FontVariable">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="title" translatable="yes">Select HTML variable width font</property>
|
||||
- <property name="mode">GNOME_FONT_PICKER_MODE_FONT_INFO</property>
|
||||
+ <property name="show_style">True</property>
|
||||
<property name="show_size">True</property>
|
||||
- <property name="use_font_in_label">False</property>
|
||||
- <property name="label_font_size">14</property>
|
||||
+ <property name="use_font">False</property>
|
||||
+ <property name="use_size">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="font_set" handler="changed"/>
|
||||
</widget>
|
||||
@@ -8484,14 +8484,14 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
- <widget class="GnomeFontPicker" id="print_fixed">
|
||||
+ <widget class="GtkFontButton" id="print_fixed">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="title" translatable="yes">Select HTML fixed width font for printing</property>
|
||||
- <property name="mode">GNOME_FONT_PICKER_MODE_FONT_INFO</property>
|
||||
+ <property name="show_style">True</property>
|
||||
<property name="show_size">True</property>
|
||||
- <property name="use_font_in_label">False</property>
|
||||
- <property name="label_font_size">14</property>
|
||||
+ <property name="use_font">False</property>
|
||||
+ <property name="use_size">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="font_set" handler="changed"/>
|
||||
</widget>
|
||||
@@ -8506,14 +8506,14 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
- <widget class="GnomeFontPicker" id="print_variable">
|
||||
+ <widget class="GtkFontButton" id="print_variable">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="title" translatable="yes">Select HTML variable width font for printing</property>
|
||||
- <property name="mode">GNOME_FONT_PICKER_MODE_FONT_INFO</property>
|
||||
+ <property name="show_style">True</property>
|
||||
<property name="show_size">True</property>
|
||||
- <property name="use_font_in_label">False</property>
|
||||
- <property name="label_font_size">14</property>
|
||||
+ <property name="use_font">False</property>
|
||||
+ <property name="use_size">False</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="font_set" handler="changed"/>
|
||||
</widget>
|
||||
1219
evolution-2.9.3-gtk-color-button.patch
Normal file
1219
evolution-2.9.3-gtk-color-button.patch
Normal file
File diff suppressed because it is too large
Load diff
86
evolution-2.9.3-meeting-list-view.patch
Normal file
86
evolution-2.9.3-meeting-list-view.patch
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
--- evolution-2.9.3/calendar/gui/e-meeting-list-view.c.meeting-list-view 2006-12-11 23:13:47.000000000 -0500
|
||||
+++ evolution-2.9.3/calendar/gui/e-meeting-list-view.c 2006-12-11 23:14:17.000000000 -0500
|
||||
@@ -623,18 +623,45 @@
|
||||
|
||||
}
|
||||
|
||||
+void
|
||||
+attendee_added_cb (EMeetingStore *store, GtkTreePath *path,
|
||||
+ GtkTreeIter *iter, EMeetingListView *view)
|
||||
+{
|
||||
+ EMeetingAttendee *attendee;
|
||||
+ gint row;
|
||||
+
|
||||
+ /* Add the new attendee to the name selector. */
|
||||
+ row = gtk_tree_path_get_indices (path) [0];
|
||||
+ attendee = e_meeting_store_find_attendee_at_row (store, row);
|
||||
+ e_meeting_list_view_add_attendee_to_name_selector (view, attendee);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+attendee_deleted_cb (EMeetingStore *store, GtkTreePath *path,
|
||||
+ EMeetingListView *view)
|
||||
+{
|
||||
+ EMeetingAttendee *attendee;
|
||||
+ gint row;
|
||||
+
|
||||
+ /* Remove the old attendee from the name selector. */
|
||||
+ row = gtk_tree_path_get_indices (path) [0];
|
||||
+ attendee = e_meeting_store_find_attendee_at_row (store, row);
|
||||
+ e_meeting_list_view_remove_attendee_from_name_selector (view, attendee);
|
||||
+}
|
||||
|
||||
EMeetingListView *
|
||||
e_meeting_list_view_new (EMeetingStore *store)
|
||||
{
|
||||
- EMeetingListView *view = g_object_new (E_TYPE_MEETING_LIST_VIEW, NULL);
|
||||
+ EMeetingListView *view;
|
||||
GtkTreeSelection *selection;
|
||||
|
||||
- if (view) {
|
||||
- view->priv->store = store;
|
||||
- gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store));
|
||||
- build_table (view);
|
||||
- }
|
||||
+ view = g_object_new (E_TYPE_MEETING_LIST_VIEW, NULL);
|
||||
+ view->priv->store = store;
|
||||
+ gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store));
|
||||
+ build_table (view);
|
||||
+
|
||||
+ g_signal_connect (store, "row-inserted", G_CALLBACK (attendee_added_cb), view);
|
||||
+ g_signal_connect (store, "row-deleted", G_CALLBACK (attendee_deleted_cb), view);
|
||||
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
|
||||
g_signal_connect (selection, "changed", G_CALLBACK (row_activated_cb), view);
|
||||
--- evolution-2.9.3/calendar/gui/e-meeting-store.c.meeting-list-view 2006-12-04 10:44:42.000000000 -0500
|
||||
+++ evolution-2.9.3/calendar/gui/e-meeting-store.c 2006-12-11 23:14:17.000000000 -0500
|
||||
@@ -794,14 +794,13 @@
|
||||
}
|
||||
|
||||
if (row != -1) {
|
||||
-
|
||||
- g_ptr_array_remove_index (store->priv->attendees, row);
|
||||
- g_object_unref (attendee);
|
||||
-
|
||||
path = gtk_tree_path_new ();
|
||||
gtk_tree_path_append_index (path, row);
|
||||
gtk_tree_model_row_deleted (GTK_TREE_MODEL (store), path);
|
||||
gtk_tree_path_free (path);
|
||||
+
|
||||
+ g_ptr_array_remove_index (store->priv->attendees, row);
|
||||
+ g_object_unref (attendee);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -815,10 +814,10 @@
|
||||
|
||||
for (i = 0; i < store->priv->attendees->len; i++) {
|
||||
EMeetingAttendee *attendee = g_ptr_array_index (store->priv->attendees, i);
|
||||
- g_object_unref (attendee);
|
||||
|
||||
gtk_tree_model_row_deleted (GTK_TREE_MODEL (store), path);
|
||||
gtk_tree_path_next (path);
|
||||
+ g_object_unref (attendee);
|
||||
}
|
||||
|
||||
g_ptr_array_set_size (store->priv->attendees, 0);
|
||||
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>
|
||||
63
evolution-2.9.3-unread-messages.patch
Normal file
63
evolution-2.9.3-unread-messages.patch
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
--- evolution-2.9.3/mail/em-folder-properties.c.unread-messages 2006-12-09 09:00:08.000000000 -0500
|
||||
+++ evolution-2.9.3/mail/em-folder-properties.c 2006-12-09 09:00:09.000000000 -0500
|
||||
@@ -145,27 +145,27 @@
|
||||
gtk_widget_show (table);
|
||||
gtk_box_pack_start ((GtkBox *) parent, table, TRUE, TRUE, 0);
|
||||
|
||||
- /* TODO: can this be done in a loop? */
|
||||
/* to be on the safe side, ngettext is used here, see e.g. comment #3 at bug 272567 */
|
||||
- label = gtk_label_new (ngettext ("Total messages:", "Total messages:", prop_data->total));
|
||||
+ label = gtk_label_new (ngettext ("Unread messages:", "Unread messages:", prop_data->unread));
|
||||
gtk_widget_show (label);
|
||||
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
|
||||
gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
|
||||
|
||||
- sprintf(countstr, "%d", prop_data->total);
|
||||
+ sprintf(countstr, "%d", prop_data->unread);
|
||||
label = gtk_label_new (countstr);
|
||||
gtk_widget_show (label);
|
||||
gtk_misc_set_alignment ((GtkMisc *) label, 1.0, 0.5);
|
||||
gtk_table_attach ((GtkTable *) table, label, 1, 2, row, row+1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
|
||||
row++;
|
||||
|
||||
+ /* TODO: can this be done in a loop? */
|
||||
/* to be on the safe side, ngettext is used here, see e.g. comment #3 at bug 272567 */
|
||||
- label = gtk_label_new (ngettext ("Unread messages:", "Unread messages:", prop_data->unread));
|
||||
+ label = gtk_label_new (ngettext ("Total messages:", "Total messages:", prop_data->total));
|
||||
gtk_widget_show (label);
|
||||
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
|
||||
gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
|
||||
|
||||
- sprintf(countstr, "%d", prop_data->unread);
|
||||
+ sprintf(countstr, "%d", prop_data->total);
|
||||
label = gtk_label_new (countstr);
|
||||
gtk_widget_show (label);
|
||||
gtk_misc_set_alignment ((GtkMisc *) label, 1.0, 0.5);
|
||||
--- evolution-2.9.3/mail/mail-component.c.unread-messages 2006-12-09 09:00:08.000000000 -0500
|
||||
+++ evolution-2.9.3/mail/mail-component.c 2006-12-09 09:00:09.000000000 -0500
|
||||
@@ -544,6 +544,9 @@
|
||||
|| g_ascii_strcasecmp(emfv->folder->full_name, ".") == 0)
|
||||
bits |= 8;
|
||||
|
||||
+ if (selected->len > 1)
|
||||
+ g_string_append_printf(tmp, ngettext ("%d selected, ", "%d selected, ", selected->len), selected->len);
|
||||
+
|
||||
if (bits == 1)
|
||||
g_string_append_printf(tmp, ngettext ("%d draft", "%d drafts", visible), visible);
|
||||
else if (bits == 2)
|
||||
@@ -553,13 +556,11 @@
|
||||
else {
|
||||
if (!emfv->hide_deleted)
|
||||
visible += deleted;
|
||||
+ if (unread && selected->len <= 1)
|
||||
+ g_string_append_printf(tmp, ngettext ("%d unread, ", "%d unread, ", unread), unread);
|
||||
g_string_append_printf(tmp, ngettext ("%d total", "%d total", visible), visible);
|
||||
- if (unread && selected->len <=1)
|
||||
- g_string_append_printf(tmp, ngettext (", %d unread", ", %d unread", unread), unread);
|
||||
}
|
||||
|
||||
- if (selected->len > 1)
|
||||
- g_string_append_printf(tmp, ngettext (", %d selected", ", %d selected", selected->len), selected->len);
|
||||
message_list_free_uids(emfv->list, selected);
|
||||
}
|
||||
|
||||
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
|
||||
11
evolution-2.9.4-view-message-source.patch
Normal file
11
evolution-2.9.4-view-message-source.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- evolution-2.9.4/mail/em-format-html.c.view-message-source 2006-12-20 10:51:00.000000000 -0500
|
||||
+++ evolution-2.9.4/mail/em-format-html.c 2006-12-21 10:08:02.000000000 -0500
|
||||
@@ -1872,7 +1872,7 @@
|
||||
filtered_stream = camel_stream_filter_new_with_stream ((CamelStream *) stream);
|
||||
html_filter = camel_mime_filter_tohtml_new (CAMEL_MIME_FILTER_TOHTML_CONVERT_NL
|
||||
| CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES
|
||||
- | CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT, 0);
|
||||
+ | CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT, 0);
|
||||
camel_stream_filter_add(filtered_stream, html_filter);
|
||||
camel_object_unref(html_filter);
|
||||
|
||||
2612
evolution.spec
2612
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
|
||||
09cc60b037849b3c9b34961eb7da217f evolution-2.10.3.tar.bz2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue