vim: use mailx for sending
authorFelipe Contreras <felipe.contreras@gmail.com>
Sat, 5 Jun 2010 11:12:40 +0000 (14:12 +0300)
committerCarl Worth <cworth@cworth.org>
Mon, 8 Nov 2010 18:00:18 +0000 (10:00 -0800)
Possilby used by more systems, and besides the code wasn't really
working properly anyway.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
vim/README
vim/plugin/notmuch.vim

index 8cd3b1a2fe87267697773a1ba81502a12d15907f..08071663eda6eb457bf37b205a2cf12f7df84061 100644 (file)
@@ -7,8 +7,8 @@ Dependencies:
     notmuch:
         Naturally, it expects you have notmuch installed and configured.
 
-    mail:
-        To send mail, notmuch.vim uses the UNIX mail command.
+    mailx:
+        To send mail, notmuch.vim uses the UNIX mailx command.
 
     git-diff:
         The vim interface makes use of the git-diff.vim syntax file
index 968c4c1652b5d3ebab46d3e1759fc4ef40aacf4c..7b49015c4f7891a9e3c0b63615602fd894dd8ff7 100644 (file)
@@ -941,71 +941,20 @@ function! s:NM_compose_send()
         let fname = expand('%')
         let lnum = 1
         let line = getline(lnum)
-        let hdrs = {}
         let lst_hdr = ''
         while match(line, '^$') == -1
-                if match(line, '^Notmuch-Help:') != -1
-                        " skip it
-                elseif strlen(lst_hdr) && match(line, '^\s') != -1
-                        let hdrs[lst_hdr][-1] = hdrs[lst_hdr][-1] . substitute(line, '^\s*', ' ', '')
-                else
-                        let m = matchlist(line, '^\(\w[^:]*\):\s*\(.*\)\s*$')
-                        if !len(m)
-                                cursor(lnum, 0)
-                                throw printf('Eeek! invalid header on line %d', lnum)
-                        endif
-                        let key = substitute(m[1], '\<\w', '\U&', 'g')
-                        if strlen(m[2])
-                                if !has_key(hdrs, key)
-                                        let hdrs[key] = []
-                                endif
-                                call add(hdrs[key], m[2])
-                        endif
-                        let lst_hdr = key
+                if match(line, '^Notmuch-Help:') == -1
+                        let hdr_starts = lnum - 1
+                        break
                 endif
                 let lnum = lnum + 1
                 let line = getline(lnum)
         endwhile
-        let body_starts = lnum
-
-        "[-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr
-        let cmd = ['mail']
-        let tos = []
-        for [key, vals] in items(hdrs)
-                if key == 'To'
-                        call extend(tos, vals)
-                elseif key == 'Bcc'
-                        for adr in vals
-                                call add(cmd, '-b')
-                                call add(cmd, adr)
-                        endfor
-                elseif key == 'Cc'
-                        for adr in vals
-                                call add(cmd, '-c')
-                                call add(cmd, adr)
-                        endfor
-                elseif key == 'Subject'
-                        for txt in vals
-                                call add(cmd, '-s')
-                                call add(cmd, txt)
-                        endfor
-                else
-                        for val in vals
-                                call add(cmd, '-a')
-                                call add(cmd, key . ': ' . val)
-                        endfor
-                endif
-        endfor
-        call extend(cmd, tos)
-
-        " TODO: make sure we have at least one target
-        " TODO: ask about empty jubject, etc
 
-        exec printf('0,%dd', body_starts)
+        exec printf(':0,%dd', hdr_starts)
         write
 
-        call map(cmd, 's:NM_shell_escape(v:val)')
-        let cmdtxt = join(cmd) . '< ' . fname
+        let cmdtxt = 'mailx -t < ' . fname
         let out = system(cmdtxt)
         let err = v:shell_error
         if err