# HG changeset patch # User Chong Yidong # Date 1282507474 14400 # Node ID 4ed076eb552944b117e6a846e6f39a1f56d42841 # Parent bcdbcc64ea7d881a59b597b62bfea3920abcf016# Parent 53205019b1958b5c07d34ad22b5f83aa24b6dc1a Merge changes from emacs-23 branch. diff -r bcdbcc64ea7d -r 4ed076eb5529 doc/emacs/ChangeLog --- a/doc/emacs/ChangeLog Sun Aug 22 20:20:55 2010 +0300 +++ b/doc/emacs/ChangeLog Sun Aug 22 16:04:34 2010 -0400 @@ -1,3 +1,7 @@ +2010-08-21 Glenn Morris + + * misc.texi (Amusements): Mention bubbles and animate. + 2010-07-31 Eli Zaretskii * files.texi (Visiting): Add more index entries for diff -r bcdbcc64ea7d -r 4ed076eb5529 doc/emacs/misc.texi --- a/doc/emacs/misc.texi Sun Aug 22 20:20:55 2010 +0300 +++ b/doc/emacs/misc.texi Sun Aug 22 16:04:34 2010 -0400 @@ -2784,6 +2784,10 @@ 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 @@ @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 -r bcdbcc64ea7d -r 4ed076eb5529 doc/lispref/ChangeLog --- a/doc/lispref/ChangeLog Sun Aug 22 20:20:55 2010 +0300 +++ b/doc/lispref/ChangeLog Sun Aug 22 16:04:34 2010 -0400 @@ -1,3 +1,11 @@ +2010-08-22 Chong Yidong + + * modes.texi (Defining Minor Modes): Doc fix (Bug#6880). + +2010-08-22 Chong Yidong + + * objects.texi (Bool-Vector Type): Minor definition tweak (Bug#6878). + 2010-08-20 Eli Zaretskii * commands.texi (Misc Events): Add cross-references to where diff -r bcdbcc64ea7d -r 4ed076eb5529 doc/lispref/modes.texi --- a/doc/lispref/modes.texi Sun Aug 22 20:20:55 2010 +0300 +++ b/doc/lispref/modes.texi Sun Aug 22 16:04:34 2010 -0400 @@ -1411,14 +1411,20 @@ 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 -r bcdbcc64ea7d -r 4ed076eb5529 doc/lispref/objects.texi --- a/doc/lispref/objects.texi Sun Aug 22 20:20:55 2010 +0300 +++ b/doc/lispref/objects.texi Sun Aug 22 16:04:34 2010 -0400 @@ -1189,8 +1189,8 @@ @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 -r bcdbcc64ea7d -r 4ed076eb5529 leim/ChangeLog --- a/leim/ChangeLog Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/ChangeLog Sun Aug 22 16:04:34 2010 -0400 @@ -1,3 +1,26 @@ +2010-08-15 Andreas Schwab + + * quail/vntelex.el ("vietnamese-telex"): Doc fix. + + * quail/georgian.el: Remove extra backslashes. + +2010-08-14 Andreas Schwab + + * 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 + + * quail/greek.el ("greek-postfix"): Add rules for Greek style + quotes. + +2010-08-09 Kenichi Handa + + * quail/greek.el ("greek"): Add rules for Greek style quotes. + 2010-05-15 Glenn Morris * Makefile.in (install): Remove references to CVS-related files. diff -r bcdbcc64ea7d -r 4ed076eb5529 leim/quail/arabic.el --- a/leim/quail/arabic.el Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/quail/arabic.el Sun Aug 22 16:04:34 2010 -0400 @@ -57,8 +57,8 @@ ("A" ?ِ) ("S" ?ٍ) - ("D" ?]) - ("F" ?[) + ("D" ?\]) + ("F" ?\[) ("G" ["لأ"]) ("H" ?أ) ("J" ?ـ) diff -r bcdbcc64ea7d -r 4ed076eb5529 leim/quail/georgian.el --- a/leim/quail/georgian.el Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/quail/georgian.el Sun Aug 22 16:04:34 2010 -0400 @@ -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 -r bcdbcc64ea7d -r 4ed076eb5529 leim/quail/greek.el --- a/leim/quail/greek.el Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/quail/greek.el Sun Aug 22 16:04:34 2010 -0400 @@ -1279,7 +1279,9 @@ (";: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 @@ ("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 -r bcdbcc64ea7d -r 4ed076eb5529 leim/quail/latin-ltx.el --- a/leim/quail/latin-ltx.el Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/quail/latin-ltx.el Sun Aug 22 16:04:34 2010 -0400 @@ -653,7 +653,7 @@ ("\\lambda" ?λ) ("\\langle" ?〈) ("\\lbrace" ?{) - ("\\lbrack" ?[) + ("\\lbrack" ?\[) ("\\lceil" ?⌈) ("\\ldots" ?…) ("\\le" ?≤) @@ -788,7 +788,7 @@ ("\\quad" ? ) ("\\rangle" ?〉) ("\\rbrace" ?}) - ("\\rbrack" ?]) + ("\\rbrack" ?\]) ("\\rceil" ?⌉) ("\\rfloor" ?⌋) ("\\rightarrow" ?→) diff -r bcdbcc64ea7d -r 4ed076eb5529 leim/quail/vntelex.el --- a/leim/quail/vntelex.el Sun Aug 22 20:20:55 2010 +0300 +++ b/leim/quail/vntelex.el Sun Aug 22 16:04:34 2010 -0400 @@ -53,7 +53,7 @@ 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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/ChangeLog --- a/lisp/ChangeLog Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/ChangeLog Sun Aug 22 16:04:34 2010 -0400 @@ -1,3 +1,74 @@ +2010-08-22 Chong Yidong + + * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880). + +2010-08-22 Leo + + 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 (tiny change) + Stefan Monnier + + * progmodes/make-mode.el (makefile-fill-paragraph): Account for the + extra backslash added to each line (bug#6890). + +2010-08-22 Stefan Monnier + + * subr.el (read-key): Don't echo keystrokes (bug#6883). + +2010-08-22 Glenn Morris + + * menu-bar.el (menu-bar-games-menu): Add landmark. + +2010-08-22 Glenn Morris + + * 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 + + * subr.el (read-key): Don't hide the menu-bar entries (bug#6881). + +2010-08-22 Michael Albinus + + * 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 + + * files.el: Add `word-wrap' as safe local variable. + +2010-08-22 Glenn Morris + + * woman.el (woman-translate): Case matters. (Bug#6849) + +2010-08-22 Chong Yidong + + * simple.el (kill-region): Doc fix (Bug#6787). + +2010-08-22 Glenn Morris + + * calendar/diary-lib.el (diary-header-line-format): + Fit it to the window, not the frame. + +2010-08-22 Andreas Schwab + + * subr.el (ignore-errors): Add debug declaration. + +2010-08-22 Geoff Gole (tiny change) + + * whitespace.el (whitespace-color-off): Remove post-command-hook + locally. + 2010-08-21 Stefan Monnier * 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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/align.el --- a/lisp/align.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/align.el Sun Aug 22 16:04:34 2010 -0400 @@ -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 ;; Maintainer: FSF @@ -944,6 +944,8 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/calendar/diary-lib.el --- a/lisp/calendar/diary-lib.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/calendar/diary-lib.el Sun Aug 22 16:04:34 2010 -0400 @@ -383,14 +383,14 @@ "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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/emacs-lisp/easy-mmode.el --- a/lisp/emacs-lisp/easy-mmode.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/emacs-lisp/easy-mmode.el Sun Aug 22 16:04:34 2010 -0400 @@ -86,25 +86,23 @@ ;;;###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. -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). +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 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): +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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/files.el --- a/lisp/files.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/files.el Sun Aug 22 16:04:34 2010 -0400 @@ -2805,6 +2805,7 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/ido.el --- a/lisp/ido.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/ido.el Sun Aug 22 16:04:34 2010 -0400 @@ -1070,11 +1070,11 @@ ;; 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 @@ (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 @@ ;; 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 @@ ;;(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 (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 @@ ((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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/iswitchb.el --- a/lisp/iswitchb.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/iswitchb.el Sun Aug 22 16:04:34 2010 -0400 @@ -1027,8 +1027,8 @@ (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 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/mail/rmail.el --- a/lisp/mail/rmail.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/mail/rmail.el Sun Aug 22 16:04:34 2010 -0400 @@ -191,8 +191,6 @@ :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 @@ (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 @@ ;; 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 @@ (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 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/menu-bar.el --- a/lisp/menu-bar.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/menu-bar.el Sun Aug 22 16:04:34 2010 -0400 @@ -1272,6 +1272,9 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/progmodes/flymake.el --- a/lisp/progmodes/flymake.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/progmodes/flymake.el Sun Aug 22 16:04:34 2010 -0400 @@ -1152,7 +1152,8 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/progmodes/make-mode.el --- a/lisp/progmodes/make-mode.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/progmodes/make-mode.el Sun Aug 22 16:04:34 2010 -0400 @@ -1300,7 +1300,9 @@ (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 @@ ;; 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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/simple.el --- a/lisp/simple.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/simple.el Sun Aug 22 16:04:34 2010 -0400 @@ -3103,7 +3103,8 @@ 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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/subr.el --- a/lisp/subr.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/subr.el Sun Aug 22 16:04:34 2010 -0400 @@ -219,6 +219,7 @@ (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 @@ 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 @@ (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 -r bcdbcc64ea7d -r 4ed076eb5529 lisp/woman.el --- a/lisp/woman.el Sun Aug 22 20:20:55 2010 +0300 +++ b/lisp/woman.el Sun Aug 22 16:04:34 2010 -0400 @@ -3388,7 +3388,10 @@ "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 -r bcdbcc64ea7d -r 4ed076eb5529 src/ChangeLog --- a/src/ChangeLog Sun Aug 22 20:20:55 2010 +0300 +++ b/src/ChangeLog Sun Aug 22 16:04:34 2010 -0400 @@ -1,3 +1,28 @@ +2010-08-22 Andreas Schwab + + * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP + instead of SAFE_ALLOCA. + +2010-08-22 Chong Yidong + + * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA + (Bug#6214). + +2010-08-22 Jan Djärv + + * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S. + +2010-08-22 Jan Djärv + + * doc.c (Fsnarf_documentation): Initialize skip_file before + build-files test. + +2010-08-22 Peter O'Gorman (tiny change) + + * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK): New + definitions. + (HAVE_TERMIO): Remove. + 2010-08-22 Eli Zaretskii * deps.mk (sysdep.o, msdos.o): Depend on sysselect.h. diff -r bcdbcc64ea7d -r 4ed076eb5529 src/doc.c --- a/src/doc.c Sun Aug 22 20:20:55 2010 +0300 +++ b/src/doc.c Sun Aug 22 16:04:34 2010 -0400 @@ -622,24 +622,28 @@ 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 = 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)); + skip_file = NILP (Fmember (build_string (fromfile), + Vbuild_files)); + } } sym = oblookup (Vobarray, p + 2, diff -r bcdbcc64ea7d -r 4ed076eb5529 src/eval.c --- a/src/eval.c Sun Aug 22 20:20:55 2010 +0300 +++ b/src/eval.c Sun Aug 22 16:04:34 2010 -0400 @@ -1011,12 +1011,13 @@ 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 @@ } elt = Fprogn (Fcdr (args)); + SAFE_FREE (); return unbind_to (count, elt); } @@ -2301,8 +2303,9 @@ /* Pass a vector of evaluated arguments */ Lisp_Object *vals; register int argnum = 0; - - vals = (Lisp_Object *) alloca (XINT (numargs) * sizeof (Lisp_Object)); + USE_SAFE_ALLOCA; + + SAFE_ALLOCA_LISP (vals, XINT (numargs)); GCPRO3 (args_left, fun, fun); gcpro3.var = vals; @@ -2320,6 +2323,7 @@ val = (XSUBR (fun)->function.aMANY) (XINT (numargs), vals); UNGCPRO; + SAFE_FREE (); goto done; } @@ -2430,8 +2434,9 @@ 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 @@ { /* 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 @@ 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 @@ } /* 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 @@ 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 @@ 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 -r bcdbcc64ea7d -r 4ed076eb5529 src/s/hpux10-20.h --- a/src/s/hpux10-20.h Sun Aug 22 20:20:55 2010 +0300 +++ b/src/s/hpux10-20.h Sun Aug 22 16:04:34 2010 -0400 @@ -35,9 +35,10 @@ 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