Update copyright notices for 2013.
[bpt/emacs.git] / lisp / mh-e / mh-letter.el
index 2ced886..b2db25f 100644 (file)
@@ -1,6 +1,7 @@
 ;;; mh-letter.el --- MH-Letter mode
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2011  Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 1997, 2000-2013 Free Software Foundation,
+;; Inc.
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -66,8 +67,9 @@ Each hook function can find the citation between point and mark.
 And each hook function should leave point and mark around the
 citation text as modified.
 
-This is a normal hook, misnamed for historical reasons. It is
-semi-obsolete and is only used if `mail-citation-hook' is nil.")
+This is a normal hook, misnamed for historical reasons.
+It is obsolete and is only used if `mail-citation-hook' is nil.")
+(make-obsolete-variable 'mh-yank-hooks 'mail-citation-hook "19.34")
 
 \f
 
@@ -185,7 +187,7 @@ semi-obsolete and is only used if `mail-citation-hook' is nil.")
   "\C-c\C-w"            mh-check-whom
   "\C-c\C-y"            mh-yank-cur-msg
   "\C-c\M-d"            mh-insert-auto-fields
-  "\M-\t"               mh-letter-complete ;; FIXME: completion-at-point
+  "\M-\t"               mh-letter-complete
   "\t"                  mh-letter-next-header-field-or-indent
   [backtab]             mh-letter-previous-header-field)
 
@@ -273,7 +275,8 @@ searching for `mh-mail-header-separator' in the buffer."
 ;;; MH-Letter Mode
 
 ;; Shush compiler.
-(defvar font-lock-defaults)             ; XEmacs
+(mh-do-in-xemacs
+  (defvar font-lock-defaults))
 
 ;; Ensure new buffers won't get this mode if default major-mode is nil.
 (put 'mh-letter-mode 'mode-class 'special)
@@ -502,10 +505,13 @@ This provides alias and folder completion in header fields according to
         (or (funcall func) #'ignore)
       mh-letter-complete-function)))
 
-(defalias 'mh-letter-complete
-  (if (fboundp 'completion-at-point) #'completion-at-point
-    (lambda ()
-      "Perform completion on header field or word preceding point.
+;; TODO Now that completion-at-point performs the task of
+;; mh-letter-complete, perhaps mh-letter-complete along with
+;; mh-complete-word should be rewritten as a more general function for
+;; XEmacs, renamed to mh-completion-at-point, and moved to
+;; mh-compat.el.
+(defun-mh mh-letter-complete completion-at-point ()
+  "Perform completion on header field or word preceding point.
 
 If the field contains addresses (for example, \"To:\" or \"Cc:\")
 or folders (for example, \"Fcc:\") then this command will provide
@@ -521,7 +527,7 @@ alias completion. In the body of the message, this command runs
                 (end (nth 1 data))
                 (table (nth 2 data)))
             (mh-complete-word (buffer-substring-no-properties start end)
-                              table start end))))))))
+                              table start end))))))
 
 (defun mh-letter-complete-or-space (arg)
   "Perform completion or insert space.
@@ -531,8 +537,7 @@ this command to perform completion in the header. Otherwise, a
 space is inserted; use a prefix argument ARG to specify more than
 one space."
   (interactive "p")
-  (let ((func nil)
-        (end-of-prev (save-excursion
+  (let ((end-of-prev (save-excursion
                        (goto-char (mh-beginning-of-word))
                        (mh-beginning-of-word -1))))
     (cond ((not mh-compose-space-does-completion-flag)
@@ -889,7 +894,6 @@ downcasing the field name."
 
 ;;;###mh-autoload
 (defun mh-complete-word (word choices begin end)
-  ;; FIXME: Only needed when completion-at-point doesn't exist.
   "Complete WORD from CHOICES.
 Any match found replaces the text from BEGIN to END."
   (let ((completion (try-completion word choices))
@@ -907,7 +911,7 @@ Any match found replaces the text from BEGIN to END."
                (with-output-to-temp-buffer completions-buffer
                  (mh-display-completion-list
                   (all-completions word choices)
-                  ;; The `common-subtring' arg only works if it's a prefix.
+                  ;; The `common-substring' arg only works if it's a prefix.
                   (unless (and (functionp choices)
                                (let ((bounds
                                       (funcall choices