|
@@ -16,6 +16,7 @@
|
|
{$IFDEF FPC}
|
|
{$IFDEF FPC}
|
|
{$MODE objfpc}
|
|
{$MODE objfpc}
|
|
{$H+}
|
|
{$H+}
|
|
|
|
+{$modeswitch advancedrecords}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
|
|
{$IFNDEF FPC_DOTTEDUNITS}
|
|
{$IFNDEF FPC_DOTTEDUNITS}
|
|
@@ -25,6 +26,9 @@ unit URIParser;
|
|
interface
|
|
interface
|
|
|
|
|
|
type
|
|
type
|
|
|
|
+
|
|
|
|
+ { TURI }
|
|
|
|
+
|
|
TURI = record
|
|
TURI = record
|
|
Protocol: String;
|
|
Protocol: String;
|
|
Username: String;
|
|
Username: String;
|
|
@@ -36,6 +40,11 @@ type
|
|
Params: String;
|
|
Params: String;
|
|
Bookmark: String;
|
|
Bookmark: String;
|
|
HasAuthority: Boolean;
|
|
HasAuthority: Boolean;
|
|
|
|
+ constructor create(aURI : String; aDecode: Boolean = True);
|
|
|
|
+ constructor create(const aURI, aDefaultProtocol: String; aDefaultPort: Word; aDecode : Boolean = True);
|
|
|
|
+ function ToString : String;
|
|
|
|
+ function URI : String;
|
|
|
|
+ procedure Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
function EncodeURI(const URI: TURI): String;
|
|
function EncodeURI(const URI: TURI): String;
|
|
@@ -496,5 +505,32 @@ begin
|
|
Result := False;
|
|
Result := False;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{ TURI }
|
|
|
|
+
|
|
|
|
+constructor TURI.create(aURI: String; aDecode: Boolean);
|
|
|
|
+begin
|
|
|
|
+ Self:=ParseURI(aURI,aDecode);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+constructor TURI.create(const aURI, aDefaultProtocol: String; aDefaultPort: Word; aDecode: Boolean);
|
|
|
|
+begin
|
|
|
|
+ Self:=ParseURI(aURI,aDefaultProtocol,aDefaultPort,aDecode);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TURI.ToString: String;
|
|
|
|
+begin
|
|
|
|
+ Result:=EncodeURI(Self);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TURI.URI: String;
|
|
|
|
+begin
|
|
|
|
+ Result:=ToString;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TURI.Free;
|
|
|
|
+begin
|
|
|
|
+ Self:=Default(TURI);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
|
|
end.
|
|
end.
|