/*
   * This method has been added to improve performance.
   */
  public void write(byte b[], int off, int len) throws IOException {
    int lastc = (lastb == -1) ? '\n' : lastb;
    int start = off;

    len += off;
    for (int i = off; i < len; i++) {
      if ((lastc == '\n' || lastc == '\r') && b[i] == '.') {
        super.write(b, start, i - start);
        out.write('.');
        start = i;
      }
      lastc = b[i];
    }
    if ((len - start) > 0) super.write(b, start, len - start);
  }
  public void write(int b) throws IOException {
    // if that last character was a newline, and the current
    // character is ".", we always write out an extra ".".
    if ((lastb == '\n' || lastb == '\r' || lastb == -1) && b == '.') {
      out.write('.');
    }

    super.write(b);
  }