summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-04-02 11:19:03 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-04-02 11:19:03 -0500
commit5665cefd475ba97653d8c3bdc399843127e9a775 (patch)
tree81f5283a94192a6edfaef13260c4bb9f8eba6e5b /src
parentaf3af57696188b7534cadd241e4b291cb628137f (diff)
downloadofono-5665cefd475ba97653d8c3bdc399843127e9a775.tar.bz2
Fix: Tweak the language parser
Diffstat (limited to 'src')
-rw-r--r--src/stkutil.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index 9ba7fa0d..8e56972f 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -979,7 +979,7 @@ static gboolean parse_dataobj_dtmf_string(struct comprehension_tlv_iter *iter,
static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
void *user)
{
- char **lang = user;
+ char *lang = user;
const unsigned char *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
@@ -988,7 +988,14 @@ static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
data = comprehension_tlv_iter_get_data(iter);
- memcpy(*lang, data, len);
+ /*
+ * This is a 2 character pair as defined in ISO 639, coded using
+ * GSM default 7 bit alphabet with bit 8 set to 0. Since the english
+ * letters have the same mapping in GSM as ASCII, no conversion
+ * is required here
+ */
+ memcpy(lang, data, len);
+ lang[len] = '\0';
return TRUE;
}