Minor optimization in the contact handling event trigger

This commit is contained in:
Pierre Pronchery 2010-05-09 18:39:21 +00:00
parent b9197def55
commit a7aca56b5b

View File

@ -1041,6 +1041,7 @@ static int _gsm_trigger_clip(GSM * gsm, char const * result)
if(sscanf(result, "\"%31[^\"]\", %u", number, if(sscanf(result, "\"%31[^\"]\", %u", number,
&gsm->event.call_presentation.format) != 2) &gsm->event.call_presentation.format) != 2)
return 1; /* XXX report error? */ return 1; /* XXX report error? */
number[sizeof(number) - 1] = '\0';
gsm->event.call_presentation.number = number; gsm->event.call_presentation.number = number;
return _gsm_event_send(gsm, GSM_EVENT_TYPE_CALL_PRESENTATION); return _gsm_event_send(gsm, GSM_EVENT_TYPE_CALL_PRESENTATION);
} }
@ -1167,7 +1168,6 @@ static int _gsm_trigger_cpbr(GSM * gsm, char const * result)
{ {
unsigned int start; unsigned int start;
unsigned int end; unsigned int end;
unsigned int index;
char number[32]; char number[32];
char name[32]; char name[32];
gchar * p; gchar * p;
@ -1177,21 +1177,22 @@ static int _gsm_trigger_cpbr(GSM * gsm, char const * result)
#endif #endif
if(sscanf(result, "(%u-%u)", &start, &end) == 2) if(sscanf(result, "(%u-%u)", &start, &end) == 2)
return gsm_event(gsm, GSM_EVENT_TYPE_CONTACT_LIST, start, end); return gsm_event(gsm, GSM_EVENT_TYPE_CONTACT_LIST, start, end);
if(sscanf(result, "%u,\"%31[^\"]\",145,\"%31[^\"]\"", &index, number, if(sscanf(result, "%u,\"%31[^\"]\",145,\"%31[^\"]\"",
name) != 3 &gsm->event.contact.index, number, name) != 3
&& sscanf(result, "%u,\"%31[^\"]\",129,\"%31[^\"]\"", && sscanf(result, "%u,\"%31[^\"]\",129,\"%31[^\"]\"",
&index, number, name) != 3) &gsm->event.contact.index, number, name) != 3)
return 1; return 1;
number[sizeof(number) - 1] = '\0'; number[sizeof(number) - 1] = '\0';
gsm->event.contact.number = number;
name[sizeof(name) - 1] = '\0'; name[sizeof(name) - 1] = '\0';
gsm->event.contact.name = name;
if((p = g_convert(name, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL)) if((p = g_convert(name, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL))
!= NULL) != NULL)
{ {
snprintf(name, sizeof(name), "%s", p); snprintf(name, sizeof(name), "%s", p);
g_free(p); g_free(p);
} }
/* XXX convert to _gsm_event_send() */ return _gsm_event_send(gsm, GSM_EVENT_TYPE_CONTACT);
return gsm_event(gsm, GSM_EVENT_TYPE_CONTACT, index, name, number);
} }