anchor.diff:  gen_fun_1_eclipse(SideEffect, FileName,ParName, FunName, Arity, DefPos, Exp, SearchPaths,TabWidth, Dups, LogCmd) ->
       gen_fun_1(SideEffect, FileName,ParName, FunName, Arity, DefPos, Exp, SearchPaths, TabWidth, Dups, eclipse,LogCmd).
   
  -gen_fun_1(SideEffect, FileName, ParName, FunName, Arity, DefPos, Exp, SearchPaths, TabWidth, Dups, Editor, LogCmd) ->
  +gen_fun_1(SideEffect, FileName, ParName, FunName, Arity, DefPos, Exp0, SearchPaths, TabWidth, Dups, Editor, LogCmd) ->
       {ok, {AnnAST, Info}} = refac_util:parse_annotate_file(FileName, true, [], TabWidth),
       {ok, ModName} = get_module_name(Info),
  +    Exp = case Editor of
  +	       emacs -> list_to_term(Exp0);
  +	       _ -> Exp0
  +	   end,
       AnnAST1 = case to_keep_original_fun(FileName, AnnAST, ModName, FunName, Arity, Exp, Info) of
   		true -> add_function(ModName, AnnAST, FunName, DefPos, Exp, SideEffect);
   		false -> AnnAST
  
positive.code: 		  function ->
  		      case get_fun_def_loc(Form) of
  			DefPos ->
  			    NewPar = refac_syntax:variable(ParName),
  			    Cs = refac_syntax:function_clauses(Form),
  			    Cs1 = [replace_clause_body(C, FunName, Exp, Exp1) || C <- Cs],
  			    Form1 = refac_misc:rewrite(Form, refac_syntax:function(refac_syntax:atom(FunName), Cs1)),
  			    ClauseToGen = hd(lists:filter(fun (C) -> {EStart, EEnd} = refac_misc:get_start_end_loc(Exp),
  								     {CStart, CEnd} = refac_misc:get_start_end_loc(C),
  								     CStart =< EStart andalso EEnd =< CEnd
  							  end, Cs)),
  
negative.code: 	    end;
  	_ -> As  %% not necessary to be a proper list here.
      end.
  
  term_to_list(Term) ->
      binary_to_list(term_to_binary(Term)).
  
  list_to_term(List)->
      binary_to_term(list_to_binary(List)).
  
  