[fpc-pascal] Unicodestrings and Assign(File)

Sven Barth pascaldragon at googlemail.com
Sat May 19 16:49:57 CEST 2012


On 19.05.2012 13:12, Jürgen Hestermann wrote:
> 3.) Of course, there are lots of places where the file data structures
> filerec and textrec are used in the code. But in most cases only
> non-changed
> record elements are used (so no changes are required) and only seldomly
> the name is used/changed or the whole data structure is modified.
> So I think the above modifications require to check a lot of code but
> only a few modifications (hopefully). I would be willing to do these
> changes but I am not sure whether I have overlooked something obvious.
> These are very fundamental changes which affect all operating systems
> so it may have unexpected side affects.
> I also need to get familiar with SVN.

While I can not comment on the changes you listed (though they sound 
more or less valid) I can comment on those you didn't list: If you 
change do_open to support Unicode you should do this for the other 
functions (e.g. write, read) as well so that only the *W functions are 
used for them. Also you need to keep in mind that do_open is used by 
platform independant code so you would need to change the 
declarations/handling for all other platforms as well. Also you need to 
change the declaration of Assign as this expects a Short-/AnsiString.

Also I don't know whether the Unix users would be happy if we'd push 
UnicodeString upon them or whether they'd prefer AnsiString(CP_UTF8).

In the end maybe it should be AnsiString(CP_UTF8) for Unix systems and 
UnicodeString for Windows systems and AnsiString(CP_SCP) (the current 
string) for the other systems, so especially the platform independant 
code needs to be adjusted to support all three cases without problems 
(which might not need that much work in the end...).

I hope other core developers comment on this as well, as I'm not so firm 
regarding the consequences of such changes...

Regards,
Sven



More information about the fpc-pascal mailing list