On 07.02.2007, at 00:50, Stipe Tolj wrote:
Alexander Malysh wrote:
Hi,
seems sms_split function was always buggy and never worked correctly?
I found two issues:
1) max_part_len calculation was wrong.
It was:
max_len * 8 / 7 - udh_len
+1 on this one from me. It is in fact wrong and I'm very surprised
that no one has spotted this before.
I remember reading through this splitting stuff and redoing it in my
own preprocessor (that was in back in 2001...) and I have not spotted
it neither
(now I wonder if my code did it wrong too... but its out of service
since a while anyway)
But because udh nerer packed this is just wrong end should be:
(max_len - udh_len) * 8 / 7
2) we dropped last utf-8 multibyte sequence. (Thanks to Stipe for
report!).
To reproduce just sent following message via smsbox:
text=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aa%c3%9f To fix the bug we must first convert msgdata to UTF-8
then gsm_truncate and then convert it again to UTF-8. The length
of UTF-8 string is our allowed max_part_length.
Please find attached patch that should fix those issues.
Please test and vote!
+0.5 Can't comment on that one as the UTF-8 magic is not known to me
yet. As far as I know, sending UTF-16 shouldnt be an issue in
splitting as the phone reasembles it. In UTF-8 its our internal stuff
so we should calculate how many GSM chars we would waste there. So
the approach sounds right...
Since this has a serious impact, I'd suggest we apply it (if voted
positive) to the 1.4.1 branch and release 1.4.2 from that seperated
CVS branch immediately. So we have a fix for the "old" latin1
internal encoding.
This would only apply to the first patch part then...
Andreas Fink
Fink Consulting GmbH
Global Networks Schweiz AG
BebbiCell AG
---------------------------------------------------------------
Tel: +41-61-6666330 Fax: +41-61-6666331 Mobile: +41-79-2457333
Address: Clarastrasse 3, 4058 Basel, Switzerland
E-Mail: [EMAIL PROTECTED]
www.finkconsulting.com www.global-networks.ch www.bebbicell.ch
---------------------------------------------------------------
ICQ: 8239353 MSN: [EMAIL PROTECTED] AIM: smsrelay Skype: andreasfink
Yahoo: finkconsulting SMS: +41792457333