anchor.diff:  interpret_file_attr([{attribute,L,file,{_File,Line}} | Forms], 
                       Delta, Fs) when L < 0 ->
       %% -file attribute
  -    interpret_file_attr(Forms, (abs(L) + Delta) - Line, Fs);
  +    interpret_file_attr(Forms, {(abs(element(1,L)) + Delta) - Line,element(2, L)}, Fs);
   interpret_file_attr([{attribute,_AL,file,{File,_Line}}=Form | Forms], 
                       Delta, Fs) ->
       %% -include or -include_lib
  
positive.code: 
  scan_file([{'(',_Llp},{string,_Ls,Name},{',',_Lc},{integer,_Li,Ln},{')',_Lrp},
             {dot,_Ld}], Lf, From, St) ->
      enter_file_reply(From, Name, Ln, -abs(Lf)),
      Ms = dict:store({atom,'FILE'}, {none,[{string,1,Name}]}, St#epp.macs),
      scan_toks(From, St#epp{name=Name,line=Ln+(St#epp.line-Lf),macs=Ms});
  scan_file(_Toks, Lf, From, St) ->
      epp_reply(From, {error,{Lf,epp,{bad,file}}}),
      wait_req_scan(St).
  
negative.code: scan_toks([{'-',_Lh},{atom,Ld,undef}|Toks], From, St) ->
      scan_undef(Toks, Ld, From, St);
  scan_toks([{'-',_Lh},{atom,Li,include}|Toks], From, St) ->
      scan_include(Toks, {abs(element(1, Li)), element(2, Li)}, From, St);
  scan_toks([{'-',_Lh},{atom,Li,include_lib}|Toks], From, St) ->
      scan_include_lib(Toks, {abs(element(1, Li)), element(2, Li)}, From, St);
  scan_toks([{'-',_Lh},{atom,Li,ifdef}|Toks], From, St) ->
      scan_ifdef(Toks, Li, From, St);
  scan_toks([{'-',_Lh},{atom,Li,ifndef}|Toks], From, St) ->
  