On Thu, 2 Oct 2014 16:47:15 -0700, Ian Main <imain@stemwinder.org> wrote: > This patch switches from reading .notmuch-config directly to using > the CLI the same way that emacs does it. It actually uses less code > and is probably less error prone. > > Ian > --- > > This update changes result to be '' instead of nil > by default so missing config items won't cause an error. > > vim/notmuch.vim | 31 ++++++++++++------------------- > 1 file changed, 12 insertions(+), 19 deletions(-) > > diff --git a/vim/notmuch.vim b/vim/notmuch.vim > index 331e930..b251af6 100644 > --- a/vim/notmuch.vim > +++ b/vim/notmuch.vim > @@ -471,28 +471,21 @@ ruby << EOF > $searches = [] > $threads = [] > $messages = [] > - $config = {} > $mail_installed = defined?(Mail) > > - def get_config > - group = nil > - config = ENV['NOTMUCH_CONFIG'] || '~/.notmuch-config' > - File.open(File.expand_path(config)).each do |l| > - l.chomp! > - case l > - when /^\[(.*)\]$/ > - group = $1 > - when '' > - when /^(.*)=(.*)$/ > - key = "%s.%s" % [group, $1] > - value = $2 > - $config[key] = value > - end > - end > + def get_config_item(item) > + result = '' > + IO.popen(['notmuch', 'config', 'get', item]) { |out| > + result = out.read > + } > + return result.rstrip > + end > > - $db_name = $config['database.path'] > - $email_name = $config['user.name'] > - $email_address = $config['user.primary_email'] > + def get_config > + $db_name = get_config_item('database.path') > + $email_name = get_config_item('user.name') > + $email_address = get_config_item('user.primary_email') > + $email_name = get_config_item('user.name') Just wanted to note that you read user.name twice. > $email = "%s <%s>" % [$email_name, $email_address] This is not related to this patch: I don't know if it is a good idea to force $email_name on every $email_address. Maybe use it as a fallback and introduce an optional mailaddress-sendername map. So the user can specify which name should be used. (Imagine a "Dr." who wants to have "Dr. P. Harmony" for his official mails, but "Phil Harmony" for private ones. Or a writer who uses several psudonyms.) Maybe this can be solved by the sendmail application, but probably that requires leaving out email_name entirely. Will setup a test env later to evaluate. > end > > -- > 1.9.3 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch