summaryrefslogtreecommitdiff
path: root/src/mm-sms-part-cdma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-sms-part-cdma.c')
-rw-r--r--src/mm-sms-part-cdma.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-sms-part-cdma.c b/src/mm-sms-part-cdma.c
index 5a913427a..46970c998 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)");
}