From 244e03d5425a4070c50d2c8bc6e731cd27f80f30 Mon Sep 17 00:00:00 2001 From: Riccardo Mottola Date: Fri, 25 Jun 2021 17:48:52 +0200 Subject: [PATCH] handle arrays inside maps --- .../Debuggers/ProjectCenter/PipeDelegate.m | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Modules/Debuggers/ProjectCenter/PipeDelegate.m b/Modules/Debuggers/ProjectCenter/PipeDelegate.m index c6fe0ef..3e34e0f 100644 --- a/Modules/Debuggers/ProjectCenter/PipeDelegate.m +++ b/Modules/Debuggers/ProjectCenter/PipeDelegate.m @@ -200,12 +200,20 @@ [stringScanner scanUpToString: @"=" intoString: &key]; [stringScanner scanString: @"=" intoString: NULL]; - [stringScanner scanString: @"\"" intoString: NULL]; - [stringScanner scanUpToString: @"\"" intoString: &value]; - [stringScanner scanString: @"\"" intoString: NULL]; - [stringScanner scanString: @"," intoString: NULL]; - - // we fail to parse if the value is in [] + if ([stringInput characterAtIndex:[stringScanner scanLocation]] == '[') + { + [stringScanner scanString: @"[" intoString: NULL]; + [stringScanner scanUpToString: @"]" intoString: &value]; + [stringScanner scanString: @"]" intoString: NULL]; + value = [self parseArray: value]; + } + else + { + [stringScanner scanString: @"\"" intoString: NULL]; + [stringScanner scanUpToString: @"\"" intoString: &value]; + [stringScanner scanString: @"\"" intoString: NULL]; + [stringScanner scanString: @"," intoString: NULL]; + } // NSLog(@"parse KVS: key %@ value %@", key, value); if (key != nil && value != nil) [mdict setObject:value forKey:key];