function [config,fn]=cosmo_config(fn, config)
% return a struc with configuration settings, or store such settings
%
% Usages:
% - get the configuation (either default, or what is in '.cosmomvpa.cfg'):
% >> config=cosmo_config();
%
% - read configuration from a specified file
% >> config=cosmo_config(fn)
%
% - store configuration in a file
% >> cosmo_config(fn, to_store)
%
% - related function (in CoSMoMVPA's 'examples/' directory):
% >> cosmo_wizard_set_config
%
% Inputs:
% fn optional filename of a configuration file.
% This can either be a path of a file, or (on Unix platforms)
% a filename in the user's home directory.
% If fn is omitted, then it defaults to '.cosmomvpa.cfg'
% and will read the configuration from that file if it
% exists in one of the aforementioned locations; see the
% notes below for details.
% to_store optional struct with configuration to store.
% If omitted then the configuration is not stored.
%
% Returns:
% config Struct with configurations
%
% Notes:
% - the rationale for this function is to keep the example code fixed
% (that is, without any paths hard-coded) and still allow each
% user to store the example data in a directory of their choice.
%
% - the format for a configuration file is of the form <key>=<value>,
% where <key> cannot contain the '=' character and <value> cannot start
% or end with a white-space character.