From f23e38fc35cea8db78df124f1bd6d3d56e6c9ab1 Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 4 Oct 2023 17:24:30 -0400 Subject: [PATCH] fix: fix lpeg version detection This changeset fixes the lpeg version detection to properly handle version > 1.1. The original fix did not properly parse the string because it search for the number to start the string instead of being part of the string. Refs: #47 --- lua/json/decode/util.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/json/decode/util.lua b/lua/json/decode/util.lua index 8b23751..4815650 100644 --- a/lua/json/decode/util.lua +++ b/lua/json/decode/util.lua @@ -97,7 +97,11 @@ local unicode_ignored = (unicode_space + comment)^0 -- Parse the lpeg version skipping patch-values -- LPEG <= 0.7 have no version value... so 0.7 is value -- LPEG >= 1.1 uses a string for the version instead of function -local DecimalLpegVersion = lpeg.version and tonumber((type(lpeg.version) == "string" and lpeg.version or lpeg.version()):match("^(%d+%.%d+)")) or 0.7 +local DecimalLpegVersion = lpeg.version + and tonumber( + (type(lpeg.version) == "string" and lpeg.version or lpeg.version()):match("(%d+%.%d+)") + ) + or 0.7 local function setObjectKeyForceNumber(t, key, value) key = tonumber(key) or key