@@ -128,10 +128,11 @@ static inline OFString* parseString(const char *restrict *pointer, const char *stop) { char *buffer; size_t i = 0; + char delimiter = **pointer; if (++(*pointer) + 1 >= stop) return nil; if ((buffer = malloc(stop - *pointer)) == NULL) @@ -234,11 +235,11 @@ default: free(buffer); return nil; } /* End of string found */ - } else if (**pointer == '"') { + } else if (**pointer == delimiter) { OFString *ret; @try { ret = [OFString stringWithUTF8String: buffer length: i]; @@ -398,10 +399,11 @@ if (*pointer >= stop) return nil; switch (**pointer) { case '"': + case '\'': return parseString(pointer, stop); case '[': return parseArray(pointer, stop); case '{': return parseDictionary(pointer, stop);