(message-tool-bar-gnome): Check if `flyspell-mode' is
[gnus] / lisp / message.el
index 90f544f..d2c15cd 100644 (file)
@@ -39,6 +39,7 @@
 (require 'canlock)
 (require 'mailheader)
 (require 'nnheader)
+(require 'gmm-utils)
 ;; This is apparently necessary even though things are autoloaded.
 ;; Because we dynamically bind mail-abbrev-mode-regexp, we'd better
 ;; require mailabbrev here.
@@ -1663,7 +1664,6 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'."
   (autoload 'gnus-request-post "gnus-int")
   (autoload 'gnus-server-string "gnus")
   (autoload 'idna-to-ascii "idna")
-  (autoload 'gmm-tool-bar-from-list "gmm-utils")
   (autoload 'message-setup-toolbar "messagexmas")
   (autoload 'mh-new-draft-name "mh-comp")
   (autoload 'mh-send-letter "mh-comp")
@@ -3707,8 +3707,8 @@ not have PROP."
          (when (let ((char (char-after)))
                  (or (< (mm-char-int char) 128)
                      (and (mm-multibyte-p)
-                          ;; Fixme: Wrong for Emacs 23 and for things
-                          ;; like undecable utf-8.  Should at least
+                          ;; FIXME: Wrong for Emacs 23 (unicode) and for
+                          ;; things like undecable utf-8.  Should at least
                           ;; use find-coding-systems-region.
                           (memq (char-charset char)
                                 '(eight-bit-control eight-bit-graphic
@@ -4767,7 +4767,9 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
           (* 25 25)))
   (let ((tm (current-time)))
     (concat
-     (if (memq system-type '(ms-dos emx vax-vms))
+     (if (or (memq system-type '(ms-dos emx vax-vms))
+            ;; message-number-base36 doesn't handle bigints.
+            (floatp (user-uid)))
         (let ((user (downcase (user-login-name))))
           (while (string-match "[^a-z0-9_]" user)
             (aset user (match-beginning 0) ?_))
@@ -6505,6 +6507,7 @@ Optional DIGEST will use digest to forward."
        (set-buffer (get-buffer-create " *message resend*"))
        (erase-buffer))
       (let ((message-this-is-mail t)
+           message-generate-hashcash
            message-setup-hook)
        (message-setup `((To . ,address))))
       ;; Insert our usual headers.
@@ -6542,6 +6545,7 @@ Optional DIGEST will use digest to forward."
       ;; Send it.
       (let ((message-inhibit-body-encoding t)
            message-required-mail-headers
+           message-generate-hashcash
            rfc2047-encode-encoded-words)
        (message-send-mail))
       (kill-buffer (current-buffer)))
@@ -6702,7 +6706,6 @@ which specify the range to operate on."
 
 ;; Support for toolbar
 (eval-when-compile
-  (defvar tool-bar-map)
   (defvar tool-bar-mode))
 
 ;; Note: The :set function in the `message-tool-bar*' variables will only
@@ -6716,8 +6719,9 @@ Setter function for custom variables."
     ;; When used as ":set" function:
     (set-default symbol value)))
 
-;; The default will be changed when the new icons have been checked in:
-(defcustom message-tool-bar 'message-tool-bar-retro
+(defcustom message-tool-bar (if (eq gmm-tool-bar-style 'gnome)
+                               'message-tool-bar-gnome
+                             'message-tool-bar-retro)
   "Specifies the message mode tool bar.
 
 It can be either a list or a symbol refering to a list.  See
@@ -6736,24 +6740,25 @@ Pre-defined symbols include `message-tool-bar-gnome' and
   :set 'message-tool-bar-update
   :group 'message)
 
-;; The new icons are not yet committed, see
-;; http://thread.gmane.org/gmane.emacs.gnus.general/61719
 (defcustom message-tool-bar-gnome
-  '((gmm-ignore "separator")
-    (message-send-and-exit "send")
-    (message-dont-send "save-draft")
+  '((ispell-message "spell" nil
+                   :visible (or (not (boundp 'flyspell-mode))
+                                (not flyspell-mode)))
+    (flyspell-buffer "spell" t
+                    :visible (and (boundp 'flyspell-mode)
+                                  flyspell-mode)
+                    :help "Flyspell whole buffer")
+    (gmm-ignore "separator")
+    (message-send-and-exit "mail/send")
+    (message-dont-send "mail/save-draft")
     (message-kill-buffer "close") ;; stock_cancel
     (mml-attach-file "attach" mml-mode-map)
-    (ispell-message "spell" nil :visible (not flyspell-mode))
-    (flyspell-buffer "spell" t :visible flyspell-mode
-                    :help "Flyspell whole buffer")
-    ;; We should have a mail-preview icon with an envelope like the one in
-    ;; stock_mail-reply.
-    (mml-preview "mail-preview" mml-mode-map)
+    (mml-preview "mail/preview" mml-mode-map)
     (mml-secure-message-sign-encrypt "lock" mml-mode-map :visible nil)
     (message-insert-importance-high "important" nil :visible nil)
     (message-insert-importance-low "unimportant" nil :visible nil)
     (message-insert-disposition-notification-to "receipt" nil :visible nil)
+    (gmm-customize-mode "preferences" t :help "Edit mode preferences")
     (message-info "help" t :help "Message manual"))
   "List of items for the message tool bar (GNOME style).
 
@@ -6765,15 +6770,16 @@ See `gmm-tool-bar-from-list' for details on the format of the list."
   :group 'message)
 
 (defcustom message-tool-bar-retro
-  '((message-send-and-exit "mail/send")
+  '(;; Old Emacs 21 icon for consistency.
+    (message-send-and-exit "gnus/mail_send")
     (message-kill-buffer "close")
     (message-dont-send "cancel")
     (mml-attach-file "attach" mml-mode-map)
     (ispell-message "spell")
     (mml-preview "preview" mml-mode-map)
-    (message-insert-importance-high "important")
-    (message-insert-importance-low "unimportant")
-    (message-insert-disposition-notification-to "receipt"))
+    (message-insert-importance-high "gnus/important")
+    (message-insert-importance-low "gnus/unimportant")
+    (message-insert-disposition-notification-to "gnus/receipt"))
   "List of items for the message tool bar (retro style).
 
 See `gmm-tool-bar-from-list' for details on the format of the list."
@@ -6796,6 +6802,8 @@ See `gmm-tool-bar-from-list' for the format of the list."
   :set 'message-tool-bar-update
   :group 'message)
 
+(defvar image-load-path)
+
 (defun message-make-tool-bar (&optional force)
   "Make a message mode tool bar from `message-tool-bar-list'.
 When FORCE, rebuild the tool bar."
@@ -6804,11 +6812,16 @@ When FORCE, rebuild the tool bar."
             tool-bar-mode
             (or (not message-tool-bar-map) force))
     (setq message-tool-bar-map
-         (when (default-value 'tool-bar-mode)
-           (let ((load-path (mm-image-load-path)))
-             (gmm-tool-bar-from-list message-tool-bar
-                                         message-tool-bar-zap-list
-                                         'message-mode-map)))))
+         (let* ((load-path
+                 (gmm-image-load-path-for-library "message"
+                                                  "mail/save-draft.xpm"
+                                                  nil t))
+                (image-load-path (cons (car load-path)
+                                       (when (boundp 'image-load-path)
+                                         image-load-path))))
+           (gmm-tool-bar-from-list message-tool-bar
+                                   message-tool-bar-zap-list
+                                   'message-mode-map))))
   message-tool-bar-map)
 
 ;;; Group name completion.