summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2012-02-10 00:38:37 -0600
committerDenis Kenzior <denkenz@gmail.com>2012-02-10 00:38:37 -0600
commit9d666ccce08e89aa32314487f12438adcd636126 (patch)
tree687a37587cf076a20e34a06461edfcadb9cbe019 /drivers
parent2708ca3b63275a4496c692cddc6741fc838f0c1f (diff)
downloadofono-9d666ccce08e89aa32314487f12438adcd636126.tar.bz2
ifx: Don't use g_utf8_validate
Emergency Numbers can only be digits, so there's no point to use the 'Hammer of Thor' that is g_utf8_validate when a much simpler function will do the job just as well.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ifxmodem/voicecall.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ifxmodem/voicecall.c b/drivers/ifxmodem/voicecall.c
index a2612134..534a97ab 100644
--- a/drivers/ifxmodem/voicecall.c
+++ b/drivers/ifxmodem/voicecall.c
@@ -794,7 +794,8 @@ static void xlema_notify(GAtResult *result, gpointer user_data)
struct voicecall_data *vd = ofono_voicecall_get_data(vc);
GAtResultIter iter;
int index, total_cnt;
- const char *number, *end;
+ const char *number;
+ int len;
int count = (vd->en_list == NULL) ? 0 : g_strv_length(vd->en_list);
g_at_result_iter_init(&iter, result);
@@ -826,12 +827,11 @@ static void xlema_notify(GAtResult *result, gpointer user_data)
if (vd->en_list == NULL)
vd->en_list = g_new0(char *, total_cnt + 1);
- if (g_utf8_validate(number, -1, &end) == FALSE) {
- vd->en_list[count] = g_strndup(number, end - number);
- ofono_warn("Malformed emergency number: %s",
- vd->en_list[count]);
- } else
- vd->en_list[count] = g_strdup(number);
+ len = strspn(number, "0123456789");
+ vd->en_list[count] = g_strndup(number, len);
+
+ if (number[len] != '\0')
+ ofono_warn("Malformed emergency number: %.*s", len, number);
done:
if (index != total_cnt)