\r
#### fixes\r
\r
+- Fixed intermittent bug in identifying line numbers in Lucene search (issue 105)\r
- Adjust repository search to handle foo.git and foo/bar.git (issue 104)\r
- Fixed bug where a repository set as authenticated push did not have anonymous clone access (issue 96)\r
- Fixed bug in Basic authentication if passwords had a colon (Github/peterloron)\r
return "<pre class=\"text\">" + StringUtils.escapeForHtml(fragment, true) + "</pre>";\r
}\r
\r
- int contentPos = 0;\r
+ // make sure we have unique fragments\r
+ Set<String> uniqueFragments = new LinkedHashSet<String>();\r
+ for (String fragment : fragments) {\r
+ uniqueFragments.add(fragment);\r
+ }\r
+ fragments = uniqueFragments.toArray(new String[uniqueFragments.size()]);\r
+ \r
StringBuilder sb = new StringBuilder();\r
for (int i = 0, len = fragments.length; i < len; i++) {\r
String fragment = fragments[i];\r
String raw = fragment.replace(termTag, "").replace(termTagEnd, "");\r
\r
// determine position of the raw fragment in the content\r
- int pos = content.indexOf(raw, contentPos);\r
+ int pos = content.indexOf(raw);\r
\r
// restore complete first line of fragment\r
int c = pos;\r
}\r
tag = MessageFormat.format("<pre class=\"prettyprint linenums:{0,number,0}{1}\">", line, lang);\r
\r
- // update offset into content \r
- contentPos = pos + raw.length() + 1;\r
}\r
\r
sb.append(tag);\r