Skip to content

Commit

Permalink
Better spoiler handling
Browse files Browse the repository at this point in the history
  • Loading branch information
QuantumBadger committed Jul 14, 2013
1 parent e8d0105 commit 416f324
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
2 changes: 1 addition & 1 deletion AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.quantumbadger.redreader"
android:versionCode="40"
android:versionName="1.7.6"
android:versionName="1.8.0"
android:installLocation="auto">

<uses-sdk android:minSdkVersion="8"
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.quantumbadger.redreader</groupId>
<artifactId>redreader</artifactId>
<version>1.7.6</version>
<version>1.8.0</version>
<packaging>apk</packaging>
<name>redreader</name>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,7 @@ private static void clean(final IntArrayLengthPair input, final IntArrayLengthPa

if(isSpaces(input.data, lastBracketSquareClose + 1, parenOpenPos)) {

final int parenClosePos = indexOf(input.data, TOKEN_PAREN_CLOSE,
parenOpenPos + 1, input.pos);
final int parenClosePos = findParenClosePos(input, parenOpenPos + 1);

if(parenClosePos >= 0) {

Expand Down Expand Up @@ -508,6 +507,33 @@ private static void clean(final IntArrayLengthPair input, final IntArrayLengthPa
}
}

private static int findParenClosePos(final IntArrayLengthPair tokens, int startPos) {

for(int i = startPos; i < tokens.pos; i++) {

switch(tokens.data[i]) {

case TOKEN_PAREN_CLOSE:
return i;

case '"':
i = indexOfIgnoreEscaped(tokens, '"', i + 1);
if(i < 0) return -1;
break;
}
}

return -1;
}

private static int indexOfIgnoreEscaped(final IntArrayLengthPair haystack, int needle, int startPos) {
for(int i = startPos; i < haystack.pos; i++) {
if(haystack.data[i] == '\\') i++;
else if(haystack.data[i] == needle) return i;
}
return -1;
}

private static void naiveTokenize(final IntArrayLengthPair input, final IntArrayLengthPair output) {

output.clear();
Expand Down

0 comments on commit 416f324

Please sign in to comment.