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;
      }
    }
  }