#97, upstream fix, properties values containing escaped double quotes

This commit is contained in:
Basile Burg 2016-09-27 17:43:14 +02:00
parent a6e8f00f2b
commit 346c4d0e2f
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
1 changed files with 21 additions and 4 deletions

View File

@ -42,7 +42,7 @@ type
TSetGprEvent = procedure(reg: TCpuRegister; val: TCpuRegValue) of object;
// Makes a category for the general purpose registers in a project inspector
// Makes a category for the general purpose registers in a object inspector
TInspectableGPR = class(TPersistent)
private
fRegisters: array[TCpuRegister] of TCpuRegValue;
@ -83,7 +83,7 @@ type
procedure setInspectableRegister(index: TCpuRegister; value: PtrUInt);
end;
// Makes a category for the floating point coprocessor registers in a project inspector
// Makes a category for the floating point coprocessor registers in a object inspector
TInspectableFPR = class(TPersistent)
private
fRegisters: array[TFpuRegister] of double;
@ -100,7 +100,7 @@ type
procedure setInspectableRegister(index: TFpuRegister; value: double);
end;
// Makes a category for the SSE registers in a project inspector
// Makes a category for the SSE registers in a object inspector
TInspectableSSER = class(TPersistent)
// interpretation is a problem:
// 4 int ? 2 double ? 4 single ? ...
@ -894,7 +894,24 @@ procedure parseGdbout(const str: string; var json: TJSONObject);
end;
'"':
begin
node.Strings[idt] := r^.popFront^.takeUntil('"').yield;
v := '';
r^.popFront;
while true do
begin
v += r^.takeUntil(['"','\']).yield;
if r^.front = '\' then
begin
v += '\';
r^.popFront;
if r^.front = '"' then
begin
r^.popFront;
v += '"';
end;
end else
break;
end;
node.Strings[idt] := v;
r^.popFront;
end;
'{':