anchor.diff:          {ok, IniBin0} ->
               IniBin0;
           {error, enoent} ->
  -            Msg = ?l2b(io_lib:format("Couldn't find server configuration file ~s.", [IniFilename])),
  +            Fmt = "Couldn't find server configuration file ~s.",
  +            Msg = ?l2b(io_lib:format(Fmt, [IniFilename])),
               ?LOG_ERROR("~s~n", [Msg]),
               throw({startup_error, Msg})
       end,
  
positive.code: get(Section, Key, Default) when is_binary(Section) and is_binary(Key) ->
      ?MODULE:get(?b2l(Section), ?b2l(Key), Default);
  get(Section, Key, Default) ->
      case ets:lookup(?MODULE, {Section, Key}) of
      [] -> Default;
      [{_,Result}] -> Result
      end.
  
  set(Section, Key, Value) ->
      set(Section, Key, Value, true).
  
  set(Section, Key, Value, Persist) when is_binary(Section) and is_binary(Key)  ->
      set(?b2l(Section), ?b2l(Key), Value, Persist);
  set(Section, Key, Value, Persist) ->
      gen_server:call(?MODULE, {set, [{{Section, Key}, Value}], Persist}).
  
  delete(Section, Key) ->
      set(Section, Key, "").
  
  register(Fun) ->
      ?MODULE:register(Fun, self()).
  
negative.code: % License for the specific language governing permissions and limitations under
  % the License.
  
  % Reads CouchDB's ini file and gets queried for configuration parameters.
  % This module is initialized with a list of ini files that it consecutively
  % reads Key/Value pairs from and saves them in an ets table. If more an one
  % ini file is specified, the last one is used to write changes that are made
  % with store/2 back to that ini file.
  
  -module(couch_config).
  -behaviour(gen_server).
  
  -include("couch_db.hrl").
  
  
  -export([start_link/1, stop/0]).
  -export([all/0, get/1, get/2, get/3, set/3, set/4, delete/2, delete/3]).
  -export([register/1, register/2]).
  -export([parse_ini_file/1]).
  
  -export([init/1, terminate/2, code_change/3]).
  -export([handle_call/3, handle_cast/2, handle_info/2]).
  
  -record(config, {
      notify_funs=[],
      write_filename=undefined
  }).
  
  
  start_link(IniFiles) ->
      gen_server:start_link({local, ?MODULE}, ?MODULE, IniFiles, []).
  
  stop() ->
      gen_server:cast(?MODULE, stop).
  
  
  all() ->
      lists:sort(gen_server:call(?MODULE, all)).
  
  
  get(Section) when is_binary(Section) ->
      ?MODULE:get(?b2l(Section));
  get(Section) ->
      gen_server:call(?MODULE, {get, Section}).
  
  get(Section, Key) ->
      ?MODULE:get(Section, Key, undefined).
  