Set Language for String Processing?

Peter W A Wood peterwawood at gmail.com
Tue May 6 10:31:22 EDT 2014


Hi Fraser

On 6 May 2014, at 19:31, Fraser Gordon wrote:

> 
> On 6 May 2014, at 12:26, Peter W A Wood <peterwawood at gmail.com> wrote:
> 
>> 
>> PS I was truly impressed to find that comparing pre-composed and decomposed characters worked without the need for the strings to be normalised. For example, this test passes:
>> 
>> 	startTest "Unicode1"
>>  	put numToCodepoint(0xE7) into tPrecomposed
>> 	put  "c" & numToCodepoint(0x0327) into tDecomposed
>> 	assertEqual tPrecomposed, tDecomposed
>> 	endTest
> 
> If you do it again after doing a "set the formSensitive to true", you'll find they are no longer equal - formSensitive is the equivalent to caseSensitive but for normalisation.

It worked nicely in the message box:

	put numToCodepoint(0xE7) into tPrecomposed
	put  "c" & numToCodepoint(0x0327) into tDecomposed
	set the formSensitive to true
	put tPrecomposed <> tDecomposed into tResult
	set the formSensitive to false	
	put return after tResult
	put tPrecomposed = tDecomposed after tResult
	put tResult

Produced:
	true
	true

But when I tried it in my test script, setting the formSensitive to true didn't seem to have the same effect:

on mouseUp
	startTest "Unicode1"
	put numToCodepoint(0xE7) into tPrecomposed
	put "c" & numToCodepoint(0x0327) into tDecomposed
	assertEqual tPrecomposed, tDecomposed
	endTest
	
	startTest "Unicode2"
	put numToCodepoint(0xE7) into tPrecomposed
	put "c" & numToCodepoint(0x0327) into tDecomposed
	set the formSensitive to true
	assertNotEqual tPrecomposed, tDecomposed
	set the formSensitive to false
	endTest
end mouseUp

The result was:

	Test Unicode2
	Assert #1
	Expected ç
	Actual ç 
	Unicode2 Failed

I suspect that I am probably doing something wrong such as trying to set formSensitive in a handler.

Regards

Peter



More information about the use-livecode mailing list