docs: public Reader getReader() throws IOException {
         // we want to remove the BOM windows adds from a file if the encoding is UTF-8
         // in other cases we depend on the charsets 
         Charset cs = Charset.forName(configuration.getSourceEncoding());
         InputStream in = new BufferedInputStream(new FileInputStream(file));
         if (UTF8.name().equalsIgnoreCase(cs.name())) {
             in.mark(3);
             boolean hasBOM = true;
             try {
                 int i = in.read();
                 hasBOM &= i == 0xEF;
                 i = in.read();
                 hasBOM &= i == 0xBB;
                 i = in.read();
                 hasBOM &= i == 0xFF;
             } catch (IOException ioe) {
                 hasBOM= false;
             }
             if (!hasBOM) in.reset();
         }
         return new InputStreamReader( in, cs );
      }