On 02/28/2014 03:08 PM, Sven Barth wrote:
It is possible as some mails a few months back have shown. If you have
a function that has a RawByteString return type then you can assign
that to a string of any static encoding even if the dynamic encoding
is not the same (and then static and dynamic encoding of the string
variable will not match, nevertheless the RTL and the compiler will
handle them correctly (at least I hope so ^^).
I don't have any Unicode Delphi so I can't test that and as far as I am
informed the implementation of "new Delphi strings" in the fpc RTL is
still a moving target.
In many discussions I was told that the Delphi "RAW" type does not
provide the features necessary to a fully dynamically encoded String,
even though when I first read the online Delphi docs, I had the
impression that it should.
.
The non-conversion nature of RawByteString has its use.
I don't doubt this at all. That is why I don't suggest to modify it's
behavior but to introduce yet another String encoding type.
The functionality for this is already in place in the (future) RTL, only
the (really small) compiler magic to call conversions "when necessary"
needs to be added and called if a string of this type definition is to
be handled. (Easy with pure assignments, as discussed in that thread
pos(), copy() and friends need some more re-thinking.)
-Michael
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal