summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-19 08:38:24 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-06-19 21:12:19 -0500
commit492795c4c890b0ed34eb4df190ed0376e9f01df9 (patch)
treeecfce7e944d26f311a3347bac4d66b1a0924a3d6 /src
parentb49479b2b45f360663d485badaaf2f4e179c932c (diff)
downloadofono-492795c4c890b0ed34eb4df190ed0376e9f01df9.tar.bz2
Add utility function
Diffstat (limited to 'src')
-rw-r--r--src/smsutil.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index d6147681..6d4ac127 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -1933,6 +1933,11 @@ unsigned char *sms_decode_datagram(GSList *sms_list, long *out_len)
return buf;
}
+static inline int sms_text_capacity_gsm(int max, int offset)
+{
+ return max - (offset * 8 + 6) / 7;
+}
+
/*!
* Decodes a list of SMSes that contain a text in either 7bit or UCS2 encoding.
* The list must be sorted in order of the sequence number. This function
@@ -1985,7 +1990,7 @@ char *sms_decode_text(GSList *sms_list)
if (charset == SMS_CHARSET_7BIT) {
unsigned char buf[160];
long written;
- int max_chars = udl - (taken * 8 + 6) / 7;
+ int max_chars = sms_text_capacity_gsm(udl, taken);
unpack_7bit_own_buf(ud + taken, udl_in_bytes - taken,
taken, FALSE, max_chars,