From b00c96868f7601e5c6d3ae5642258587ff25c798 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 9 Jan 2017 12:48:45 +0000 Subject: [PATCH] Update new line handling Resolves #270 and https://github.com/VBA-tools/VBA-JSON/issues/41. See https://github.com/VBA-tools/VBA-JSON/pull/44 for matching fix to VBA-JSON. --- src/WebHelpers.bas | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/WebHelpers.bas b/src/WebHelpers.bas index 32cf44e8..b70b4456 100644 --- a/src/WebHelpers.bas +++ b/src/WebHelpers.bas @@ -2374,11 +2374,21 @@ Private Function json_ParseString(json_String As String, ByRef json_Index As Lon json_BufferAppend json_buffer, vbFormFeed, json_BufferPosition, json_BufferLength json_Index = json_Index + 1 Case "n" - json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength - json_Index = json_Index + 1 + If VBA.Mid$(json_String, json_Index+1, 2) == "\r" Then + json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 3 + Else + json_BufferAppend json_buffer, vbLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 1 + End If Case "r" - json_BufferAppend json_buffer, vbCr, json_BufferPosition, json_BufferLength - json_Index = json_Index + 1 + If VBA.Mid$(json_String, json_Index+1, 2) == "\n" Then + json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 3 + Else + json_BufferAppend json_buffer, vbCr, json_BufferPosition, json_BufferLength + json_Index = json_Index + 1 + End If Case "t" json_BufferAppend json_buffer, vbTab, json_BufferPosition, json_BufferLength json_Index = json_Index + 1