docs: @Override
      public int read() throws IOException {
          if (newLineWasRead) {
              line += 1;
              column = 1;
              newLineWasRead = false;
          }
  
          int charRead = super.read();
          if (charRead > -1) {
              char c = (char)charRead;
              // found a \r or \n, like on Mac or Unix
              // could also be Windows' \r\n
              if (c == '\r' || c == '\n') {
                  newLineWasRead = true;
                  if (c == '\r') {
                      mark(1);
                      c = (char)super.read();
                      // check if we have \r\n like on Windows
                      // if it's not \r\n we reset, otherwise, the \n is just consummed
                      if (c != '\n') {
                          reset();
                      }
                  }
              } else {
                  column += 1;
              }
          }
  
          return charRead;
      }