On 01 Jan 2013, at 16:54, Martin Schreiber wrote: > On Tuesday 01 January 2013 16:44:28 Jonas Maebe wrote: >> The strings are stored as ansistrings with the appropriate code page. >> > So > " > UnicodeStringVariable:= 'abcdäüö'; > " > always will call a conversion function?
The assignment node will insert a type conversion of the right hand side to unicodestring. In 2.6.x, the right hand side will already be a unicodestring and nothing will happen. In 2.7.x, the type conversion node will be simplified into a unicodestring constant because it is a typeconversion of a constant (just like int64(1) is also handled at compile time). > And how works > " > {$codepage 8859-1} > ... > UnicodeStringVar:= 'abcd'#228#246#252#1092#1080#1089#1074; > > " > ? That string contains codepoints > #255 and hence is a unicodestring rather than a single byte string. No conversion at either compile or run time happens, and the codepage directive has no influence. Jonas_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel