anchor.diff:  		_ ->
   		    try 
   			Str = refac_util:concat_toks(Toks),
  -			{ok, Toks1, _} = refac_scan:string(Str, {1,1}, 8, 'unix'),
  +			{ok, Toks1, _} = refac_scan:string(Str, {1,1}, ?TabWidth, 'unix'),
   			OriginalForm = refac_epp_dodger:normal_parser(Toks1, []),
   			
   			NewStr = format(Form, []),
  -			{ok, Toks2, _} = refac_scan:string(NewStr, {1,1}, 8, 'unix'),
  +			{ok, Toks2, _} = refac_scan:string(NewStr, {1,1}, ?TabWidth, 'unix'),
   			NewForm = refac_epp_dodger:normal_parser(Toks2, []),
   			best(OriginalForm) == best(NewForm)
   		    of
  
positive.code: -define(NOUSER, undefined).
  
  -define(NOHOOK, none).
  
  -record(ctxt,
  	{prec = 0,sub_indent = 2,break_indent = 4,
  	 clause = undefined,hook = ?NOHOOK,paper = ?PAPER,
  	 ribbon = ?RIBBON,user = ?NOUSER,
  	 tokens = [],
  	 format = unknown}).
  
  %% Start of added by HL
  %% ====================================================================
  %% user-program guided pretty-printing of an abstract syntax tree which
  %% must be a form list.
  print_ast(FileFmt, AST) -> 
      print_ast(FileFmt, AST,[]).
  
  print_ast(FileFmt, AST,Options) ->
      Fs = refac_syntax:form_list_elements(AST),
      vertical_concat(Fs, FileFmt, Options).
   
  print_form(F,Ctxt,Fun) ->
      {Paper,Ribbon} = get_paper_ribbon_width(F),
      best(Fun(F,Ctxt),Paper,Ribbon).
   
  no_of_changed_funs(AST) ->
      Forms = refac_syntax:form_list_elements(AST),
      Res =[case form_not_changed(Form) of 
  	      true -> 0;
  	      false -> 1
  	  end || Form <-Forms],
      lists:sum(Res).
  
  
  vertical_concat(Forms, FileFmt, Options) -> 
      vertical_concat(Forms, FileFmt, Options,"").
  
  vertical_concat([], _FileFormat, _Options, Acc) -> 
      Acc;
  vertical_concat([Form|T], FileFormat, Options, Acc) ->
      UseOriginalCode = form_not_changed(Form),
      Delimitor = case FileFormat of
  		    dos -> "\r\n";
  
negative.code: 		    false
  	    end
      end.
  
  
  no_of_changed_funs_toks(AST) ->
      Forms = refac_syntax:form_list_elements(AST),
      Res =[case form_not_changed(Form) of 
  	      true -> {0, 0, 0};
  	      false ->
  		  {ToksRemoved, ToksAdded} =
  		      change_of_tokens(Form),
  		  {1, ToksRemoved, ToksAdded}
  	  end || Form <-Forms],
      {ChangedFuns, TotalToksRemoved, TotalToksAdded} =
  	lists:unzip3(Res),
      {lists:sum(ChangedFuns), lists:sum(TotalToksRemoved),
       lists:sum(TotalToksAdded)}.
  
  change_of_tokens(Form) ->
      OriginalToks = rm_loc_in_toks(refac_misc:get_toks(Form)),
      {ok, NewToks0, _} = refac_scan:string(print_a_form(Form, undefined, [])),
      NewToks = rm_loc_in_toks(NewToks0),
      ToksRemoved = OriginalToks--NewToks,
      ToksAdded = NewToks--OriginalToks,
      {length(ToksRemoved), length(ToksAdded)}.
  
  
  rm_loc_in_toks(Ts) ->
      [rm_loc_in_a_tok(T)||T<-Ts, not(is_whitespace_or_comment(T))].
  
  rm_loc_in_a_tok(T) ->
      D = {0,0},
      case T of 
  	{var, _L, V} -> {var, D, V};
  	{integer, _L, V} -> {integer, D, V};
  	{string, _L, V} -> {string, D, V};
  	{float, _L, V} -> {float, D, V}; 
  	{char, _L, V}  -> {char, D, V};
  	{atom, _L, V} -> {atom, D, V};
  	{A, _L} ->{A, D};
  	Other  -> 
  	    Other
      end.
  
  
  is_whitespace_or_comment({whitespace, _, _}) ->
      true;
  is_whitespace_or_comment({comment, _, _}) ->
      true;
  is_whitespace_or_comment(_) -> false.
  
  