code: @Override
      public void rewind(int count) throws IOException
      {
          if (count < 0)
          {
              throw new IllegalArgumentException("negative rewind "+count);
          }
          cursor -= count;
          if (cursor < end - size || cursor < 0)
          {
              throw new IOException("insufficient room in the pushback buffer");
          }
          length -= count;
          if (length < 0)
          {
              throw new IOException("rewinding past input");
          }
          int ld = 0;
          for (int ii=0;ii<count;ii++)
          {
              if (get((cursor+ii)) == '\n')
              {
                  ld++;
              }
          }
          if (ld > 0)
          {
              int l = includeLevel.line;
              includeLevel.line = l - ld;
              int c = 0;
              long start = Math.max(0, end-size);
              for (long ii=cursor;ii>=start;ii--)
              {
                  if (get(ii) == '\n')
                  {
                      break;
                  }
                  c++;
              }
              includeLevel.column = c;
          }
          else
          {
              int c = includeLevel.column;
              includeLevel.column = c - count;
          }
      }
docs: Rewinds cursor position count characters. Used for unread.
  @param count
  @throws IOException