X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fshared%2Futils.pas;h=eab26fb9e07e53fefc6d68377b6e713866c8d94c;hp=f9d8ffafd927c2715bdf5e81907e0a752c4ae020;hb=fc76d42fbe216fe663e74c7967c1150e3b2d7a2f;hpb=6d570e1aac92f03f9491a016cb6e413548ac849f diff --git a/src/shared/utils.pas b/src/shared/utils.pas index f9d8ffa..eab26fb 100644 --- a/src/shared/utils.pas +++ b/src/shared/utils.pas @@ -20,6 +20,7 @@ function addWadExtension (fn: AnsiString): AnsiString; function Int64ToStrComma (i: Int64): AnsiString; function UpCase1251 (ch: Char): Char; +function LoCase1251 (ch: Char): Char; // `true` if strings are equal; ignoring case for cp1251 function StrEquCI1251 (const s0, s1: AnsiString): Boolean; @@ -154,6 +155,30 @@ begin end; +function LoCase1251 (ch: Char): Char; +begin + if ch < #128 then + begin + if (ch >= 'A') and (ch <= 'Z') then Inc(ch, 32); + end + else + begin + if (ch >= #192) and (ch <= #223) then + begin + Inc(ch, 32); + end + else + begin + case ch of + #168, #170, #175: Inc(ch, 16); + #161, #178: Inc(ch); + end; + end; + end; + result := ch; +end; + + function StrEquCI1251 (const s0, s1: AnsiString): Boolean; var i: Integer;