Browse Source

Merge of commit 40952.

------------------------------------------------------------------------
r40952 | michael | 2019-01-21 08:16:13 +0000 (Mon, 21 Jan 2019) | 1 line

* Add Unicode/Widestring overload on windows for ResolveRelativeURI
------------------------------------------------------------------------
--- Merging r40952 into '.':
U    packages/fcl-base/src/uriparser.pp
--- Recording mergeinfo for merge of r40952 into '.':
 U   .

git-svn-id: branches/fixes_3_2@40953 -
pierre 6 years ago
parent
commit
e85a99b1f8
1 changed files with 21 additions and 9 deletions
  1. 21 9
      packages/fcl-base/src/uriparser.pp

+ 21 - 9
packages/fcl-base/src/uriparser.pp

@@ -40,11 +40,11 @@ function EncodeURI(const URI: TURI): String;
 function ParseURI(const URI: String; Decode : Boolean = True):  TURI; overload;
 function ParseURI(const URI: String; Decode : Boolean = True):  TURI; overload;
 function ParseURI(const URI, DefaultProtocol: String; DefaultPort: Word; Decode : Boolean = True):  TURI; overload;
 function ParseURI(const URI, DefaultProtocol: String; DefaultPort: Word; Decode : Boolean = True):  TURI; overload;
 
 
-function ResolveRelativeURI(const BaseUri, RelUri: WideString;
-  out ResultUri: WideString): Boolean; overload;
-
-function ResolveRelativeURI(const BaseUri, RelUri: AnsiString;
-  out ResultUri: AnsiString): Boolean; overload;
+function ResolveRelativeURI(const BaseUri, RelUri: UnicodeString;out ResultUri: UnicodeString): Boolean; overload;
+{$ifdef WINDOWS}  
+function ResolveRelativeURI(const BaseUri, RelUri: WideString; out ResultUri: WideString): Boolean; overload;
+{$ENDIF}
+function ResolveRelativeURI(const BaseUri, RelUri: AnsiString;  out ResultUri: AnsiString): Boolean; overload;
 
 
 function URIToFilename(const URI: string; out Filename: string): Boolean;
 function URIToFilename(const URI: string; out Filename: string): Boolean;
 function FilenameToURI(const Filename: string; Encode : Boolean = True): string;
 function FilenameToURI(const Filename: string; Encode : Boolean = True): string;
@@ -335,8 +335,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-function ResolveRelativeURI(const BaseUri, RelUri: AnsiString;
-  out ResultUri: AnsiString): Boolean;
+function ResolveRelativeURI(const BaseUri, RelUri: AnsiString; out ResultUri: AnsiString): Boolean;
 var
 var
   Base, Rel: TUri;
   Base, Rel: TUri;
 begin
 begin
@@ -384,8 +383,21 @@ begin
   ResultUri := EncodeUri(Rel);
   ResultUri := EncodeUri(Rel);
 end;
 end;
 
 
-function ResolveRelativeURI(const BaseUri, RelUri: WideString;
-  out ResultUri: WideString): Boolean;
+{$IFDEF WINDOWS}
+function ResolveRelativeURI(const BaseUri, RelUri: WideString; out ResultUri: WideString): Boolean;
+
+Var
+  Res : AnsiString;
+
+begin
+  Result := ResolveRelativeURI(UTF8Encode(BaseUri), UTF8Encode(RelUri), Res);
+  if Result then
+    ResultURI := UTF8Decode(res);
+end;
+{$ENDIF}
+
+function ResolveRelativeURI(const BaseUri, RelUri: UnicodeString;
+  out ResultUri: UnicodeString): Boolean;
 var
 var
   rslt: AnsiString;
   rslt: AnsiString;
 begin
 begin