anchor.diff:  fmt(Fmt, Args) ->
       cf:format(Fmt, Args).
   
  -line_from_line_col({Line, Col}) ->
  -    io_lib:format("~w (at column ~w)", [Line, Col]);
  -line_from_line_col(Line) ->
  -    io_lib:format("~w", [Line]).
  +file_location_warning(no_file, {Line, Col}, String) ->
  +    {"Line ~!c~w~!! Column ~!c~w~!!: ~ts", [Line, Col, String]};
  +file_location_warning(F, {Line, Col}, String) ->
  +    {"~n~ts~nLine ~!c~w~!! Column ~!c~w~!!: ~ts", [F, Line, Col, String]};
  +file_location_warning(no_file, Line, String) ->
  +    {"Line ~!c~w~!!: ~ts", [Line, String]};
  +file_location_warning(F, Line, String) ->
  +    {"~n~ts~nLine ~!c~w~!!: ~ts", [F, Line, String]}.
   
   %%-----------------------------------------------------------------------------
   %% Message classification and pretty-printing below. Messages appear in
  
positive.code:     end;
  
  %% With a new file detencted we also write a file header.
  format_warning_(Opts, Warning = {_Tag, {SrcFile, LineOrLineCol}, Msg}, {_LastFile, Acc}) ->
      try
          File = rebar_dir:format_source_file_name(SrcFile, Opts),
          Base = filename:basename(File),
  
negative.code:         Base1 = fmt("~!_c~ts~!!~!__~ts", [Root, Ext]),
          F = fmt("~!__~ts", [filename:join(Path, Base1)]),
          String = message_to_string(Msg),
          {Fmt, Args} = file_location_warning(F, Line, String),
          {SrcFile, [lists:flatten(fmt(Fmt, Args)) | Acc]}
      catch
          ?WITH_STACKTRACE(Error, Reason, Stacktrace)
              ?DEBUG("Failed to pretty format warning: ~p:~p~n~p",
  