summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-08-22 16:02:16 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-08-22 16:02:16 -0400
commitb0126eac41487b9bca5af5cbb2212ff5b2c58b80 (patch)
tree680ba932d259776ebfdb6d424fa8f668e1001f7c
parentb613941ba003bbf5024415ac4f8c2a0e12434751 (diff)
parentbc7d7ea63ba9d98b3ecc3b6decf4392a651dcbfb (diff)
downloademacs-b0126eac41487b9bca5af5cbb2212ff5b2c58b80.tar.gz
Merge changes from emacs-23 branch.
-rw-r--r--doc/emacs/ChangeLog4
-rw-r--r--doc/emacs/misc.texi9
-rw-r--r--doc/lispref/ChangeLog8
-rw-r--r--doc/lispref/modes.texi12
-rw-r--r--doc/lispref/objects.texi4
-rw-r--r--leim/ChangeLog23
-rw-r--r--leim/quail/arabic.el4
-rw-r--r--leim/quail/georgian.el10
-rw-r--r--leim/quail/greek.el11
-rw-r--r--leim/quail/latin-ltx.el4
-rw-r--r--leim/quail/vntelex.el2
-rw-r--r--lisp/ChangeLog73
-rw-r--r--lisp/align.el6
-rw-r--r--lisp/calendar/diary-lib.el4
-rw-r--r--lisp/emacs-lisp/easy-mmode.el30
-rw-r--r--lisp/files.el1
-rw-r--r--lisp/ido.el65
-rw-r--r--lisp/iswitchb.el10
-rw-r--r--lisp/mail/rmail.el13
-rw-r--r--lisp/menu-bar.el3
-rw-r--r--lisp/progmodes/flymake.el3
-rw-r--r--lisp/progmodes/make-mode.el8
-rw-r--r--lisp/simple.el3
-rw-r--r--lisp/subr.el9
-rw-r--r--lisp/woman.el5
-rw-r--r--src/ChangeLog25
-rw-r--r--src/doc.c28
-rw-r--r--src/eval.c27
-rw-r--r--src/s/hpux10-20.h7
29 files changed, 295 insertions, 116 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 8285a313191..55ec7b75cce 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-21 Glenn Morris <rgm@gnu.org>
+
+ * misc.texi (Amusements): Mention bubbles and animate.
+
2010-07-31 Eli Zaretskii <eliz@gnu.org>
* files.texi (Visiting): Add more index entries for
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 387e1be715a..029cf410664 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -2784,6 +2784,10 @@ bored, try an argument of 9. Sit back and watch.
If you want a little more personal involvement, try @kbd{M-x gomoku},
which plays the game Go Moku with you.
+@findex bubbles
+ @kbd{M-x bubbles} is a game in which the object is to remove as many
+bubbles as you can in the smallest number of moves.
+
@findex blackbox
@findex mpuz
@findex 5x5
@@ -2832,6 +2836,11 @@ bats.
@kbd{M-x solitaire} plays a game of solitaire in which you jump pegs
across other pegs.
+@findex animate-birthday-present
+@cindex animate
+The @code{animate} package makes text dance. For an example, try
+@kbd{M-x animate-birthday-present}.
+
@findex studlify-region
@cindex StudlyCaps
@kbd{M-x studlify-region} studlify-cases the region, producing
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 459bd925cf4..9c09410c849 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * modes.texi (Defining Minor Modes): Doc fix (Bug#6880).
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * objects.texi (Bool-Vector Type): Minor definition tweak (Bug#6878).
+
2010-08-20 Eli Zaretskii <eliz@gnu.org>
* commands.texi (Misc Events): Add cross-references to where
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 3953da59b93..12f16b67663 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1411,14 +1411,20 @@ The string @var{lighter} says what to display in the mode line
when the mode is enabled; if it is @code{nil}, the mode is not displayed
in the mode line.
-The optional argument @var{keymap} specifies the keymap for the minor mode.
-It can be a variable name, whose value is the keymap, or it can be an alist
-specifying bindings in this form:
+The optional argument @var{keymap} specifies the keymap for the minor
+mode. If non-@code{nil}, it should be a variable name (whose value is
+a keymap), a keymap, or an alist of the form
@example
(@var{key-sequence} . @var{definition})
@end example
+@noindent
+where each @var{key-sequence} and @var{definition} are arguments
+suitable for passing to @code{define-key} (@pxref{Changing Key
+Bindings}). If @var{keymap} is a keymap or an alist, this also
+defines the variable @code{@var{mode}-map}.
+
The above three arguments @var{init-value}, @var{lighter}, and
@var{keymap} can be (partially) omitted when @var{keyword-args} are
used. The @var{keyword-args} consist of keywords followed by
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 5c3ac13cdaf..c8ccb15a2d3 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -1189,8 +1189,8 @@ Syntax tables (@pxref{Syntax Tables}).
@node Bool-Vector Type
@subsection Bool-Vector Type
- A @dfn{bool-vector} is a one-dimensional array of elements that
-must be @code{t} or @code{nil}.
+ A @dfn{bool-vector} is a one-dimensional array whose elements must
+be @code{t} or @code{nil}.
The printed representation of a bool-vector is like a string, except
that it begins with @samp{#&} followed by the length. The string
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 174102b7817..36788bbd5e7 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,26 @@
+2010-08-15 Andreas Schwab <schwab@linux-m68k.org>
+
+ * quail/vntelex.el ("vietnamese-telex"): Doc fix.
+
+ * quail/georgian.el: Remove extra backslashes.
+
+2010-08-14 Andreas Schwab <schwab@linux-m68k.org>
+
+ * quail/arabic.el: Quote [ and ].
+ * quail/latin-ltx.el: Likewise.
+
+ * quail/greek.el ("greek", "greek-postfix"): Change string to
+ character.
+
+2010-08-13 Kenichi Handa <handa@m17n.org>
+
+ * quail/greek.el ("greek-postfix"): Add rules for Greek style
+ quotes.
+
+2010-08-09 Kenichi Handa <handa@m17n.org>
+
+ * quail/greek.el ("greek"): Add rules for Greek style quotes.
+
2010-05-15 Glenn Morris <rgm@gnu.org>
* Makefile.in (install): Remove references to CVS-related files.
diff --git a/leim/quail/arabic.el b/leim/quail/arabic.el
index 4e613cad16e..cb77183bc96 100644
--- a/leim/quail/arabic.el
+++ b/leim/quail/arabic.el
@@ -57,8 +57,8 @@ Based on Arabic table in X Keyboard Configuration DB.
("A" ?ِ)
("S" ?ٍ)
- ("D" ?])
- ("F" ?[)
+ ("D" ?\])
+ ("F" ?\[)
("G" ["لأ"])
("H" ?أ)
("J" ?ـ)
diff --git a/leim/quail/georgian.el b/leim/quail/georgian.el
index 0101a930d37..a063d126667 100644
--- a/leim/quail/georgian.el
+++ b/leim/quail/georgian.el
@@ -51,7 +51,7 @@
("n" ?ნ)
("o" ?ო)
(".p" ?პ)
- ("\+z" ?ჟ)
+ ("+z" ?ჟ)
("r" ?რ)
("s" ?ს)
(".t" ?ტ)
@@ -60,14 +60,14 @@
("k" ?ქ)
(".g" ?ღ)
("q" ?ყ)
- ("\+s" ?შ)
- ("\+c" ?ჩ)
+ ("+s" ?შ)
+ ("+c" ?ჩ)
("c" ?ც)
("j" ?ძ)
(".c" ?წ)
- (".\+c" ?ჭ)
+ (".+c" ?ჭ)
("x" ?ხ)
- ("\+j" ?ჯ)
+ ("+j" ?ჯ)
("h" ?ჰ)
("q1" ?ჴ)
("e0" ?ჱ)
diff --git a/leim/quail/greek.el b/leim/quail/greek.el
index 1085ca229cf..688b247b0b5 100644
--- a/leim/quail/greek.el
+++ b/leim/quail/greek.el
@@ -1279,7 +1279,9 @@ e.g.
(";:i" ?,F@(B)
(":;i" ?,F@(B)
(";:y" ?,F`(B)
- (":;y" ?,F`(B))
+ (":;y" ?,F`(B)
+ (";<" ?$(Q)((B)
+ (";>" ?$(Q)2(B))
(quail-define-package
"greek-postfix" "GreekPost" ",FX(B" nil
@@ -1419,7 +1421,12 @@ e.g.
("i:;" ?,F@(B)
("i;:" ?,F@(B)
("y:;" ?,F`(B)
- ("y;:" ?,F`(B))
+ ("y;:" ?,F`(B)
+ ;; These two are asymmetric with ";<" and ";>" in "greek" input
+ ;; method. But, as the other Latin postfix methods adopt "<<" and
+ ;; ">>", it may be better to follow them.
+ ("<<" ?$(Q)((B)
+ (">>" ?$(Q)2(B))
;; arch-tag: 2a37e042-db1b-4ecf-b755-117775a3c150
diff --git a/leim/quail/latin-ltx.el b/leim/quail/latin-ltx.el
index 5001c4dd0ef..8b58bf39d54 100644
--- a/leim/quail/latin-ltx.el
+++ b/leim/quail/latin-ltx.el
@@ -653,7 +653,7 @@ system, including many technical ones. Examples:
("\\lambda" ?λ)
("\\langle" ?〈)
("\\lbrace" ?{)
- ("\\lbrack" ?[)
+ ("\\lbrack" ?\[)
("\\lceil" ?⌈)
("\\ldots" ?…)
("\\le" ?≤)
@@ -788,7 +788,7 @@ system, including many technical ones. Examples:
("\\quad" ? )
("\\rangle" ?〉)
("\\rbrace" ?})
- ("\\rbrack" ?])
+ ("\\rbrack" ?\])
("\\rceil" ?⌉)
("\\rfloor" ?⌋)
("\\rightarrow" ?→)
diff --git a/leim/quail/vntelex.el b/leim/quail/vntelex.el
index 8af020b093c..4a94a4be59c 100644
--- a/leim/quail/vntelex.el
+++ b/leim/quail/vntelex.el
@@ -53,7 +53,7 @@ Other diacritics:
acute s as -> ,1a(B
grave f af -> ,1`(B
hook above r ar -> ,1d(B
- tilde x ax -> ,1c(B
+ tilde x ax -> ,1c(B
dot below j aj -> ,1U(B
d bar dd -> ,1p(B
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fa5c117be83..12a2ffce5bd 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,74 @@
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
+
+2010-08-22 Leo <sdl.web@gmail.com>
+
+ Fix buffer-list rename&refresh after after killing a buffer in ido.
+ * lisp/ido.el: Revert Óscar's.
+ (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
+ Remember the buffers at head, rather than their name.
+ * lisp/iswitchb.el (iswitchb-kill-buffer): Re-make the list.
+
+2010-08-22 Kirk Kelsey <kirk.kelsey@0x4b.net> (tiny change)
+ Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
+ extra backslash added to each line (bug#6890).
+
+2010-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * subr.el (read-key): Don't echo keystrokes (bug#6883).
+
+2010-08-22 Glenn Morris <rgm@gnu.org>
+
+ * menu-bar.el (menu-bar-games-menu): Add landmark.
+
+2010-08-22 Glenn Morris <rgm@gnu.org>
+
+ * align.el (align-regexp): Make group and spacing arguments
+ use the interactive defaults when non-interactive. (Bug#6698)
+
+ * mail/rmail.el (rmail-forward): Replace mail-text-start with its
+ expansion, so as not to need sendmail.
+ (mail-text-start): Remove declaration.
+ (rmail-retry-failure): Require sendmail.
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
+
+2010-08-22 Michael Albinus <michael.albinus@gmx.de>
+
+ * progmodes/flymake.el (flymake-start-syntax-check-process):
+ Use `start-file-process' in order to let it run also on remote hosts.
+
+2010-08-22 Kenichi Handa <handa@m17n.org>
+
+ * files.el: Add `word-wrap' as safe local variable.
+
+2010-08-22 Glenn Morris <rgm@gnu.org>
+
+ * woman.el (woman-translate): Case matters. (Bug#6849)
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * simple.el (kill-region): Doc fix (Bug#6787).
+
+2010-08-22 Glenn Morris <rgm@gnu.org>
+
+ * calendar/diary-lib.el (diary-header-line-format):
+ Fit it to the window, not the frame.
+
+2010-08-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * subr.el (ignore-errors): Add debug declaration.
+
+2010-08-22 Geoff Gole <geoffgole@gmail.com> (tiny change)
+
+ * whitespace.el (whitespace-color-off): Remove post-command-hook
+ locally.
+
2010-08-21 Stefan Monnier <monnier@iro.umontreal.ca>
* vc/add-log.el (add-log-file-name): Don't get confused by symlinks.
@@ -346,7 +417,7 @@
(ctext-standard-encodings): New variable.
(ctext-non-standard-encodings-table): List only elements for
non-standard encodings.
- (ctext-pre-write-conversion): Adjusted for the above change.
+ (ctext-pre-write-conversion): Adjust for the above change.
Check ctext-standard-encodings.
* international/mule-conf.el (compound-text): Doc fix.
diff --git a/lisp/align.el b/lisp/align.el
index 9d811327021..0812d362875 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -1,7 +1,7 @@
;;; align.el --- align text to a specific column, by regexp
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+;; 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Maintainer: FSF
@@ -944,6 +944,8 @@ region, call `align-regexp' and type in that regular expression."
(list (concat "\\(\\s-*\\)"
(read-string "Align regexp: "))
1 align-default-spacing nil))))
+ (or group (setq group 1))
+ (or spacing (setq spacing align-default-spacing))
(let ((rule
(list (list nil (cons 'regexp regexp)
(cons 'group (abs group))
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 8fb464aa7e6..39354bd31e3 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -383,14 +383,14 @@ The format of the header is specified by `diary-header-line-format'."
"Some text is hidden - press \"s\" in calendar \
before edit/copy"
"Diary"))
- ?\s (frame-width)))
+ ?\s (window-width)))
"Format of the header line displayed by `diary-simple-display'.
Only used if `diary-header-line-flag' is non-nil."
:group 'diary
:type 'sexp
:initialize 'custom-initialize-default
:set 'diary-set-header
- :version "22.1")
+ :version "23.3") ; frame-width -> window-width
;; The first version of this also checked for diary-selective-display
;; in the non-fancy case. This was an attempt to distinguish between
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 5a21946183e..337f1d6c402 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -86,25 +86,23 @@ replacing its case-insensitive matches with the literal string in LIGHTER."
;;;###autoload
(defmacro define-minor-mode (mode doc &optional init-value lighter keymap &rest body)
"Define a new minor mode MODE.
-This function defines the associated control variable MODE, keymap MODE-map,
-and toggle command MODE.
-
+This defines the control variable MODE and the toggle command MODE.
DOC is the documentation for the mode toggle command.
+
Optional INIT-VALUE is the initial value of the mode's variable.
Optional LIGHTER is displayed in the modeline when the mode is on.
-Optional KEYMAP is the default (defvar) keymap bound to the mode keymap.
- If it is a list, it is passed to `easy-mmode-define-keymap'
- in order to build a valid keymap. It's generally better to use
- a separate MODE-map variable than to use this argument.
-The above three arguments can be skipped if keyword arguments are
-used (see below).
-
-BODY contains code to execute each time the mode is activated or deactivated.
- It is executed after toggling the mode,
- and before running the hook variable `MODE-hook'.
- Before the actual body code, you can write keyword arguments (alternating
- keywords and values). These following keyword arguments are supported (other
- keywords will be passed to `defcustom' if the minor mode is global):
+Optional KEYMAP is the default keymap bound to the mode keymap.
+ If non-nil, it should be a variable name (whose value is a keymap),
+ a keymap, or a list of arguments for `easy-mmode-define-keymap'.
+ If KEYMAP is a keymap or list, this also defines the variable MODE-map.
+
+BODY contains code to execute each time the mode is enabled or disabled.
+ It is executed after toggling the mode, and before running MODE-hook.
+ Before the actual body code, you can write keyword arguments, i.e.
+ alternating keywords and values. These following special keywords
+ are supported (other keywords are passed to `defcustom' if the minor
+ mode is global):
+
:group GROUP Custom group name to use in all generated `defcustom' forms.
Defaults to MODE without the possible trailing \"-mode\".
Don't use this default group name unless you have written a
diff --git a/lisp/files.el b/lisp/files.el
index 9a07509ed8b..3d9dd9065c2 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2805,6 +2805,7 @@ asking you for confirmation."
(no-update-autoloads . booleanp)
(tab-width . integerp) ;; C source code
(truncate-lines . booleanp) ;; C source code
+ (word-wrap . booleanp) ;; C source code
(bidi-display-reordering . booleanp))) ;; C source code
(put 'bidi-paragraph-direction 'safe-local-variable
diff --git a/lisp/ido.el b/lisp/ido.el
index d34893d708b..ad6c48c01e9 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1070,11 +1070,11 @@ Only used if `ido-use-virtual-buffers' is non-nil.")
;; Stores the current list of items that will be searched through.
;; The list is ordered, so that the most interesting item comes first,
;; although by default, the files visible in the current frame are put
-;; at the end of the list.
-(defvar ido-cur-list nil)
+;; at the end of the list. Created by `ido-make-item-list'.
+(defvar ido-cur-list)
;; Stores the choice list for ido-completing-read
-(defvar ido-choice-list nil)
+(defvar ido-choice-list)
;; Stores the list of items which are ignored when building
;; `ido-cur-list'. It is in no specific order.
@@ -3400,11 +3400,9 @@ for first matching file."
(if ido-temp-list
(nconc ido-temp-list ido-current-buffers)
(setq ido-temp-list ido-current-buffers))
- (when (and default (buffer-live-p (get-buffer default)))
- (setq ido-temp-list
- (cons default (delete default ido-temp-list))))
- (if ido-use-virtual-buffers
- (ido-add-virtual-buffers-to-list))
+ (if default
+ (setq ido-temp-list
+ (cons default (delete default ido-temp-list))))
(run-hooks 'ido-make-buffer-list-hook)
ido-temp-list))
@@ -3672,7 +3670,6 @@ This is to make them appear as if they were \"virtual buffers\"."
;; Used by `ido-get-buffers-in-frames' to walk through all windows
(let ((buf (buffer-name (window-buffer win))))
(unless (or (member buf ido-bufs-in-frame)
- (minibufferp buf)
(member buf ido-ignore-item-temp-list))
;; Only add buf if it is not already in list.
;; This prevents same buf in two different windows being
@@ -3913,27 +3910,6 @@ This is to make them appear as if they were \"virtual buffers\"."
;;(add-hook 'completion-setup-hook 'completion-setup-function)
(display-completion-list completion-list)))))))
-(defun ido-kill-buffer-internal (buf)
- "Kill buffer BUF and rebuild ido's buffer list if needed."
- (if (not (kill-buffer buf))
- ;; buffer couldn't be killed.
- (setq ido-rescan t)
- ;; else buffer was killed so remove name from list.
- (setq ido-cur-list (delq buf ido-cur-list))
- ;; Some packages, like uniquify.el, may rename buffers when one
- ;; is killed, so we need to test this condition to avoid using
- ;; an outdated list of buffer names. We don't want to always
- ;; rebuild the list of buffers, as this alters the previous
- ;; buffer order that the user was seeing on the prompt. However,
- ;; when we rebuild the list, we try to keep the previous second
- ;; buffer as the first one.
- (catch 'update
- (dolist (b ido-cur-list)
- (unless (get-buffer b)
- (setq ido-cur-list (ido-make-buffer-list (cadr ido-matches)))
- (setq ido-rescan t)
- (throw 'update nil))))))
-
;;; KILL CURRENT BUFFER
(defun ido-kill-buffer-at-head ()
"Kill the buffer at the head of `ido-matches'.
@@ -3942,15 +3918,26 @@ If cursor is not at the end of the user input, delete to end of input."
(if (not (eobp))
(delete-region (point) (line-end-position))
(let ((enable-recursive-minibuffers t)
- (buf (ido-name (car ido-matches))))
- (when buf
- (ido-kill-buffer-internal buf)
- ;; Check if buffer still exists.
- (if (get-buffer buf)
- ;; buffer couldn't be killed.
+ (buf (ido-name (car ido-matches)))
+ (nextbuf (cadr ido-matches)))
+ (when (get-buffer buf)
+ ;; If next match names a buffer use the buffer object; buffer
+ ;; name may be changed by packages such as uniquify; mindful
+ ;; of virtual buffers.
+ (when (and nextbuf (get-buffer nextbuf))
+ (setq nextbuf (get-buffer nextbuf)))
+ (if (null (kill-buffer buf))
+ ;; Buffer couldn't be killed.
(setq ido-rescan t)
- ;; else buffer was killed so remove name from list.
- (setq ido-cur-list (delq buf ido-cur-list)))))))
+ ;; Else `kill-buffer' succeeds so re-make the buffer list
+ ;; taking into account packages like uniquify may rename
+ ;; buffers.
+ (if (bufferp nextbuf)
+ (setq nextbuf (buffer-name nextbuf)))
+ (setq ido-default-item nextbuf
+ ido-text-init ido-text
+ ido-exit 'refresh)
+ (exit-minibuffer))))))
;;; DELETE CURRENT FILE
(defun ido-delete-file-at-head ()
@@ -3988,7 +3975,7 @@ Record command in `command-history' if optional RECORD is non-nil."
((eq method 'kill)
(if record
(ido-record-command 'kill-buffer buffer))
- (ido-kill-buffer-internal buffer))
+ (kill-buffer buffer))
((eq method 'other-window)
(if record
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index ea4b00dc90d..081897a89b3 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -1027,8 +1027,8 @@ Return the modified list with the last element prepended to it."
(defun iswitchb-kill-buffer ()
"Kill the buffer at the head of `iswitchb-matches'."
(interactive)
- (let ( (enable-recursive-minibuffers t)
- buf)
+ (let ((enable-recursive-minibuffers t)
+ buf)
(setq buf (car iswitchb-matches))
;; check to see if buf is non-nil.
@@ -1042,8 +1042,10 @@ Return the modified list with the last element prepended to it."
(if (get-buffer buf)
;; buffer couldn't be killed.
(setq iswitchb-rescan t)
- ;; else buffer was killed so remove name from list.
- (setq iswitchb-buflist (delq buf iswitchb-buflist)))))))
+ ;; Else `kill-buffer' succeeds so re-make the buffer list
+ ;; taking into account packages like uniquify may rename
+ ;; buffers
+ (iswitchb-make-buflist iswitchb-default))))))
;;; VISIT CHOSEN BUFFER
(defun iswitchb-visit-buffer (buffer)
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index fbf5c534a28..fa0b7bef207 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -191,8 +191,6 @@ please report it with \\[report-emacs-bug].")
:group 'rmail-retrieve
:type '(repeat (directory)))
-(declare-function mail-position-on-field "sendmail" (field &optional soft))
-(declare-function mail-text-start "sendmail" ())
(declare-function rmail-dont-reply-to "mail-utils" (destinations))
(declare-function rmail-update-summary "rmailsum" (&rest ignore))
@@ -1643,8 +1641,6 @@ The duplicate copy goes into the Rmail file just after the original."
(declare-function rmail-summary-mark-deleted "rmailsum" (&optional n undel))
(declare-function rfc822-addresses "rfc822" (header-text))
(declare-function mail-abbrev-make-syntax-table "mailabbrev.el" ())
-(declare-function mail-sendmail-delimit-header "sendmail" ())
-(declare-function mail-header-end "sendmail" ())
;; RLK feature not added in this version:
;; argument specifies inbox file or files in various ways.
@@ -3686,7 +3682,8 @@ see the documentation of `rmail-resend'."
;; The mail buffer is now current.
(save-excursion
;; Insert after header separator--before signature if any.
- (goto-char (mail-text-start))
+ (rfc822-goto-eoh)
+ (forward-line 1)
(if (or rmail-enable-mime rmail-enable-mime-composing)
(funcall rmail-insert-mime-forwarded-message-function
forward-buffer)
@@ -3841,6 +3838,10 @@ The message should be narrowed to just the headers."
(1- (point))
(point-max)))))))
+(declare-function mail-sendmail-delimit-header "sendmail" ())
+(declare-function mail-header-end "sendmail" ())
+(declare-function mail-position-on-field "sendmail" (field &optional soft))
+
(defun rmail-retry-failure ()
"Edit a mail message which is based on the contents of the current message.
For a message rejected by the mail system, extract the interesting headers and
@@ -3932,6 +3933,8 @@ specifying headers which should not be copied into the new message."
(goto-char (point-min))
(if bounce-indent
(indent-rigidly (point-min) (point-max) bounce-indent))
+ ;; FIXME better to replace sendmail functions.
+ (require 'sendmail)
(mail-sendmail-delimit-header)
(save-restriction
(narrow-to-region (point-min) (mail-header-end))
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 3c1241237f1..ed5c189252b 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1272,6 +1272,9 @@ mail status in mode line"))
(define-key menu-bar-games-menu [life]
`(menu-item ,(purecopy "Life") life
:help ,(purecopy "Watch how John Conway's cellular automaton evolves")))
+(define-key menu-bar-games-menu [land]
+ `(menu-item ,(purecopy "Landmark") landmark
+ :help ,(purecopy "Watch a neural-network robot learn landmarks")))
(define-key menu-bar-games-menu [hanoi]
`(menu-item ,(purecopy "Towers of Hanoi") hanoi
:help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs")))
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 2a198215536..712af6fd288 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1152,7 +1152,8 @@ For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'."
(when dir
(let ((default-directory dir))
(flymake-log 3 "starting process on dir %s" default-directory)))
- (setq process (apply 'start-process "flymake-proc" (current-buffer) cmd args))
+ (setq process (apply 'start-file-process
+ "flymake-proc" (current-buffer) cmd args))
(set-process-sentinel process 'flymake-process-sentinel)
(set-process-filter process 'flymake-process-filter)
(push process flymake-processes)
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 15664c8e56d..362a1db6c10 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1300,7 +1300,9 @@ definition and conveniently use this command."
(save-restriction
(narrow-to-region beginning end)
(makefile-backslash-region (point-min) (point-max) t)
- (let ((fill-paragraph-function nil))
+ (let ((fill-paragraph-function nil)
+ ;; Adjust fill-column to allow space for the backslash.
+ (fill-column (- fill-column 1)))
(fill-paragraph nil))
(makefile-backslash-region (point-min) (point-max) nil)
(goto-char (point-max))
@@ -1314,7 +1316,9 @@ definition and conveniently use this command."
;; resulting region.
(save-restriction
(narrow-to-region (point) (line-beginning-position 2))
- (let ((fill-paragraph-function nil))
+ (let ((fill-paragraph-function nil)
+ ;; Adjust fill-column to allow space for the backslash.
+ (fill-column (- fill-column 1)))
(fill-paragraph nil))
(makefile-backslash-region (point-min) (point-max) nil))
;; Return non-nil to indicate it's been filled.
diff --git a/lisp/simple.el b/lisp/simple.el
index b998eef88a0..5f62b9d9e73 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3103,7 +3103,8 @@ If the buffer is read-only, Emacs will beep and refrain from deleting
the text, but put the text in the kill ring anyway. This means that
you can use the killing commands to copy text from a read-only buffer.
-This is the primitive for programs to kill text (as opposed to deleting it).
+Lisp programs should use this function for killing text.
+ (To delete text, use `delete-region'.)
Supply two arguments, character positions indicating the stretch of text
to be killed.
Any command that calls this function is a \"kill command\".
diff --git a/lisp/subr.el b/lisp/subr.el
index 9fb737fd038..90480ea0e7f 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -219,6 +219,7 @@ Treated as a declaration when used at the right place in a
(defmacro ignore-errors (&rest body)
"Execute BODY; if an error occurs, return nil.
Otherwise, return result of last form in BODY."
+ (declare (debug t) (indent 0))
`(condition-case nil (progn ,@body) (error nil)))
;;;; Basic Lisp functions.
@@ -1818,6 +1819,7 @@ When there's an ambiguity because the key looks like the prefix of
some sort of escape sequence, the ambiguity is resolved via `read-key-delay'."
(let ((overriding-terminal-local-map read-key-empty-map)
(overriding-local-map nil)
+ (echo-keystrokes 0)
(old-global-map (current-global-map))
(timer (run-with-idle-timer
;; Wait long enough that Emacs has the time to receive and
@@ -1842,7 +1844,12 @@ some sort of escape sequence, the ambiguity is resolved via `read-key-delay'."
(throw 'read-key keys)))))))
(unwind-protect
(progn
- (use-global-map read-key-empty-map)
+ (use-global-map
+ (let ((map (make-sparse-keymap)))
+ ;; Don't hide the menu-bar and tool-bar entries.
+ (define-key map [menu-bar] (lookup-key global-map [menu-bar]))
+ (define-key map [tool-bar] (lookup-key global-map [tool-bar]))
+ map))
(aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0))
(cancel-timer timer)
(use-global-map old-global-map))))
diff --git a/lisp/woman.el b/lisp/woman.el
index 291ebcee740..1a9d512d302 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -3388,7 +3388,10 @@ Format paragraphs upto TO. Supports special chars.
"Translate up to marker TO. Do this last of all transformations."
(if translations
(let ((matches (car translations))
- (alist (cdr translations)))
+ (alist (cdr translations))
+ ;; Translations are case-sensitive, eg ".tr ab" does not
+ ;; affect "A" (bug#6849).
+ (case-fold-search nil))
(while (re-search-forward matches to t)
;; Done like this to retain text properties and
;; support translation of special characters:
diff --git a/src/ChangeLog b/src/ChangeLog
index 58941cc39ba..485099c7bf1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,28 @@
+2010-08-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
+ instead of SAFE_ALLOCA.
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
+ (Bug#6214).
+
+2010-08-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
+
+2010-08-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * doc.c (Fsnarf_documentation): Initialize skip_file before
+ build-files test.
+
+2010-08-22 Peter O'Gorman <pogma@thewrittenword.com> (tiny change)
+
+ * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK): New
+ definitions.
+ (HAVE_TERMIO): Remove.
+
2010-08-22 Eli Zaretskii <eliz@gnu.org>
* deps.mk (sysdep.o, msdos.o): Depend on sysselect.h.
diff --git a/src/doc.c b/src/doc.c
index 9a7001eb01d..a8601d930d0 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -622,24 +622,28 @@ the same file name is found in the `doc-directory'. */)
p = buf;
end = buf + (filled < 512 ? filled : filled - 128);
while (p != end && *p != '\037') p++;
- /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */
+ /* p points to ^_Ffunctionname\n or ^_Vvarname\n or ^_Sfilename\n. */
if (p != end)
{
end = strchr (p, '\n');
/* See if this is a file name, and if it is a file in build-files. */
- if (p[1] == 'S' && end - p > 4 && end[-2] == '.'
- && (end[-1] == 'o' || end[-1] == 'c'))
+ if (p[1] == 'S')
{
- int len = end - p - 2;
- char *fromfile = alloca (len + 1);
- strncpy (fromfile, &p[2], len);
- fromfile[len] = 0;
- if (fromfile[len-1] == 'c')
- fromfile[len-1] = 'o';
-
- skip_file = NILP (Fmember (build_string (fromfile),
- Vbuild_files));
+ skip_file = 0;
+ if (end - p > 4 && end[-2] == '.'
+ && (end[-1] == 'o' || end[-1] == 'c'))
+ {
+ int len = end - p - 2;
+ char *fromfile = alloca (len + 1);
+ strncpy (fromfile, &p[2], len);
+ fromfile[len] = 0;
+ if (fromfile[len-1] == 'c')
+ fromfile[len-1] = 'o';
+
+ skip_file = NILP (Fmember (build_string (fromfile),
+ Vbuild_files));
+ }
}
sym = oblookup (Vobarray, p + 2,
diff --git a/src/eval.c b/src/eval.c
index 5c6b268187b..89d353cf7cb 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1011,12 +1011,13 @@ usage: (let VARLIST BODY...) */)
int count = SPECPDL_INDEX ();
register int argnum;
struct gcpro gcpro1, gcpro2;
+ USE_SAFE_ALLOCA;
varlist = Fcar (args);
/* Make space to hold the values to give the bound variables */
elt = Flength (varlist);
- temps = (Lisp_Object *) alloca (XFASTINT (elt) * sizeof (Lisp_Object));
+ SAFE_ALLOCA_LISP (temps, XFASTINT (elt));
/* Compute the values and store them in `temps' */
@@ -1049,6 +1050,7 @@ usage: (let VARLIST BODY...) */)
}
elt = Fprogn (Fcdr (args));
+ SAFE_FREE ();
return unbind_to (count, elt);
}
@@ -2301,8 +2303,9 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
/* Pass a vector of evaluated arguments */
Lisp_Object *vals;
register int argnum = 0;
+ USE_SAFE_ALLOCA;
- vals = (Lisp_Object *) alloca (XINT (numargs) * sizeof (Lisp_Object));
+ SAFE_ALLOCA_LISP (vals, XINT (numargs));
GCPRO3 (args_left, fun, fun);
gcpro3.var = vals;
@@ -2320,6 +2323,7 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
val = (XSUBR (fun)->function.aMANY) (XINT (numargs), vals);
UNGCPRO;
+ SAFE_FREE ();
goto done;
}
@@ -2430,8 +2434,9 @@ usage: (apply FUNCTION &rest ARGUMENTS) */)
register int i, numargs;
register Lisp_Object spread_arg;
register Lisp_Object *funcall_args;
- Lisp_Object fun;
+ Lisp_Object fun, retval;
struct gcpro gcpro1;
+ USE_SAFE_ALLOCA;
fun = args [0];
funcall_args = 0;
@@ -2470,8 +2475,7 @@ usage: (apply FUNCTION &rest ARGUMENTS) */)
{
/* Avoid making funcall cons up a yet another new vector of arguments
by explicitly supplying nil's for optional values */
- funcall_args = (Lisp_Object *) alloca ((1 + XSUBR (fun)->max_args)
- * sizeof (Lisp_Object));
+ SAFE_ALLOCA_LISP (funcall_args, 1 + XSUBR (fun)->max_args);
for (i = numargs; i < XSUBR (fun)->max_args;)
funcall_args[++i] = Qnil;
GCPRO1 (*funcall_args);
@@ -2483,8 +2487,7 @@ usage: (apply FUNCTION &rest ARGUMENTS) */)
function itself as well as its arguments. */
if (!funcall_args)
{
- funcall_args = (Lisp_Object *) alloca ((1 + numargs)
- * sizeof (Lisp_Object));
+ SAFE_ALLOCA_LISP (funcall_args, 1 + numargs);
GCPRO1 (*funcall_args);
gcpro1.nvars = 1 + numargs;
}
@@ -2500,7 +2503,11 @@ usage: (apply FUNCTION &rest ARGUMENTS) */)
}
/* By convention, the caller needs to gcpro Ffuncall's args. */
- RETURN_UNGCPRO (Ffuncall (gcpro1.nvars, funcall_args));
+ retval = Ffuncall (gcpro1.nvars, funcall_args);
+ UNGCPRO;
+ SAFE_FREE ();
+
+ return retval;
}
/* Run hook variables in various ways. */
@@ -3065,9 +3072,10 @@ apply_lambda (Lisp_Object fun, Lisp_Object args, int eval_flag)
struct gcpro gcpro1, gcpro2, gcpro3;
register int i;
register Lisp_Object tem;
+ USE_SAFE_ALLOCA;
numargs = Flength (args);
- arg_vector = (Lisp_Object *) alloca (XINT (numargs) * sizeof (Lisp_Object));
+ SAFE_ALLOCA_LISP (arg_vector, XINT (numargs));
args_left = args;
GCPRO3 (*arg_vector, args_left, fun);
@@ -3096,6 +3104,7 @@ apply_lambda (Lisp_Object fun, Lisp_Object args, int eval_flag)
tem = call_debugger (Fcons (Qexit, Fcons (tem, Qnil)));
/* Don't do it again when we return to eval. */
backtrace_list->debug_on_exit = 0;
+ SAFE_FREE ();
return tem;
}
diff --git a/src/s/hpux10-20.h b/src/s/hpux10-20.h
index ee0fa9abe02..d34ff16104b 100644
--- a/src/s/hpux10-20.h
+++ b/src/s/hpux10-20.h
@@ -35,9 +35,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
#define FIRST_PTY_LETTER 'p'
-/* Define HAVE_TERMIO if the system provides sysV-style ioctls
- for terminal control. */
-#define HAVE_TERMIO
+#define HAVE_TERMIOS
+#define NO_TERMIO
+
+#define ORDINARY_LINK
/* Define HAVE_PTYS if the system supports pty devices. */
#define HAVE_PTYS