+2007-06-02 [colin] 2.9.2cvs27
+
+ * src/addressbook.c
+ Fix possible crash, fix ldap write bugs
+ * src/ldapupdate.c
+ Fix ldap write bugs - patch by Michael
+ Rasmussen
+ * src/alertpanel.c
+ * src/alertpanel.h
+ Add a hook whenever alertpanel opens/closes
+
2007-05-31 [wwp] 2.9.2cvs26
* src/prefs_compose_writing.c
( cvs diff -u -r 1.60.2.88 -r 1.60.2.89 src/addressbook.c; ) > 2.9.2cvs24.patchset
( cvs diff -u -r 1.382.2.382 -r 1.382.2.383 src/compose.c; ) > 2.9.2cvs25.patchset
( cvs diff -u -r 1.1.2.19 -r 1.1.2.20 src/prefs_compose_writing.c; cvs diff -u -r 1.1.2.19 -r 1.1.2.20 src/prefs_quote.c; ) > 2.9.2cvs26.patchset
+( cvs diff -u -r 1.60.2.89 -r 1.60.2.90 src/addressbook.c; cvs diff -u -r 1.17.2.33 -r 1.17.2.34 src/alertpanel.c; cvs diff -u -r 1.5.2.11 -r 1.5.2.12 src/alertpanel.h; cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/ldapupdate.c; ) > 2.9.2cvs27.patchset
MICRO_VERSION=2
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=26
+EXTRA_VERSION=27
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
alertpanel( _("Add address(es)"),
addressbook_err2string(_lutErrorsLDAP_, server->retVal),
GTK_STOCK_CLOSE, NULL, NULL );
+ server->retVal = LDAPRC_SUCCESS;
return;
}
}
text[COL_NAME] = str;
}
#ifdef USE_LDAP
- else if( abf->type == ADDR_IF_LDAP && person->nickName ) {
+ else if( abf && abf->type == ADDR_IF_LDAP &&
+ person && person->nickName ) {
if (person->nickName) {
if (strcmp(person->nickName, "") != 0) {
text[COL_NAME] = person->nickName;
#define TITLE_HEIGHT 72
#define MESSAGE_HEIGHT 62
-gboolean alertpanel_is_open = FALSE;
static AlertValue value;
-
+static gboolean alertpanel_is_open = FALSE;
static GtkWidget *dialog;
static void alertpanel_show (void);
{
if (alertpanel_is_open)
return -1;
- else
+ else {
alertpanel_is_open = TRUE;
-
+ hooks_invoke(ALERTPANEL_OPENED_HOOKLIST, &alertpanel_is_open);
+ }
alertpanel_create(title, message, button1_label, button2_label,
button3_label, can_disable, widget, alert_type,
default_value);
{
if (alertpanel_is_open)
return;
- else
+ else {
alertpanel_is_open = TRUE;
+ hooks_invoke(ALERTPANEL_OPENED_HOOKLIST, &alertpanel_is_open);
+ }
alertpanel_create(title, message, GTK_STOCK_CLOSE, NULL, NULL,
FALSE, NULL, type, G_ALERTDEFAULT);
GTK_EVENTS_FLUSH();
alertpanel_is_open = FALSE;
+ hooks_invoke(ALERTPANEL_OPENED_HOOKLIST, &alertpanel_is_open);
+
inc_unlock();
}
} AlertType;
#define G_ALERT_VALUE_MASK 0x0000ffff
+#define ALERTPANEL_OPENED_HOOKLIST "alertpanel_opened_hooklist"
+
AlertValue alertpanel_full(const gchar *title, const gchar *message,
const gchar *button1_label,
const gchar *button2_label,
* Outstanding bugs
* 1) When adding a contact to an empty addressbook from the pop-up menu
* when right-clicking on an email address causes claws-mail to crash in
- * addritem.c line 965. Severity: Show stopper.
+ * addritem.c line 965. Severity: Show stopper. Solved in 2.9.2cvs17
* 2) Updating a contact gets lost if the user makes a new search on the
- * same LdapServer. Severity: Medium.
+ * same LdapServer. Severity: Medium. Solved in 2.9.2cvs17 (patch added to solve 1) also solved this bug)
* 3) After adding a new contact the displayName for the contact is empty
* until the user makes a reread from the LdapServer. Severity: minor.
+ * Solved in 2.9.2cvs24
*/
#ifdef HAVE_CONFIG_H
if (displayName)
person->nickName = g_strdup(displayName);
}
+ if (server->retVal != LDAPRC_SUCCESS) {
+ if (person) {
+ ItemPerson *res =
+ addrcache_remove_person(server->addressCache, person);
+ if (!res)
+ g_critical(N_("ldapsvr_update_book: Could not clean cache\n"));
+ else
+ addritem_free_item_person(res);
+ }
+ }
if (ld)
ldapsvr_disconnect(ld);
/* ldapsvr_force_refresh(server);
}
if (email == NULL) {
server->retVal = LDAPRC_NODN;
+ clean_up(ld, server, contact);
return;
}
base_dn = g_strdup_printf("mail=%s,%s", email, server->control->baseDN);
fprintf(stderr, "new dn: %s\n", newRdn);
fprintf(stderr, "LDAP Error(ldap_modrdn2_s) failed[0x%x]: %s\n", rc, ldap_err2string(rc));
g_free(newRdn);
+ clean_up(ld, server, contact);
return;
}
}
clean_up(ld, server, contact);
return;
}
+ server->retVal = LDAPRC_SUCCESS;
rc = ldap_delete_ext_s(ld, dn, NULL, NULL);
if (rc) {
fprintf(stderr, "ldap_modify for dn=%s\" failed[0x%x]: %s\n",