Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
8b845e3b
Commit
8b845e3b
authored
Jan 13, 2011
by
Christian Ohler
Browse files
Merged from trunk.
parents
ea062854
a03b542a
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
230 additions
and
198 deletions
+230
-198
etc/NEWS
etc/NEWS
+5
-0
etc/themes/tsdh-dark-theme.el
etc/themes/tsdh-dark-theme.el
+3
-3
lisp/ChangeLog
lisp/ChangeLog
+29
-0
lisp/cus-theme.el
lisp/cus-theme.el
+1
-1
lisp/emacs-lisp/package.el
lisp/emacs-lisp/package.el
+9
-9
lisp/font-lock.el
lisp/font-lock.el
+3
-2
lisp/gnus/ChangeLog
lisp/gnus/ChangeLog
+13
-0
lisp/gnus/gnus-msg.el
lisp/gnus/gnus-msg.el
+2
-2
lisp/gnus/message.el
lisp/gnus/message.el
+21
-21
lisp/mail/rmail.el
lisp/mail/rmail.el
+52
-20
lisp/mail/sendmail.el
lisp/mail/sendmail.el
+53
-81
lisp/menu-bar.el
lisp/menu-bar.el
+10
-10
lisp/mh-e/ChangeLog
lisp/mh-e/ChangeLog
+4
-0
lisp/mh-e/mh-comp.el
lisp/mh-e/mh-comp.el
+4
-3
lisp/simple.el
lisp/simple.el
+21
-46
No files found.
etc/NEWS
View file @
8b845e3b
...
...
@@ -625,6 +625,11 @@ Notifications API. It requires D-Bus for communication.
* Incompatible Lisp Changes in Emacs 24.1
** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
passes it to the mail user agent function. This argument specifies an
action for returning to the caller after finishing with the mail.
This is currently used by Rmail to delete a mail window.
** For mouse click input events in the text area, the Y pixel
coordinate in the POSITION list now counts from the top of the text
area, excluding any header line. Previously, it counted from the top
...
...
etc/themes/tsdh-dark-theme.el
View file @
8b845e3b
...
...
@@ -25,12 +25,12 @@
(
custom-theme-set-faces
'tsdh-dark
'
(
default
((
t
(
:background
"gray20"
:foreground
"white smoke"
))))
'
(
diff-added
((
t
(
:inherit
diff-changed
:background
"
light
green"
))))
'
(
diff-changed
((
t
(
:background
"
light steel
blue"
))))
'
(
diff-added
((
t
(
:inherit
diff-changed
:background
"
dark
green"
))))
'
(
diff-changed
((
t
(
:background
"
midnight
blue"
))))
'
(
diff-indicator-added
((
t
(
:inherit
diff-indicator-changed
))))
'
(
diff-indicator-changed
((
t
(
:weight
bold
))))
'
(
diff-indicator-removed
((
t
(
:inherit
diff-indicator-changed
))))
'
(
diff-removed
((
t
(
:inherit
diff-changed
:background
"
sandy brown
"
))))
'
(
diff-removed
((
t
(
:inherit
diff-changed
:background
"
dark red
"
))))
'
(
dired-directory
((
t
(
:inherit
font-lock-function-name-face
:weight
bold
))))
'
(
hl-line
((
t
(
:background
"grey28"
))))
'
(
message-header-subject
((
t
(
:foreground
"SkyBlue"
))))
...
...
lisp/ChangeLog
View file @
8b845e3b
...
...
@@ -2,6 +2,35 @@
* emacs-lisp/ert.el, emacs-lisp/ert-x.el: New files.
2011-01-13 Chong Yidong <cyd@stupidchicken.com>
* font-lock.el (font-lock-verbose): Default to nil.
2011-01-13 Chong Yidong <cyd@stupidchicken.com>
* simple.el (sendmail-user-agent-compose): Move to sendmail.el.
(compose-mail): New arg RETURN-ACTION.
(compose-mail-other-window, compose-mail-other-frame): Likewise.
* mail/sendmail.el (mail-return-action): New var.
(mail-mode): Make it buffer-local.
(mail-bury): Obey it. Move special Rmail window handling to
rmail-mail-return.
(mail, mail-setup): New arg RETURN-ACTION.
(sendmail-user-agent-compose): Move from simple.el.
* mail/rmail.el (rmail-mail-return): New function.
(rmail-start-mail): Pass it to compose-mail.
2011-01-12 Chong Yidong <cyd@stupidchicken.com>
* menu-bar.el (menu-bar-custom-menu): Tweak Mule and Customize
menus. Add menu item for customize-themes.
* cus-theme.el (customize-themes):
* emacs-lisp/package.el (package--list-packages): Use
switch-to-buffer.
2011-01-11 Johan Bockgård <bojohan@gnu.org>
* emacs-lisp/unsafep.el (unsafep): Handle backquoted forms.
...
...
lisp/cus-theme.el
View file @
8b845e3b
...
...
@@ -541,7 +541,7 @@ Do not call this mode function yourself. It is meant for internal use."
When called from Lisp, BUFFER should be the buffer to use; if
omitted, a buffer named *Custom Themes* is used."
(
interactive
)
(
pop
-to-buffer
(
get-buffer-create
(
or
buffer
"*Custom Themes*"
)))
(
switch
-to-buffer
(
get-buffer-create
(
or
buffer
"*Custom Themes*"
)))
(
let
((
inhibit-read-only
t
))
(
erase-buffer
))
(
custom-theme-choose-mode
)
...
...
lisp/emacs-lisp/package.el
View file @
8b845e3b
...
...
@@ -1663,15 +1663,15 @@ A value of nil means to display all packages.")
Optional PACKAGES is a list of names of packages (symbols) to
list; the default is to display everything in `package-alist'."
(
require
'finder-inf
nil
t
)
(
with-current-buffer
(
get-buffer-create
"*Packages*"
)
(
package-menu-mode
)
(
set
(
make-local-variable
'package-menu-package-list
)
packages
)
(
set
(
make-local-variable
'package-menu-
sort-key
)
nil
)
(
package--generate-package-list
)
;; It's okay to use pop-to-buffer here. The package menu buffer
;; has keybindings
, and
the user
just typed `M-x list-packages',
;;
suggesting that they might want to use them
.
(
pop
-to-buffer
(
current-buffer
)
)))
(
let
((
buf
(
get-buffer-create
"*Packages*"
)
))
(
with-current-buffer
buf
(
package-menu-mode
)
(
set
(
make-local-variable
'package-menu-
package-list
)
packages
)
(
set
(
make-local-variable
'package-menu-sort-key
)
nil
)
(
package--generate-package-list
))
;;
The package menu buffer
has keybindings
. If
the user
types
;;
`M-x list-packages', that suggests it should become current
.
(
switch
-to-buffer
buf
)))
;;;###autoload
(
defun
list-packages
()
...
...
lisp/font-lock.el
View file @
8b845e3b
...
...
@@ -276,13 +276,14 @@ decoration for buffers in C++ mode, and level 1 decoration otherwise."
(
integer
:tag
"level"
1
)))))
:group
'font-lock
)
(
defcustom
font-lock-verbose
0
(
defcustom
font-lock-verbose
nil
"If non-nil, means show status messages for buffer fontification.
If a number, only buffers greater than this size have fontification messages."
:type
'
(
choice
(
const
:tag
"never"
nil
)
(
other
:tag
"always"
t
)
(
integer
:tag
"size"
))
:group
'font-lock
)
:group
'font-lock
:version
"24.1"
)
;; Originally these variable values were face names such as `bold' etc.
...
...
lisp/gnus/ChangeLog
View file @
8b845e3b
2011-01-13 Chong Yidong <cyd@stupidchicken.com>
* message.el (message-tool-bar-gnome): Tweak tool-bar items. Add
:vert-only tags.
(message-mail): New arg RETURN-ACTION.
(message-return-action): New var.
(message-bury): Use it.
(message-mode): Make it buffer-local.
(message-send-and-exit): Always call message-bury.
* gnus-msg.el (gnus-msg-mail): New arg RETURN-ACTION. Pass it to
message-mail.
2011-01-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnimap.el (nnimap-convert-partial-article): Protect against
...
...
lisp/gnus/gnus-msg.el
View file @
8b845e3b
...
...
@@ -477,7 +477,7 @@ Thank you for your help in stamping out bugs.
;;;###autoload
(defun gnus-msg-mail (&optional to subject other-headers continue
switch-action yank-action send-actions)
switch-action yank-action send-actions
return-action
)
"
Start
editing
a
mail
message
to
be
sent.
Like
`
message-mail
',
but
with
Gnus
paraphernalia,
particularly
the
Gcc:
header
for
archiving
purposes.
"
...
...
@@ -486,7 +486,7 @@ Gcc: header for archiving purposes."
mail-buf)
(gnus-setup-message 'message
(message-mail to subject other-headers continue
nil yank-action send-actions))
nil yank-action send-actions
return-action
))
(when switch-action
(setq mail-buf (current-buffer))
(switch-to-buffer buf)
...
...
lisp/gnus/message.el
View file @
8b845e3b
...
...
@@ -1120,6 +1120,8 @@ It is a vector of the following headers:
(
defvar
message-checksum
nil
)
(
defvar
message-send-actions
nil
"A list of actions to be performed upon successful sending of a message."
)
(
defvar
message-return-action
nil
"Action to return to the caller after sending or postphoning a message."
)
(
defvar
message-exit-actions
nil
"A list of actions to be performed upon exiting after sending a message."
)
(
defvar
message-kill-actions
nil
...
...
@@ -2863,6 +2865,7 @@ M-RET `message-newline-and-reformat' (break the line and reformat)."
(set (make-local-variable 'message-reply-buffer) nil)
(set (make-local-variable 'message-inserted-headers) nil)
(set (make-local-variable 'message-send-actions) nil)
(set (make-local-variable 'message-return-action) nil)
(set (make-local-variable 'message-exit-actions) nil)
(set (make-local-variable 'message-kill-actions) nil)
(set (make-local-variable 'message-postpone-actions) nil)
...
...
@@ -3955,11 +3958,9 @@ The text will also be indented the normal way."
(actions message-exit-actions))
(when (and (message-send arg)
(buffer-name buf))
(message-bury buf)
(if message-kill-buffer-on-exit
(kill-buffer buf)
(bury-buffer buf)
(when (eq buf (current-buffer))
(message-bury buf)))
(kill-buffer buf))
(message-do-actions actions)
t)))
...
...
@@ -4009,9 +4010,8 @@ Instead, just auto-save the buffer and then bury it."
"Bury this mail BUFFER."
(let ((newbuf (other-buffer buffer)))
(bury-buffer buffer)
(if (and (window-dedicated-p (selected-window))
(not (null (delq (selected-frame) (visible-frame-list)))))
(delete-frame (selected-frame))
(if message-return-action
(apply (car message-return-action) (cdr message-return-action))
(switch-to-buffer newbuf))))
(defun message-send (&optional arg)
...
...
@@ -6304,11 +6304,11 @@ between beginning of field and beginning of line."
;; YANK-ACTION, if non-nil, can be a buffer or a yank action of the
;; form (FUNCTION . ARGS).
(
defun
message-setup
(
headers
&optional
yank-action
actions
continue
switch-function
)
continue
switch-function
return-action
)
(
let
((
mua
(
message-mail-user-agent
))
subject
to
field
)
(
if
(
not
(
and
message-this-is-mail
mua
))
(
message-setup-1
headers
yank-action
actions
)
(
message-setup-1
headers
yank-action
actions
return-action
)
(
setq
headers
(
copy-sequence
headers
))
(
setq
field
(
assq
'Subject
headers
))
(
when
field
...
...
@@ -6356,11 +6356,12 @@ are not included."
(
push
header
result
)))
(
nreverse
result
)))
(
defun
message-setup-1
(
headers
&optional
yank-action
actions
)
(
defun
message-setup-1
(
headers
&optional
yank-action
actions
return-action
)
(
dolist
(
action
actions
)
(
condition-case
nil
(
add-to-list
'message-send-actions
`
(
apply
',
(
car
action
)
',
(
cdr
action
)))))
(
setq
message-return-action
return-action
)
(
setq
message-reply-buffer
(
if
(
and
(
consp
yank-action
)
(
eq
(
car
yank-action
)
'insert-buffer
))
...
...
@@ -6489,9 +6490,9 @@ are not included."
;;;
;;;###autoload
(
defun
message-mail
(
&optional
to
subject
other-headers
continue
switch-fun
ction
yank
-action
send-actions
)
(
defun
message-mail
(
&optional
to
subject
other-headers
continue
switch-function
yank-action
send-a
ction
s
return
-action
&rest
ignored
)
"Start editing a mail message to be sent.
OTHER-HEADERS is an alist of header/value pairs. CONTINUE says whether
to continue editing a message already being composed. SWITCH-FUNCTION
...
...
@@ -6512,7 +6513,8 @@ is a function used to switch to and display the mail buffer."
(
nconc
`
((
To
.
,
(
or
to
""
))
(
Subject
.
,
(
or
subject
""
)))
(
when
other-headers
other-headers
))
yank-action
send-actions
continue
switch-function
)
yank-action
send-actions
continue
switch-function
return-action
)
;; FIXME: Should return nil if failure.
t
))
...
...
@@ -7642,24 +7644,22 @@ Pre-defined symbols include `message-tool-bar-gnome' and
(defcustom message-tool-bar-gnome
'((ispell-message "
spell
" nil
:vert-only t
:visible (or (not (boundp 'flyspell-mode))
(not flyspell-mode)))
(flyspell-buffer "
spell
" t
:vert-only t
:visible (and (boundp 'flyspell-mode)
flyspell-mode)
:help "
Flyspell
whole
buffer
")
(gmm-ignore "
separator
")
(message-send-and-exit "
mail/send
")
(message-send-and-exit "
mail/send
" t :label "
Send
")
(message-dont-send "
mail/save-draft
")
(message-kill-buffer "
close
") ;; stock_cancel
(mml-attach-file "
attach
" mml-mode-map)
(mml-attach-file "
attach
" mml-mode-map :vert-only t)
(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
"))
(message-insert-disposition-notification-to "
receipt
" nil :visible nil))
"
List
of
items
for
the
message
tool
bar
(
GNOME
style
)
.
See
`
gmm-tool-bar-from-list
'
for
details
on
the
format
of
the
list.
"
...
...
lisp/mail/rmail.el
View file @
8b845e3b
...
...
@@ -3441,30 +3441,62 @@ does not pop any summary buffer."
;;;; *** Rmail Mailing Commands ***
(
defun
rmail-start-mail
(
&optional
noerase
to
subject
in-reply-to
cc
replybuffer
sendactions
same-window
others
)
(
let
(
yank-action
)
replybuffer
sendactions
same-window
other-headers
)
(
let
((
switch-function
(
cond
(
same-window
nil
)
(
rmail-mail-new-frame
'switch-to-buffer-other-frame
)
(
t
'switch-to-buffer-other-window
)))
yank-action
)
(
if
replybuffer
;; The function used here must behave like insert-buffer wrt
;; point and mark (see doc of sc-cite-original).
(
setq
yank-action
(
list
'insert-buffer
replybuffer
)))
(
setq
others
(
cons
(
cons
"cc"
cc
)
others
))
(
setq
others
(
cons
(
cons
"in-reply-to"
in-reply-to
)
others
))
(
if
same-window
(
compose-mail
to
subject
others
noerase
nil
yank-action
sendactions
)
(
if
rmail-mail-new-frame
(
prog1
(
compose-mail
to
subject
others
noerase
'switch-to-buffer-other-frame
yank-action
sendactions
)
;; This is not a standard frame parameter;
;; nothing except sendmail.el looks at it.
(
modify-frame-parameters
(
selected-frame
)
'
((
mail-dedicated-frame
.
t
))))
(
compose-mail
to
subject
others
noerase
'switch-to-buffer-other-window
yank-action
sendactions
)))))
(
push
(
cons
"cc"
cc
)
other-headers
)
(
push
(
cons
"in-reply-to"
in-reply-to
)
other-headers
)
(
prog1
(
compose-mail
to
subject
other-headers
noerase
switch-function
yank-action
sendactions
'
(
rmail-mail-return
))
(
if
(
eq
switch-function
'switch-to-buffer-other-frame
)
;; This is not a standard frame parameter; nothing except
;; sendmail.el looks at it.
(
modify-frame-parameters
(
selected-frame
)
'
((
mail-dedicated-frame
.
t
)))))))
(
defun
rmail-mail-return
()
(
cond
;; If there is only one visible frame with no special handling,
;; consider deleting the mail window to return to Rmail.
((
or
(
null
(
delq
(
selected-frame
)
(
visible-frame-list
)))
(
not
(
or
(
window-dedicated-p
(
frame-selected-window
))
(
and
pop-up-frames
(
one-window-p
))
(
cdr
(
assq
'mail-dedicated-frame
(
frame-parameters
))))))
(
let
(
rmail-flag
summary-buffer
)
(
and
(
not
(
one-window-p
))
(
with-current-buffer
(
window-buffer
(
next-window
(
selected-window
)
'not
))
(
setq
rmail-flag
(
eq
major-mode
'rmail-mode
))
(
setq
summary-buffer
(
and
(
boundp
'mail-bury-selects-summary
)
mail-bury-selects-summary
(
boundp
'rmail-summary-buffer
)
rmail-summary-buffer
(
buffer-name
rmail-summary-buffer
)
(
not
(
get-buffer-window
rmail-summary-buffer
))
rmail-summary-buffer
))))
(
if
rmail-flag
;; If the Rmail buffer has a summary, show that.
(
if
summary-buffer
(
switch-to-buffer
summary-buffer
)
(
delete-window
)))))
;; If the frame was probably made for this buffer, the user
;; probably wants to delete it now.
((
display-multi-frame-p
)
(
delete-frame
(
selected-frame
)))
;; The previous frame is where normally they have the Rmail buffer
;; displayed.
(
t
(
other-frame
-1
))))
(
defun
rmail-mail
()
"Send mail in another window.
...
...
lisp/mail/sendmail.el
View file @
8b845e3b
...
...
@@ -419,8 +419,7 @@ in `message-auto-save-directory'."
(
defvar
mail-reply-action
nil
)
(
defvar
mail-send-actions
nil
"A list of actions to be performed upon successful sending of a message."
)
(
put
'mail-reply-action
'permanent-local
t
)
(
put
'mail-send-actions
'permanent-local
t
)
(
defvar
mail-return-action
nil
)
;;;###autoload
(
defcustom
mail-default-headers
nil
...
...
@@ -521,7 +520,46 @@ by Emacs.)")
(
setq
mail-alias-modtime
modtime
mail-aliases
t
)))))
(
defun
mail-setup
(
to
subject
in-reply-to
cc
replybuffer
actions
)
;;;###autoload
(
define-mail-user-agent
'sendmail-user-agent
'sendmail-user-agent-compose
'mail-send-and-exit
)
;;;###autoload
(
defun
sendmail-user-agent-compose
(
&optional
to
subject
other-headers
continue
switch-function
yank-action
send-actions
return-action
&rest
ignored
)
(
if
switch-function
(
let
((
special-display-buffer-names
nil
)
(
special-display-regexps
nil
)
(
same-window-buffer-names
nil
)
(
same-window-regexps
nil
))
(
funcall
switch-function
"*mail*"
)))
(
let
((
cc
(
cdr
(
assoc-string
"cc"
other-headers
t
)))
(
in-reply-to
(
cdr
(
assoc-string
"in-reply-to"
other-headers
t
)))
(
body
(
cdr
(
assoc-string
"body"
other-headers
t
))))
(
or
(
mail
continue
to
subject
in-reply-to
cc
yank-action
send-actions
return-action
)
continue
(
error
"Message aborted"
))
(
save-excursion
(
rfc822-goto-eoh
)
(
while
other-headers
(
unless
(
member-ignore-case
(
car
(
car
other-headers
))
'
(
"in-reply-to"
"cc"
"body"
))
(
insert
(
car
(
car
other-headers
))
": "
(
cdr
(
car
other-headers
))
(
if
use-hard-newlines
hard-newline
"\n"
)))
(
setq
other-headers
(
cdr
other-headers
)))
(
when
body
(
forward-line
1
)
(
insert
body
))
t
)))
(
defun
mail-setup
(
to
subject
in-reply-to
cc
replybuffer
actions
return-action
)
(
or
mail-default-reply-to
(
setq
mail-default-reply-to
(
getenv
"REPLYTO"
)))
(
sendmail-sync-aliases
)
...
...
@@ -537,8 +575,12 @@ by Emacs.)")
(
set-buffer-multibyte
(
default-value
'enable-multibyte-characters
))
(
if
current-input-method
(
inactivate-input-method
))
;; Local variables for Mail mode.
(
setq
mail-send-actions
actions
)
(
setq
mail-reply-action
replybuffer
)
(
setq
mail-return-action
return-action
)
(
goto-char
(
point-min
))
(
if
mail-setup-with-from
(
mail-insert-from-field
))
...
...
@@ -629,6 +671,7 @@ Turning on Mail mode runs the normal hooks `text-mode-hook' and
`mail-mode-hook' (in that order)."
(
make-local-variable
'mail-reply-action
)
(
make-local-variable
'mail-send-actions
)
(
make-local-variable
'mail-return-action
)
(
setq
buffer-offer-save
t
)
(
make-local-variable
'font-lock-defaults
)
(
setq
font-lock-defaults
'
(
mail-font-lock-keywords
t
t
))
...
...
@@ -762,39 +805,9 @@ Prefix arg means don't delete this window."
"Bury this mail buffer."
(
let
((
newbuf
(
other-buffer
(
current-buffer
))))
(
bury-buffer
(
current-buffer
))
(
if
(
and
(
or
nil
;; In this case, we need to go to a different frame.
(
window-dedicated-p
(
frame-selected-window
))
;; In this mode of operation, the frame was probably
;; made for this buffer, so the user probably wants
;; to delete it now.
(
and
pop-up-frames
(
one-window-p
))
(
cdr
(
assq
'mail-dedicated-frame
(
frame-parameters
))))
(
not
(
null
(
delq
(
selected-frame
)
(
visible-frame-list
)))))
(
progn
(
if
(
display-multi-frame-p
)
(
delete-frame
(
selected-frame
))
;; The previous frame is where normally they have the
;; Rmail buffer displayed.
(
other-frame
-1
)))
(
let
(
rmail-flag
summary-buffer
)
(
and
(
not
arg
)
(
not
(
one-window-p
))
(
with-current-buffer
(
window-buffer
(
next-window
(
selected-window
)
'not
))
(
setq
rmail-flag
(
eq
major-mode
'rmail-mode
))
(
setq
summary-buffer
(
and
mail-bury-selects-summary
(
boundp
'rmail-summary-buffer
)
rmail-summary-buffer
(
buffer-name
rmail-summary-buffer
)
(
not
(
get-buffer-window
rmail-summary-buffer
))
rmail-summary-buffer
))))
(
if
rmail-flag
;; If the Rmail buffer has a summary, show that.
(
if
summary-buffer
(
switch-to-buffer
summary-buffer
)
(
delete-window
))
(
switch-to-buffer
newbuf
))))))
(
if
(
and
(
null
arg
)
mail-return-action
)
(
apply
(
car
mail-return-action
)
(
cdr
mail-return-action
))
(
switch-to-buffer
newbuf
))))
(
defcustom
mail-send-hook
nil
"Hook run just before sending a message."
...
...
@@ -1643,7 +1656,8 @@ If the current line has `mail-yank-prefix', insert it on the new line."
;;;###autoload (add-hook 'same-window-buffer-names (purecopy "*unsent mail*"))
;;;###autoload
(
defun
mail
(
&optional
noerase
to
subject
in-reply-to
cc
replybuffer
actions
)
(
defun
mail
(
&optional
noerase
to
subject
in-reply-to
cc
replybuffer
actions
return-action
)
"Edit a message to be sent. Prefix arg means resume editing (don't erase).
When this function returns, the buffer `*mail*' is selected.
The value is t if the message was newly initialized; otherwise, nil.
...
...
@@ -1691,49 +1705,6 @@ The seventh argument ACTIONS is a list of actions to take
when the message is sent, we apply FUNCTION to ARGS.
This is how Rmail arranges to mark messages `answered'."
(
interactive
"P"
)
;; This is commented out because I found it was confusing in practice.
;; It is easy enough to rename *mail* by hand with rename-buffer
;; if you want to have multiple mail buffers.
;; And then you can control which messages to save. --rms.
;; (let ((index 1)
;; buffer)
;; ;; If requested, look for a mail buffer that is modified and go to it.
;; (if noerase
;; (progn
;; (while (and (setq buffer
;; (get-buffer (if (= 1 index) "*mail*"
;; (format "*mail*<%d>" index))))
;; (not (buffer-modified-p buffer)))
;; (setq index (1+ index)))
;; (if buffer (switch-to-buffer buffer)
;; ;; If none exists, start a new message.
;; ;; This will never re-use an existing unmodified mail buffer
;; ;; (since index is not 1 anymore). Perhaps it should.
;; (setq noerase nil))))
;; ;; Unless we found a modified message and are happy, start a new message.
;; (if (not noerase)
;; (progn
;; ;; Look for existing unmodified mail buffer.
;; (while (and (setq buffer
;; (get-buffer (if (= 1 index) "*mail*"
;; (format "*mail*<%d>" index))))
;; (buffer-modified-p buffer))
;; (setq index (1+ index)))
;; ;; If none, make a new one.
;; (or buffer
;; (setq buffer (generate-new-buffer "*mail*")))
;; ;; Go there and initialize it.
;; (switch-to-buffer buffer)
;; (erase-buffer)
;; (setq default-directory (expand-file-name "~/"))
;; (auto-save-mode auto-save-default)
;; (mail-mode)
;; (mail-setup to subject in-reply-to cc replybuffer actions)
;; (if (and buffer-auto-save-file-name
;; (file-exists-p buffer-auto-save-file-name))
;; (message "Auto save file for draft message exists; consider M-x mail-recover"))
;; t))
(
if
(
eq
noerase
'new
)
(
pop-to-buffer
(
generate-new-buffer
"*mail*"
))
(
and
noerase
...
...
@@ -1772,7 +1743,8 @@ The seventh argument ACTIONS is a list of actions to take
t
))
(
let
((
inhibit-read-only
t
))
(
erase-buffer
)
(
mail-setup
to
subject
in-reply-to
cc
replybuffer
actions
)
(
mail-setup
to
subject
in-reply-to
cc
replybuffer
actions
return-action
)
(
setq
initialized
t
)))
(
if
(
and
buffer-auto-save-file-name
(
file-exists-p
buffer-auto-save-file-name
))
...
...
lisp/menu-bar.el
View file @
8b845e3b
...
...
@@ -584,18 +584,15 @@ Do the same for the keys of the same name."
(
defvar
menu-bar-custom-menu
(
make-sparse-keymap
"Customize"
))
(
define-key
menu-bar-custom-menu
[customize-apropos-groups]
`
(
menu-item
,
(
purecopy
"Groups Matching Regexp..."
)
customize-apropos-groups
:help
,
(
purecopy
"Browse groups whose names match regexp"
)))
(
define-key
menu-bar-custom-menu
[customize-apropos-faces]
`
(
menu-item
,
(
purecopy
"Faces Matching
Regexp
..."
)
customize-apropos-faces
:help
,
(
purecopy
"Browse faces
whose names match regexp
"
)))
`
(
menu-item
,
(
purecopy
"Faces Matching..."
)
customize-apropos-faces
:help
,
(
purecopy
"Browse faces
matching a regexp or word list
"
)))
(
define-key
menu-bar-custom-menu
[customize-apropos-options]
`
(
menu-item
,
(
purecopy
"Options Matching
Regexp
..."
)
customize-apropos-options
:help
,
(
purecopy
"Browse options
whose names match regexp
"
)))
`
(
menu-item
,
(
purecopy
"Options Matching..."
)
customize-apropos-options
:help
,
(
purecopy
"Browse options
matching a regexp or word list
"
)))
(
define-key
menu-bar-custom-menu
[customize-apropos]
`
(
menu-item
,
(
purecopy
"Settings Matching
Regexp
..."
)
customize-apropos
:help
,
(
purecopy
"Browse customizable settings
whose names match regexp
"
)))
`
(
menu-item
,
(
purecopy
"
All
Settings Matching..."
)
customize-apropos
:help
,
(
purecopy
"Browse customizable settings
matching a regexp or word list
"
)))
(
define-key
menu-bar-custom-menu
[separator-1]
menu-bar-separator
)
(
define-key
menu-bar-custom-menu
[customize-group]
...
...
@@ -623,6 +620,9 @@ Do the same for the keys of the same name."
(
define-key
menu-bar-custom-menu
[customize]
`
(
menu-item
,
(
purecopy
"Top-level Customization Group"
)
customize
:help
,
(
purecopy
"The master group called `Emacs'"
)))
(
define-key
menu-bar-custom-menu
[customize-themes]
`
(
menu-item
,
(
purecopy
"Custom Themes"
)
customize-themes
:help
,
(
purecopy
"Choose a pre-defined customization theme"
)))
;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences"))
...
...
@@ -1144,7 +1144,7 @@ mail status in mode line"))
;; It is better not to use backquote here,
;; because that makes a bootstrapping problem
;; if you need to recompile all the Lisp files using interpreted code.
`(menu-item ,(purecopy "
Mule
(
Multilingual
Environment
)
") ,mule-menu-keymap
`(menu-item ,(purecopy "
Multilingual
Environment
") ,mule-menu-keymap
;; Most of the MULE menu actually does make sense in unibyte mode,
;; e.g. language selection.
;;; :visible '(default-value 'enable-multibyte-characters)
...
...
lisp/mh-e/ChangeLog
View file @
8b845e3b
2011
-
01
-
13
Chong
Yidong
<
cyd
@
stupidchicken
.
com
>
*
mh
-
comp
.
el
(
mh
-
user
-
agent
-
compose
):
New
arg
RETURN
-
ACTION
.
2010
-
11
-
07
Glenn
Morris
<
rgm
@
gnu
.
org
>
*
mh
-
seq
.
el
(
mh
-
read
-
msg
-
list
):
Use
point
-
at
-
eol
.
...
...
lisp/mh-e/mh-comp.el
View file @
8b845e3b
...
...
@@ -199,7 +199,8 @@ applications should use `mh-user-agent-compose'."
;;;###autoload
(
defun
mh-user-agent-compose
(
&optional
to
subject
other-headers
continue
switch-function
yank-action
send-actions
)
send-actions
return-action
&rest
ignored
)
"Set up mail composition draft with the MH mail system.
This is the `mail-user-agent' entry point to MH-E. This function
conforms to the contract specified by `define-mail-user-agent'
...
...
@@ -213,8 +214,8 @@ OTHER-HEADERS is an alist specifying additional header fields.
Elements look like (HEADER . VALUE) where both HEADER and VALUE
are strings.
CONTINUE, SWITCH-FUNCTION, YANK-ACTION
and
SEND-ACTIONS a
re
ignored."
CONTINUE, SWITCH-FUNCTION, YANK-ACTION
,
SEND-ACTIONS
,
a
nd
RETURN-ACTION are
ignored."