vmail 2.3.5 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/vmail.vim +37 -27
- data/lib/vmail/imap_client.rb +3 -0
- data/lib/vmail/version.rb +1 -1
- metadata +84 -49
data/lib/vmail.vim
CHANGED
@@ -68,6 +68,16 @@ function! s:create_message_window()
|
|
68
68
|
close
|
69
69
|
endfunction
|
70
70
|
|
71
|
+
function! s:system_with_error_handling(command)
|
72
|
+
let res = system(a:command)
|
73
|
+
if res =~ 'VMAIL_ERROR'
|
74
|
+
echoe "ERROR" res
|
75
|
+
return ""
|
76
|
+
else
|
77
|
+
return res
|
78
|
+
end
|
79
|
+
endfunction
|
80
|
+
|
71
81
|
function! s:show_message(stay_in_message_list)
|
72
82
|
let line = getline(line("."))
|
73
83
|
if match(line, '^> Load') != -1
|
@@ -94,7 +104,7 @@ function! s:show_message(stay_in_message_list)
|
|
94
104
|
let command = s:show_message_command . s:uid
|
95
105
|
echom "Loading message ". s:uid .". Please wait..."
|
96
106
|
redrawstatus
|
97
|
-
let res =
|
107
|
+
let res = s:system_with_error_handling(command)
|
98
108
|
call s:focus_message_window()
|
99
109
|
set modifiable
|
100
110
|
1,$delete
|
@@ -166,7 +176,7 @@ function! s:show_raw()
|
|
166
176
|
echo command
|
167
177
|
setlocal modifiable
|
168
178
|
1,$delete
|
169
|
-
let res =
|
179
|
+
let res = s:system_with_error_handling(command)
|
170
180
|
put =res
|
171
181
|
1delete
|
172
182
|
normal 1G
|
@@ -215,7 +225,7 @@ endfunc
|
|
215
225
|
function! s:update()
|
216
226
|
let command = s:update_command
|
217
227
|
echo "Checking for new messages. Please wait..."
|
218
|
-
let res =
|
228
|
+
let res = s:system_with_error_handling(command)
|
219
229
|
let lines = split(res, '\n')
|
220
230
|
if len(lines) > 0
|
221
231
|
setlocal modifiable
|
@@ -249,7 +259,7 @@ function! s:toggle_star() range
|
|
249
259
|
echom "Toggling flags on " . nummsgs . " messages"
|
250
260
|
endif
|
251
261
|
" toggle * on lines
|
252
|
-
let res =
|
262
|
+
let res = s:system_with_error_handling(command)
|
253
263
|
setlocal modifiable
|
254
264
|
let lnum = a:firstline
|
255
265
|
while lnum <= a:lastline
|
@@ -284,7 +294,7 @@ func! s:delete_messages(flag) range
|
|
284
294
|
else
|
285
295
|
echom "Deleting " . nummsgs . " messages"
|
286
296
|
endif
|
287
|
-
let res =
|
297
|
+
let res = s:system_with_error_handling(command)
|
288
298
|
setlocal modifiable
|
289
299
|
exec "silent " . a:firstline . "," . a:lastline . "delete"
|
290
300
|
setlocal nomodifiable
|
@@ -298,7 +308,7 @@ func! s:archive_messages() range
|
|
298
308
|
let nummsgs = len(uid_set)
|
299
309
|
let command = s:move_to_command . shellescape(join(uid_set, ',')) . ' ' . "all"
|
300
310
|
echo "Archiving message" . (nummsgs == 1 ? '' : 's')
|
301
|
-
let res =
|
311
|
+
let res = s:system_with_error_handling(command)
|
302
312
|
setlocal modifiable
|
303
313
|
exec "silent " . a:firstline . "," . a:lastline . "delete"
|
304
314
|
setlocal nomodifiable
|
@@ -321,7 +331,7 @@ func! s:append_messages_to_file() range
|
|
321
331
|
let s:append_file = append_file
|
322
332
|
let command = s:append_to_file_command . shellescape(join(uid_set, ',')) . ' ' . s:append_file
|
323
333
|
echo "Appending " . nummsgs . " message" . (nummsgs == 1 ? '' : 's') . " to " . s:append_file . ". Please wait..."
|
324
|
-
let res =
|
334
|
+
let res = s:system_with_error_handling(command)
|
325
335
|
echo res
|
326
336
|
redraw
|
327
337
|
endfunc
|
@@ -365,7 +375,7 @@ function! s:complete_move_to_mailbox()
|
|
365
375
|
endif
|
366
376
|
redraw
|
367
377
|
echo "Moving uids ". s:uid_set . " to mailbox " . mailbox
|
368
|
-
let res =
|
378
|
+
let res = s:system_with_error_handling(command)
|
369
379
|
setlocal modifiable
|
370
380
|
if !s:copy_to_mailbox
|
371
381
|
exec "silent " . s:firstline . "," . s:lastline . "delete"
|
@@ -408,7 +418,7 @@ function! s:get_mailbox_list()
|
|
408
418
|
let command = s:list_mailboxes_command
|
409
419
|
redraw
|
410
420
|
echo command
|
411
|
-
let res =
|
421
|
+
let res = s:system_with_error_handling(command)
|
412
422
|
let s:mailboxes = split(res, "\n", '')
|
413
423
|
endfunction
|
414
424
|
|
@@ -469,16 +479,16 @@ function! s:select_mailbox()
|
|
469
479
|
let command = s:select_mailbox_command . shellescape(s:mailbox)
|
470
480
|
redraw
|
471
481
|
echom "Selecting mailbox: ". s:mailbox . ". Please wait..."
|
472
|
-
call
|
482
|
+
call s:system_with_error_handling(command)
|
473
483
|
redraw
|
474
484
|
" reset window width now
|
475
|
-
call
|
485
|
+
call s:system_with_error_handling(s:set_window_width_command . winwidth(1))
|
476
486
|
" now get latest 100 messages
|
477
487
|
call s:focus_list_window()
|
478
488
|
setlocal modifiable
|
479
489
|
let command = s:search_command . shellescape("all")
|
480
490
|
echo "Loading messages..."
|
481
|
-
let res =
|
491
|
+
let res = s:system_with_error_handling(command)
|
482
492
|
silent 1,$delete
|
483
493
|
silent! put! =res
|
484
494
|
execute "normal Gdd\<c-y>"
|
@@ -510,7 +520,7 @@ function! s:do_search()
|
|
510
520
|
call s:focus_list_window()
|
511
521
|
setlocal modifiable
|
512
522
|
echo "Running query on " . s:mailbox . ": " . s:query . ". Please wait..."
|
513
|
-
let res =
|
523
|
+
let res = s:system_with_error_handling(command)
|
514
524
|
silent! 1,$delete
|
515
525
|
silent! put! =res
|
516
526
|
execute "silent normal Gdd\<c-y>"
|
@@ -522,7 +532,7 @@ endfunction
|
|
522
532
|
function! s:more_messages()
|
523
533
|
let command = s:more_messages_command
|
524
534
|
echo "Fetching more messages. Please wait..."
|
525
|
-
let res =
|
535
|
+
let res = s:system_with_error_handling(command)
|
526
536
|
setlocal modifiable
|
527
537
|
let lines = split(res, "\n")
|
528
538
|
call append(line('$'), lines)
|
@@ -564,7 +574,7 @@ endfunction
|
|
564
574
|
func! s:open_compose_window(command)
|
565
575
|
redraw
|
566
576
|
echo a:command
|
567
|
-
let res =
|
577
|
+
let res = s:system_with_error_handling(a:command)
|
568
578
|
let previous_winnr = winnr()
|
569
579
|
only
|
570
580
|
split compose_message.txt
|
@@ -606,7 +616,7 @@ function! CompleteContact(findstart, base)
|
|
606
616
|
" '\(^ho\|<ho\)'
|
607
617
|
" let regex = shellescape('\(^' . a:base . '\|<' . a:base . '\)')
|
608
618
|
let regex = shellescape(a:base)
|
609
|
-
let matches =
|
619
|
+
let matches = s:system_with_error_handling("grep -i " . regex . " " . $VMAIL_CONTACTS_FILE)
|
610
620
|
return split(matches, "\n")
|
611
621
|
endif
|
612
622
|
endfun
|
@@ -622,7 +632,7 @@ endfunc
|
|
622
632
|
function! s:send_message()
|
623
633
|
let mail = join(getline(1,'$'), "\n")
|
624
634
|
echo "Sending message"
|
625
|
-
let res =
|
635
|
+
let res = s:system_with_error_handling(s:deliver_command, mail)
|
626
636
|
if match(res, '^Failed') == -1
|
627
637
|
write!
|
628
638
|
call s:close_and_focus_list_window()
|
@@ -637,7 +647,7 @@ endfunction
|
|
637
647
|
func! s:open_html_part()
|
638
648
|
let command = s:open_html_part_command
|
639
649
|
" the command saves the html part to a local file
|
640
|
-
let outfile =
|
650
|
+
let outfile = s:system_with_error_handling(command)
|
641
651
|
" todo: allow user to change open in browser command?
|
642
652
|
exec "!" . s:browser_command . ' ' . outfile
|
643
653
|
endfunc
|
@@ -648,7 +658,7 @@ func! s:save_attachments()
|
|
648
658
|
end
|
649
659
|
let s:savedir = input("save attachments to directory: ", s:savedir, "dir")
|
650
660
|
let command = s:save_attachments_command . s:savedir
|
651
|
-
let res =
|
661
|
+
let res = s:system_with_error_handling(command)
|
652
662
|
echo res
|
653
663
|
endfunc
|
654
664
|
|
@@ -686,7 +696,7 @@ func! s:open_href(all) range
|
|
686
696
|
let href = matchstr(getline(lnum), pattern)
|
687
697
|
if href != ""
|
688
698
|
let command = s:browser_command ." ".shellescape(href)." &"
|
689
|
-
call
|
699
|
+
call s:system_with_error_handling(command)
|
690
700
|
let n += 1
|
691
701
|
endif
|
692
702
|
let lnum += 1
|
@@ -699,7 +709,7 @@ func! s:open_href(all) range
|
|
699
709
|
while line
|
700
710
|
let href = matchstr(getline(line('.')), pattern)
|
701
711
|
let command = s:browser_command ." ".shellescape(href)." &"
|
702
|
-
call
|
712
|
+
call s:system_with_error_handling(command)
|
703
713
|
let n += 1
|
704
714
|
let line = search('https\?:', 'W')
|
705
715
|
endwhile
|
@@ -707,7 +717,7 @@ func! s:open_href(all) range
|
|
707
717
|
else
|
708
718
|
let href = matchstr(getline(line('.')), pattern)
|
709
719
|
let command = s:browser_command ." ".shellescape(href)." &"
|
710
|
-
call
|
720
|
+
call s:system_with_error_handling(command)
|
711
721
|
echom 'opened '.href
|
712
722
|
endif
|
713
723
|
endfunc
|
@@ -726,8 +736,8 @@ endfunc
|
|
726
736
|
" HELP
|
727
737
|
func! s:show_help()
|
728
738
|
let command = s:browser_command . ' ' . shellescape('http://danielchoi.com/software/vmail.html')
|
729
|
-
call
|
730
|
-
"let helpfile =
|
739
|
+
call s:system_with_error_handling(command)
|
740
|
+
"let helpfile = s:system_with_error_handling(s:show_help_command)
|
731
741
|
"exec "split " . helpfile
|
732
742
|
endfunc
|
733
743
|
|
@@ -889,12 +899,12 @@ call s:create_message_window()
|
|
889
899
|
call s:focus_list_window() " to go list window
|
890
900
|
|
891
901
|
" send window width
|
892
|
-
call
|
902
|
+
call s:system_with_error_handling(s:set_window_width_command . winwidth(1))
|
893
903
|
|
894
|
-
"autocmd VimResized <buffer> call
|
904
|
+
"autocmd VimResized <buffer> call s:system_with_error_handling(s:set_window_width_command . winwidth(1))
|
895
905
|
|
896
906
|
autocmd bufreadpost *.txt call <SID>turn_into_compose_window()
|
897
907
|
normal G
|
898
|
-
call
|
908
|
+
call s:system_with_error_handling(s:select_mailbox_command . shellescape(s:mailbox))
|
899
909
|
call s:do_search()
|
900
910
|
|
data/lib/vmail/imap_client.rb
CHANGED
@@ -52,6 +52,9 @@ module Vmail
|
|
52
52
|
@imap = Net::IMAP.new(@imap_server, @imap_port, true, nil, false)
|
53
53
|
log @imap.login(@username, @password)
|
54
54
|
list_mailboxes # prefetch mailbox list
|
55
|
+
raise
|
56
|
+
rescue
|
57
|
+
puts "VMAIL_ERROR: #{[$!.message, $!.backtrace].join("\n")}"
|
55
58
|
end
|
56
59
|
|
57
60
|
# expects a block, closes on finish
|
data/lib/vmail/version.rb
CHANGED
metadata
CHANGED
@@ -1,70 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: vmail
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 3
|
8
|
+
- 6
|
9
|
+
version: 2.3.6
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Daniel Choi
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2011-11-18 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: mail
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 2
|
31
|
+
- 12
|
21
32
|
version: 2.2.12
|
22
33
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
26
36
|
name: highline
|
27
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 6
|
46
|
+
- 1
|
32
47
|
version: 1.6.1
|
33
48
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
37
51
|
name: sequel
|
38
|
-
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
54
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 3
|
60
|
+
- 24
|
61
|
+
- 1
|
43
62
|
version: 3.24.1
|
44
63
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
48
66
|
name: sqlite3
|
49
|
-
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
69
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 1
|
75
|
+
- 3
|
76
|
+
- 3
|
54
77
|
version: 1.3.3
|
55
78
|
type: :runtime
|
56
|
-
|
57
|
-
version_requirements: *82189430
|
79
|
+
version_requirements: *id004
|
58
80
|
description: Manage your email with Vim
|
59
|
-
email:
|
81
|
+
email:
|
60
82
|
- dhchoi@gmail.com
|
61
|
-
executables:
|
83
|
+
executables:
|
62
84
|
- vmail
|
63
85
|
- vmail_client
|
64
86
|
- vmailsend
|
65
87
|
extensions: []
|
88
|
+
|
66
89
|
extra_rdoc_files: []
|
67
|
-
|
90
|
+
|
91
|
+
files:
|
68
92
|
- .gitignore
|
69
93
|
- MIT-LICENSE.txt
|
70
94
|
- NOTES
|
@@ -112,28 +136,39 @@ files:
|
|
112
136
|
- test/test_helper.rb
|
113
137
|
- test/time_format_test.rb
|
114
138
|
- vmail.gemspec
|
139
|
+
has_rdoc: true
|
115
140
|
homepage: http://danielchoi.com/software/vmail.html
|
116
141
|
licenses: []
|
142
|
+
|
117
143
|
post_install_message:
|
118
144
|
rdoc_options: []
|
119
|
-
|
145
|
+
|
146
|
+
require_paths:
|
120
147
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
149
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
segments:
|
154
|
+
- 1
|
155
|
+
- 9
|
156
|
+
- 0
|
126
157
|
version: 1.9.0
|
127
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
159
|
none: false
|
129
|
-
requirements:
|
130
|
-
- -
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
segments:
|
164
|
+
- 0
|
165
|
+
version: "0"
|
133
166
|
requirements: []
|
167
|
+
|
134
168
|
rubyforge_project: vmail
|
135
|
-
rubygems_version: 1.
|
169
|
+
rubygems_version: 1.3.7
|
136
170
|
signing_key:
|
137
171
|
specification_version: 3
|
138
172
|
summary: A Vim interface to Gmail
|
139
173
|
test_files: []
|
174
|
+
|