(and the same for ror), because their operation is very dependent on the
operand size, and it's fairly easy to misjudge the bitwidth of the outcome
of an expression in Pascal if you are not intimately familiar with the
language (or if you don't know the exact types of all involved values in
an expression)
git-svn-id: trunk@12621 -
* added csize_t = UnixTypes.size_t in ctypes.pp for unix systems.
* reason: size_t is a C type and it's often used by C header files. Several packages define their own size_t.
git-svn-id: trunk@12602 -
* switch to external assembler when using dwarf debug info for win32,
because the internal assembler doesn't work with
tf_dwarf_relative_addresses
(mantis #12872)
git-svn-id: trunk@12592 -
a conversion to a shortstring type (so an operator := that returns a
string[255] can be used to assign this type to a string[80]) (mantis
#12109)
* do not allow overloading := with a string[x<>255] as result type,
because we want one such overload to satisfy all conversions (see
previous point)
git-svn-id: trunk@12590 -
* Changed the design of input decoders so they process data by chunks
instead of char-by-char. It is much faster, and allows supporting
external pluggable decoders.
+ Interface for external decoders.
* ResolvePredefined() is rewritten so it doesn't call CompareMem five
times do determine a single char.
* ParseCharRef renamed to ParseRef, because it parses entity refs as
well.
* Added guard conditions to prevent integer overflows in ParseRef.
* ContextPush(TXMLCharSource) merged into Initialize().
xmliconv.pas is a new unit, containing an libiconv-based decoder. It depends on existing iconvenc package, and
thus supports all platforms that are supported by iconvenc.
xmliconv_windows.pas is the variation that allows to use libiconv functionality on Windows (It would require
the iconv.dll to be distributed with the application, but since I haven't succeeded yet in writing a native
Windows decoder, this is better than nothing).
git-svn-id: trunk@12582 -
convert it into a widechar at compile time using the current source file's
code page (and in case it was to a non-widestring, then convert it at run
time into the current run time ansi code page) (mantis #12993)
Previously, the characters were either stuffed into the string without
conversion (widestring), or passed to the run time "ansi-character to
stringtype" routine (other string types; which was also wrong, since
that routine expects the character to be in ansi-encoding, which is
not necessarily the same as whatever the source file encoding was)
git-svn-id: trunk@12580 -