forked from emacsorphanage/vm
/
CHANGES
6051 lines (5598 loc) · 273 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-*-Text-*-
This file contains the list of changes up to revision 7.19, developed
by Kyle Jones. For recent changes, please see the `NEWS' file.
VM 7.19 released (29 September 2004)
* New variables:
+ vm-stunnel-program-additional-configuration-file
* added vm-mouse-send-url-to-safari to send URLs to Safari under
Mac OS X.
* added docstrings for vm-mime-reader-map-* commands.
* normalized prefix key description layout in vm-mode docstring.
* added some missing MIME commands to menu entries.
* undo change in vm-preview-current-message that required
vm-auto-decode-mime-messages to be non-nil along with
vm-display-using-mime before creating the presentation
copy of a message. It has the unexpected side-effect of
breaking 'D' when vm-auto-decode-mime-messages is nil.
VM 7.18 released (2 November 2003)
* New variables:
+ vm-default-new-folder-line-ending-type
* vm-mail-internal: use idle timers to run vm-update-composition-buffer-name
instead of post command hooks
* vm-decode-mime-layout: always delete a MIME object button after
doing a type conversion.
* vm-mail-send: bind coding-system-for-write to match the coding
system of mail-archive-file-name (if set) so that mail-do-fcc
writes to the file using the correct line endings.
* vm-make-tempfile-name, vm-make-tempfile: accept optional
second argument 'proposed-filename' which will be used if a
file with that name do not exist in vm-tempfile-directory.
If such a file exists, then a number and a dash will be prepended
to the proposed filename and the number will be incremented until no
such file exists.
* don't use vm-menu-fsfemacs-image-menu unless vm-use-menus is non-nil.
* vm-preview-current-message: require vm-auto-decode-mime-messages to
be non-nil along with vm-display-using-mime before creating the
presentation copy. This helps prevent selection of the presentation
buffer when the user likely needs to do M-x recover-file.
VM 7.17 released (6 July 2003)
* New commands:
+ vm-create-imap-folder
+ vm-delete-imap-folder
+ vm-rename-imap-folder
* vm-edit-message-end: try to positoin the cursor in the message
window roughly where it was in the edit window.
* vm-read-imap-folder-name: allow vm-imap-make-session to return
nil without crashing. Also, bind vm-imap-ok-to-ask non-nil so
that vm-imap-make-session will interactively prompt for a
password.
* added menu entry to Folder menu for vm-visit-imap-folder.
* vm-imap-normalize-spec: convert auth method to * instead of the
IMAP folder name.
* vm-imap-get-message-flags: fixed flag retrieval so that it
actually works now.
* vm-handle-file-recovery-or-reversion: find an IMAP spec for the
buffer so that the spec is passed to the 'vm' command instead
of the buffer-file-name. This fixes a wrong-type-argument
error under M-x recover-file when done on a IMAP cache folder.
* tapestry.el: in tapestery-window-edges check for existence of
face-width and face-height in addition to window-pixel-edges.
* search for BASE64/QP encoder/decoder programs and set the
encoder/decoder program variable based on what we find.
* vm-mf-default-action: if object is convertible to a displayble
type mention the conversion that will happen in the action
string.
VM 7.16 released (26 May 2003)
* New commands:
+ vm-visit-imap-folder
+ vm-visit-imap-folder-other-window
+ vm-visit-imap-folder-other-frame
+ vm-save-message-to-imap-folder
* New variables:
+ vm-imap-server-list
* vm-primary-inbox can now be a POP or IMAP mailbox specification.
* vm-mime-set-xxx-parameter: use the parameter name passed in
instead of assuming the name is "charset". The only calls to
this function passed in "charset" as the name, so this bug
wasn't affecting anything.
* vm-decode-mime-encoded-words: do charset conversion if needed.
Forgot to add this back when vm-mime-charset-converter-alist
was added.
* vm-send-mail-and-exit -> vm-mail-send-and-exit in vm-user-agent
definition.
* vm-mail-send-and-exit: dropped first arg requirement since the
argument isn't used anyway.
* compute POP cache filenames based on the POP mailbox spec with
the access method as "pop" and the authentication method and
port as asterisks. This prevents visiting the wrong file if
the user starts accessing a POP mailbox through a different
port or using a different access or authentication method.
Automatically migrate the old cache files to the new scheme as
we go.
* fixed convert -page typos.
* vm-set-redistributed-flag: fourth arg of vm-set-xxx-flag
call corrected to be vm-set-redistributed-flag instead of
vm-set-forwarded-flag.
* IMAP BYE responses are always untagged; changed code to match.
VM 7.15 released (3 May 2003)
* Makefile: filter echo's output through tr to avoid CRs
under Cygwin.
* Makefile: Use '>' instead of '>>' on first write to vm-autoload.el
to truncate the file otherwise it will grow each time it is updated.
* vm-mime-attach-message: arrange for forwarded flag of each
attached message to be set when the composition is sent.
* when cropping images call 'convert' with -page to avoid having
some kind of margin tacked on to the image. The strange
margin seems to be applied to GIFs but not JPGs. No idea why.
* fixed some defcustom variable declarations.
* vm-mime-reader-map-save-file: return the file name to which the object
was saved.
* vm-mime-burst-digest: remove blank lines at the beginning of
message/rfc822 bodies in a multipart/digest object, since they
most likely indicate an improperly packed digest rather than a
message with no headers.
* vm-make-tempfile: use vm-octal to clarify file mode setting.
* vm-make-image-strips: when building the script for incremental
display, don't quote the filenames. DJGPP cmdproxy.exe doesn't
interpret single quotes and using double quotes is pointless.
VM's arguments to 'convert' don't need quoting anyway.
* use vm-pop-check-connection to check POP connections before
trying to read data from them. The checker will signal an
error if the connection is closed or the process associated
with the connection has exited.
* use vm-imap-check-connection to check IMAP connections before
trying to read data from them, The checker will signal an error
if the connection is closed or the process associated with the
connection has exited.
VM 7.14 released (27 March 2003)
* moved (provide ...) to bottom of .el files.
* Made the vm-undo command undo everything the last command did.
E.g. vm-undo after vm-kill-subject undoes all of the related
deletes instead of just one of them. vm-undo-boundary is only
called from vm-add-undo-boundaries now. vm-add-undo-boundaries
is called from post-command-hook.
VM 7.13 released (19 March 2003)
* '(vm-marker -> (vm-marker in vm-mime-parse-entity.
VM 7.12 released (14 March 2003)
* vm-pop-make-session: use new stunnel configuration code
introduced in VM 7.11. This was only installed in
vm-imap-make-session previously.
* create MIME layout from plist instead of using a raw vector.
The layout struct is still a vector.
* save original layout when doing a layout conversion so that if
the object needs to be deleted we still ahve the correct object
endpoint in the folder buffer. In the old code the endpoints in
the converted object buffer would be used in the folder buffer
with disastrous results.
VM 7.11 released (5 March 2003)
* fixed check for usability of uncompface's -X flag, needed
symbol to be unquoted.
* fixed check for stunnel 4, check for non-zero exit code instead
of string, moved check to the time when stunnel is first run.
* vm-stunnel-configuration-args: fixed reversed v3/v4 logic.
* vm-stunnel-configuration-file: reuse the stunnel configuration
tempfile.
* vm-parse: fourth arg limits the number of matches before
returning.
* vm-parse: after we quit matching add everything after the last
match to the list that is returned, but do this ONLY if the
fourth arg 'matches' was specified.
* compute POP cache filenames based on the POP mailbox spec with
the password as an asterisk. This prevents visiting the wrong
file if the user has the password in the spec and later changes
their password. Automatically migrate the old password-based cache
files to the new scheme as we go.
* vm-pop-make-session: parse POP mailbox spec in a way that
permits colons in the user's password.
* install .el files before .elc files to avoid "source file newer
than compiled file" problems.
* added ] to char class exclusion in mailto spec in vm-url-regexp
to help with MS EXchange's [mailto:foo] syntax.
VM 7.10 released (5 March 2003)
* vm-menu-url-browser-menu: add third element to clipboard and
Konqueror entries--- VM's menu code under GNU Emacs requires it.
* treat device-type `gtk' like `x' under XEmacs so that
VM running on GTK-XEmacs will use window system features.
* vm-imap-move-mail: set use-body-peek after retrieving the
CAPABILITY results. (oops)
* Makeflie: default install target now installs the .el files.
* added support for version 4 of stunnel.
VM 7.09 released (3 March 2003)
* New variables:
+ vm-mime-forward-local-external-bodies
* vm-mime-fsfemacs-encode-composition: if object is in a buffer,
write the buffer out to disk and insert the file contents instead
of copuying buffer to buffer. This avoids the trademark \201
data corruption.
* vm-su-thread-indent: check for vm-summary-show-threads non-nil
before calling vm-th-thread-indentation.
* vm-summary-compile-format-1: added %(..%) format groups.
* don't forward Content-Length header.
* use results of CAPABILITY command to check for authentication methods
before trying to use them.
* use results of CAPABILITY command to decide whether to use
BODY.PEEK vs. RFC822.PEEK.
* vm-mime-attach-object-from-message: move window point to
beginning of the line after the inserted attachment if the
compositoin buffer is being displayed in a window.
* vm-mime-parse-entity-safe: set c-t-e to "7bit" if it is nil.
* vm-mime-fetch-url-with-programs: erase the work buffer between
tries of various URL fetch programs; this handles the case
where an URL fetcher outputs part of the data and then dies.
* added support for the `fetch' and `curl' URL fetch programs for
message/external-body.
* vm-mime-fsfemacs-encode-composition: call vm-mime-parse-entity
twice for already MIME'd objects.
vm-mime-xemacs-encode-composition similarly modified.
* vm-mime-fsfemacs-encode-composition: don't automatically
base64-encode non-composite non-text objects that already have
MIME headers. Use vm-mime-transfer-encode-layout on them
instead to produce the correct encoding.
vm-mime-xemacs-encode-composition similarly modified.
* dropped support for url-w3 retrieval method. It's interface too
crusty to continue using given the wide availabity of external
programs that do the job.
* vm-mime-display-internal-message/external-body: pulled
retrieval guts out and put into vm-mime-retrieve-external-body.
* added support for simple image manipulations, supported by
Imagemagick's `convert' program. Use mouse button 3 on an
image to see what you can do.
* added Konqueror to vm-menu-url-browser-menu.
* added option to send to the X clipboard to vm-menu-url-browser-menu.
VM 7.08 released (14 February 2003)
* New variables
+ vm-mime-ignore-missing-multipart-boundary
+ vm-url-browser-switches
* vm-mime-attach-object-from-message: decode object after stuffing it
into the work buffer. Two reasons: (1) the composition encoding
code doesn't expect base64 or QP encoded objects and will encode
them again, and (2) we shouldn't trust that the original object was
encoded properly so we should re-encode it since we're sending it.
* vm-mime-display-internal-multipart/alternative: a badly formed
mesage may cause VM to find no message parts so don't call
vm-decode-mime-layout unless best-layout is non-nil.
* vm-su-subject: compress \n[ \t]* to a single space.
* README: Added (vm) to the example VM entry in the 'dir' file.
Apparently the old entry won't work without it anymore.
* vm-mime-parse-entity-safe: error/error MIME layout needs to be
length 16; added a nil. Really need to macroize creation
of the layout object someday.
* vm-recover-file: call recover-file with call-interactively
instead of apply.
* vm-revert-buffer: call revert-buffer with call-interactively
instead of apply.
* vm-decode-mime-layout: check if layout has been converted
and don't try to convert it again if so.
* vm-vs-or, vm-vs-and: check existence of selector function and
signal error if not found.
* vm-md5-region: accept " -" and " *-" before the md5 checksum
because md5sum stupidly produces extra output on some systems.
* vm-imap-end-session: trying reading the response to the LOGOUT
command and see if we start hanging in some environments.
* vm-imap-make-session: don't query for password if the
authentiation method is "preauth".
* vm-visit-virtual-folder: select the message corresponding to
the real message the user used as a basis for this folder, if
there was one. Only honor the vm-jump-* variables if
there's no corresponding real message to use.
* vm-compose-mail: run mail-citation-hook or mail-yank-hooks or
the normal VM default action after yanking the message text.
Always position point in the body before running the yank
action. Don't assume the yank action is smart enough to
position point correctly before inserting the text.
* vm-recognize-imap-maildrops,vm-recognize-pop-maildrops: changed
regexp to allow colons in the last field.
* dropped single quotes in const choice values in defcustom for
vm-mime-alternative-select-method.
* Makefile: use \015 instead of \r with tr due to bug in Solaris
8's tr which removes r's.
* vm-get-mail-itimer-function: correct use of timer-set-time; set
new firing time to now + vm-auto-get-new-mail instead of now
with a delta of vm-auto-get-new-mail, to avoid having
the timer expire repeatedly in the same second. Similar change
in vm-check-mail-itimer-function which support vm-mail-check-interval.
Similar change in vm-flush-itimer-function which supports vm-flush-interval.
* vm-decode-mime-message: vm-preview-read-messages ->
vm-preview-lines so that message previewing is turned off for
the 'raw' and 'all buttons' displays.
* vm-mail-send: bind select-safe-coding-system-function to nil
during call to mail-send to prevent Emacs from prodding user
about the FCC coding system. The coding system used should be
raw-text and VM sets buffer-file-coding-system to that.
* vm-stuff-attributes: don't clear modflag if stuffing for another
folder, since the information stuffed in that case is missing
the deleted flag if that flag was set.
* use defconst to set vm-faked-defcustom so that the checking
works correctly if vm-vars.el is loaded twice.
* vm-mime-parse-entity: find multipart boundaries, then recurse
into parts. This satisfies the new rule in RFC 2046 that outer
level multipart boundaries be recognized at any level of inner
nesting.
* vm-mime-send-body-to-file: removed let-binding of variable file
which was shadowing the function parameter of the same name.
This should make the function not ask about a filename even
when one has already been provided.
* define vm-folder-history as a function that returns t so that
when it is passed as the sixth arg to read-file-name under
Emacs 21 it does not cause void-function to be signaled when
completion is attempted.
* vm-mime-send-body-to-folder: force conversion to target folder's
type since the user doesn't know what type we're using in the
temp folder.
* vm-save-message: dno't try to honor vm-delete-after-saving if
the folder is read-only.
* vm-delete-duplicate-messages: compute hash on real folder
contents rather than virtual copy. Fixes utterly brokwn
behavior when run on a virtual folder.
VM 7.07 released (5 June 2002)
* vm-sort-messages: move first call of
vm-update-summary-and-mode-line out to callers. Threading bonks
if we call it in here.
* vm-assimilate-new-messages: resume calling
vm-update-summary-and-mode-line to clear the decks before
thread sorting.
* vm-toggle-threads-display: start calling
vm-update-summary-and-mode-line to clear the decks before
thread sorting.
VM 7.06 released (3 June 2002)
* vm-save-folder,vm-write-file: support vm-default-folder-permission-bits here,
since a folder might be created when it is saved.
* vm-save-message,vm-save-message-sans-headers: use the target
folder's line ending coding system for saves. If the target
doesn't exist use the local system's default.
* vm-write-string: don't set an explicit coding system for writes,
use the ambient value.
* vm-sort-messages: call vm-update-summary-and-mode-line to clear
the decks before sorting.
* vm-mail-internal: UNder FSF Emacs set the coposition buffer
coding system to 'raw-text' which should stop write-region from
question the coding system inside mail-do-fcc.
VM 7.05 released (10 May 2002)
* New variables:
+ vm-default-folder-permission-bits
* Makefile: added install-el target.
* always set mode-popup-menu; it's value should not depend on the
value of vm-popup-menu-on-mouse-3.
* vm-stuff-folder-attributes: added status messages.
* vm-mime-discard-layout-contents: call vm-set-modflag-of on the
modified message.
* vm-preview-composition: add a newline at end of the preview
buffer if the composition lacks one.
* vm-url-decode-buffer: fixed brain-o; bind case-fold-search to t
instead of nil.
* use new vm-octal function instead of writing out UNIX permission
bits in decimal.
* defcustom :type fixes.
* added "image" to default value of vm-auto-displayed-mime-content-types.
* vm-mime-should-display-internal: ignore Content-Disposition as
it has no bearing on whether an object is displayed internally.
* vm-assimilate-new-messages: build threads very early if
vm-summary-show-threads is non-nil. Don't run
vm-update-summary-and-mode-line before sorting threads--- this
should no longer be necessary thanks to the change to to
vm-set-numbering-redo-start-point.
* vm-set-numbering-redo-start-point: compare message structs
instead of list conses.
* vm-unthread-message: only unthread if threads have been built
in a particular message's buffer.
* vm-thread-list: keep track of the youngest member of a thread.
* vm-sort-compare-thread: sort threads by youngest member instead
of by oldest member. Also sort thread siblings by date instead
of by message-id; sort by messge-id if dates are equal (rare).
VM 7.04 released (18 April 2002)
* New commands:
+ vm-mime-attach-object-from-message (bound to $ a)
* New variables:
+ vm-mime-ignore-composite-type-opaque-transfer-encoding
* fixed problem with a repeated char being displayed after an
X-Face when a non-MIME message is reselected.
* Makefile: remove CRs from the output of make-autoloads. Emacs
when run under Cygwin apparently emits them.
* vm-session-initialization: create gui-button-face under XEmacs
if it does not exist.
* vm-mime-display-internal-text/html: don't use W3 if
vm-mime-use-w3-for-text/html is nil.
* recognize 'mac' as a window system with mouse, image, and
multi-font support (FSF Emacs only).
* put vm-update-composition-buffer-name on post-command-idle-hook
instead of post-command-hook if the idle hook is available for
use.
* vm-menu-vm-menu: added commas to variable refernece so they
would be evalled in the backquote context.
* changed hook defcustoms to use 'hook instead of '(list function).
* vm-read-index-file: do thread sort if necessary since
vm-assimilate-new-messages isn't going to do it.
* default vm-thread-obarray and vm-thread-sort-obarray to non-nil
values so that if they are used as obarrays before
initialization an error will be signaled.
* vm-mime-pipe-body-to-queried-command: prompt with "Pipe object
to command:" instead of "Pipe to command:".
* make sure select-message-coding-system is fbound before overriding
its definition. Apparently early Emacs 20 versions do not define
it.
* vm-imap-read-object: move point past closing double quote to
fix parsing problem that caused VM to hang.
* vm-mime-display-button-xxxx: always insert the button, even we
have no method for displaying the MIME object.
VM 7.03 released (4 March 2002)
* fixed defcustom syntax errors.
* minor compiler warning cleanup.
VM 7.02 released (3 March 2002)
* New variables:
+ vm-uncompface-program
+ vm-icontopbm-program
* display X-Faces under Emacs 21 if necessary support programs
are available.
* vm-url-decode-buffer: accept lower cased hex digits in escapes
as per the URL spec RFC.
* map "unknown" charset to iso-8859-1 in
vm-mime-mule-charset-to-coding-alist.
* dropped use of defmacro in many places in favor of defsubst.
* use backquote macro instead of (list ...) in many places since
the old objection of differing backquote syntax between Emacs
versions no longer applies.
* define menu variables using defvar instead of defconst.
* use vm-revert-buffer and vm-recover-file in menus instead of
revert-buffer and recover-file because the menu-enabled form is
global for these symbols and VM's form was overriding the one
in the global Emacs menu. This problem only occur under FSF
Emacs.
* use defcustom instead of defvar for most user customization
variables.
VM 7.01 released (22 January 2002)
* New variables:
+ vm-mime-use-w3-for-text/html
* new possible values for vm-mime-alternative-select-method:
(favorite ...) and (favorite-internal ...).
* vm-visit-pop-folder: use value of vm-last-visit-pop-folder if
interactive user entered an empty string as the folder.
* vm-mail-send: bind sendmail-coding-system to the binary coding
system and bind mail-send-nonascii to t so that mail-send will
leave us alone.
* redefine select-message-coding-system if it is fbound and we're
running FSF Emacs MULE. It doesn't like no-conversion as a
coding system, so we get it out of the way.
* define vm-image-too-small properly as an error condition.
* vm-scroll-forward-one-line, vm-scroll-backward-one-line: accept
a numeric prefix arg.
* vm-setup-ssh-tunnel: use copy-sequence on vm-ssh-program-switches
to avoid corrupting the list tail with nconc.
* vm-mime-can-convert-0: always return the conversion that
produces an internally displayable type if there is one.
Fallback to the externally displayable type if there is none
that can be displayed internally.
* vm-mime-can-convert-0: don't return a match when the target
type matches the original type.
* vm-mime-display-internal-image-xemacs-xxxx: wrap image extents
around spaces instead of newlines. Adjust newline insertion
code accordingly. Create image strips twice the default font
height to avoid having to match the font ascent value. Don't
use vm-monochrome-face except on XBM images.
* vm-display-image-strips-on-extents,
vm-display-some-image-strips-on-extents: Don't use
vm-monochrome-face except on XBM images.
* support completion-ignore-case variable.
* block interactive use of vm-expunge-pop-messages in a POP
folder. It's meant for folder linked to POP spool files, not
POP folders.
* use display-planes function to determine if Emacs 21 is running
on a "colorful" display.
* put image/xpm ahead of image/pbm in vm-mime-image-type-converter-alist.
* vm-parse-date: find year even if it's at the end of line.
VM 7.00 released (2 December 2001)
* New commands:
+ vm-visit-pop-folder
+ vm-visit-pop-folder-other-window
+ vm-visit-pop-folder-other-frame
* New variables:
+ vm-pop-folder-alist
+ vm-pop-folder-cache-directory
* vm-parse-date: fixed search to allow monthday digits to occur
at the beginning of a string.
* vm-get-mail-itimer-function: skip buffer if bm-block-new-mail
is set. This avoids vm-get-spooled-mail signaling "can't get
new mail until you save this folder" later. Also check for
mail block and folder read-only before doing the expensive file
stat checks.
* vm-get-image-dimensions: don't search for the filename in
the 'identify' output. Apparently 'identify' will sometimes
substitute a different filename than we expect. Instead
just search for a space and then start looking for the image
dimensions from that point.
* moved setting of vm-folder-type in the POP trace buffer from
vm-pop-move-mail to vm-pop-make-session so that all callers get
of vm-pop-make-session get the feature.
* vm-assimilate-new-messages: check for new-messages non-nil
before attempting some things. Makes the function a bit more
efficient if we call it and no new messages are found.
* vm-pop-report-retrieval-status,
vm-imap-report-retrieval-status: report "post processing" if
'need' value is nil.
* vm-pop-retrieve-to-crashbox -> vm-pop-retrieve-to-target
* vm-imap-retrieve-to-crashbox: use new "post processing" reporting.
* vm-pop-retrieve-to-target: use new "post processing" reporting.
* vm-expunge-pop-messages: record which messages were expunged by
stuffing nil into the car of the cell in vm-pop-retrieved-messages.
At the end strip out all the nils, leaving the data for messages
that we had problems expunging from the POP server.
* in vm-stuff-* functions check for vm-message-list non-nil
instead of vm-message-pointer.
* vm-pop-end-session: check whether the process is still open or
running before attempting to send the QUIT command. Also check
whether the process buffer is still alive before killing it.
* vm-get-spooled-mail: gutted, with most of it going into
vm-get-spooled-mail-normal. Calls vm-pop-synchronize-folder
for folders that use the POP access method.
* vm-session-initialization: when deciding whether to create the
vm-image-placeholder face check for image-type-available-p
being fbound, not vm-image-type-available-p.
* use <vm-image-face> instead of <face> as the name of the faces
used to display images under Emacs 19 and 20.
* vm-mime-display-internal-image-xemacs-xxxx: insert a newline
before the image if point is at the same position as the
beginning of the text portion of the message. Otherwise
there is no visible separation between the image and the
message headers.
* vm-pop-report-retrieval-status,
vm-imap-report-retrieval-status: record in the statblob the fact that some
status was reported.
* vm-pop-stop-status-timer, vm-imap-stop-status-timer: if any
status was reported, do (message "") to clear the echo area.
VM 6.99 released (25 November 2001)
* New commands:
+ vm-scroll-forward-one-line
+ vm-scroll-backward-one-line
* New variables:
+ vm-imagemagick-identify-program
+ vm-mime-display-image-strips-incrementally
* vm-do-folders-summary: bind default-directory to the directory
names when checking for subdirectories amongst its children
with vm-delete-directory-names.
* vm-get-image-dimensions: use the ImageMagick program 'identify'
instead of 'convert' to get the image dimensions.
* vm-thread-list: set done to t if we've run out of references
and we're not threading by subject (vm-thread-using-subject ==
nil). Fixes infloop.
* use the vm-monochrome-image face for image glyphs instead of vm-xface
under XEmacs.
* use a face with a background stipple (vm-image-placeholder)
on the spaces used to display images in FSF Emacs 19.
* vm-display-image-strips-on-overlay-regions: store modified
flag value after the process buffer is selected, otherwise
we're recording the state of the wrong buffer.
* vm-mime-display-internal-image-fsfemacs-21-xxxx: If the image
strip is the same height as the font the image ascent ratio
must match font ascent ratio else the image strips will be
displayed with gaps between them. There's currently no way to
get font ascent information under Emacs 21. Use strips that
are twice the font height and a 50/50 ascent ratio to avoid
this problem.
* vm-make-image-strips: remainder math was wrong; fixed. Use new
remainder math in the sync branch. Use vm-make-tempfile
instead of vm-make-tempfile-name.
* when cutting images into strips give 'convert' an explicit
target type. Otherwise it might choose some unknown new type
that Emacs can't display.
* vm-parse-date: simplified the search for the monthday and the
year, hopefully reducing the problems with confusing 2-digit
years and monthdays.
* vm-thread-list: check and set 'oldest-date property on all the
messages.
* vm-mail-internal: eval the value of mail-signature and insert
the result if its value is not nil, t or a string. Also, if
mail-signature is a string, subject the result to the same
check for a proper signature separator.
VM 6.98 released (18 November 2001)
* New variables:
+ vm-mime-use-image-strips
+ vm-imagemagick-convert-program
+ vm-w3m-program
+ vm-mime-charset-converter-alist
* inline image display support for Emacs 19 and Emacs 20.
* vm-md5-region: deal with the " -\n" that md5sum appends to the
checksum output when summing stdin.
* vm-edit-message: set buffer-offer-save to t so that if user
types C-x C-c they won't lose their changes in the message edit
session without warning.
* vm-spool-files: remove any directories from vm-spool-files
that we slurped from environmental variables. There was a case
where a user's MAIL variable was set to /var/mail. I don't know
how widespread this practice is.
* when initializing vm-temp-file-directory check for C:\TEMP
before C:\.
* vm-setup-ssh-tunnel: instead of sleeping for a bit and hoping
that's long enough to establish a connection, read some output
from the tunnel before returning so we know that the connection
is established. vm-ssh-remote-c0mmand has to provide the output,
so its default value has been changed to produce output.
* vm-frame-loop: don't reset the starting frame placeholder unless
the starting frame was really deleted. Fixes an infloop when
quitting out of VM and the VM summary is visible in multiple
frames.
* try to use the ImageMagick 'convert' program (if available) to
convert image types that Emacs can't display internally into
images that Emacs can display.
* support the unregistered image/xbm, image/xpm and image/pbm
types, so that we can autoconvert unsupported image types to
these types under an Emacs that's compiled with minimal image
support.
* use w3m to retrieve URLs if specified in vm-url-retrieval-methods.
* make layout cache be the property list of a symbol instead of
an alist.
* use vm-make-tempfile in more places to produce private tempfiles
instead of vm-make-tempfile-name.
* vm-preview-composition: mnuge message separators that appear in
the message body. Use MMDF for the temp folder type.
* all your base no longer are belong to us.
VM 6.97 released (28 October 2001)
* New variables:
+ vm-mime-require-mime-version-header
* SSL support for IMAP and POP.
* SSH tunnel support for IMAP and POP.
* uninstall toolbar goop from vm-mode-map under FSF Emacs if we're
creating a frame and vm-use-toolbar is nil.
* don't use a heuristic background map in the toolbar image spec
for the MIME icon.
* vm-make-tempfile-name: add a random elemnt to VM's temporary
file name.
* vm-pop-cleanup-region, vm-imap-cleanup-region: don't emit
CRLF->LF status messages. Say something about post-processing
in the normal status message instead.
* vm-mail-to-mailto-url: do session initialization stuff so that
the function can be called from gnuclient. This is apparently
useful for driving VM from a web browser that allows use of an
external mailer.
* vm-mime-encode-composition: undo buffer changes if an
error occurs during encoding.
* rename certain composition buffers on the fly as the recipient
headers change to reflect the new primary recipient(s).
* vm-submit-bug-report: call vm-session-initialization so the all
necessary goop is loaded, rather than doing a few 'require'
calls. This fixed the bug in the VM XEmacs package where
calling vm-submit-bug-report immediately after starting XEmacs
would cause (void-function vm-display) to be signaled.
* vm-th-parent: when extracting the parent message ID from the
In-Reply-To header, use the longest ID found, instead of the
first ID found. Store the result in the references slot in the
message struct, since that slot must be empty otherwise we
would be ignoring In-Reply-To.
* vm-thread-list: remove the clock skew loop-recovery-point
heuristic; seems to cause more breakage than it fixes.
* vm-mime-display-internal-image-fsfemacs-xxxx: use a unibyte buffer
as a work buffer when unpacking an image file. Apparently needed
to avoid the evil \201 corruption under Emacs 21.
* accept 'name' parameter as suggested filename for all MIME
types. Old broken software that sends this stuff will never go
away and complaints about it will never end.
* default vm-use-lucid-highlighting non-nil only if (require
'highlight-headers) doesn't signal an error.
* vm-md5-region: call the MD5 program directly instead of using
sh -c.
* vm-pop-md5: call the MD5 program directly instead of using
sh -c.
* vm-check-for-spooled-mail, vm-get-spooled-mail: bind
case-fold-search to nil for comparisons against vm-recognize-*.
* vm-preview-current-message: do less work if the user will never
see the message in the previewed state.
* vm-preview-current-message: just MIME decode the headers rather
than the whole message if vm-preview-lines == 0.
* vm-mime-convert-undisplayable-layout: check exit status of
command and if non-zero return nil. Fixed all callers to deal
with this new reality.
VM 6.96 released (5 September 2001)
* print-autoloads: handle fset calls. There are paths through
the code that reach functions that are to be defined by fset
but lack autoload definitions. print-autoloads now creates
autoload definitions for them.
* vm-mime-encapsulate-messages: pluralization fix in MIME digest
preamble. Don't output "messages" if there's only one message in
the digest.
* vm-display-startup-message: update copyright date. Use
\251 under XEmacs to show the c-in-circle copyright glyph.
Can't rely on FSF Emacs being setup to display it.
* vm-mime-display-internal-application/octet-stream: honor
setting of vm-mime-delete-after-saving.
* vm-imap-move-mail: don't emit warning messages if BODY.PEEK
fails--- no one cares. Don't retry BODY.PEEK after it fails
the first time, it will never work. Use RFC822.PEEK henceforth
within this IMAP session.
* vm-toolbar-support-possible-p: check whether the variable
tool-bar-map is bound. Apparently tool-bar-mode is fboun
even when there is no toolbar support (e.g. under Windows).
* moved guts of vm-discard-cached-data to vm-discard-cached-data-internal.
* vm-mime-attach-message: corrected prompt in the "attach from
other folder" case.
* vm-summary-sprintf: decode encoded words in the final string if
we're not producing a tokenized result and vm-display-using-mime
is not nil.
* vm-mail-to-mailto-url: support full RFC2368 mailto URL spec.
* vm-pop-send-command: use one process-send-string call instead
of two, which should saves some packet overhead at the
expense of more string consing.
* vm-imap-send-command: use one process-send-string call instead
of three, which should saves some packet overhead at the
expense of more string consing.
* vm-imap-send-command: allow sending a string without a tag.
Also allow sending a string with a caller specified tag.
* vm-imap-make-session: don't send a tag with the CRAM-MD5
challenge response.
* vm-do-summary: reuse the mouse-track overlays if possible,
instead of generating a new one each time. The old ones
apparently are never reclaimed by Emacs until the buffer is
killed and degrade editing performance in that buffer.
* vm-imap-ask-about-large-message: require simple "OK" response
after fetching headers instead of "OK FETCH". The "FETCH" part
may never come and isn't required.
* vm-save-folder: sweep though virtual folder associated with the
real folder and set their buffer modified flags to nil if they
are none of their real folders are modified.
* vm-thread-list: don't allow the first and last element of a multielement
thread list to be the same message-ID. This is a thread loop that
previously was previously undetected.
* vm-thread-list: remember the position in the thread list where
we first threaded using subject information and reset the
thread list to that point if we encountered a message ID we've
seen before. This is a heuristic to try to trim off
parents-by-subject that are only parents due to clock skew.
VM 6.95 released (23 July 2001)
* New variables:
+ vm-mime-attachment-auto-suffix-alist
* vm-guess-digest-type: require a line consisting of 30 dashes in
addition to the 70 dashes line before guessing RFC 1153.
* vm-md5-region: add third arg that prevents re-search-forward
from signalling an error if it fails.
* vm-toolbar-update-toolbar: don't use the 'getmail' icon
as the helper button if 'getmail' is already on the toolbar.
* vm-toolbar-update-toolbar: don't use the 'mime icon
as the helper button if 'mime' is already on the toolbar.
* vm-mime-attach-message: if invoked on marked messages (C-c C-v
M N C-c C-m) attach the marked messages in the parent folder as
a digest.
* vm-mail-mode-remove-tm-hooks: remove global TM/SEMI hooks from
mail-setup-hook and mail-send-hook if vm-send-using-mime is
non-nil. Previously VM tried to remove the hooks locally but
that doesn't work.
* fixed negative Content-Length computation problem
- vm-find-leading-message-separator,
vm-find-trailing-message-separator: new type 'baremessage
means go to point-max.
- vm-pop-retrieve-to-crashbox, vm-imap-retrieve-to-crashbox: use
'baremessage as old type during header conversion. Narrow to
region around message during this conversion so that folder
traversal functions can safely go to point-max without moving
past the end of the message.
* vm-pop-make-session, vm-imap-make-session: don't sleep for 2
seconds after reporting a bad password unless the function was
called synchronously, i.e. not from a timer.
* vm-check-mail-itimer-function, vm-get-mail-itimer-function,
vm-flush-cached-data: when traversing the buffer list, check
whether a buffer is still alive before selecting it. Because
the loop calls input-pending-p, a timer or process-filter could
have killed one of the buffers.
* vm-delete-duplicate: remove duplicate addresses case
insensitively This is still sort of wrong, in that the only
the right hand side of the address should be treated this way.
But doing the right thing is hard.
* vm-mime-display-internal-image-xemacs-xxxx: make the image
extent be 'start-open' so that it is moved forward when text is
inserted at its position. This fixes the image doubling
problem if a mssage containing only an image is previewed with
vm-mime-deocde-for-preview set non-nil.
* vm-narrow-for-preview: added kludge to prevent images and button
art from being displayed at the edge of a preview cutoff during
MIME decode-for-preview. Everything beyond the cutoff is shifted
forward one character during MIME preview. (XEmacs only for now, but
might be needed for FSF Emacs 21).
* vm-mime-encapsulate-messages, vm-rfc934-encapsulate-messages,
vm-rfc1153-encapsulate-messages: do a better job of protecting
MIME headers. Sort the MIME headers to the top of the message
then skip past them before applying the user's header filter
variables.
VM 6.94 released (9 July 2001)
* in the defconst of vm-menu-mime-dispose-menu, check whether a
non-string s-expression is allowed as a menu element name
before trying to use one. Versions of XEmacs prior to 21.4
don't allow expressions as item names.
VM 6.93 released (23 June 2001)
* New variables:
+ vm-folder-file-precious-flag
* added CRAM-MD5 as an authentication method for IMAP.
* vm-su-do-date: interpret 2-digit years in the RFC-822 matching
case as 20XX if year starts with 0-6.
* vm-rfc1153-or-rfc934-burst-message: skip spaces in addition to
newlines that occur after a separator line. A digest has been
observed with that kind of deformity.
* treat enable-local-eval as we do enable-local-variables--- always
bind it to nil.
* vm: don't bind vm-auto-decode-mime-messages non-nil during
initial message preview if it is nil.
* vm-mime-display-internal-text/html: dropped (sleep-for 2). No one cares
enough about the "Need W3 to inline HTML" message to wait 2
seconds afterward.
* added menu entry to allow MIME objects to be converted to
another type and displayed. The new type is determined by
vm-mime-type-converter-alist.
* added koi8-r to vm-mime-mule-charset-to-coding-alist (XEmacs only).
* vm-pop-read-list-response: check for nil return of
vm-pop-read-response before using return value.
* vm-pop-read-stat-response: check for nil return of
vm-pop-read-response before using return value.
* vm-encode-coding-region: use unwind-protect to make sure (well
more likely) that the work buffer always gets killed if it has
been created.
* vm-decode-coding-region: use unwind-protect to make sure (well
more likely) that the work buffer always gets killed if it has
been created.
* vm-mime-convert-undisplayable-layout: put object buffer on
garbage list sooner to make rarer the situation where the
buffer never gets deleted.
* Makefile: remove function definition of vm-its-such-a-cruel-world
after it is run.
* vm-md5-region: if vm-pop-md5-program exits non-zero, signal an
error. Also if the work buffer is not at least 32 bytes long,
signal an error. This prevents naive callers from assumption all is well
and using a possibly empty string as an MD5 hash.
* vm-md5-region: check the MD5 digest returned for non-hex-digit
characters and signal an error if any are found.
* vm-get-file-buffer: use find-buffer-visiting if it is fbound.
* vm-build-threads: fixed loop that removed child messages from a
parent when better information about a child's parent is found.
Previously the loop attempted to remove the same message from
the parent over and over.
* vm-build-threads: gather thread data using References and
In-Reply-To for all messages before using the Subject header.
This helps prevent the case where References says A is the
parent of B but because of clock skew B is older than A, which
can lead to B being considered the parent of A if A and B have
the same subject and vm-thread-using-subject is non-nil.
VM 6.92 released (11 March 2001)
* vm-imap-check-mail: throw to 'end-of-session instead of 'done.
Fixes problem of vm-spooled-mail-waiting not being set.
* vm-su-do-recipients: If there is no To or Apparently-To header,
use Newsgroups if available.
* vm-mime-display-external-generic: use a unibyte temp buffer for
base64 decoding if using FSF Emacs MULE. Otherwise our old
friend \201 crashes the party.
* vm-mime-find-leaf-content-id-in-layout-folder: add missing
layout argument to vm-mime-find-leaf-content-id.
* vm-mime-parse-entity: fixed regexps that match an empty content
description so that they match descriptions that only contain
spaces.
* vm-su-do-date: make +/- mandatory in the numeric timezone spec.
First digit of numeric timezone spec must be 0 or 1.
* vm-fill-paragraphs-containing-long-lines: ignore errors generated
by fill-paragraph.
* moved the code that catches the font-lock search bound error
from the XEmacs MIME composition encoder to the FSF Emacs
encoder.
* vm-mime-charset-internally-displayable-p: allow variable
vm-mime-default-face-charsets to apply to MULE-enabled Emacs
and XEmacs.
VM 6.91 released (1 March 2001)
* vm-mime-can-display-internal: check charset to verify that we
can display it when checking text/html.
* vm-auto-archive-messages: hide value of last-command when calling
vm-save-message.
* vm-mime-find-leaf-content-id: removed second arg in call to
vm-mm-layout-id since it only accepts one argument.
* vm-mime-transfer-encode-region: \\n -> \n in armor-dot check
regexp string.
* vm-mime-parse-entity-safe: dropped (sleep-for 2). No one cares
about syntax errors.
* vm-mime-base64-encode-region: if call to base64-encode-region
fails with wrong-number-of-arguments error call it with only
two args and do the B encoding cleanup separately.
* vm-mime-base64-decode-region: don't use the FSF Emacs base64
decoding function, since it fails completely if it encounters
characters outside of the BASE64 alphabet.
* vm-mime-attachment-auto-type-alist: added the usual PDF,
Quicktime and Excel file extensions.
* vm-imap-move-mail: trying using obsolete RFC822.PEEK if
BODY.PEEK fails.
* vm-imap-retrieve-to-crashbox: support use of obsolete RFC822.PEEK.
* vm-so-sortable-datestring: use vm-timezone-make-date-sortable
instead of the bare timezone-make-date-sortable, which is less
capable of parsing badly formed Date headers.
* vm-mime-convert-undisplayable-layout: save the content type
parameters from the old type and give them to the new type.
* all your base are belong to us
VM 6.90 released (9 January 2001)
* vm-compose-mail: Use apply instead of funcall to call the yank
action. We aren't passing a list of arguments to the function.
* vm-mark-or-unmark-messages-same-author: compare author
addresses case insensitively.
* vm-emit-eom-blurb: ignore case when matching against
vm-summary-uninteresting-senders to match what
vm-su-interesting-from does.
* vm-mime-display-internal-text/html: use 'message' to display
any errors encountered.
* vm-mime-display-internal-text/enriched: use 'message' to display
any errors encountered.
* vm-yank-message: call vm-decode-mime-encoded-words in the correct buffer.
* default value of vm-auto-center-summary changed from nil to 0.
VM 6.89 released (22 December 2000)
* vm-yank-message: MIME decode the headers of the yanked message
if vm-display-using-mime is non-nil.
* vm-forward-message: if MIME forwarding, switch the buffer
containing the attached message to be multibyte to avoid the
appearance of our old friend \201 when the buffer contents are
inserted into the composition buffer. (FSF Emacs 20 only).
* vm-do-folders-summary: count messages in folders that lack
entries in the folders summary database using vm-grep-program.
* vm-do-folders-summary: ignore index files in the folder directories.
* vm-update-folders-summary-highlight: use intern-soft instead of
intern, since the symbol may not be present in the obarray.
* vm-mark-for-folders-summary-update: check for killed summary
before selecting folders summary buffer.
* vm-emit-eom-blurb: bind vm-summary-uninteresting-senders-arrow
to "" around call to vm-summary-sprintf.
* Makefile: Start using $(prefix) to be more GNUish. Try to
create the installation directories if they don't exist.
* vm-modify-folder-totals: wrong cells in the list were being
updated; fixed.
* vm-mime-run-display-function-at-point: return result of calling
the display function because callers expect it. This wasn't
happening in the FSF Emacs part of the conditional.
VM 6.88 released (11 December 2000)
* New variables:
+ vm-folders-summary-mode-hook
+ vm-grep-program
+ vm-mmosaic-program
+ vm-mmosaic-program-switches
* vm-determine-proper-charset: don't use MULE rules if operating
in a unibyte buffer. The non-MULE rules work better in that
case. Dropped use of vm-with-multibyte-buffer.
* use BODY.PEEK instead of RFC822.PEEK in IMAP message fetches,
since RFC822.PEEK has been made obsolete in RFC 2060.
* not decoding for preview if vm-preview-lines == 0 was a
mistake, as the header might still need decoding, so this
change was reversed.
* allow 8-bit chars in IMAP atoms. Microsoft Exchange emits them,
resistance is futile.
* keep IMAP trace buffer if a protocol error occurs. Code for
this was partially done, it's finished now.
* improved folders summary, new folders summary format specifier %s.