diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-04-30 02:16:43 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-04-30 02:16:43 +0800 |
commit | 8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39 (patch) | |
tree | 8b84648656eec372429a21410e7ea785338822e7 /addressbook/backend/ebook/e-card.c | |
parent | 9a5cce66b1781608f1af25f017a8ee46373ad4d2 (diff) | |
download | gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar.gz gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar.bz2 gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar.lz gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar.xz gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.tar.zst gsoc2013-evolution-8d848e0e56a38c4da1d9c47ebe2ac3e7d0a7da39.zip |
Added e_card_phone_new e_card_delivery_address_new,
2000-04-29 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-card.c, backend/ebook/e-card.h: Added
e_card_phone_new e_card_delivery_address_new,
e_card_delivery_address_to_string, e_card_name_copy,
e_card_name_new, e_card_name_to_string, and made e_card_name_free
public. Removed some unused code.
* backend/pas/pas-backend-file.c: Fixed a warning.
* contact-editor/Makefile.am: Added e-contact-editor-fullname.[ch]
and fullname.glade. Added e-name libs and includes.
* contact-editor/e-contact-editor-fullname.c,
contact-editor/e-contact-editor-fullname.h,
contact-editor/fullname-strings.h, contact-editor/fullname.glade:
New dialog for editing the fields of a name separately.
* contact-editor/e-contact-editor.c,
contact-editor/e-contact-editor.h: Create an
EContactEditorFullname when you click on the Full Name button.
Maintain a parsed name at all times.
* gui/component/Makefile.am, gui/minicard/Makefile.am: Added
e-name libs.
svn path=/trunk/; revision=2683
Diffstat (limited to 'addressbook/backend/ebook/e-card.c')
-rw-r--r-- | addressbook/backend/ebook/e-card.c | 206 |
1 files changed, 157 insertions, 49 deletions
diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c index 1b27ed164e..eea5c16dc1 100644 --- a/addressbook/backend/ebook/e-card.c +++ b/addressbook/backend/ebook/e-card.c @@ -62,7 +62,6 @@ static void e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void assign_string(VObject *vobj, char **string); -static void e_card_name_free(ECardName *name); char *e_v_object_get_child_value(VObject *vobj, char *name); static ECardDate e_card_date_from_string (char *str); @@ -772,12 +771,23 @@ e_card_class_init (ECardClass *klass) object_class->set_arg = e_card_set_arg; } +ECardPhone * +e_card_phone_new (void) +{ + ECardPhone *newphone = g_new(ECardPhone, 1); + + newphone->number = NULL; + newphone->flags = 0; + + return newphone; +} + void e_card_phone_free (ECardPhone *phone) { if ( phone ) { - if ( phone->number ) - g_free(phone->number); + g_free(phone->number); + g_free(phone); } } @@ -794,24 +804,35 @@ e_card_phone_copy (const ECardPhone *phone) return NULL; } +ECardDeliveryAddress * +e_card_delivery_address_new (void) +{ + ECardDeliveryAddress *newaddr = g_new(ECardDeliveryAddress, 1); + + newaddr->po = NULL; + newaddr->ext = NULL; + newaddr->street = NULL; + newaddr->city = NULL; + newaddr->region = NULL; + newaddr->code = NULL; + newaddr->country = NULL; + newaddr->flags = 0; + + return newaddr; +} + void e_card_delivery_address_free (ECardDeliveryAddress *addr) { if ( addr ) { - if ( addr->po ) - g_free(addr->po); - if ( addr->ext ) - g_free(addr->ext); - if ( addr->street ) - g_free(addr->street); - if ( addr->city ) - g_free(addr->city); - if ( addr->region ) - g_free(addr->region); - if ( addr->code ) - g_free(addr->code); - if ( addr->country ) - g_free(addr->country); + g_free(addr->po); + g_free(addr->ext); + g_free(addr->street); + g_free(addr->city); + g_free(addr->region); + g_free(addr->code); + g_free(addr->country); + g_free(addr); } } @@ -834,12 +855,66 @@ e_card_delivery_address_copy (const ECardDeliveryAddress *addr) return NULL; } +char * +e_card_delivery_address_to_string(const ECardDeliveryAddress *addr) +{ + char *strings[4], **stringptr = strings; + char *line1, *line22, *line2; + char *final; + if (addr->po && *addr->po) + *(stringptr++) = addr->po; + if (addr->street && *addr->street) + *(stringptr++) = addr->street; + if (addr->ext && *addr->ext) + *(stringptr++) = addr->ext; + *stringptr = NULL; + line1 = g_strjoinv(" ", strings); + stringptr = strings; + if (addr->region && *addr->region) + *(stringptr++) = addr->region; + if (addr->code && *addr->code) + *(stringptr++) = addr->code; + *stringptr = NULL; + line22 = g_strjoinv(" ", strings); + stringptr = strings; + if (addr->city && *addr->city) + *(stringptr++) = addr->city; + if (line22 && *line22) + *(stringptr++) = line22; + *stringptr = NULL; + line2 = g_strjoinv(", ", strings); + stringptr = strings; + if (line1 && *line1) + *(stringptr++) = line1; + if (line2 && *line2) + *(stringptr++) = line2; + if (addr->country && *addr->country) + *(stringptr++) = addr->country; + *stringptr = NULL; + final = g_strjoinv("\n", strings); + g_free(line1); + g_free(line22); + g_free(line2); + return final; +} + +ECardAddrLabel * +e_card_address_label_new (void) +{ + ECardAddrLabel *newaddr = g_new(ECardAddrLabel, 1); + + newaddr->data = NULL; + newaddr->flags = 0; + + return newaddr; +} + void e_card_address_label_free (ECardAddrLabel *addr) { if ( addr ) { - if ( addr->data ) - g_free(addr->data); + g_free(addr->data); + g_free(addr); } } @@ -856,6 +931,69 @@ e_card_address_label_copy (const ECardAddrLabel *addr) return NULL; } +ECardName *e_card_name_new(void) +{ + ECardName *newname = g_new(ECardName, 1); + + newname->prefix = NULL; + newname->given = NULL; + newname->additional = NULL; + newname->family = NULL; + newname->suffix = NULL; + + return newname; +} + +void +e_card_name_free(ECardName *name) +{ + if (name) { + if ( name->prefix ) + g_free(name->prefix); + if ( name->given ) + g_free(name->given); + if ( name->additional ) + g_free(name->additional); + if ( name->family ) + g_free(name->family); + if ( name->suffix ) + g_free(name->suffix); + g_free ( name ); + } +} + +ECardName * +e_card_name_copy(const ECardName *name) +{ + ECardName *newname = g_new(ECardName, 1); + + newname->prefix = g_strdup(name->prefix); + newname->given = g_strdup(name->given); + newname->additional = g_strdup(name->additional); + newname->family = g_strdup(name->family); + newname->suffix = g_strdup(name->suffix); + + return newname; +} + +char * +e_card_name_to_string(const ECardName *name) +{ + char *strings[6], **stringptr = strings; + if (name->prefix && *name->prefix) + *(stringptr++) = name->prefix; + if (name->given && *name->given) + *(stringptr++) = name->given; + if (name->additional && *name->additional) + *(stringptr++) = name->additional; + if (name->family && *name->family) + *(stringptr++) = name->family; + if (name->suffix && *name->suffix) + *(stringptr++) = name->suffix; + *stringptr = NULL; + return g_strjoinv(" ", strings); +} + /* * ECard lifecycle management and vCard loading/saving. */ @@ -1215,18 +1353,6 @@ e_card_str_free (CardStrProperty *sp) } static void -e_card_name_free (CardName *name) -{ - g_free (name->family); - g_free (name->given); - g_free (name->additional); - g_free (name->prefix); - g_free (name->suffix); - - e_card_prop_free (name->prop); -} - -static void e_card_photo_free (CardPhoto *photo) { g_free (photo->data); @@ -2688,24 +2814,6 @@ e_card_date_from_string (char *str) return date; } -static void -e_card_name_free(ECardName *name) -{ - if ( name ) { - if ( name->prefix ) - g_free(name->prefix); - if ( name->given ) - g_free(name->given); - if ( name->additional ) - g_free(name->additional); - if ( name->family ) - g_free(name->family); - if ( name->suffix ) - g_free(name->suffix); - g_free ( name ); - } -} - char * e_v_object_get_child_value(VObject *vobj, char *name) { |