git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@699002 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -226,6 +226,9 @@ Fixed bugs: | |||||
| than numbers, letters, hyphen or underscore properly. | than numbers, letters, hyphen or underscore properly. | ||||
| Bugzilla Report 45820. | Bugzilla Report 45820. | ||||
| * <filterset> could miss multi-character begin tokens in some cases. | |||||
| Bugzilla Report 45094. | |||||
| Other changes: | Other changes: | ||||
| -------------- | -------------- | ||||
| @@ -537,9 +537,13 @@ public class FilterSet extends DataType implements Cloneable { | |||||
| i = index + beginToken.length() + token.length() | i = index + beginToken.length() + token.length() | ||||
| + endToken.length(); | + endToken.length(); | ||||
| } else { | } else { | ||||
| // just append beginToken and search further | |||||
| b.append(beginToken); | |||||
| i = index + beginToken.length(); | |||||
| // just append first character of beginToken | |||||
| // and search further | |||||
| // we can't skip the complete beginToken since | |||||
| // it may contain the start of another | |||||
| // candidate begin token (Bugzilla 45094) | |||||
| b.append(beginToken.charAt(0)); | |||||
| i = index + 1; | |||||
| } | } | ||||
| index = line.indexOf(beginToken, i); | index = line.indexOf(beginToken, i); | ||||
| } | } | ||||
| @@ -41,4 +41,23 @@ | |||||
| actual="${afterfiltering}"/> | actual="${afterfiltering}"/> | ||||
| </target> | </target> | ||||
| <!-- https://issues.apache.org/bugzilla/show_bug.cgi?id=45094 --> | |||||
| <target name="testOverlappingMulticharToken"> | |||||
| <mkdir dir="${output}"/> | |||||
| <copy todir="${output}"> | |||||
| <string value="@@USER@@@@@HOST@@" /> | |||||
| <mergemapper to="filterset-output.txt" /> | |||||
| <filterset begintoken="@@" endtoken="@@"> | |||||
| <filter token="USER" value="user" /> | |||||
| <filter token="HOST" value="host" /> | |||||
| </filterset> | |||||
| </copy> | |||||
| <loadfile property="afterfiltering" srcFile="${output}/filterset-output.txt"/> | |||||
| <au:assertEquals | |||||
| expected="user@host" | |||||
| actual="${afterfiltering}"/> | |||||
| </target> | |||||
| </project> | </project> | ||||