home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / bug-lucid-emacs / text0020.txt < prev    next >
Encoding:
Text File  |  1993-07-04  |  3.9 KB  |  116 lines

  1.  
  2. Please incorporpate this patch or its equivalent into future releases
  3. of Lucid emacs.  Long ago I sent it to the author of VM, but I'm not
  4. sure how to tell whether that had a useful effect.
  5.  
  6. The best way I know to demonstrate the necessity of this patch is this:
  7.  
  8.  
  9. (setq vm-mode-hooks (list (function (lambda () (setq case-fold-search nil)))))
  10.  
  11.  
  12. Contrary to the implicit assumption in VM's source code,
  13. case-fold-search is a way of defining a user preference, not a
  14. variable which packages like VM should consider amenable to
  15. permanent change for the sake of programming convenience.
  16.  
  17. It might also be useful to get rid of the "(setq case-fold-search t)"
  18. in vm-mode-internal, but my vm-mode-hooks provides a suitable
  19. workaround for that bug; the enclosed patch just fixes the other bugs
  20. which are invisible without my hook.
  21.  
  22. There might be other places in VM code that assume case-fold-search is
  23. t, but these are all of the ones I've found.
  24.  
  25.  
  26. *** lisp/vm/vm-delete.el.orig    Mon Jun 29 18:29:04 1992
  27. --- lisp/vm/vm-delete.el    Sun Jun 21 19:31:42 1992
  28. ***************
  29. *** 84,89 ****
  30. --- 84,90 ----
  31.     (vm-error-if-folder-read-only)
  32.     (vm-error-if-folder-empty)
  33.     (let ((subject (vm-su-subject (car vm-message-pointer)))
  34. +     (case-fold-search t)
  35.       (mp vm-message-list)
  36.       (n 0))
  37.       (if (string-match "^\\(re: *\\)+" subject)
  38. *** lisp/vm/vm-group.el.orig    Mon Jun 29 18:29:05 1992
  39. --- lisp/vm/vm-group.el    Sun Jun 21 19:31:41 1992
  40. ***************
  41. *** 43,49 ****
  42.   (defconst vm-group-by-subject-closure (cons t t))
  43.   
  44.   (defun vm-group-by-subject (m1 m2)
  45. !   (let ((subject (vm-su-subject m1)))
  46.       (if (eq subject (car vm-group-by-subject-closure))
  47.       (setq subject (cdr vm-group-by-subject-closure))
  48.         (setcar vm-group-by-subject-closure subject)
  49. --- 43,50 ----
  50.   (defconst vm-group-by-subject-closure (cons t t))
  51.   
  52.   (defun vm-group-by-subject (m1 m2)
  53. !   (let ((subject (vm-su-subject m1))
  54. !     (case-fold-search t))
  55.       (if (eq subject (car vm-group-by-subject-closure))
  56.       (setq subject (cdr vm-group-by-subject-closure))
  57.         (setcar vm-group-by-subject-closure subject)
  58. *** lisp/vm/vm-reply.el.orig    Mon Jun 29 18:29:07 1992
  59. --- lisp/vm/vm-reply.el    Mon Apr 12 19:42:35 1993
  60. ***************
  61. *** 127,133 ****
  62.   
  63.   (defun vm-strip-ignored-addresses (addresses)
  64.     (setq addresses (copy-sequence addresses))
  65. !   (let (re-list list addr-list)
  66.       (setq re-list vm-reply-ignored-addresses)
  67.       (while re-list
  68.         (setq addr-list addresses)
  69. --- 127,134 ----
  70.   
  71.   (defun vm-strip-ignored-addresses (addresses)
  72.     (setq addresses (copy-sequence addresses))
  73. !   (let ((case-fold-search t)
  74. !     re-list list addr-list)
  75.       (setq re-list vm-reply-ignored-addresses)
  76.       (while re-list
  77.         (setq addr-list addresses)
  78. *** lisp/vm/vm-summary.el.orig    Sun Aug  2 18:33:40 1992
  79. --- lisp/vm/vm-summary.el    Mon Apr 12 19:46:06 1993
  80. ***************
  81. *** 366,372 ****
  82.       (put format-variable 'vm-compiled-format format)))
  83.   
  84.   (defun vm-get-header-contents (message header-name)
  85. !   (let (contents regexp)
  86.       (setq regexp (format vm-header-regexp-format header-name))
  87.       (save-excursion
  88.         (set-buffer (marker-buffer (vm-start-of message)))
  89. --- 366,373 ----
  90.       (put format-variable 'vm-compiled-format format)))
  91.   
  92.   (defun vm-get-header-contents (message header-name)
  93. !   (let ((case-fold-search t)
  94. !     contents regexp)
  95.       (setq regexp (format vm-header-regexp-format header-name))
  96.       (save-excursion
  97.         (set-buffer (marker-buffer (vm-start-of message)))
  98. ***************
  99. *** 474,480 ****
  100.           (buffer-substring (match-beginning 1) (match-end 1)))))))
  101.   
  102.   (defun vm-su-do-date (m)
  103. !   (let (date)
  104.       (setq date (or (vm-get-header-contents m "Date") (vm-grok-From_-date m)))
  105.       (cond
  106.        ((null date)
  107. --- 475,481 ----
  108.           (buffer-substring (match-beginning 1) (match-end 1)))))))
  109.   
  110.   (defun vm-su-do-date (m)
  111. !   (let (date (case-fold-search t))
  112.       (setq date (or (vm-get-header-contents m "Date") (vm-grok-From_-date m)))
  113.       (cond
  114.        ((null date)
  115.  
  116.