diff --git a/rtl/objpas/sysutils/sysstr.inc b/rtl/objpas/sysutils/sysstr.inc index 027f6a3655..1af6030df2 100644 --- a/rtl/objpas/sysutils/sysstr.inc +++ b/rtl/objpas/sysutils/sysstr.inc @@ -2842,7 +2842,7 @@ function sscanf(const s: string; const fmt : string;const Pointers : array of Po while (Length(s) > n) and (s[n] = ' ') do inc(n); while (Length(s) >= n) and - (s[n] in ['0'..'9', '+', '-', '.', 'e', 'E']) do + (s[n] in ['0'..'9', '+', '-', DecimalSeparator, 'e', 'E']) do begin s1 := s1+s[n]; inc(n); diff --git a/tests/test/units/sysutils/tsscanf.pp b/tests/test/units/sysutils/tsscanf.pp index 65719ded93..a4e6282633 100644 --- a/tests/test/units/sysutils/tsscanf.pp +++ b/tests/test/units/sysutils/tsscanf.pp @@ -7,7 +7,7 @@ var s : string; l : longint; begin - sscanf('asdf 1.2345 1234','%s %f %d',[@s,@e,@l]); + sscanf('asdf 1'+DecimalSeparator+'2345 1234','%s %f %d',[@s,@e,@l]); if (e<>1.2345) or (l<>1234) or (s<>'asdf') then