|
@@ -70,6 +70,7 @@ type
|
|
Procedure TestHandlerResult;
|
|
Procedure TestHandlerResult;
|
|
Procedure TestHandlerResultStream;
|
|
Procedure TestHandlerResultStream;
|
|
Procedure TestEmptyLine;
|
|
Procedure TestEmptyLine;
|
|
|
|
+ procedure TestBug36037Part2;
|
|
end;
|
|
end;
|
|
|
|
|
|
implementation
|
|
implementation
|
|
@@ -540,20 +541,23 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestParser.TestEmptyLine;
|
|
procedure TTestParser.TestEmptyLine;
|
|
|
|
+
|
|
// Bug report 36037
|
|
// 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;
|
|
|
|
|
|
+
|
|
|
|
+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
|
|
begin
|
|
With TJSONParser.Create(MyJSON,[joUTF8,joIgnoreTrailingComma]) do
|
|
With TJSONParser.Create(MyJSON,[joUTF8,joIgnoreTrailingComma]) do
|
|
Try
|
|
Try
|
|
@@ -564,6 +568,40 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestParser.TestBug36037Part2;
|
|
|
|
+
|
|
|
|
+Const
|
|
|
|
+ MyJSON =
|
|
|
|
+
|
|
|
|
+'{'+sLineBreak+
|
|
|
|
+' "tab_spaces": true,'+sLineBreak+
|
|
|
|
+' //auto-indent kind:'+sLineBreak+
|
|
|
|
+' // 0: indent like in prev line'+sLineBreak+
|
|
|
|
+' // 1: by spaces'+sLineBreak+
|
|
|
|
+' // 2: by tabs+spaces'+sLineBreak+
|
|
|
|
+' // 3: by tabs only'+sLineBreak+
|
|
|
|
+' "indent_kind": 1,'+sLineBreak+
|
|
|
|
+' "indent_size": 4,'+sLineBreak+
|
|
|
|
+''+sLineBreak+
|
|
|
|
+' "saving_trim_spaces": true,'+sLineBreak+
|
|
|
|
+''+sLineBreak+
|
|
|
|
+'// "config_menus_from": "kv-menu JSON.json",'+sLineBreak+
|
|
|
|
+' "find_hotkey_replace": "Alt+Enter",'+sLineBreak+
|
|
|
|
+' "fold_style": 4,'+sLineBreak+
|
|
|
|
+'}'+sLineBreak;
|
|
|
|
+
|
|
|
|
+var
|
|
|
|
+ J : TJSONData;
|
|
|
|
+begin
|
|
|
|
+ With TJSONParser.Create(MyJSON,[joUTF8,joIgnoreTrailingComma,joComments]) 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
|