anchor.diff:  
   do_open_input_file(Path) ->
     %% We MUST call file:open/2 from within the gen_server.
  -  %% A positive consequence is that we can open the file in 'raw' mode.
  -  case file:open(Path, [read, raw, read_ahead]) of
  +  %% Note: This only works for text files, e.g. source code.
  +  case file:open(Path, [read, {encoding, utf8}, read_ahead]) of
       {ok, IoDev} ->
         Funs =
           #input_port_funs
  
positive.code: input_file_peek_char(State = {Buf, IoDev}) ->
    case Buf of
      [] ->
        case file:read(IoDev, 1) of
          {ok, Line = [Ch | _]} ->
            {{ok, Ch}, {Line, IoDev}};
          eof ->
            {{ok, -1}, {[], IoDev}}
  
negative.code: input_file_read_char({Buf, IoDev}) ->
    case Buf of
      [] ->
        case io:get_line(IoDev, []) of
          [Ch | Rest] ->
            {{ok, Ch}, {Rest, IoDev}};
          eof ->
           {{ok, -1}, {[], IoDev}}
  