anchor.diff:                         [{report_dir, LogDir}|Options]
                  end,
       case rb:start(Options1) of
  -    {ok, _Pid} -> ok;
  -    {error, already_present} ->
  -        % Can sometimes get wedged
  -        supervisor:delete_child(sasl_sup, rb_server),
  -        erlang:error(try_again);
  -    {error, Reason} ->
  -        erlang:error(Reason)
  +        {ok, _Pid} -> ok;
  +        {error, already_present} ->
  +                                                % Can sometimes get wedged
  +            supervisor:delete_child(sasl_sup, rb_server),
  +            erlang:error(try_again);
  +        {error, Reason} ->
  +            erlang:error(Reason)
       end,
       case RegExp of
  -    [] -> rb:show();
  -    _ -> rb:grep(RegExp)
  +        [] -> rb:show();
  +        _ -> rb:grep(RegExp)
       end,
       catch rb:stop(),
       TempFile.
  
positive.code: 
  parse_arguments(Opts, Args) ->
      try lists:map(fun
                ({K, N, F, D}) -> {K, map_args(K, N, F, D, proplists:get_all_values(K, Args))};
                ({K, N, F}) ->
                    case proplists:get_all_values(K, Args) of
                    [] -> erlang:error({missing_option, K});
                    A -> {K, map_args(K, N, F, undefined, A)}
                    end
                end, Opts) of
      Options -> {ok, Options}
      catch
      error:{missing_option, K} -> {missing_option, K};
      error:{parse_error, Reason, K, A} -> {parse_error, Reason, K, A}
      end.
  
negative.code:     NumReports = proplists:get_value(n, Options),
      rb:start([{report_dir, Dir}, {type, Types}, {max, NumReports}]),
      case RegExp of
          undefined -> rb:show();
          E -> io:format("grepping for ~p~n", [E]), rb:grep(E)
      end.
  
  get_logs_as_file(Types, NumReports, RegExp) ->
  