[haiku] Re: Proposals for the LocaleKit

  • From: "Travis D. Reed" <tdreed@xxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Sun, 7 Feb 2010 16:13:49 -0600

Thank you, PHRU!
--
Travis D. Reed


On Sun, Feb 7, 2010 at 4:08 PM, Travis D. Reed <tdreed@xxxxxxxxx> wrote:

> MUHUHAHAHAHA! Fingerprinting has been conquered! Take *that*, PulkoMandy!
> --
> Travis D. Reed
>
>
>
> On Sun, Feb 7, 2010 at 3:46 PM, PHilip RUshik <prushik@xxxxxxxxx> wrote:
>
>> On Sun, Feb 7, 2010 at 4:40 PM, Travis D. Reed <tdreed@xxxxxxxxx> wrote:
>>
>>> Alright! Finally I tracked down the problem thanks to the cool double-s
>>> in David A.'s name. C++ understands the two chars that make up this one
>>> character as negative. PHP considers them positive...Clearly something to do
>>> with the size of char...now I just need figure out how to manipulate this
>>> and I'm in business! :)
>>>
>>> C++ // -61 -97 = SS
>>> PHP // 195 159 = SS
>>> --
>>> Travis D. Reed
>>>
>>>
>>>
>>> On Sun, Feb 7, 2010 at 3:04 PM, Travis D. Reed <tdreed@xxxxxxxxx> wrote:
>>>
>>>> I love the idea of the StringBuilder.
>>>>
>>>> I'm all too familiar with the code you mentioned, Ryan. :) Yesterday, I
>>>> stripped said code out of the LocaleKit to make a little C++ app that
>>>> calculates (correctly) the code. It works for the moment (though calling it
>>>> in PHP sometimes breaks things because I've not properly escaped one single
>>>> string in the Mail App). I still would like to get a pure PHP solution.
>>>>
>>>> Still working.
>>>>
>>>> --
>>>> Travis D. Reed
>>>>
>>>>
>>>>
>>>> On Sun, Feb 7, 2010 at 1:50 PM, Ryan Leavengood 
>>>> <leavengood@xxxxxxxxx>wrote:
>>>>
>>>>> On Sun, Feb 7, 2010 at 2:35 PM, Travis D. Reed <tdreed@xxxxxxxxx>
>>>>> wrote:
>>>>> > This is the problem. (Ironically, I used to fight against this with
>>>>> PHP, now
>>>>> > it does it by itself.) I'm trying to peal off just 8 bits at a time
>>>>> from the
>>>>> > string, but the way I'm doing it, it counts ellipsis as a
>>>>> char...*sigh*
>>>>> > Still working on it.
>>>>>
>>>>> By the way, I was looking at the problem of generating the catkeys
>>>>> signature and the algorithm is pretty simple. I was trying to code it
>>>>> up in Ruby but the main problem there is that the Haiku C++ code for
>>>>> calculating the fingerprint counts on 32-bit integer overflow
>>>>> arithmetic, whereas Ruby has the Bignum class which automatically
>>>>> handles big numeric calculations, and this makes it harder to
>>>>> reproduce what the C++ code does. The main point of all this though is
>>>>> that you should be able to reproduce this algorithm in PHP, assuming
>>>>> you can treat the UTF-8 strings just as a stream of bytes and do
>>>>> 32-bit unsigned calculations.
>>>>>
>>>>> If you want to look the fingerprint code is in this file (in
>>>>> CatKey::HashFun and BHashMapCatalog::ComputeFingerprint):
>>>>>
>>>>>
>>>>> http://dev.haiku-os.org/browser/haiku/trunk/src/kits/locale/HashMapCatalog.cpp
>>>>>
>>>>> --
>>>>> Regards,
>>>>> Ryan
>>>>>
>>>>>
>>>>
>>>
>> In C++ a char is one byte, so 195 = 11000011 = -61. I always just use
>> unsigned chars to prevent that whenever I have to worry about that.
>> Hope my insight is helpful instead of annoying.
>>
>>  -PHilip RUshik
>>
>>
>

Other related posts: