From 01a17f5c6c322f116e0a20647d3b9f2dc0276fef Mon Sep 17 00:00:00 2001 From: Nathan Williams Date: Fri, 13 Apr 2012 10:50:34 -0400 Subject: [PATCH] helpers: adjust parsing of +CNUM response to permit spaces in the alphanumeric descriptor. This permits matching a response such as '"Line 1","+19999999999",145', which previously did not match. Change-Id: I666af8774507c6c3b3e214b820449542065dd8b4 --- src/mm-modem-helpers.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index 7302155e..a99eac35 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -1047,14 +1047,15 @@ mm_3gpp_parse_cnum_exec_response (const gchar *reply, if (!reply || !reply[0]) return NULL; - r = g_regex_new ("\\+CNUM:\\s*\"?\\S*\"?,\"(\\S+)\",\\d", G_REGEX_UNGREEDY, 0, NULL); + r = g_regex_new ("\\+CNUM:\\s*((\"([^\"]|(\\\"))*\")|([^,]*)),\"(?\\S+)\",\\d", + G_REGEX_UNGREEDY, 0, NULL); g_assert (r != NULL); g_regex_match (r, reply, 0, &match_info); while (g_match_info_matches (match_info)) { gchar *number; - number = g_match_info_fetch (match_info, 1); + number = g_match_info_fetch_named (match_info, "num"); if (number && number[0]) { if (!array)