(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.
(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")
"----"
["Sort Headers" message-sort-headers t]
["Encode non-ASCII domain names" message-idna-to-ascii-rhs t]
+ ;; We hide `message-hidden-headers' by narrowing the buffer.
+ ["Show Hidden Headers" widen t]
["Goto Body" message-goto-body t]
["Goto Signature" message-goto-signature t]))
(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
(* 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) ?_))
(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.
;; 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)))
;; Support for toolbar
(eval-when-compile
- (defvar tool-bar-map)
(defvar tool-bar-mode))
-;; Note: The :set function in the `message-tool-bar*' will only affect _new_
-;; message buffers. We might add a function that walks thru all message-mode
-;; buffers and force the update.
+;; Note: The :set function in the `message-tool-bar*' variables will only
+;; affect _new_ message buffers. We might add a function that walks thru all
+;; message-mode buffers and force the update.
(defun message-tool-bar-update (&optional symbol value)
"Update message mode toolbar.
Setter function for custom variables."
- (if symbol
- ;; When used as ":set" function:
- (progn
- (set-default symbol value)
- (setq-default message-tool-bar-map nil))
- (message-make-tool-bar t)))
-
-;; The default will be changed to `message-tool-bar-gnome' when the new icons
-;; have been checked in:
-(defcustom message-tool-bar 'message-tool-bar-retro
+ (setq-default message-tool-bar-map nil)
+ (when symbol
+ ;; When used as ":set" function:
+ (set-default symbol value)))
+
+(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
: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
- '((ignore "separator" nil :help "") ;; How to get no tooltip?
- (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).
: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."
: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."
- (when (or (not message-tool-bar-map) force)
+ (when (and (not (featurep 'xemacs))
+ (boundp 'tool-bar-mode)
+ 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.