branch: elpa/vm
commit ee7f6b8dd2177bb13b120af890a9fc00e886a022
Author: Stefan Monnier <monn...@iro.umontreal.ca>
Commit: Stefan Monnier <monn...@iro.umontreal.ca>

    Tweak `require`s to fix compiler warnings
---
 contrib/org-html-mail.el   |  5 +++-
 contrib/org-vm.el          |  1 +
 contrib/vm-blueman.el      |  2 ++
 contrib/vm-bogofilter.el   |  4 +++-
 lisp/tapestry.el           |  3 +--
 lisp/u-vm-color.el         | 16 ++++++-------
 lisp/vm-avirtual.el        | 24 ++++---------------
 lisp/vm-biff.el            | 11 ++++-----
 lisp/vm-crypto.el          |  9 +++----
 lisp/vm-delete.el          | 24 +++++--------------
 lisp/vm-digest.el          | 22 +++++++-----------
 lisp/vm-dired.el           | 31 +++++++++----------------
 lisp/vm-edit.el            | 17 +++-----------
 lisp/vm-folder.el          | 32 +++++++------------------
 lisp/vm-grepmail.el        | 21 +++++++----------
 lisp/vm-imap.el            | 31 ++++++-------------------
 lisp/vm-license.el         |  6 ++---
 lisp/vm-macro.el           |  5 ++--
 lisp/vm-mark.el            | 23 +++++++-----------
 lisp/vm-menu.el            |  9 +++----
 lisp/vm-message-history.el | 18 ++++++--------
 lisp/vm-message.el         |  4 ++--
 lisp/vm-mime.el            | 29 +++++------------------
 lisp/vm-minibuf.el         |  9 ++-----
 lisp/vm-misc.el            |  8 +++----
 lisp/vm-motion.el          | 18 ++++----------
 lisp/vm-mouse.el           | 15 ++----------
 lisp/vm-page.el            | 19 ++++-----------
 lisp/vm-pcrisis.el         | 31 +++++++------------------
 lisp/vm-pgg.el             | 21 +++++++----------
 lisp/vm-pine.el            | 30 +++++++++++-------------
 lisp/vm-pop.el             | 25 +++++++-------------
 lisp/vm-ps-print.el        | 16 +++++--------
 lisp/vm-reply.el           | 22 +++---------------
 lisp/vm-rfaddons.el        | 58 +++++++++++++++++++++-------------------------
 lisp/vm-save.el            | 26 +++++++++------------
 lisp/vm-search.el          | 21 +++++++----------
 lisp/vm-serial.el          | 19 ++++++---------
 lisp/vm-smime.el           | 42 +++++++++++++++------------------
 lisp/vm-sort.el            | 22 +++++++-----------
 lisp/vm-summary-faces.el   | 12 ++++------
 lisp/vm-summary.el         | 20 ++--------------
 lisp/vm-thread.el          | 15 ++++--------
 lisp/vm-toolbar.el         |  9 +++----
 lisp/vm-undo.el            | 15 ++----------
 lisp/vm-user.el            |  4 +++-
 lisp/vm-vars.el            |  3 +--
 lisp/vm-vcard.el           |  7 ++----
 lisp/vm-version.el         |  4 +---
 lisp/vm-virtual.el         | 27 +++++++--------------
 lisp/vm-w3.el              |  6 ++---
 lisp/vm-w3m.el             | 11 +++------
 lisp/vm-window.el          | 10 +++-----
 lisp/vm.el                 | 45 +++++++++++++++++------------------
 54 files changed, 318 insertions(+), 619 deletions(-)

diff --git a/contrib/org-html-mail.el b/contrib/org-html-mail.el
index b87f96b658..94b67413e3 100644
--- a/contrib/org-html-mail.el
+++ b/contrib/org-html-mail.el
@@ -1,4 +1,4 @@
-;; Copyright � 2008  Eric Schulte
+;; Copyright © 2008  Eric Schulte
 ;;
 ;; WYSWYG, html mail composition using orgmode
 ;;
@@ -26,6 +26,9 @@
 ;; For discussion see "sending html mail using VM" at
 ;; http://groups.google.com/group/gnu.emacs.vm.info/browse_frm/month/2008-01
 
+(require 'org-macs)
+(require 'vm-misc)
+
 (defun orgstruct-hijacker-command-21 (arg)
   "In Structure, run `org-ctrl-c-ctrl-c'. Outside of Structure
 check for a prefix argument and if buffer name contains `mail',
diff --git a/contrib/org-vm.el b/contrib/org-vm.el
index 6f547c3819..e827bcb20b 100644
--- a/contrib/org-vm.el
+++ b/contrib/org-vm.el
@@ -36,6 +36,7 @@
 ;;; Code:
 
 (require 'org)
+(require 'vm-message)
 
 ;; Declare external functions and variables
 (declare-function vm-preview-current-message "ext:vm-page" ())
diff --git a/contrib/vm-blueman.el b/contrib/vm-blueman.el
index e93771b1ee..d904be827c 100644
--- a/contrib/vm-blueman.el
+++ b/contrib/vm-blueman.el
@@ -6,6 +6,8 @@
 ;Was going through some old code and would like to share this helpful
 ;function..
 
+(require 'vm-mime)
+
 ;; Stretch/Shrink mime image to fit exactly in frame width.
 ;; The shrink functionality is particularly helpful since images displayed
 ;; by emacs look wacked when they extend past a line width
diff --git a/contrib/vm-bogofilter.el b/contrib/vm-bogofilter.el
index e3aa31d01d..ae8cf8b655 100644
--- a/contrib/vm-bogofilter.el
+++ b/contrib/vm-bogofilter.el
@@ -180,7 +180,9 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'vm))
+(require 'vm-vars)
+(require 'vm-message)
+(require 'vm-folder)
 
 ;;; Customisation:
 
diff --git a/lisp/tapestry.el b/lisp/tapestry.el
index 561ec7a43c..b363b619e9 100644
--- a/lisp/tapestry.el
+++ b/lisp/tapestry.el
@@ -20,8 +20,6 @@
 
 ;;; Code:
 
-(provide 'tapestry)
-
 (defvar tapestry-version "1.09")
 
 ;; Pass state information between the tapestry-set-window-map
@@ -616,4 +614,5 @@ ROOT-WINDOW-EDGES will be used."
       (frame-live-p f)
     t ))
 
+(provide 'tapestry)
 ;;; tapestry.el ends here
diff --git a/lisp/u-vm-color.el b/lisp/u-vm-color.el
index d931f400ba..1f037c1f05 100644
--- a/lisp/u-vm-color.el
+++ b/lisp/u-vm-color.el
@@ -14,11 +14,8 @@
 
 ;;; Code
 
-(provide 'u-vm-color)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-folder))
+(require 'vm-misc)
+(require 'vm-folder)
 
 (defconst u-vm-color-version "2.10" "Version number of u-vm-color.")
 
@@ -653,12 +650,12 @@ the form ((INDEX FACE)...)."
 (defun u-vm-color-fontify-signature (start end)
   "Search and fontify the signature.
 Search is restricted to the region between START and END."
-(let ((inhibit-read-only t))
+  (let ((inhibit-read-only t))
     (save-excursion
       (goto-char end)
       (setq start (re-search-backward "^\\(- \\)?-- ?$" start t))
-       (when start
-         (put-text-property start end 'face 'u-vm-color-signature-face)))))
+      (when start
+       (put-text-property start end 'face 'u-vm-color-signature-face)))))
 
 (defun u-vm-color-fontify-pgp-signature (start end)
   "Search and fontify inline PGP signatures."
@@ -750,9 +747,10 @@ Search is restricted to the region between START and END."
 ;;;###autoload
 (defun u-vm-color-fontify-buffer-even-more ()
   "Temporarily widen buffer and call `u-vm-color-fontify-buffer'."
-(save-restriction
+  (save-restriction
     (widen)
     ;;(message "u-vm-color-fontify-even-more: %d %d" (point-min) (point-max))
     (u-vm-color-fontify-buffer)))
 
+(provide 'u-vm-color)
 ;;; u-vm-color.el ends here
diff --git a/lisp/vm-avirtual.el b/lisp/vm-avirtual.el
index 694cb97333..9dcbe3a8e8 100644
--- a/lisp/vm-avirtual.el
+++ b/lisp/vm-avirtual.el
@@ -103,28 +103,13 @@
 ;;
 ;;; Code:
 
-(provide 'vm-avirtual)
-
 (require 'vm-macro)
-(require 'vm-virtual)
 (require 'vm-vars)
+(require 'vm-thread)
+
+;; FIXME: Cyclic dependency, we can't require `vm-virtual'.
+(declare-function vm-vs-spam-word "vm-virtual" (m &optional part))
 
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-save)
-  (require 'vm-reply)
-  (require 'vm-sort)
-  (require 'vm-thread)
-)
-  
 (declare-function vm-get-folder-buffer "vm" (folder))
 ;; The following function is erroneously called for fsfemacs as well
 (declare-function key-or-menu-binding "vm-xemacs" (key &optional menu-flag))
@@ -1231,4 +1216,5 @@ with the same name."
 
 ;;----------------------------------------------------------------------------
 
+(provide 'vm-avirtual)
 ;;; vm-avirtual.el ends here
diff --git a/lisp/vm-biff.el b/lisp/vm-biff.el
index 98743cf4bb..405f0163a4 100644
--- a/lisp/vm-biff.el
+++ b/lisp/vm-biff.el
@@ -38,12 +38,9 @@
 ;; 
 ;;; Code:
 
-(provide 'vm-biff)
-
-(eval-when-compile 
-  (require 'vm-misc)
-  (require 'vm-summary)
-)
+(require 'vm-misc)
+(require 'vm-summary)
+(require 'vm-message)
 
 ;; vm-xemacs.el is a fake file to fool the Emacs 23 compiler
 (declare-function get-itimer "vm-xemacs.el" (name))
@@ -520,3 +517,5 @@ AddToFunc SelectWindow
 
 (add-hook 'vm-arrived-messages-hook 'vm-biff-popup t)
 
+(provide 'vm-biff)
+;;; vm-biff.el ends here.
diff --git a/lisp/vm-crypto.el b/lisp/vm-crypto.el
index 2213c3ad9e..0b00018961 100644
--- a/lisp/vm-crypto.el
+++ b/lisp/vm-crypto.el
@@ -21,12 +21,8 @@
 
 ;;; Code:
 
-(provide 'vm-crypto)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-folder)
-  )
+(require 'vm-misc)
+(require 'vm-folder)
 
 ;; compatibility
 (fset 'vm-pop-md5 'vm-md5-string)
@@ -227,4 +223,5 @@
     (vm-register-global-garbage-files (list vm-stunnel-configuration-file))
     vm-stunnel-configuration-file))
 
+(provide 'vm-crypto)
 ;;; vm-crypto.el ends here
diff --git a/lisp/vm-delete.el b/lisp/vm-delete.el
index e88df4230a..2414d94af7 100644
--- a/lisp/vm-delete.el
+++ b/lisp/vm-delete.el
@@ -21,26 +21,13 @@
 
 ;;; Code:
 
-(provide 'vm-delete)
-
 (require 'vm-macro)
 
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-crypto)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-sort)
-  (require 'vm-thread)
-  (require 'vm-pop)
-  (require 'vm-imap)
-)
-
+(require 'vm-misc)
+(require 'vm-window)
+(require 'vm-undo)
+(require 'vm-sort)
+(eval-when-compile (require 'cl-lib))
 
 ;;;###autoload
 (defun vm-delete-message (count &optional mlist)
@@ -549,4 +536,5 @@ ignored."
       (vm-mark-folder-modified-p (current-buffer))
       (vm-increment vm-modification-counter))))
 
+(provide 'vm-delete)
 ;;; vm-delete.el ends here
diff --git a/lisp/vm-digest.el b/lisp/vm-digest.el
index e54f250ec3..79dd75bb8d 100644
--- a/lisp/vm-digest.el
+++ b/lisp/vm-digest.el
@@ -21,21 +21,14 @@
 
 ;;; Code:
 
-(provide 'vm-digest)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-mime)
-  (require 'vm-undo)
-  (require 'vm-delete)
-)
+(require 'vm-misc)
+(require 'vm-summary)
+(require 'vm-folder)
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-mime)
+(require 'vm-delete)
 
 (declare-function vm-mode "vm-mode" (&optional read-only))
 (declare-function vm-yank-message "vm-reply" (message))
@@ -841,4 +834,5 @@ Returns either \"rfc934\", \"rfc1153\" or \"mime\"."
            (vm-matched-header-contents)
          nil )))))
 
+(provide 'vm-digest)
 ;;; vm-digest.el ends here
diff --git a/lisp/vm-dired.el b/lisp/vm-dired.el
index bba80f8588..81404ee5d4 100644
--- a/lisp/vm-dired.el
+++ b/lisp/vm-dired.el
@@ -29,26 +29,16 @@
 ;;
 ;;; Code:
 
-(provide 'vm-dired)
-
-(require 'dired) 
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-mime)
-  (require 'vm-digest)
-  (require 'vm-undo)
-  )
-
-(eval-and-compile
-  (require 'dired))
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-menu)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-mime)
+(require 'vm-digest)
+(require 'dired)
 
 (declare-function vm-dired-file-name-at-point "vm-dired.el" ())
 
@@ -124,4 +114,5 @@ COMPOSITION's name will be read from the minibuffer."
        (vm-attach-file file type)))
    nil))
 
+(provide 'vm-dired)
 ;;; vm-dired.el ends here
diff --git a/lisp/vm-edit.el b/lisp/vm-edit.el
index def542575f..78dce145d3 100644
--- a/lisp/vm-edit.el
+++ b/lisp/vm-edit.el
@@ -21,21 +21,9 @@
 
 ;;; Code:
 
-(provide 'vm-edit)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-thread)
-  (require 'vm-sort)
-  (require 'vm-motion)
-)
-
+(require 'vm-folder)
+(require 'vm-motion)
 
 ;;;###autoload
 (defun vm-edit-message (&optional prefix-argument)
@@ -340,4 +328,5 @@ thread have their cached data discarded."
   (kill-buffer (current-buffer))
   (vm-inform 5 "Aborted, no change."))
 
+(provide 'vm-edit)
 ;;; vm-edit.el ends here
diff --git a/lisp/vm-folder.el b/lisp/vm-folder.el
index d1abd94d68..dd3829dd31 100644
--- a/lisp/vm-folder.el
+++ b/lisp/vm-folder.el
@@ -22,32 +22,16 @@
 
 ;;; Code:
 
-(provide 'vm-folder)
-
 (require 'vm-macro)
+(require 'vm-toolbar)
+(eval-when-compile (require 'cl-lib))
+
+;; FIXME: Cyclic dependency.
+(provide 'vm-folder)
 
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-toolbar)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-mark)
-  (require 'vm-virtual)
-  (require 'vm-mime)
-  (require 'vm-sort)
-  (require 'vm-thread)
-  (require 'vm-pop)
-  (require 'vm-imap)
-  (require 'vm-message)
-  (require 'vm-sort)
-)
+(require 'vm-delete)
+(require 'vm-pop)
+(require 'vm-page)
 
 ;; vm-xemacs.el is a fake file to fool the Emacs 23 compiler
 (declare-function get-itimer "vm-xemacs.el" (name))
diff --git a/lisp/vm-grepmail.el b/lisp/vm-grepmail.el
index 8762ff59e1..b95d27c8c8 100644
--- a/lisp/vm-grepmail.el
+++ b/lisp/vm-grepmail.el
@@ -41,20 +41,14 @@
 
 ;;; Code:
 
-(provide 'vm-grepmail)
-
 (require 'vm-macro)
-
-(eval-and-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-undo)
-  (require 'vm-startup)
-  (require 'vm-motion)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-)
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-startup)
+(require 'vm-motion)
+(require 'vm-summary)
+(require 'vm-folder)
+(require 'vm-window)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; group already defined in vm-vars.el
@@ -259,4 +253,5 @@ END the end position in the process output buffer."
        (set-buffer-modified-p nil))))
   (sit-for 0))
 
+(provide 'vm-grepmail)
 ;;; vm-grepmail.el ends here
diff --git a/lisp/vm-imap.el b/lisp/vm-imap.el
index 2cc21a52c2..0747439ad0 100644
--- a/lisp/vm-imap.el
+++ b/lisp/vm-imap.el
@@ -23,31 +23,13 @@
 
 ;;; Code:
 
-(provide 'vm-imap)
-
 (require 'vm-macro)
-
-(eval-when-compile 
-  (require 'cl-lib)
-  (require 'sendmail)
-  (require 'vm-misc))
-
-;; For function declarations
-(eval-when-compile
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-crypto)
-  (require 'vm-mime)
-  (require 'vm-reply)
-)
-
-(eval-and-compile
-  (require 'utf7)
-)
+(require 'vm-misc)
+(require 'vm-motion)
+(require 'vm-reply)                     ;vm-mail-mode-remove-header
+(require 'sendmail)
+(require 'utf7)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function vm-session-initialization 
                  "vm.el" ())
@@ -4926,4 +4908,5 @@ downloaded bodies will be displayed."
    ))
 
 
+(provide 'vm-imap)
 ;;; vm-imap.el ends here
diff --git a/lisp/vm-license.el b/lisp/vm-license.el
index 8d77d6940e..2e195c6d1f 100644
--- a/lisp/vm-license.el
+++ b/lisp/vm-license.el
@@ -21,10 +21,7 @@
 
 ;;; Code:
 
-(provide 'vm-license)
-
-(eval-when-compile
-  (require 'vm-window))
+(require 'vm-window)
 
 (declare-function Info-goto-node "ext:info" (nodename &optional fork))
 
@@ -58,4 +55,5 @@
   (interactive)
   (vm-show-copying-restrictions t))
 
+(provide 'vm-license)
 ;;; vm-license.el ends here
diff --git a/lisp/vm-macro.el b/lisp/vm-macro.el
index a6665b2050..767a3138c1 100644
--- a/lisp/vm-macro.el
+++ b/lisp/vm-macro.el
@@ -21,8 +21,6 @@
 
 ;;; Code:
 
-(provide 'vm-macro)
-
 ;; Definitions for things that aren't in all Emacsen and that we really
 ;; prefer not to live without.
 (eval-and-compile
@@ -183,7 +181,7 @@ current-buffer in `vm-user-interaction-buffer'."
        ((featurep 'xemacs) 'no-conversion)
        (t 'raw-text)))
 
-;;; can't use defsubst where quoting is needed in some places but
+;; can't use defsubst where quoting is needed in some places but
 ;; not others.
 
 (defmacro vm-assert (expression)
@@ -269,4 +267,5 @@ vm-buffer-types stack."
     (sleep-for 1)))
 
 
+(provide 'vm-macro)
 ;;; vm-macro.el ends here
diff --git a/lisp/vm-mark.el b/lisp/vm-mark.el
index 149f125a3c..fec395f4dc 100644
--- a/lisp/vm-mark.el
+++ b/lisp/vm-mark.el
@@ -21,21 +21,15 @@
 
 ;;; Code:
 
-(provide 'vm-mark)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-motion)
-  (require 'vm-thread)
-  (require 'vm-summary)
-  (require 'vm-sort)
-  (require 'vm-virtual)
-  (require 'vm-window)
-  )
-
+(require 'vm-misc)
+(require 'vm-folder)
+(require 'vm-motion)
+(require 'vm-thread)
+(require 'vm-summary)
+(require 'vm-sort)
+(require 'vm-virtual)
+(require 'vm-window)
 
 ;;;###autoload
 (defun vm-clear-all-marks ()
@@ -486,4 +480,5 @@ not work."
    0 
    "MM = mark, MU = unmark, Mm = mark all, Mu = unmark all, MN = use marks, 
..."))
 
+(provide 'vm-mark)
 ;;; vm-mark.el ends here
diff --git a/lisp/vm-menu.el b/lisp/vm-menu.el
index 749c4a8ede..d72bcffab2 100644
--- a/lisp/vm-menu.el
+++ b/lisp/vm-menu.el
@@ -52,12 +52,8 @@
 
 ;;; Code:
 
-(provide 'vm-menu)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-mime)
-  (require 'vm-delete))
+(require 'vm-misc)
+(require 'vm-mime)
 
 (declare-function event-window "vm-xemacs" (event))
 (declare-function event-point "vm-xemacs" (event))
@@ -1675,4 +1671,5 @@ for the current directory (.) is inserted."
     )
   )
 
+(provide 'vm-menu)
 ;;; vm-menu.el ends here
diff --git a/lisp/vm-message-history.el b/lisp/vm-message-history.el
index 5e1f8ed267..0d8dde5d49 100644
--- a/lisp/vm-message-history.el
+++ b/lisp/vm-message-history.el
@@ -51,17 +51,12 @@
 
 ;;; Code:
 
-(provide 'vm-message-history)
-
-(eval-and-compile
-  (require 'easymenu)
-  (require 'vm-menu)
-  (require 'vm-misc)
-  (require 'vm-summary)
-  (require 'vm-page)
-  (require 'vm-window)
-  (require 'vm-motion)
-)
+(require 'easymenu)
+(require 'vm-menu)
+(require 'vm-misc)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-motion)
 
 (defgroup vm-message-history nil
   "Message history for VM folders."
@@ -239,4 +234,5 @@ With prefix ARG, select the ARG'th next message."
 
 (add-hook 'vm-select-message-hook 'vm-message-history-add)
 
+(provide 'vm-message-history)
 ;;; vm-message-history.el ends here
diff --git a/lisp/vm-message.el b/lisp/vm-message.el
index 882d70ff2f..c805de3c25 100644
--- a/lisp/vm-message.el
+++ b/lisp/vm-message.el
@@ -22,9 +22,8 @@
 
 ;;; Code:
 
-(provide 'vm-message)
-
 (require 'vm-macro)
+(require 'vm-vars)
 (eval-when-compile (require 'cl-lib))
 
 (declare-function vm-mime-encode-words-in-string "vm-mime" (string))
@@ -775,4 +774,5 @@ the headers/body of M."
      (vm-zip-vectors vm-mirror-data-fields (vm-mirror-data-of m))))
   nil)
 
+(provide 'vm-message)
 ;;; vm-message.el ends here
diff --git a/lisp/vm-mime.el b/lisp/vm-mime.el
index 905b5df107..1aeba1070a 100644
--- a/lisp/vm-mime.el
+++ b/lisp/vm-mime.el
@@ -21,30 +21,12 @@
 
 ;;; Code:
 
-(provide 'vm-mime)
-
 (require 'vm-macro)
-
-(eval-and-compile
-  (require 'vm-misc))
-
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-minibuf)
-  (require 'vm-toolbar)
-  (require 'vm-mouse)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-menu)
-  (require 'vm-crypto)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-reply)
-  (require 'vm-digest)
-  (require 'vm-edit)
-  (require 'smime)
-  )
+(require 'vm-reply)                     ;vm-mail-mode-show-headers
+(require 'vm-summary)
+(require 'sendmail)
+(require 'smime)
+(eval-when-compile (require 'cl-lib))
 
 ;; vm-xemacs.el is a fake file to fool the Emacs 23 compiler
 (declare-function get-itimer "vm-xemacs" (name))
@@ -8359,4 +8341,5 @@ buffer."
   (insert-buffer-substring buffer))
 
 
+(provide 'vm-mime)
 ;;; vm-mime.el ends here
diff --git a/lisp/vm-minibuf.el b/lisp/vm-minibuf.el
index 5f9ca2a95a..c3e547d92a 100644
--- a/lisp/vm-minibuf.el
+++ b/lisp/vm-minibuf.el
@@ -21,14 +21,8 @@
 
 ;;; Code:
 
-(provide 'vm-minibuf)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-mouse)
-  )
+(require 'vm-mouse)
 
 (declare-function button-press-event-p "vm-xemacs" (object))
 (declare-function button-release-event-p "vm-xemacs" (object))
@@ -378,4 +372,5 @@ click mouse triggered the current command."
    ;; predicate, require-match, initial-input, hist
    nil t nil nil))
 
+(provide 'vm-minibuf)
 ;;; vm-minibuf.el ends here
diff --git a/lisp/vm-misc.el b/lisp/vm-misc.el
index 307d24902f..4c22a97656 100644
--- a/lisp/vm-misc.el
+++ b/lisp/vm-misc.el
@@ -22,12 +22,9 @@
 
 ;;; Code:
 
-(provide 'vm-misc)
-
 (require 'vm-macro)
-
-;; (eval-when-compile
-;;   (require 'vm-misc))
+(require 'vm-message)
+(require 'vm-vars)
 
 ;; vm-xemacs.el is a fake file to fool the Emacs 23 compiler
 (declare-function find-coding-system "vm-xemacs" (coding-system-or-name))
@@ -1733,4 +1730,5 @@ Emacs 22.1. This function used to supress compiler 
warnings."
 
 
 
+(provide 'vm-misc)
 ;;; vm-misc.el ends here
diff --git a/lisp/vm-motion.el b/lisp/vm-motion.el
index f9fa380463..092b2089df 100644
--- a/lisp/vm-motion.el
+++ b/lisp/vm-motion.el
@@ -21,20 +21,11 @@
 
 ;;; Code:
 
-(provide 'vm-motion)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-thread)
-  (require 'vm-window)
-  (require 'vm-page)
-  )
+(require 'vm-misc)
+(require 'vm-summary)
+(require 'vm-window)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function vm-so-sortable-subject "vm-sort" (message))
 
@@ -584,4 +575,5 @@ If a new message is selected then return t, otherwise nil. 
USR, 2010-03-08"
                      ;; a new message was selected.
                      t )))))))
 
+(provide 'vm-motion)
 ;;; vm-motion.el ends here
diff --git a/lisp/vm-mouse.el b/lisp/vm-mouse.el
index e3f824c2d5..a9ee7337aa 100644
--- a/lisp/vm-mouse.el
+++ b/lisp/vm-mouse.el
@@ -21,19 +21,7 @@
 
 ;;; Code:
 
-(provide 'vm-mouse)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-thread)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-menu)
-  )
+(require 'vm-menu)
 
 (declare-function vm-mail-to-mailto-url "vm-reply" (url))
 (declare-function event-window "vm-xemacs" (event))
@@ -691,4 +679,5 @@ HISTORY argument is ignored."
       (throw 'exit nil)
     (throw 'exit t)))
 
+(provide 'vm-mouse)
 ;;; vm-mouse.el ends here
diff --git a/lisp/vm-page.el b/lisp/vm-page.el
index 9bae59d044..d3281051bf 100644
--- a/lisp/vm-page.el
+++ b/lisp/vm-page.el
@@ -21,22 +21,10 @@
 
 ;;; Code:
 
-(provide 'vm-page)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-motion)
-  (require 'vm-menu)
-  (require 'vm-mouse)
-  (require 'vm-mime)
-  (require 'vm-undo)
-  )
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-menu)
 
 (declare-function vm-make-virtual-copy "vm-virtual" (message))
 (declare-function vm-make-presentation-copy "vm-mime" (message))
@@ -1170,4 +1158,5 @@ exposed and marked as read."
       (goto-char old-point)
       (error "No more buttons"))))
 
+(provide 'vm-page)
 ;;; vm-page.el ends here
diff --git a/lisp/vm-pcrisis.el b/lisp/vm-pcrisis.el
index c1bbf1ca78..bc5fd3f790 100644
--- a/lisp/vm-pcrisis.el
+++ b/lisp/vm-pcrisis.el
@@ -34,28 +34,14 @@
 
 ;;; Code:
 
-(provide 'vm-pcrisis)
-
-(eval-and-compile
-  (require 'timezone)
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-motion)
-  (require 'vm-reply))
-(eval-when-compile
-  ;; get the macros we need.
-  (condition-case e
-      (progn 
-        (require 'regexp-opt)
-        (require 'bbdb)
-        (require 'bbdb-com))
-    (error
-     (message "%S" e)
-     (message "Could not load bbdb.el.  Related functions may not work 
correctly!")
-     ;; (vm-sit-for 5)
-     )))
+(require 'timezone)
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-motion)
+(require 'vm-reply)
+(eval-when-compile (vm-load-features '(regexp-opt bbdb bbdb-com)))
 
 (declare-function set-extent-face "vm-xemacs" (extent face))
 (declare-function timezone-absolute-from-gregorian "ext:timezone" 
@@ -1653,4 +1639,5 @@ Call `vmpc-no-automorph' to disable it for the current 
buffer."
     (vmpc-build-actions-to-run-list)
     (vmpc-run-actions)))
 
+(provide 'vm-pcrisis)
 ;;; vm-pcrisis.el ends here
diff --git a/lisp/vm-pgg.el b/lisp/vm-pgg.el
index 0dad9dd7e1..6fb98c8634 100644
--- a/lisp/vm-pgg.el
+++ b/lisp/vm-pgg.el
@@ -87,8 +87,6 @@
 
 ;;; Code:
 
-(provide 'vm-pgg)
-
 (require 'vm-macro)
 
 ;; handle missing pgg.el gracefully
@@ -97,16 +95,15 @@
       (condition-case nil
           (require 'pgg)
         (error (message "WARNING: Cannot load pgg.el, related functions may 
not work!")))
-    (require 'pgg))
-
-  (require 'easymenu)
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-mime)
-  (require 'vm-reply)
-  (require 'vm-motion))
+    (require 'pgg)))
+
+(require 'easymenu)
+(require 'vm-misc)
+(require 'vm-folder)
+(require 'vm-window)
+(require 'vm-mime)
+(require 'vm-reply)
+(require 'vm-motion)
   
 (declare-function rfc822-addresses "ext:rfc822" (header-text))
 
diff --git a/lisp/vm-pine.el b/lisp/vm-pine.el
index 36601b1b67..97fca6ba41 100644
--- a/lisp/vm-pine.el
+++ b/lisp/vm-pine.el
@@ -84,24 +84,18 @@
 
 ;;; Code:
 
-(provide 'vm-pine)
-
 (require 'vm-macro)
-(require 'vm-vars)
- 
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-minibuf)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-mime)
-  (require 'vm-reply)
-  )
+(require 'vm-vars) 
+(require 'vm-misc)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-minibuf)
+(require 'vm-motion)
+(require 'vm-undo)
+(require 'vm-delete)
+(require 'vm-mime)
+(require 'vm-reply)
 
 (declare-function deiconify-frame "vm-xemacs" (&optional frame))
 (declare-function frames-of-buffer "vm-xemacs" 
@@ -1125,4 +1119,6 @@ If optional argument RETURN-ONLY is t just returns FCC."
                                                fcc)))))))))
 
 ;;-----------------------------------------------------------------------------
+
+(provide 'vm-pine)
 ;;; vm-pine.el ends here
diff --git a/lisp/vm-pop.el b/lisp/vm-pop.el
index 741f558873..20758e130e 100644
--- a/lisp/vm-pop.el
+++ b/lisp/vm-pop.el
@@ -21,23 +21,15 @@
 
 ;;; Code:
 
-(provide 'vm-pop)
-
 (require 'vm-macro)
-
-;; For function declarations
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-crypto)
-  (require 'vm-mime)
-)
+(require 'vm-misc)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-undo)
+(require 'vm-crypto)
+(require 'vm-mime)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function vm-submit-bug-report 
                  "vm.el" (&optional pre-hooks post-hooks))
@@ -1373,4 +1365,5 @@ order to capture the trace of POP sessions during the 
occurrence."
   (vm-set-body-to-be-discarded-of m nil))
 
 
+(provide 'vm-pop)
 ;;; vm-pop.el ends here
diff --git a/lisp/vm-ps-print.el b/lisp/vm-ps-print.el
index 0f78d37677..11d4c4628b 100644
--- a/lisp/vm-ps-print.el
+++ b/lisp/vm-ps-print.el
@@ -58,17 +58,12 @@
 ;; 
 ;;; Code:
 
-(provide 'vm-ps-print)
-
 (require 'cl-lib)
-
-(eval-when-compile
-  (require 'ps-print)
-
-  (require 'vm-save)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-mime))
+(require 'ps-print)
+(require 'vm-save)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-mime)
 
 (declare-function vm-marked-messages "vm-mark" ())
 
@@ -448,4 +443,5 @@ filename and formats 1 page per sheet. (JJK)"
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+(provide 'vm-ps-print)
 ;;; vm-ps-print.el ends here
diff --git a/lisp/vm-reply.el b/lisp/vm-reply.el
index 804589bca3..32750a135f 100644
--- a/lisp/vm-reply.el
+++ b/lisp/vm-reply.el
@@ -64,26 +64,9 @@
 
 ;;; Code:
 
-(provide 'vm-reply)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-mime)
-  (require 'vm-digest)
-  (require 'vm-undo)
-  ;; (require 'vm-delete)
-  ;; (require 'vm-imap)
-  )
+(require 'vm-summary)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function vm-mode "vm" (&optional read-only))
 (declare-function vm-session-initialization "vm" ())
@@ -2186,4 +2169,5 @@ that is needed for Mac and NextStep."
 
 (add-hook 'vm-mail-mode-hook 'vm-mail-mode-hide-headers-hook)
 
+(provide 'vm-reply)
 ;;; vm-reply.el ends here
diff --git a/lisp/vm-rfaddons.el b/lisp/vm-rfaddons.el
index e2456b02d2..8eee2fd743 100644
--- a/lisp/vm-rfaddons.el
+++ b/lisp/vm-rfaddons.el
@@ -58,37 +58,33 @@
 ;;
 ;;; Code:
 
-(provide 'vm-rfaddons)
-
 (require 'vm-macro)
 (require 'vm-version)
 
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-toolbar)
-  (require 'vm-mouse)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-crypto)
-  (require 'vm-mime)
-  (require 'vm-edit)
-  (require 'vm-virtual)
-  (require 'vm-pop)
-  (require 'vm-imap)
-  (require 'vm-sort)
-  (require 'vm-reply)
-  (require 'vm-pine)
-  (require 'wid-edit)
-  (require 'vm)
-)
+(require 'vm-misc)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-minibuf)
+(require 'vm-menu)
+(require 'vm-toolbar)
+(require 'vm-mouse)
+(require 'vm-motion)
+(require 'vm-undo)
+(require 'vm-delete)
+(require 'vm-crypto)
+(require 'vm-message)
+(require 'vm-mime)
+(require 'vm-edit)
+(require 'vm-virtual)
+(require 'vm-pop)
+(require 'vm-imap)
+(require 'vm-sort)
+(require 'vm-reply)
+(require 'vm-pine)
+(require 'wid-edit)
+(require 'vm)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function bbdb-record-raw-notes "ext:bbdb" (record))
 (declare-function bbdb-record-net "ext:bbdb " (record))
@@ -101,10 +97,7 @@
 (declare-function esmtpmail-via-smtp-server "ext:esmtpmail" ())
 (declare-function vm-folder-buffers "ext:vm" (&optional non-virtual))
 
-(eval-when-compile
-  (vm-load-features '(regexp-opt bbdb bbdb-vm))
-  ;; gnus-group removed from features because it gives errors.  USR, 2011-01-26
-  )
+(eval-when-compile (vm-load-features '(regexp-opt bbdb bbdb-vm)))
 
 (require 'sendmail)
 (vm-load-features '(bbdb))
@@ -1966,4 +1959,5 @@ calls. (Rob F)"
       (vm-decode-mime-message 'decoded)
       (message "using best internal MIME decoding"))))
 
+(provide 'vm-rfaddons)
 ;;; vm-rfaddons.el ends here
diff --git a/lisp/vm-save.el b/lisp/vm-save.el
index 3366bc4f93..77b5fd4d86 100644
--- a/lisp/vm-save.el
+++ b/lisp/vm-save.el
@@ -25,23 +25,18 @@
 
 ;;; Code:
 
-(provide 'vm-save)
-
 (require 'vm-macro)
 
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-mime)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-imap)
-  )
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-mime)
+(require 'vm-undo)
+(require 'vm-delete)
+(require 'vm-imap)
 
 (declare-function vm-session-initialization "vm" ())
 
@@ -1040,4 +1035,5 @@ The saved messages are flagged as `filed'."
        (vm-delete-message count mlist))
     folder ))
 
+(provide 'vm-save)
 ;;; vm-save.el ends here
diff --git a/lisp/vm-search.el b/lisp/vm-search.el
index acacd2be94..f81ec6005b 100644
--- a/lisp/vm-search.el
+++ b/lisp/vm-search.el
@@ -21,18 +21,14 @@
 
 ;;; Code:
 
-(provide 'vm-search)
-
-(eval-and-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-undo)
-  (require 'vm-startup)
-  (require 'vm-motion)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-)
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-undo)
+(require 'vm-startup)
+(require 'vm-motion)
+(require 'vm-summary)
+(require 'vm-folder)
+(require 'vm-window)
 
 
 ;;;###autoload
@@ -143,4 +139,5 @@ vm-search-using-regexps for this search."
          (intern (buffer-name) vm-buffers-needing-display-update)
          (vm-update-summary-and-mode-line)))))
 
+(provide 'vm-search)
 ;;; vm-search.el ends here
diff --git a/lisp/vm-serial.el b/lisp/vm-serial.el
index 3ae44948e3..711875666c 100644
--- a/lisp/vm-serial.el
+++ b/lisp/vm-serial.el
@@ -71,25 +71,19 @@
 ;; 
 ;;; Code:
 
-(provide 'vm-serial)
- 
 (require 'vm-reply)
 (require 'vm-macro)
+(require 'vm-misc)
+(require 'vm-mime)
+(require 'vm-pine)
+(require 'mail-utils)
+(require 'mail-extr)
+(eval-when-compile (require 'cl-lib))
 
 (defgroup vm-serial nil
   "Sending personalized serial mails and getting message templates."
   :group  'vm-ext)
 
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-mime))
-
-(eval-and-compile
-  (require 'vm-pine)
-  (require 'mail-utils)
-  (require 'mail-extr))
-
 (declare-function bbdb-extract-address-components 
                  "ext:bbdb-snarf" (adstring &optional ignore-errors))
 (declare-function bbdb-record-firstname "ext:bbdb" (record))
@@ -915,4 +909,5 @@ questions will bother you!"
       (kill-this-buffer)))
 
 ;;-----------------------------------------------------------------------------
+(provide 'vm-serial)
 ;;; vm-serial.el ends here
diff --git a/lisp/vm-smime.el b/lisp/vm-smime.el
index 16d25b9bb8..738cef83d4 100644
--- a/lisp/vm-smime.el
+++ b/lisp/vm-smime.el
@@ -21,29 +21,22 @@
 
 ;;; Code:
 
-(provide 'vm-smime)
-
-(eval-and-compile
-  (require 'vm-misc))
-
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-minibuf)
-  (require 'vm-toolbar)
-  (require 'vm-mouse)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-menu)
-  (require 'vm-crypto)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-reply)
-  (require 'vm-digest)
-  (require 'vm-edit)
-  (require 'vm-mime)
-  (require 'smime)
-  )
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-toolbar)
+(require 'vm-mouse)
+(require 'vm-summary)
+(require 'vm-folder)
+(require 'vm-menu)
+(require 'vm-crypto)
+(require 'vm-window)
+(require 'vm-motion)
+(require 'vm-reply)
+(require 'vm-digest)
+(require 'vm-edit)
+(require 'vm-mime)
+(require 'smime)
+(eval-when-compile (require 'cl-lib))
 
 (defun vm-mime-smime-extract-pkcs7-signature (layout)
   (unless (vectorp layout)
@@ -325,3 +318,6 @@ composition. If there is no `From' header in the message,
                (mail-fetch-field (car to-headers)) t)))))
          (setq to-headers (cdr to-headers)))))
     recips))
+
+(provide 'vm-smime)
+;;; vm-smime.el ends here.
diff --git a/lisp/vm-sort.el b/lisp/vm-sort.el
index 48fb02d500..d698ea34da 100644
--- a/lisp/vm-sort.el
+++ b/lisp/vm-sort.el
@@ -22,22 +22,15 @@
 
 ;;; Code
 
-(provide 'vm-sort)
-
 (require 'vm-macro)
 (require 'vm-vars)
-
-(eval-and-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-thread)
-  (require 'vm-motion)
-  (require 'vm-page)
-  (require 'vm-window)
-  (require 'vm-undo)
-  )
+(require 'vm-misc)
+(require 'vm-minibuf)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-motion)
+(require 'vm-window)
+(eval-when-compile (require 'cl-lib))
 
 (declare-function vm-sort-insert-auto-folder-names "vm-avirtual" ())
 
@@ -885,4 +878,5 @@ that, if P1 and P2 are the oldest different ancestors of M1 
and M2, then
     (string< (vm-get-header-contents m1 vm-sort-compare-header)
              (vm-get-header-contents m2 vm-sort-compare-header))))
 
+(provide 'vm-sort)
 ;;; vm-sort.el ends here
diff --git a/lisp/vm-summary-faces.el b/lisp/vm-summary-faces.el
index 855f75ad5a..108a0bc2f2 100644
--- a/lisp/vm-summary-faces.el
+++ b/lisp/vm-summary-faces.el
@@ -32,14 +32,8 @@
 ;;
 ;;; Code
 
-(provide 'vm-summary-faces)
-
-(eval-when-compile
-  (require 'vm-misc))
-
-(eval-and-compile
-  (require 'vm-summary)
-  (require 'vm-virtual))
+(require 'vm-misc)
+(require 'vm-avirtual)
 
 ;; (eval-and-compile
 ;;   (if (featurep 'xemacs) (require 'overlay)))
@@ -182,3 +176,5 @@ fonts and colors, for easy recogniton of the message 
status."
 
 (add-hook 'vm-summary-pointer-update-hook 'vm-summary-faces-fix-pointer)
 
+(provide 'vm-summary-faces)
+;;; vm-summary-faces.el ends here.
diff --git a/lisp/vm-summary.el b/lisp/vm-summary.el
index 43bf800fd3..0d03221b15 100644
--- a/lisp/vm-summary.el
+++ b/lisp/vm-summary.el
@@ -23,25 +23,8 @@
 
 ;;; Code:
 
-(provide 'vm-summary)
-
 (require 'vm-macro)
-
-(eval-and-compile
-  (require 'vm-misc)
-  (require 'vm-crypto)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-menu)
-  (require 'vm-toolbar)
-  (require 'vm-mouse)
-  (require 'vm-motion)
-  (require 'vm-mime)
-  (require 'vm-thread)
-  (require 'vm-imap)
-  (require 'vm-pop)
-  (require 'vm-summary-faces)
-)
+(require 'vm-summary-faces)
 
 (declare-function set-specifier "vm-xemacs" 
                  (specifier value &optional locale tag-set how-to-add))
@@ -2534,4 +2517,5 @@ Call this function if you made changes to 
`vm-summary-format'."
       nil )))
 
 
+(provide 'vm-summary)
 ;;; vm-summary.el ends here
diff --git a/lisp/vm-thread.el b/lisp/vm-thread.el
index 42251f14e4..20b0fb4092 100644
--- a/lisp/vm-thread.el
+++ b/lisp/vm-thread.el
@@ -22,18 +22,10 @@
 
 ;;; Code:
 
-(provide 'vm-thread)
-
-;; For function declarations
 
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-motion)
-  (require 'vm-summary)
-  (require 'vm-sort)
-)
+(require 'vm-misc)
+(require 'vm-folder)
+(eval-when-compile (require 'cl-lib))
 
 ;; --------------------------------------------------------------------------
 ;; Top-level operations
@@ -1551,4 +1543,5 @@ to the thread.  Used for testing purposes."
       ;; (setq vm-thread-subject-obarray 'bonk)
       ))))
 
+(provide 'vm-thread)
 ;;; vm-thread.el ends here
diff --git a/lisp/vm-toolbar.el b/lisp/vm-toolbar.el
index f8d6b701f7..210e9ba19d 100644
--- a/lisp/vm-toolbar.el
+++ b/lisp/vm-toolbar.el
@@ -21,12 +21,8 @@
 
 ;;; Code:
 
-(provide 'vm-toolbar)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-window)
-  )
+(require 'vm-misc)
+(require 'vm-window)
 
 (declare-function vm-follow-summary-cursor "vm-motion" ())
 (declare-function vm-mime-plain-message-p "vm-mime" (message))
@@ -726,4 +722,5 @@ s-expression like this one in your .vm file:
                           name extension)
                   dir)))))
 
+(provide 'vm-toolbar)
 ;;; vm-toolbar.el ends here
diff --git a/lisp/vm-undo.el b/lisp/vm-undo.el
index dc98ad37bb..fb6eb2b05d 100644
--- a/lisp/vm-undo.el
+++ b/lisp/vm-undo.el
@@ -21,20 +21,8 @@
 
 ;;; Code:
 
-(provide 'vm-undo)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-menu)
-  (require 'vm-minibuf)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  )
+(require 'vm-summary)
 
 ;; vm-undo-record-list is a buffer-local-variable containing
 ;; undo-records.
@@ -701,4 +689,5 @@ changed attributes are stuffed into the folder.        USR 
2010-04-06"
 (defun vm-set-new-flag-in-vector (v flag)
   (aset v 0 flag))
 
+(provide 'vm-undo)
 ;;; vm-undo.el ends here
diff --git a/lisp/vm-user.el b/lisp/vm-user.el
index 8d41161c75..9ebeb70538 100644
--- a/lisp/vm-user.el
+++ b/lisp/vm-user.el
@@ -21,7 +21,8 @@
 
 ;;; Code:
 
-(provide 'vm-user)
+(require 'vm-vars)
+(require 'vm-message)
 
 (defun vm-user-composition-folder-buffer ()
   "Return the folder buffer associated with the current buffer.
@@ -59,4 +60,5 @@ by VM for a reply, resend or forward."
        newlist )
     nil ))
 
+(provide 'vm-user)
 ;;; vm-user.el ends here
diff --git a/lisp/vm-vars.el b/lisp/vm-vars.el
index 5017c2067d..ed0e50b381 100644
--- a/lisp/vm-vars.el
+++ b/lisp/vm-vars.el
@@ -21,8 +21,6 @@
 
 ;;; Code:
 
-(provide 'vm-vars)
-
 (require 'vm-version)
 
 (declare-function vm-parse "vm-misc" (string regexp &optional matchn matches))
@@ -7559,4 +7557,5 @@ The file names may be customized via the variables 
`vm-init-file' and
   (setq vm-init-file-loaded t)
   (vm-display nil nil '(vm-load-init-file) '(vm-load-init-file)))
 
+(provide 'vm-vars)
 ;;; vm-vars.el ends here
diff --git a/lisp/vm-vcard.el b/lisp/vm-vcard.el
index bbfab4137a..2b34bf78ae 100644
--- a/lisp/vm-vcard.el
+++ b/lisp/vm-vcard.el
@@ -28,12 +28,8 @@
 ;;; Commentary:
 ;;; Code:
 
-(provide 'vm-vcard)
-
 (require 'vcard)
-
-(eval-when-compile
-  (require 'vm-mime))
+(require 'vm-mime)
 
 (and (string-lessp vcard-api-version "2.0")
      (error "vm-vcard.el requires vcard API version 2.0 or later."))
@@ -88,4 +84,5 @@
 (defun vm-vcard-format-simple (vcard)
   (concat "\n\n--\n" (vcard-format-sample-string vcard) "\n\n"))
 
+(provide 'vm-vcard)
 ;;; vm-vcard.el ends here.
diff --git a/lisp/vm-version.el b/lisp/vm-version.el
index d4bfbed23f..71ba832dd4 100644
--- a/lisp/vm-version.el
+++ b/lisp/vm-version.el
@@ -19,13 +19,10 @@
 
 ;;; Code:
 
-(provide 'vm-version)
-
 ;; Don't use vm-device-type here because it may not not be loaded yet.
 (declare-function device-type "vm-xemacs" ())
 (declare-function device-matching-specifier-tag-list "vm-xemacs" ())
 
-
 (defconst vm-version
   (condition-case nil
       (with-temp-buffer
@@ -132,4 +129,5 @@ Return the list of loaded features."
                 feature-list))
   (delete nil feature-list))
 
+(provide 'vm-version)
 ;;; vm-version.el ends here
diff --git a/lisp/vm-virtual.el b/lisp/vm-virtual.el
index 2e73ad4d29..571b569079 100644
--- a/lisp/vm-virtual.el
+++ b/lisp/vm-virtual.el
@@ -22,26 +22,14 @@
 
 ;;; Code:
 
-(provide 'vm-virtual)
-
+(require 'vm-message)
 (require 'vm-macro)
+(require 'vm-misc)
+(require 'vm-minibuf)
 
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-summary)
-  (require 'vm-folder)
-  (require 'vm-window)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-save)
-  (require 'vm-reply)
-  (require 'vm-sort)
-  (require 'vm-thread)
-)
+;; FIXME: Cyclic dependence between vm-virtual.el and vm-avirtual.el
+;; prevents us from requiring `vm-avirtual' here.
+(defvar vm-virtual-message)
 
 (declare-function vm-visit-folder "vm" 
                  (folder &optional read-only &key interactive just-visit))
@@ -92,7 +80,7 @@ all the real folder buffers involved."
        (vbuffer (current-buffer))
        (mirrored vm-virtual-mirror)
        (case-fold-search t)
-       (tail-cons (if dont-finalize nil (vm-last vm-message-list)))
+       (tail-cons (if dont-finalize nil (last vm-message-list)))
        (new-message-list nil)
        virtual location-vector
        message folders folder buffer
@@ -1391,4 +1379,5 @@ folder buffer (which should be the virtual folder in 
which M occurs)."
 ;; ;; now load vm-avirtual to avoid a loading loop
 ;; (require 'vm-avirtual)
 
+(provide 'vm-virtual)
 ;;; vm-virtual.el ends here
diff --git a/lisp/vm-w3.el b/lisp/vm-w3.el
index 65fdbc7b9d..e3405eb055 100644
--- a/lisp/vm-w3.el
+++ b/lisp/vm-w3.el
@@ -25,9 +25,7 @@
 
 ;;; Code:
 
-(eval-when-compile
-  (require 'vm-mime)
-)
+(require 'vm-mime)
 
 (eval-and-compile
   (require 'vm-version)
@@ -73,3 +71,5 @@
   ;; remove read-only text properties
   (let ((inhibit-read-only t))
     (remove-text-properties start end '(read-only nil))))
+(provide 'vm-w3)
+;;; vm-w3.el ends here
diff --git a/lisp/vm-w3m.el b/lisp/vm-w3m.el
index f972fa8302..d77678f5d0 100644
--- a/lisp/vm-w3m.el
+++ b/lisp/vm-w3m.el
@@ -30,15 +30,10 @@
 
 ;;; Code:
 
-(provide 'vm-w3m)
-
-(eval-when-compile
-  (require 'vm-mime)
-  (require 'executable))
+(require 'vm-mime)
+(require 'vm-version)
 
-(eval-and-compile
-  (require 'vm-version)
-  (vm-load-features '(w3m)))
+(eval-and-compile (vm-load-features '(w3m)))
 
 (declare-function w3m-region 
                  "ext:w3m" (start end &optional url charset))
diff --git a/lisp/vm-window.el b/lisp/vm-window.el
index 4edb543503..64a85b5a29 100644
--- a/lisp/vm-window.el
+++ b/lisp/vm-window.el
@@ -21,14 +21,9 @@
 
 ;;; Code:
 
-(provide 'vm-window)
-
 (require 'vm-macro)
-
-(eval-when-compile
-  (require 'vm-misc)
-  (require 'tapestry)
-  )
+(require 'vm-misc)
+(require 'tapestry) ;; FIXME: Use Emacs-24's `frameset'?
 
 (declare-function frame-highest-window "vm-xemacs" (frame))
 
@@ -724,4 +719,5 @@ Run the hooks in vm-iconify-frame-hook before doing so."
        ;; others.
        (fset 'vm-select-frame 'ignore)))
 
+(provide 'vm-window)
 ;;; vm-window.el ends here
diff --git a/lisp/vm.el b/lisp/vm.el
index fa5036f69c..3109a0f56c 100644
--- a/lisp/vm.el
+++ b/lisp/vm.el
@@ -35,32 +35,29 @@
 
 (require 'vm-version)
 (require 'vm-macro)
+(require 'vm-misc)
+(require 'vm-folder)
+(require 'vm-summary)
+(require 'vm-window)
+(require 'vm-minibuf)
+(require 'vm-menu)
+(require 'vm-toolbar)
+(require 'vm-mouse)
+(require 'vm-page)
+(require 'vm-motion)
+(require 'vm-undo)
+(require 'vm-delete)
+(require 'vm-crypto)
+(require 'vm-mime)
+(require 'vm-virtual)
+(require 'vm-pop)
+(require 'vm-imap)
+(require 'vm-sort)
+(require 'vm-reply)
+(eval-when-compile (require 'cl-lib))
 
-(defvar enable-multibyte-characters)
 
-;; For function declarations
-(eval-when-compile
-  (require 'cl-lib)
-  (require 'vm-misc)
-  (require 'vm-folder)
-  (require 'vm-summary)
-  (require 'vm-window)
-  (require 'vm-minibuf)
-  (require 'vm-menu)
-  (require 'vm-toolbar)
-  (require 'vm-mouse)
-  (require 'vm-page)
-  (require 'vm-motion)
-  (require 'vm-undo)
-  (require 'vm-delete)
-  (require 'vm-crypto)
-  (require 'vm-mime)
-  (require 'vm-virtual)
-  (require 'vm-pop)
-  (require 'vm-imap)
-  (require 'vm-sort)
-  (require 'vm-reply)
-)
+(defvar enable-multibyte-characters)
 
 ;; vm-xemacs.el is a non-existent file to fool the Emacs 23 compiler
 (declare-function vm-xemacs-set-face-foreground "vm-xemacs.el" 


Reply via email to