anchor.diff:  safe_open(Filename, Args) ->
       case file:open(Filename, Args) of
   	{ok, FD} ->
  -	    FD;
  +	    {ok, FD};
   	{error, E} ->
   	    erlang:fault("Error opening logfile", [Filename, Args])
       end.
  
positive.code: %% gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
  
  -record(state, {debug_iodev, normal_iodev, error_iodev}).
  
  %%====================================================================
  %% External functions
  
negative.code: %%          {stop, Reason, Reply, State}   | (terminate/2 is called)
  %%          {stop, Reason, State}            (terminate/2 is called)
  %%--------------------------------------------------------------------
  handle_call({rotate_logs}, From, State) ->
      %% Create rotation suffix from current time
      {Megasec, Sec, USec} = now(),
      USecStr = string:substr(integer_to_list(USec), 1, 3),
      DateTime = util:sec_to_date(Megasec * 1000000 + Sec),
      case string:tokens(DateTime, " ") of
  	[Date, Time] ->
  	    Suffix = "-" ++ Date ++ "_" ++ Time,
  	    {Res, NewState} = rotate([debug, normal, error], Suffix, State),
  	    {reply, Res, NewState};
  	_ ->
  	    {reply, {error, "Could not create suitable suffix"}, State}
      end;
  
  handle_call({rotate_logs, Suffix}, From, State) ->
      {Res, NewState} = rotate([debug, normal, error], Suffix, State),
      {reply, Res, NewState};
  
  handle_call({rotate_logs, Suffix, Logs}, From, State) when list(Logs) ->
      {Res, NewState} = rotate(Logs, Suffix, State),
      {reply, Res, NewState};
  
  handle_call({quit}, From, State) ->
      {stop, normal, {ok}, State};
  
  