Hello Chris,

I've been working on the sms parser for Barry, the code is raw, since the
data structure for SMS is really strange and I can't use a packed struct to
handle this effectively. But at least, it works now. And I'll do some
refinement later when I have finished my homework.

However, I've checked the common.h file and found that the iconv.cc in Barry
converts WINDOWS-1252 to UTF-8, but with SMS encoded as UCS-2, btool
displays my Chinese messages as garbled text. Furthermore, after I changed
the definition of BLACKBERRY_CHARSET to `UCS-2', the output doesn't change.
I thought there's something wrong with iconv.cc? My Memo in 100% English
can't be interpreted correctly either.

Nevertheless, it should work for Western languages, copy the two source
files to /src and modify /tools/btool.cc, /src/record.h, /src/Makefile.am.
Make install and run btool.

r_sms.cc, r_sms.h and bb_sms_format.txt attached.

Best Regards,
Ryan Li

Chris Frey wrote:

On Mon, Mar 23, 2009 at 05:53:51PM +0800, Ryan Li wrote:


 Hello everyone,

It seems that there's currently no tools for sms parsing, so I hacked
out one within two months. Haven't checked through the code of barry, I
wrote this parser from scratch.  The code surely looks ugly and clumsy,
since it's the first time that I wrote something that I think is a bit
useful(don't mention the damn school homework).


 Hi Ryan,

Welcome to Barry!

I just got a chance to look at your code in detail today, and thanks
very much.  I like to see people using Barry in ways I didn't expect
originally. :-)

This would ideally be a record parser in the Barry library, and since
you've already done the reverse engineering and proof of concept, it's
just a matter of doing the porting.

I notice that your code is licensed under GPL v3.  Barry is licensed
under "GPL v2 and any later version".  As a library, this makes it
compatible with a slightly wider number of application licenses.  But it also
means that we can't include your code directly into the library without
changing our license as well.  I could drop your code in the contrib/
directory though.  Would you be willing to relicense your code and
documentation under GPL v2 and later?

If so, I'd like to apply your bb_sms_format.txt file as a documentation
patch right away, and we can work together on porting the record parsing
code to the Barry library.




 Feedback is greatly welcomed and when this program becomes a little more
mature I hope I could have it integrated back into btool. More
information can be found in the readme file.


 Here's a little feedback from reading the code:

        - I see you make use of custom bit stream code, and then
                parse the streams using a series of if statements.
                The way Barry does parsing like this is to use a set of
                structs that match the data layout as closely as possible.
                This is a challenge sometimes, but a series of if statements
                should translate fairly well into a struct.

        - you have custom code to convert from UCS2 to UTF8 manually...
                in Barry, we use the iconv library, and we have a class wrapper
                to do the work... this conversion is optional and
                configurable in Barry as well... see the IConverter class

        - some of the manual memory handling should probably be changed to
                std::string or Barry's Data class

That said, I've run the code, and it works as advertised. :-)

Thanks again,
- Chris


------------------------------------------------------------------------------
_______________________________________________
Barry-devel mailing
listbarry-de...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/barry-devel

Attachment: r_sms.tar.gz
Description: GNU Zip compressed data

------------------------------------------------------------------------------
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to