mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-02 03:59:35 +02:00
* Merging revisions 42887 from trunk:
------------------------------------------------------------------------ r42887 | michael | 2019-09-01 13:43:01 +0200 (Sun, 01 Sep 2019) | 1 line * Fix whitespace handling due to new structure ------------------------------------------------------------------------ git-svn-id: branches/fixes_3_2@43252 -
This commit is contained in:
parent
493b0ba4fc
commit
616e4f7342
@ -267,7 +267,7 @@ begin
|
|||||||
FetchLine;
|
FetchLine;
|
||||||
Result := tkWhitespace;
|
Result := tkWhitespace;
|
||||||
end;
|
end;
|
||||||
#9, ' ':
|
#9, ' ', #10, #13:
|
||||||
begin
|
begin
|
||||||
Result := tkWhitespace;
|
Result := tkWhitespace;
|
||||||
repeat
|
repeat
|
||||||
|
@ -69,6 +69,7 @@ type
|
|||||||
Procedure TestNoHandlerError;
|
Procedure TestNoHandlerError;
|
||||||
Procedure TestHandlerResult;
|
Procedure TestHandlerResult;
|
||||||
Procedure TestHandlerResultStream;
|
Procedure TestHandlerResultStream;
|
||||||
|
Procedure TestEmptyLine;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -341,7 +342,6 @@ end;
|
|||||||
|
|
||||||
procedure TTestParser.TestObjectError;
|
procedure TTestParser.TestObjectError;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
DoTestError('{ "name" : value }',[joUTF8]);
|
DoTestError('{ "name" : value }',[joUTF8]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -490,15 +490,19 @@ procedure TTestParser.TestNoHandlerError;
|
|||||||
|
|
||||||
Var
|
Var
|
||||||
H : TJSONParserHandler;
|
H : TJSONParserHandler;
|
||||||
|
HS : TJSONStringParserHandler;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
H:=GetJSONParserHandler;
|
H:=GetJSONParserHandler;
|
||||||
|
HS:=GetJSONStringParserHandler;
|
||||||
try
|
try
|
||||||
AssertSame('SetJSONParserHandler returns previous handler',H,SetJSONParserHandler(Nil));
|
AssertSame('SetJSONParserHandler returns previous handler',H,SetJSONParserHandler(Nil));
|
||||||
|
AssertSame('SetJSONStringParserHandler returns previous handler',HS,SetJSONStringParserHandler(Nil));
|
||||||
AssertException('No handler raises exception',EJSON,@CallNoHandler);
|
AssertException('No handler raises exception',EJSON,@CallNoHandler);
|
||||||
AssertException('No handler raises exception',EJSON,@CallNoHandlerStream);
|
AssertException('No handler raises exception',EJSON,@CallNoHandlerStream);
|
||||||
finally
|
finally
|
||||||
SetJSONParserHandler(H);
|
SetJSONParserHandler(H);
|
||||||
|
SetJSONStringParserHandler(HS);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -535,6 +539,31 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestParser.TestEmptyLine;
|
||||||
|
// Bug report 36037
|
||||||
|
Const MyJSON =
|
||||||
|
' {'+sLineBreak+
|
||||||
|
' "pylib__linux" : "libpython3.7m.so.1.0",'+sLineBreak+
|
||||||
|
' "ui_toolbar_theme": "default_24x24",'+sLineBreak+
|
||||||
|
' "ui_toolbar_show" : true,'+sLineBreak+
|
||||||
|
' "font_name__linux" : "DejaVu Sans Mono",'+sLineBreak+
|
||||||
|
' "font_size__linux" : 10,'+sLineBreak+
|
||||||
|
' "ui_listbox_fuzzy": false,'+sLineBreak+
|
||||||
|
' "ui_max_size_lexer": 5,'+sLineBreak+
|
||||||
|
' "find_separate_form": false,'+sLineBreak+sLineBreak+
|
||||||
|
'}';
|
||||||
|
var
|
||||||
|
J : TJSONData;
|
||||||
|
begin
|
||||||
|
With TJSONParser.Create(MyJSON,[joUTF8,joIgnoreTrailingComma]) do
|
||||||
|
Try
|
||||||
|
J:=Parse;
|
||||||
|
J.Free;
|
||||||
|
Finally
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestParser.DoTestError(S : String; Options : TJSONOptions = DefaultOpts);
|
procedure TTestParser.DoTestError(S : String; Options : TJSONOptions = DefaultOpts);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
|
Loading…
Reference in New Issue
Block a user