summaryrefslogtreecommitdiff
path: root/src/smsutil.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2018-12-22 16:00:19 -0600
committerDenis Kenzior <denkenz@gmail.com>2018-12-27 18:18:51 -0600
commit4059d4226bc4cf9afac361db5d52fa6c2b20249d (patch)
tree58a4b8cbbe76bddea173ae473c4d7a876d3c3042 /src/smsutil.c
parent44415e754b4606043c9975cb56eb66e945067ed2 (diff)
downloadofono-4059d4226bc4cf9afac361db5d52fa6c2b20249d.tar.gz
util: Switch character conversions to ell
Switch various conversions from GSM/UCS2 to UTF8 from glib based implementation over to ell. This also converts all related g_free calls to l_free calls (though in the end they are equivalent calls to free)
Diffstat (limited to 'src/smsutil.c')
-rw-r--r--src/smsutil.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index 23472e84..8c084d42 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -677,10 +677,9 @@ gboolean sms_decode_address_field(const unsigned char *pdu, int len,
return FALSE;
utf8 = convert_gsm_to_utf8(res, written, NULL, NULL, 0);
-
l_free(res);
- if (utf8 == NULL)
+ if (!utf8)
return FALSE;
/*
@@ -688,13 +687,12 @@ gboolean sms_decode_address_field(const unsigned char *pdu, int len,
* 22 bytes+terminator in UTF-8.
*/
if (strlen(utf8) > 22) {
- g_free(utf8);
+ l_free(utf8);
return FALSE;
}
strcpy(out->address, utf8);
-
- g_free(utf8);
+ l_free(utf8);
}
return TRUE;
@@ -2294,7 +2292,7 @@ char *sms_decode_text(GSList *sms_list)
single_shift);
if (converted) {
g_string_append(str, converted);
- g_free(converted);
+ l_free(converted);
}
} else {
const guint8 *from = ud + taken;
@@ -4107,7 +4105,7 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang)
}
}
- buf = g_new(unsigned char, bufsize);
+ buf = l_new(unsigned char, bufsize);
bufsize = 0;
for (l = cbs_list; l; l = l->next) {
@@ -4203,10 +4201,9 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang)
if (charset == SMS_CHARSET_7BIT)
utf8 = convert_gsm_to_utf8(buf, bufsize, NULL, NULL, 0);
else
- utf8 = g_convert((char *) buf, bufsize, "UTF-8//TRANSLIT",
- "UCS-2BE", NULL, NULL, NULL);
+ utf8 = l_utf8_from_ucs2be(buf, bufsize);
- g_free(buf);
+ l_free(buf);
return utf8;
}