diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-10-24 09:50:09 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-10-25 19:49:56 +0200 |
commit | 3174b7b73fe2cfb08e39fd95c34195d1e25d1d08 (patch) | |
tree | cfc0d11e68aec16406cbb7a62c1508dc76a0d4ef /src/mm-sms-part-cdma.c | |
parent | 57882f6dad82e605fbe39fe292145939811fe64d (diff) |
sms-part-cdma: support receiving SMS with Latin encoding
Diffstat (limited to 'src/mm-sms-part-cdma.c')
-rw-r--r-- | src/mm-sms-part-cdma.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-sms-part-cdma.c b/src/mm-sms-part-cdma.c index 5a913427..46970c99 100644 --- a/src/mm-sms-part-cdma.c +++ b/src/mm-sms-part-cdma.c @@ -862,6 +862,32 @@ read_bearer_data_user_data (MMSmsPart *sms_part, break; } + case ENCODING_LATIN: { + gchar *latin; + gchar *text; + guint i; + + SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8)); + + latin = g_malloc (num_fields + 1); + for (i = 0; i < num_fields; i++) { + latin[i] = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8); + OFFSETS_UPDATE (8); + } + latin[i] = '\0'; + + text = g_convert (latin, -1, "UTF-8", "ISO−8859−1", NULL, NULL, NULL); + if (!text) { + mm_dbg (" text/data: ignored (latin to UTF-8 conversion error)"); + } else { + mm_dbg (" text: '%s'", text); + mm_sms_part_take_text (sms_part, text); + } + + g_free (latin); + break; + } + default: mm_dbg (" text/data: ignored (unsupported encoding)"); } |