From b8cd929a6f7a0a8b92c69f5a0a37e0f6fb09dc30 Mon Sep 17 00:00:00 2001 From: Vhati Date: Sat, 26 Apr 2014 17:28:06 -0400 Subject: [PATCH] Fixed advanced find tags not honoring limit= --- skel_common/readme_changelog.txt | 1 + src/main/java/net/vhati/modmanager/core/XMLPatcher.java | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/skel_common/readme_changelog.txt b/skel_common/readme_changelog.txt index 443ca6a..a6da97b 100644 --- a/skel_common/readme_changelog.txt +++ b/skel_common/readme_changelog.txt @@ -3,6 +3,7 @@ Changelog 1.5: - Added 'no info... yet' message when mods/ scan is still in-progress - Fixed advanced find tags not honoring start= when greater than match count +- Fixed advanced find tags not honoring limit= - Fixed hidden files and directories not appearing when finding resources - Updated log4j2 to 2.0-beta9, fixing a hang when run with Java 1.7.0_25 - Changed FTLDat to allow opening dats in read-only mode diff --git a/src/main/java/net/vhati/modmanager/core/XMLPatcher.java b/src/main/java/net/vhati/modmanager/core/XMLPatcher.java index 9652998..6715b5a 100644 --- a/src/main/java/net/vhati/modmanager/core/XMLPatcher.java +++ b/src/main/java/net/vhati/modmanager/core/XMLPatcher.java @@ -125,7 +125,7 @@ public class XMLPatcher { if ( searchStart < matchedNodes.size() ) { if ( searchLimit > -1 ) { - matchedNodes = matchedNodes.subList( searchStart, Math.max( matchedNodes.size(), searchStart + searchLimit ) ); + matchedNodes = matchedNodes.subList( searchStart, Math.min( matchedNodes.size(), searchStart + searchLimit ) ); } else if ( searchStart > 0 ) { matchedNodes = matchedNodes.subList( searchStart, matchedNodes.size() ); } @@ -180,7 +180,7 @@ public class XMLPatcher { if ( searchStart < matchedNodes.size() ) { if ( searchLimit > -1 ) { - matchedNodes = matchedNodes.subList( searchStart, Math.max( matchedNodes.size(), searchStart + searchLimit ) ); + matchedNodes = matchedNodes.subList( searchStart, Math.min( matchedNodes.size(), searchStart + searchLimit ) ); } else if ( searchStart > 0 ) { matchedNodes = matchedNodes.subList( searchStart, matchedNodes.size() ); } @@ -235,7 +235,7 @@ public class XMLPatcher { if ( searchStart < matchedNodes.size() ) { if ( searchLimit > -1 ) { - matchedNodes = matchedNodes.subList( searchStart, Math.max( matchedNodes.size(), searchStart + searchLimit ) ); + matchedNodes = matchedNodes.subList( searchStart, Math.min( matchedNodes.size(), searchStart + searchLimit ) ); } else if ( searchStart > 0 ) { matchedNodes = matchedNodes.subList( searchStart, matchedNodes.size() ); } @@ -270,7 +270,7 @@ public class XMLPatcher { if ( searchStart < matchedNodes.size() ) { if ( searchLimit > -1 ) { - matchedNodes = matchedNodes.subList( searchStart, Math.max( matchedNodes.size(), searchStart + searchLimit ) ); + matchedNodes = matchedNodes.subList( searchStart, Math.min( matchedNodes.size(), searchStart + searchLimit ) ); } else if ( searchStart > 0 ) { matchedNodes = matchedNodes.subList( searchStart, matchedNodes.size() ); }