summaryrefslogtreecommitdiff
path: root/rtl/inc/ustrings.inc
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/inc/ustrings.inc')
-rw-r--r--rtl/inc/ustrings.inc46
1 files changed, 24 insertions, 22 deletions
diff --git a/rtl/inc/ustrings.inc b/rtl/inc/ustrings.inc
index c5c52b2f4d..09ea7dd0df 100644
--- a/rtl/inc/ustrings.inc
+++ b/rtl/inc/ustrings.inc
@@ -817,7 +817,7 @@ begin
len := length(src);
{ make sure we don't dereference src if it can be nil (JM) }
if len > 0 then
- widestringmanager.ansi2widemoveproc(pchar(@src[1]),StringCodePage(src),temp,len);
+ widestringmanager.ansi2widemoveproc(pchar(@src[1]),TranslatePlaceholderCP(StringCodePage(src)),temp,len);
len := length(temp);
if len > length(res) then
len := length(res);
@@ -1351,7 +1351,7 @@ end;
{$ifndef FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
{$define FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pwidechar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
SetLength(S,Len);
If (Buf<>Nil) and (Len>0) then
@@ -1362,7 +1362,7 @@ end;
{$ifndef FPC_HAS_SETSTRING_UNICODESTR_PCHAR}
{$define FPC_HAS_SETSTRING_UNICODESTR_PCHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pansichar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
If (Buf<>Nil) and (Len>0) then
widestringmanager.Ansi2UnicodeMoveProc(Buf,DefaultSystemCodePage,S,Len)
@@ -2286,19 +2286,22 @@ function StringCodePage(const S: UnicodeString): TSystemCodePage; overload;
{$warnings off}
-function GenericUnicodeCase(const s : UnicodeString) : UnicodeString;
+function StubUnicodeCase(const s : UnicodeString) : UnicodeString;
begin
unimplementedunicodestring;
end;
-
-function CompareUnicodeString(const s1, s2 : UnicodeString) : PtrInt;
+function StubCompareUnicodeString(const s1, s2 : UnicodeString) : PtrInt;
begin
unimplementedunicodestring;
end;
+function StubWideCase(const s: WideString): WideString;
+ begin
+ unimplementedunicodestring;
+ end;
-function CompareTextUnicodeString(const s1, s2 : UnicodeString): PtrInt;
+function StubCompareWideString(const s1, s2 : WideString) : PtrInt;
begin
unimplementedunicodestring;
end;
@@ -2307,24 +2310,23 @@ function CompareTextUnicodeString(const s1, s2 : UnicodeString): PtrInt;
procedure initunicodestringmanager;
begin
{$ifndef HAS_WIDESTRINGMANAGER}
- widestringmanager.Unicode2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
- widestringmanager.Ansi2UnicodeMoveProc:=@DefaultAnsi2UnicodeMove;
- widestringmanager.UpperUnicodeStringProc:=@GenericUnicodeCase;
- widestringmanager.LowerUnicodeStringProc:=@GenericUnicodeCase;
-{$endif HAS_WIDESTRINGMANAGER}
- widestringmanager.CompareUnicodeStringProc:=@CompareUnicodeString;
- widestringmanager.CompareTextUnicodeStringProc:=@CompareTextUnicodeString;
-
{$ifdef FPC_WIDESTRING_EQUAL_UNICODESTRING}
-{$ifndef HAS_WIDESTRINGMANAGER}
- widestringmanager.Wide2AnsiMoveProc:=@defaultUnicode2AnsiMove;
widestringmanager.Ansi2WideMoveProc:=@defaultAnsi2UnicodeMove;
- widestringmanager.UpperWideStringProc:=@GenericUnicodeCase;
- widestringmanager.LowerWideStringProc:=@GenericUnicodeCase;
-{$endif HAS_WIDESTRINGMANAGER}
- widestringmanager.CompareWideStringProc:=@CompareUnicodeString;
- widestringmanager.CompareTextWideStringProc:=@CompareTextUnicodeString;
+{$else FPC_WIDESTRING_EQUAL_UNICODESTRING}
+ widestringmanager.Ansi2WideMoveProc:=@DefaultAnsi2WideMove;
{$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
+ widestringmanager.Wide2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
+ widestringmanager.UpperWideStringProc:=@StubWideCase;
+ widestringmanager.LowerWideStringProc:=@StubWideCase;
+ widestringmanager.Unicode2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
+ widestringmanager.Ansi2UnicodeMoveProc:=@DefaultAnsi2UnicodeMove;
+ widestringmanager.UpperUnicodeStringProc:=@StubUnicodeCase;
+ widestringmanager.LowerUnicodeStringProc:=@StubUnicodeCase;
+{$endif HAS_WIDESTRINGMANAGER}
+ widestringmanager.CompareWideStringProc:=@StubCompareWideString;
+ widestringmanager.CompareTextWideStringProc:=@StubCompareWideString;
+ widestringmanager.CompareUnicodeStringProc:=@StubCompareUnicodeString;
+ widestringmanager.CompareTextUnicodeStringProc:=@StubCompareUnicodeString;
widestringmanager.CharLengthPCharProc:=@DefaultCharLengthPChar;
widestringmanager.CodePointLengthProc:=@DefaultCodePointLength;
widestringmanager.GetStandardCodePageProc:=@DefaultGetStandardCodePage;