anchor.diff:  %% @doc Split the binary into lines. Line separators can be \r, \n or \r\n.
   split_lines(B) when is_binary(B) ->
       split_lines(B, <<>>, []).
  -    
  +
       split_lines(<<>>, Line, Acc) ->
           lists:reverse([Line|Acc]);
       split_lines(<<13,10,Rest/binary>>, Line, Acc) ->
  
positive.code:         _       -> truncate(Rest1, N-1, Append, LastState, Last, word, Acc1)
      end;
  truncate(<<C/utf8,Rest/binary>>, N, Append, LastState, Last, _AccState, Acc) ->
      truncate(Rest, N-1, Append, LastState, Last, in_word, <<Acc/binary,C/utf8>>).
  
  
  get_entity(<<>>, Acc) ->
  
negative.code: -spec first_char(binary()|list()) -> pos_integer().
  first_char(<<>>) -> undefined;
  first_char(<<C/utf8, _/binary>>) -> C;
  first_char(<<C, _/binary>>) -> C;   %% illegal UTF-8, do not crash
  first_char([]) -> undefined;
  first_char([C|_]) when is_integer(C), C < 128 ->
      C;
  