From dd0f631843f53e82ecb50d51fc5b37a5ef16ce99 Mon Sep 17 00:00:00 2001 From: Arnaud Bouchez Date: Tue, 8 Jan 2019 15:52:45 +0100 Subject: [PATCH] fixed IsCaseSensitive() to work as expected - it was working like a IsUpperCase() function --- SynCommons.pas | 8 +++----- SynopseCommit.inc | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/SynCommons.pas b/SynCommons.pas index 18dc4adb6..8d21df59c 100644 --- a/SynCommons.pas +++ b/SynCommons.pas @@ -21530,14 +21530,14 @@ procedure FastSetString(var s: RawUTF8; p: pointer; len: PtrInt); sr: PStrRec; begin if len>0 then begin - GetMem(r,len+(STRRECSIZE+2)); + GetMem(r,len+(STRRECSIZE+4)); sr := pointer(r); sr^.codePage := CP_UTF8; sr^.elemSize := 1; sr^.refCnt := 1; sr^.length := len; inc(sr); - PWord(PAnsiChar(sr)+len)^ := 0; + PCardinal(PAnsiChar(sr)+len)^ := 0; r := pointer(sr); if p<>nil then MoveFast(p^,sr^,len); @@ -28767,12 +28767,10 @@ function LowerCaseUnicode(const S: RawUTF8): RawUTF8; function IsCaseSensitive(const S: RawUTF8): boolean; var i: PtrInt; - up: PByteArray; // better x86-64 / PIC asm generation begin - up := @NormToUpperAnsi7Byte; result := true; for i := 0 to length(S)-1 do - if up[PByteArray(S)[i]]<>PByteArray(S)[i] then + if PByteArray(S)[i] in [ord('a')..ord('z'), ord('A')..ord('Z')] then exit; result := false; end; diff --git a/SynopseCommit.inc b/SynopseCommit.inc index f76a0cfc8..0528a2c38 100644 --- a/SynopseCommit.inc +++ b/SynopseCommit.inc @@ -1 +1 @@ -'1.18.4946' +'1.18.4947'