From 0a5cccc50f1b6efff32a0b741fe3bdde72a4c5e7 Mon Sep 17 00:00:00 2001 From: Enyby Date: Sun, 16 Sep 2018 15:02:29 +0300 Subject: [PATCH] Fix issue with frontier patterns #3 --- src/core/org/luaj/vm2/lib/StringLib.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/org/luaj/vm2/lib/StringLib.java b/src/core/org/luaj/vm2/lib/StringLib.java index ab33ae92..3910f13c 100644 --- a/src/core/org/luaj/vm2/lib/StringLib.java +++ b/src/core/org/luaj/vm2/lib/StringLib.java @@ -1075,9 +1075,10 @@ public class StringLib extends TwoArgFunction { error("Missing [ after %f in pattern"); } int ep = classend( poffset ); - int previous = ( soffset == 0 ) ? -1 : s.luaByte( soffset - 1 ); + int previous = ( soffset == 0 ) ? '\0' : s.luaByte( soffset - 1 ); + int next = ( soffset == s.length() ) ? '\0' : s.luaByte( soffset ); if ( matchbracketclass( previous, poffset, ep - 1 ) || - matchbracketclass( s.luaByte( soffset ), poffset, ep - 1 ) ) + !matchbracketclass( next, poffset, ep - 1 ) ) return -1; poffset = ep; continue;