2010-08-17 11:10:44

by Lukasz Pawlik

[permalink] [raw]
Subject: [PATCH] Fix problem with filling ADR with unneeded semicolons

Previously in a phonebook pull request ADR was filled with six
semicolons when contact address entry was empty in phonebook. This
patch fixes this problem. Address is send as an empty string.
---
plugins/vcard.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/plugins/vcard.c b/plugins/vcard.c
index 80f8265..7333a68 100644
--- a/plugins/vcard.c
+++ b/plugins/vcard.c
@@ -155,6 +155,26 @@ static gboolean contact_fields_present(struct phonebook_contact * contact)
return FALSE;
}

+static gboolean address_fields_present(struct phonebook_contact *contact)
+{
+ if (contact->pobox && strlen(contact->pobox))
+ return TRUE;
+ if (contact->extended && strlen(contact->extended))
+ return TRUE;
+ if (contact->street && strlen(contact->street))
+ return TRUE;
+ if (contact->locality && strlen(contact->locality))
+ return TRUE;
+ if (contact->region && strlen(contact->region))
+ return TRUE;
+ if (contact->postal && strlen(contact->postal))
+ return TRUE;
+ if (contact->country && strlen(contact->country))
+ return TRUE;
+
+ return FALSE;
+}
+
static void vcard_printf_name(GString *vcards,
struct phonebook_contact *contact)
{
@@ -253,6 +273,11 @@ static void vcard_printf_email(GString *vcards, const char *email)

static void vcard_printf_adr(GString *vcards, struct phonebook_contact *contact)
{
+ if (address_fields_present(contact) == FALSE) {
+ vcard_printf(vcards, "ADR:");
+ return;
+ }
+
vcard_printf(vcards, "ADR:%s;%s;%s;%s;%s;%s;%s", contact->pobox,
contact->extended, contact->street,
contact->locality, contact->region,
--
1.7.0.4



2010-08-17 11:50:39

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Fix problem with filling ADR with unneeded semicolons

Hi Lukasz,

On Tue, Aug 17, 2010, Lukasz Pawlik wrote:
> Previously in a phonebook pull request ADR was filled with six
> semicolons when contact address entry was empty in phonebook. This
> patch fixes this problem. Address is send as an empty string.
> ---
> plugins/vcard.c | 25 +++++++++++++++++++++++++
> 1 files changed, 25 insertions(+), 0 deletions(-)

Thanks. The patch is now upstream.

Johan

2010-08-16 15:16:06

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Fix problem with filling ADR with unneeded semicolons

Hi Lucasz,

On Mon, Aug 16, 2010, Lukasz Pawlik wrote:
> Previously in a phonebook pull request ADR was filled with six
> semicolons when contact address entry was empty in phonebook. This
> patch fixes this problem. Address is send as an empty string.
> ---
> plugins/vcard.c | 25 +++++++++++++++++++++++++
> 1 files changed, 25 insertions(+), 0 deletions(-)

Thanks for the patch, but it'll need some coding style cleanup before
going upstream:

> +static gboolean address_fields_present(struct phonebook_contact * contact)

No space after *

> + if (contact->country && strlen(contact->country))
> + return TRUE;
> +

The last line isn't really empty byt has an extra tab. Please remove it.

> + if (address_fields_present(contact) == FALSE) {
> + vcard_printf(vcards, "ADR:");
> + return;

There's an extra tab at the end of the line. Please remove it.

> + }
> +

Same here.

Johan