mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 19:38:09 +02:00
LazUtils: use TSysCharSet / See MR !310
This commit is contained in:
parent
a310bf43dc
commit
14514dc97f
@ -112,7 +112,6 @@ type
|
|||||||
// DOMString
|
// DOMString
|
||||||
// -------------------------------------------------------
|
// -------------------------------------------------------
|
||||||
|
|
||||||
TSetOfChar = set of Char;
|
|
||||||
DOMString = AnsiString;
|
DOMString = AnsiString;
|
||||||
DOMPChar = PChar;
|
DOMPChar = PChar;
|
||||||
DOMChar = Char;
|
DOMChar = Char;
|
||||||
|
@ -163,7 +163,7 @@ uses
|
|||||||
URIParser, Laz2_XMLUtils, LazUTF8;
|
URIParser, Laz2_XMLUtils, LazUTF8;
|
||||||
|
|
||||||
const
|
const
|
||||||
PubidChars: TSetOfChar = [' ', #13, #10, 'a'..'z', 'A'..'Z', '0'..'9',
|
PubidChars: TSysCharSet = [' ', #13, #10, 'a'..'z', 'A'..'Z', '0'..'9',
|
||||||
'-', '''', '(', ')', '+', ',', '.', '/', ':', '=', '?', ';', '!', '*',
|
'-', '''', '(', ')', '+', ',', '.', '/', ':', '=', '?', ';', '!', '*',
|
||||||
'#', '@', '$', '_', '%'];
|
'#', '@', '$', '_', '%'];
|
||||||
var
|
var
|
||||||
@ -228,7 +228,7 @@ type
|
|||||||
constructor Create(const AData: DOMString);
|
constructor Create(const AData: DOMString);
|
||||||
procedure NextChar;
|
procedure NextChar;
|
||||||
procedure NewLine; virtual;
|
procedure NewLine; virtual;
|
||||||
function SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSetOfChar;
|
function SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSysCharSet;
|
||||||
wsflag: PBoolean = nil; {%H-}AllowSpecialChars: boolean = false): DOMChar; virtual;
|
wsflag: PBoolean = nil; {%H-}AllowSpecialChars: boolean = false): DOMChar; virtual;
|
||||||
procedure Initialize; virtual;
|
procedure Initialize; virtual;
|
||||||
function SetEncoding(const {%H-}AEncoding: string): Boolean; virtual;
|
function SetEncoding(const {%H-}AEncoding: string): Boolean; virtual;
|
||||||
@ -256,7 +256,7 @@ type
|
|||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function SetEncoding(const AEncoding: string): Boolean; override;
|
function SetEncoding(const AEncoding: string): Boolean; override;
|
||||||
procedure NewLine; override;
|
procedure NewLine; override;
|
||||||
function SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSetOfChar;
|
function SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSysCharSet;
|
||||||
wsflag: PBoolean = nil; AllowSpecialChars: boolean = false): DOMChar; override;
|
wsflag: PBoolean = nil; AllowSpecialChars: boolean = false): DOMChar; override;
|
||||||
procedure Initialize; override;
|
procedure Initialize; override;
|
||||||
end;
|
end;
|
||||||
@ -407,7 +407,7 @@ type
|
|||||||
procedure StandaloneError(LineOffs: Integer = 0);
|
procedure StandaloneError(LineOffs: Integer = 0);
|
||||||
procedure CallErrorHandler(E: EXMLReadError);
|
procedure CallErrorHandler(E: EXMLReadError);
|
||||||
function FindOrCreateElDef: TDOMElementDef;
|
function FindOrCreateElDef: TDOMElementDef;
|
||||||
function SkipUntilSeq(const Delim: TSetOfChar; c1: DOMChar; c2: DOMChar = #0;
|
function SkipUntilSeq(const Delim: TSysCharSet; c1: DOMChar; c2: DOMChar = #0;
|
||||||
AllowSpecialChars: boolean = false): Boolean;
|
AllowSpecialChars: boolean = false): Boolean;
|
||||||
procedure CheckMaxChars;
|
procedure CheckMaxChars;
|
||||||
protected
|
protected
|
||||||
@ -1032,7 +1032,7 @@ begin
|
|||||||
LFPos := FBuf;
|
LFPos := FBuf;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TXMLCharSource.SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSetOfChar;
|
function TXMLCharSource.SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSysCharSet;
|
||||||
wsflag: PBoolean; AllowSpecialChars: boolean): DOMChar;
|
wsflag: PBoolean; AllowSpecialChars: boolean): DOMChar;
|
||||||
var
|
var
|
||||||
old: DOMPChar;
|
old: DOMPChar;
|
||||||
@ -1954,11 +1954,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
AttrDelims: array[boolean] of TSetOfChar = (
|
AttrDelims: array[boolean] of TSysCharSet = (
|
||||||
[#0, '<', '&', '''', '"', #9, #10, #13], // false: default
|
[#0, '<', '&', '''', '"', #9, #10, #13], // false: default
|
||||||
[#0, '<', '&', '''', '"'] // true: xrfAllowSpecialCharsInAttributeValue
|
[#0, '<', '&', '''', '"'] // true: xrfAllowSpecialCharsInAttributeValue
|
||||||
);
|
);
|
||||||
GT_Delim: TSetOfChar = [#0, '>'];
|
GT_Delim: TSysCharSet = [#0, '>'];
|
||||||
|
|
||||||
procedure TXMLReader.ExpectAttValue;
|
procedure TXMLReader.ExpectAttValue;
|
||||||
var
|
var
|
||||||
@ -2228,7 +2228,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
LiteralDelims: array[TLiteralType] of TSetOfChar = (
|
LiteralDelims: array[TLiteralType] of TSysCharSet = (
|
||||||
[#0, '''', '"'], // ltPlain
|
[#0, '''', '"'], // ltPlain
|
||||||
[#0, '<', '&', '''', '"', #9, #10, #13], // ltAttr
|
[#0, '<', '&', '''', '"', #9, #10, #13], // ltAttr
|
||||||
[#0, '<', '&', '''', '"', #9, #10, #13], // ltTokAttr
|
[#0, '<', '&', '''', '"', #9, #10, #13], // ltTokAttr
|
||||||
@ -2299,7 +2299,7 @@ begin
|
|||||||
Normalize(ToFill, Normalized);
|
Normalize(ToFill, Normalized);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TXMLReader.SkipUntilSeq(const Delim: TSetOfChar; c1: DOMChar;
|
function TXMLReader.SkipUntilSeq(const Delim: TSysCharSet; c1: DOMChar;
|
||||||
c2: DOMChar; AllowSpecialChars: boolean): Boolean;
|
c2: DOMChar; AllowSpecialChars: boolean): Boolean;
|
||||||
var
|
var
|
||||||
wc: DOMChar;
|
wc: DOMChar;
|
||||||
@ -3116,7 +3116,7 @@ end;
|
|||||||
// The code below does the bulk of the parsing, and must be as fast as possible.
|
// The code below does the bulk of the parsing, and must be as fast as possible.
|
||||||
// To minimize CPU cache effects, methods from different classes are kept together
|
// To minimize CPU cache effects, methods from different classes are kept together
|
||||||
|
|
||||||
function TXMLDecodingSource.SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSetOfChar;
|
function TXMLDecodingSource.SkipUntil(var ToFill: TDOMCharBuf; const Delim: TSysCharSet;
|
||||||
wsflag: PBoolean; AllowSpecialChars: boolean): DOMChar;
|
wsflag: PBoolean; AllowSpecialChars: boolean): DOMChar;
|
||||||
var
|
var
|
||||||
old: DOMPChar;
|
old: DOMPChar;
|
||||||
@ -3218,7 +3218,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
TextDelims: array[Boolean] of TSetOfChar = (
|
TextDelims: array[Boolean] of TSysCharSet = (
|
||||||
[#0, '<', '&', '>'],
|
[#0, '<', '&', '>'],
|
||||||
[#0, '>']
|
[#0, '>']
|
||||||
);
|
);
|
||||||
|
@ -96,7 +96,7 @@ type
|
|||||||
procedure wrtChr(c: DOMChar); {$IFDEF HAS_INLINE} inline; {$ENDIF}
|
procedure wrtChr(c: DOMChar); {$IFDEF HAS_INLINE} inline; {$ENDIF}
|
||||||
procedure wrtIndent; {$IFDEF HAS_INLINE} inline; {$ENDIF}
|
procedure wrtIndent; {$IFDEF HAS_INLINE} inline; {$ENDIF}
|
||||||
procedure wrtQuotedLiteral(const ws: DOMString);
|
procedure wrtQuotedLiteral(const ws: DOMString);
|
||||||
procedure ConvWrite(const s: DOMString; const SpecialChars: TSetOfChar;
|
procedure ConvWrite(const s: DOMString; const SpecialChars: TSysCharSet;
|
||||||
const SpecialCharCallback: TSpecialCharCallback);
|
const SpecialCharCallback: TSpecialCharCallback);
|
||||||
procedure WriteNSDef(B: TBinding);
|
procedure WriteNSDef(B: TBinding);
|
||||||
procedure NamespaceFixup(Element: TDOMElement);
|
procedure NamespaceFixup(Element: TDOMElement);
|
||||||
@ -191,7 +191,7 @@ end;
|
|||||||
---------------------------------------------------------------------}
|
---------------------------------------------------------------------}
|
||||||
|
|
||||||
const
|
const
|
||||||
AttrSpecialChars : array[boolean] of TSetOfChar = (
|
AttrSpecialChars : array[boolean] of TSysCharSet = (
|
||||||
['<', '"', '''', '&', #0..#31], // false: default
|
['<', '"', '''', '&', #0..#31], // false: default
|
||||||
['<', '"', '''', '&', #0] // true: write special characters
|
['<', '"', '''', '&', #0] // true: write special characters
|
||||||
);
|
);
|
||||||
@ -355,7 +355,7 @@ begin
|
|||||||
if FIndentCount>0 then dec(FIndentCount);
|
if FIndentCount>0 then dec(FIndentCount);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TXMLWriter.ConvWrite(const s: DOMString; const SpecialChars: TSetOfChar;
|
procedure TXMLWriter.ConvWrite(const s: DOMString; const SpecialChars: TSysCharSet;
|
||||||
const SpecialCharCallback: TSpecialCharCallback);
|
const SpecialCharCallback: TSpecialCharCallback);
|
||||||
var
|
var
|
||||||
StartPos, EndPos: Integer;
|
StartPos, EndPos: Integer;
|
||||||
|
@ -31,9 +31,6 @@ const
|
|||||||
BUFSIZE=1024;
|
BUFSIZE=1024;
|
||||||
MAXGROW = 1 shl 29;
|
MAXGROW = 1 shl 29;
|
||||||
|
|
||||||
type
|
|
||||||
TSoc = set of char;
|
|
||||||
|
|
||||||
procedure LoadFromCSVStream(AStream: TStream; AProc: TCSVRecordProc;
|
procedure LoadFromCSVStream(AStream: TStream; AProc: TCSVRecordProc;
|
||||||
ADelimiter:Char; CSVEncoding: TCSVEncoding);
|
ADelimiter:Char; CSVEncoding: TCSVEncoding);
|
||||||
var
|
var
|
||||||
@ -42,13 +39,13 @@ var
|
|||||||
leadPtr, tailPtr, wordPtr, X:Pchar;
|
leadPtr, tailPtr, wordPtr, X:Pchar;
|
||||||
Line: TStringList = nil;
|
Line: TStringList = nil;
|
||||||
|
|
||||||
function SkipSet(const aSet: TSoc): boolean;
|
function SkipSet(const aSet: TSysCharSet): boolean;
|
||||||
begin
|
begin
|
||||||
while (leadPtr<tailPtr) and (leadPtr^ in aSet) do Inc(leadPtr);
|
while (leadPtr<tailPtr) and (leadPtr^ in aSet) do Inc(leadPtr);
|
||||||
result := leadPtr<tailPtr;
|
result := leadPtr<tailPtr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FindSet(const aSet: TSoc): boolean;
|
function FindSet(const aSet: TSysCharSet): boolean;
|
||||||
begin
|
begin
|
||||||
while (leadPtr<tailPtr) and (not (leadPtr^ in ASet)) do Inc(leadPtr);
|
while (leadPtr<tailPtr) and (not (leadPtr^ in ASet)) do Inc(leadPtr);
|
||||||
result := leadPtr<tailPtr;
|
result := leadPtr<tailPtr;
|
||||||
|
Loading…
Reference in New Issue
Block a user