docs: protected void readUntil(char echar) throws IOException
      {
          int ch, i = 0;
          IStringBuffer sb = new IStringBuffer();
          while ( (ch = readNext()) != -1 ) {
              if ( ++i >= MAX_QUOTE_LENGTH ) {
                  /*
                   * push back the readed chars
                   * and reset the global idx value. 
                  */
                  for ( int j = sb.length() - 1; j >= 0; j-- ) {
                      reader.unread(sb.charAt(j));
                  }
                  idx -= sb.length();
                  break;
              }
              
              sb.append((char)ch);
              if ( ch == echar ) {
                  gisb.append(sb.toString());
                  break;
              }
          }
          
          sb = null;
      }