gnokii-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] libgnokii and core programs branch, master, updated. rel_0_6_29-19


From: Pawel Kot
Subject: [SCM] libgnokii and core programs branch, master, updated. rel_0_6_29-193-gf815070
Date: Sat, 19 Feb 2011 20:51:05 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "libgnokii and core programs".

The branch, master has been updated
       via  f815070e50dab5dba0caa82764eda90752132384 (commit)
       via  c2adc2d43873402e5357b75a9bebfe52c65244fe (commit)
       via  940f6fe6217786f3f86283e1fedfd110882f5d6e (commit)
      from  71a837eff53166d97e5d62912eb85e0223ccaf3a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/gnokii.git/commit/?id=f815070e50dab5dba0caa82764eda90752132384


commit f815070e50dab5dba0caa82764eda90752132384
Author: Pawel Kot <address@hidden>
Date:   Sat Feb 19 17:37:16 2011 +0100

    Fix SMS encoding.
    
    When multibyte encodings were on the Default Alphabet SMS input, it could
    get split in the middle.

diff --git a/ChangeLog b/ChangeLog
index fd5a625..b4acdbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
       could be used                                 (Daniele Forsi)
     o fix setting alarms for zero length events read from icalendar
       files (eg. birthdays)                         (Daniele Forsi)
+    o fix sms encoding: don't break multibyte characters when
+      creating multipart messages                       (Paweł Kot)
  * nk6510 driver updates
     o fix calendar handling issues (few off-by-ones)    (Paweł Kot)
     o implement deletecalendarnote for series40 3rd+ Ed (Paweł Kot)
diff --git a/common/gsm-sms.c b/common/gsm-sms.c
index 515bba6..ec05a46 100644
--- a/common/gsm-sms.c
+++ b/common/gsm-sms.c
@@ -1444,6 +1444,10 @@ static gn_error sms_data_encode(gn_sms *sms, gn_sms_raw 
*rawsms)
                                dprintf("UCS-2\n");
                                rawsms->dcs |= 0x08;
                                length = ucs2_encode(rawsms->user_data + 
offset, GN_SMS_LONG_MAX_LENGTH, sms->user_data[i].u.text, length);
+                               if (length < 0) {
+                                       dprintf("Failed to encode UCS2 
message\n");
+                                       return GN_ERR_WRONGDATAFORMAT;
+                               }
                                rawsms->user_data_length = rawsms->length = 
length + udh_length;
                                break;
                        default:
@@ -1749,6 +1753,8 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.maximum_number = 
count;
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.current_number = i+1;
                switch (data->sms->dcs.u.general.alphabet) {
+               /* Needed for ucs2_encode */
+               char buf[1000];
                case GN_SMS_DCS_DefaultAlphabet:
                        start += copied;
                        memset(&data->sms->user_data[0], 0, 
sizeof(gn_sms_user_data));
@@ -1769,6 +1775,9 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                        /* avoid off-by-one problem */
                        if (size > max_sms_len * 8 / 7)
                                copied--;
+                       /* Make sure that we don't split input char in half */
+                       while (ucs2_encode(buf, 1000, ud[0].u.text+start, 
copied) < 0)
+                               copied--;
                        dprintf("\tnumber of processed characters: %d\n\tsize 
of the input: %d\n", copied, size);
                        data->sms->user_data[0].length = copied;
                        memcpy(data->sms->user_data[0].u.text, 
ud[0].u.text+start, copied);

http://git.savannah.gnu.org/cgit/gnokii.git/commit/?id=c2adc2d43873402e5357b75a9bebfe52c65244fe


commit f815070e50dab5dba0caa82764eda90752132384
Author: Pawel Kot <address@hidden>
Date:   Sat Feb 19 17:37:16 2011 +0100

    Fix SMS encoding.
    
    When multibyte encodings were on the Default Alphabet SMS input, it could
    get split in the middle.

diff --git a/ChangeLog b/ChangeLog
index fd5a625..b4acdbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
       could be used                                 (Daniele Forsi)
     o fix setting alarms for zero length events read from icalendar
       files (eg. birthdays)                         (Daniele Forsi)
+    o fix sms encoding: don't break multibyte characters when
+      creating multipart messages                       (Paweł Kot)
  * nk6510 driver updates
     o fix calendar handling issues (few off-by-ones)    (Paweł Kot)
     o implement deletecalendarnote for series40 3rd+ Ed (Paweł Kot)
diff --git a/common/gsm-sms.c b/common/gsm-sms.c
index 515bba6..ec05a46 100644
--- a/common/gsm-sms.c
+++ b/common/gsm-sms.c
@@ -1444,6 +1444,10 @@ static gn_error sms_data_encode(gn_sms *sms, gn_sms_raw 
*rawsms)
                                dprintf("UCS-2\n");
                                rawsms->dcs |= 0x08;
                                length = ucs2_encode(rawsms->user_data + 
offset, GN_SMS_LONG_MAX_LENGTH, sms->user_data[i].u.text, length);
+                               if (length < 0) {
+                                       dprintf("Failed to encode UCS2 
message\n");
+                                       return GN_ERR_WRONGDATAFORMAT;
+                               }
                                rawsms->user_data_length = rawsms->length = 
length + udh_length;
                                break;
                        default:
@@ -1749,6 +1753,8 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.maximum_number = 
count;
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.current_number = i+1;
                switch (data->sms->dcs.u.general.alphabet) {
+               /* Needed for ucs2_encode */
+               char buf[1000];
                case GN_SMS_DCS_DefaultAlphabet:
                        start += copied;
                        memset(&data->sms->user_data[0], 0, 
sizeof(gn_sms_user_data));
@@ -1769,6 +1775,9 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                        /* avoid off-by-one problem */
                        if (size > max_sms_len * 8 / 7)
                                copied--;
+                       /* Make sure that we don't split input char in half */
+                       while (ucs2_encode(buf, 1000, ud[0].u.text+start, 
copied) < 0)
+                               copied--;
                        dprintf("\tnumber of processed characters: %d\n\tsize 
of the input: %d\n", copied, size);
                        data->sms->user_data[0].length = copied;
                        memcpy(data->sms->user_data[0].u.text, 
ud[0].u.text+start, copied);

http://git.savannah.gnu.org/cgit/gnokii.git/commit/?id=940f6fe6217786f3f86283e1fedfd110882f5d6e


commit f815070e50dab5dba0caa82764eda90752132384
Author: Pawel Kot <address@hidden>
Date:   Sat Feb 19 17:37:16 2011 +0100

    Fix SMS encoding.
    
    When multibyte encodings were on the Default Alphabet SMS input, it could
    get split in the middle.

diff --git a/ChangeLog b/ChangeLog
index fd5a625..b4acdbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
       could be used                                 (Daniele Forsi)
     o fix setting alarms for zero length events read from icalendar
       files (eg. birthdays)                         (Daniele Forsi)
+    o fix sms encoding: don't break multibyte characters when
+      creating multipart messages                       (Paweł Kot)
  * nk6510 driver updates
     o fix calendar handling issues (few off-by-ones)    (Paweł Kot)
     o implement deletecalendarnote for series40 3rd+ Ed (Paweł Kot)
diff --git a/common/gsm-sms.c b/common/gsm-sms.c
index 515bba6..ec05a46 100644
--- a/common/gsm-sms.c
+++ b/common/gsm-sms.c
@@ -1444,6 +1444,10 @@ static gn_error sms_data_encode(gn_sms *sms, gn_sms_raw 
*rawsms)
                                dprintf("UCS-2\n");
                                rawsms->dcs |= 0x08;
                                length = ucs2_encode(rawsms->user_data + 
offset, GN_SMS_LONG_MAX_LENGTH, sms->user_data[i].u.text, length);
+                               if (length < 0) {
+                                       dprintf("Failed to encode UCS2 
message\n");
+                                       return GN_ERR_WRONGDATAFORMAT;
+                               }
                                rawsms->user_data_length = rawsms->length = 
length + udh_length;
                                break;
                        default:
@@ -1749,6 +1753,8 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.maximum_number = 
count;
                
data->sms->udh.udh[isConcat].u.concatenated_short_message.current_number = i+1;
                switch (data->sms->dcs.u.general.alphabet) {
+               /* Needed for ucs2_encode */
+               char buf[1000];
                case GN_SMS_DCS_DefaultAlphabet:
                        start += copied;
                        memset(&data->sms->user_data[0], 0, 
sizeof(gn_sms_user_data));
@@ -1769,6 +1775,9 @@ static gn_error sms_send_long(gn_data *data, struct 
gn_statemachine *state)
                        /* avoid off-by-one problem */
                        if (size > max_sms_len * 8 / 7)
                                copied--;
+                       /* Make sure that we don't split input char in half */
+                       while (ucs2_encode(buf, 1000, ud[0].u.text+start, 
copied) < 0)
+                               copied--;
                        dprintf("\tnumber of processed characters: %d\n\tsize 
of the input: %d\n", copied, size);
                        data->sms->user_data[0].length = copied;
                        memcpy(data->sms->user_data[0].u.text, 
ud[0].u.text+start, copied);

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog             |    2 ++
 common/gsm-encoding.c |   37 +++++++++++++++++++++++++++++--------
 common/gsm-sms.c      |    9 +++++++++
 3 files changed, 40 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
libgnokii and core programs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]