The main problem is that there is a conflict with thousand separators in my language (DecimalSeparator = comma and ThousandSeparator = dot).
Maybe the change below can solve the problem:
while (pch^ <> #0) and ( IsNumber(pch^) or
((not FoundDecSeparator) and((pch^= ADecSeparator)
{$IFDEF THOUSAND_SEPARATORS_SUPPORT}
or ( (pch^ = AThousandSeparator) and IsThousand(pch) )
{$ENDIF}
)))
do
But the support for thousand separators is gone for my decimal system.
For my decimal system, thousand separators support excludes subtopics greater than 99 in topic enumarators and support for IP addresses too, because it is impossible to distinguish between them and thousands.
http://en.wikipedia.org/wiki/Decimal_mark#/media/File:DecimalSeparator.svgThe same decimal and thousand separators as my country uses are used in Europe, Latin America, Africa, Canada and New Zealand.
According to my tests, THOUSAND_SEPARATORS_SUPPORT define can coexist with decimal systems where dot is the decimal separator and comma is the thousand separator, but only for topic enumarators, not for IP addresses.
Under tests, anyway.