public boolean skipPast ( String to ) throws JSONException { boolean b ; char c ; int i ; int j ; int offset = 0 ; int length = to . length ( ) ; char [ ] circle = new char [ length ] ; /* * First fill the circle buffer with as many characters as are in the to string. If we reach an early end, bail. */ for ( i = 0 ; i < length ; i += 1 ) { c = next ( ) ; if ( c == 0 ) { return false ; } circle [ i ] = c ; } /* We will loop, possibly for all of the remaining characters. */ for ( ; ; ) { j = offset ; b = true ; /* Compare the circle buffer with the to string. */ for ( i = 0 ; i < length ; i += 1 ) { if ( circle [ j ] != to . charAt ( i ) ) { b = false ; break ; } j += 1 ; if ( j >= length ) { j -= length ; } } /* If we exit the loop with b intact, then victory is ours. */ if ( b ) { return true ; } /* Get the next character. If there isn't one, then defeat is ours. */ c = next ( ) ; if ( c == 0 ) { return false ; } /* * Shove the character in the circle buffer and advance the circle offset. The offset is mod n. */ circle [ offset ] = c ; offset += 1 ; if ( offset >= length ) { offset -= length ; } } }
Skip characters until past the requested string . If it is not found we are left at the end of the source with a result of false .