changeset 107283:396dc65ad74c

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 18 Feb 2010 21:54:17 +0000
parents 5937202fb760 (current diff) dd61cb49d199 (diff)
children 366dab1d1b3e
files admin/notes/commits
diffstat 18 files changed, 159 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/INSTALL.BZR	Thu Feb 18 02:46:55 2010 +0000
+++ b/INSTALL.BZR	Thu Feb 18 21:54:17 2010 +0000
@@ -64,15 +64,6 @@
 someone to fix it.
 
 
-Note on accessing the Bazaar repository
----------------------------------------
-
-Write access to the Bazaar repository is currently done via Bazaar's
-sftp:// protocol; see http://www.emacswiki.org/emacs/BzrForEmacsDevs.
-We plan to offer bzr+ssh:// access later.  More discussion about that
-is at https://savannah.gnu.org/support/?107077.
-
-
 
 This file is part of GNU Emacs.
 
--- a/admin/README	Thu Feb 18 02:46:55 2010 +0000
+++ b/admin/README	Thu Feb 18 21:54:17 2010 +0000
@@ -1,5 +1,5 @@
-Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-  Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+  2010  Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
@@ -44,7 +44,7 @@
 
 Install emacs quickly (`incrementally').
 
-** alloc-color.c
+** alloc-colors.c
 
 A utility program that allocates a given number of colors on X.  Can
 be used to debug Emacs with dense colormaps (PseudoColor).
@@ -61,10 +61,6 @@
 
 Show files added/removed between two tar files.
 
-** revdiff
-
-Get CVS diffs of files.
-
 
 Brief description of sub-directories:
 
--- a/admin/notes/commits	Thu Feb 18 02:46:55 2010 +0000
+++ b/admin/notes/commits	Thu Feb 18 21:54:17 2010 +0000
@@ -1,10 +1,17 @@
 HOW TO COMMIT CHANGES TO EMACS
 
+Most of these points are from:
+
 http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html
 From: 	 Miles Bader
 Subject: commit style redux
 Date: 	 Tue, 31 Mar 2009 12:21:20 +0900
 
+(0) Each commit should correspond to a single change (whether spread
+    over multiple files or not).  Do not mix different changes in the
+    same commit (eg adding a feature in one file, fixing a bug in
+    another should be two commits, not one).
+
 (1) Commit all changed files at once with a single log message (which
     in CVS will result in an identical log message for all committed
     files), not one-by-one.  This is pretty easy using vc-dir now.
@@ -41,6 +48,7 @@
 
 Followup discussion:
 http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
+http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00401.html
 
 
 PREVIOUS GUIDELINES FOR CVS
--- a/doc/emacs/ChangeLog	Thu Feb 18 02:46:55 2010 +0000
+++ b/doc/emacs/ChangeLog	Thu Feb 18 21:54:17 2010 +0000
@@ -1,3 +1,7 @@
+2010-02-18  Glenn Morris  <rgm@gnu.org>
+
+	* trouble.texi (Contributing): Repository is no longer CVS.
+
 2010-02-08  Glenn Morris  <rgm@gnu.org>
 
 	* buffers.texi (Uniquify): Must explicitly load library.  (Bug#5529)
--- a/doc/emacs/trouble.texi	Thu Feb 18 02:46:55 2010 +0000
+++ b/doc/emacs/trouble.texi	Thu Feb 18 21:54:17 2010 +0000
@@ -1022,8 +1022,8 @@
 possible to suggest ways to make your extension fit in better with the
 rest of Emacs.
 
-The development version of Emacs can be downloaded from the CVS
-repository where it is actively maintained by a group of developers.
+The development version of Emacs can be downloaded from the
+repository, where it is actively maintained by a group of developers.
 See the Emacs project page
 @url{http://savannah.gnu.org/projects/emacs/} for details.
 
--- a/etc/CONTRIBUTE	Thu Feb 18 02:46:55 2010 +0000
+++ b/etc/CONTRIBUTE	Thu Feb 18 21:54:17 2010 +0000
@@ -1,4 +1,5 @@
-Copyright (C) 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+Copyright (C) 2006, 2007, 2008, 2009, 2010
+  Free Software Foundation, Inc.
 See end for license conditions.
 
 
@@ -30,7 +31,7 @@
 
 * Coding Standards
 
-Contributed code should follow the GNU Coding Standard.
+Contributed code should follow the GNU Coding Standards.
 
 If it doesn't, we'll need to find someone to fix the code before we
 can use it.
@@ -44,24 +45,24 @@
 
 * Copyright Assignment
 
-We can accept small changes without legal papers, and for medium-size
-changes a copyright disclaimer is ok too.  To accept substantial
-contributions from you, we need a copyright assignment form filled out
-and filed with the FSF.
-
-Contact us at emacs-devel@gnu.org to obtain the relevant forms.
+We can accept small changes (roughly, fewer than 15 lines) without
+legal papers.  Anything more substantial requires a copyright
+disclaimer or assignment (the latter is preferred, especially for
+larger changes).  Both of these involved filling out a short form and
+filing it with the FSF.  The process is straightforward -- contact us
+at emacs-devel@gnu.org to obtain the relevant forms.
 
 
 * Getting the Source Code
 
-The latest version of Emacs can be downloaded using CVS (or other
-version control systems) from the Savannah web site.  It is important
-to write your patch based on this version; if you start from an older
-version, your patch may be outdated when you write it, and maintainers
-will have a hard time applying it.
+The latest version of Emacs can be downloaded using Bazaar from the
+Savannah web site.  It is important to write your patch based on the
+latest version.  If you start from an older version, your patch may be
+outdated (so that maintainers will have a hard time applying it), or
+changes in Emacs may have made your patch unnecessary.
 
-After you have downloaded the CVS source, you should read the file
-INSTALL.CVS for build instructions (they differ to some extent from a
+After you have downloaded the Bazaar source, you should read the file
+INSTALL.BZR for build instructions (they differ to some extent from a
 normal build).
 
 Ref: http://savannah.gnu.org/projects/emacs
@@ -75,7 +76,7 @@
 When you have all these pieces, bundle them up in a mail message and
 send it to bug-gnu-emacs@gnu.org or emacs-devel@gnu.org.
 
-All subsequent discussion should also be sent to the mailing list.
+All subsequent discussion should be sent to the same mailing list.
 
 ** Description
 
@@ -88,7 +89,7 @@
 
 A ChangeLog entry as plaintext (separate from the patch).
 
-See the various ChangeLog files for format and content. Note that,
+See the various ChangeLog files for format and content.  Note that,
 unlike some other projects, we do require ChangeLogs also for
 documentation, i.e. Texinfo files.
 
@@ -99,9 +100,10 @@
 
 Please use "Context Diff" format.
 
-If you are accessing the CVS repository use
-	cvs update; cvs diff -cp
-else, use
+If you are accessing the Bazaar repository, make sure your copy is
+up-to-date (e.g. with `bzr pull'), then use
+        bzr diff --no-aliases --diff-options=-cp
+Else, use
 	diff -cp OLD NEW
 
 If your version of diff does not support these options, then get the
@@ -122,6 +124,11 @@
 If you send several unrelated changes together, we will ask you to
 separate them so we can consider each of the changes by itself.
 
+** Do not make formatting changes.
+
+Making cosmetic formatting changes (indentation, etc) makes it harder
+to see what you have really changed.
+
 
 * Coding style and conventions.
 
@@ -139,17 +146,17 @@
 
 * Supplemental information for Emacs Developers.
 
-** Write access to Emacs' CVS repository.
+** Write access to the Emacs repository.
 
 Once you become a frequent contributor to Emacs, we can consider
-giving you write access to the CVS repository.
+giving you write access to the Bazaar repository.
 
 
 ** Emacs Mailing lists.
 
 Discussion about Emacs development takes place on emacs-devel@gnu.org.
 
-Bug reports are sent to bug-gnu-emacs@gnu.org.
+Bug reports and feature requests are sent to bug-gnu-emacs@gnu.org.
 
 You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs.
 
--- a/lisp/ChangeLog	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/ChangeLog	Thu Feb 18 21:54:17 2010 +0000
@@ -1,3 +1,33 @@
+2010-02-18  Sam Steingold  <sds@gnu.org>
+
+	* vc-cvs.el (vc-cvs-merge-news): Yet another fix of message parsing.
+
+2010-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Use abbreviated file names in bookmarks (bug#5591).
+	* bookmark.el (bookmark-maybe-load-default-file): Remove redundant
+	calls to expand-file-name.
+	(bookmark-relocate): Use abbreviated file names in bookmarks.
+	(bookmark-load): Use abbreviated file names in messages.
+
+2010-02-18  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-handle-directory-files): When FULL, do not
+	expand "." and "..".  Reported by Thierry Volpiatto
+	<thierry.volpiatto@gmail.com>.
+
+2010-02-18  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-handle-insert-file-contents): Set always the
+	permissions of the temporary file to "0600".  In case the remote
+	file has no read permissions for the owner, there might be
+	problems otherwise.  Reported by Ole Laursen <olau@iola.dk>.
+
+22010-02-18  Glenn Morris  <rgm@gnu.org>
+
+	* emacs-lisp/authors.el (authors-renamed-files-alist):
+	Add entries for INSTALL.CVS.
+
 2010-02-17  Mark A. Hershberger  <mah@everybody.org>
 
 	* vc-bzr.el: fix typo in Known Bugs section.
@@ -7,8 +37,8 @@
 
 2010-02-16  Michael Albinus  <michael.albinus@gmx.de>
 
-	* net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Fix
-	errors in copying directories.
+	* net/tramp.el (tramp-do-copy-or-rename-file-out-of-band):
+	Fix errors in copying directories.
 	(tramp-handle-add-name-to-file, tramp-handle-copy-directory)
 	(tramp-do-copy-or-rename-file, tramp-handle-delete-directory)
 	(tramp-handle-delete-file)
@@ -34,8 +64,7 @@
 	* cedet/srecode.el (srecode):
 	* cedet/semantic.el (semantic): Put in tools and extensions group.
 
-	* nxml/nxml-mode.el (nxml-faces): Remove from font-lock-faces
-	group.
+	* nxml/nxml-mode.el (nxml-faces): Remove from font-lock-faces group.
 
 	* textmodes/flyspell.el (flyspell-word): Obey the offset specified
 	by ispell-parse-output (Bug#5575).
@@ -152,8 +181,7 @@
 2010-02-08  Jose E. Marchesi  <jemarch@gnu.org>
 
 	* progmodes/ada-mode.el (ada-in-numeric-literal-p): New function.
-	(ada-adjust-case): Don't adjust case in hexadecimal number
-	literals.
+	(ada-adjust-case): Don't adjust case in hexadecimal number literals.
 
 2010-02-08  Kenichi Handa  <handa@m17n.org>
 
--- a/lisp/bookmark.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/bookmark.el	Thu Feb 18 21:54:17 2010 +0000
@@ -958,14 +958,14 @@
            (and
             ;; Possibly the old bookmark file, "~/.emacs-bkmrks", needs
             ;; to be renamed.
-            (file-exists-p (expand-file-name bookmark-old-default-file))
-            (not (file-exists-p (expand-file-name bookmark-default-file)))
-            (rename-file (expand-file-name bookmark-old-default-file)
-                         (expand-file-name bookmark-default-file)))
+            (file-exists-p bookmark-old-default-file)
+            (not (file-exists-p bookmark-default-file))
+            (rename-file bookmark-old-default-file
+                         bookmark-default-file))
            ;; return t so the `and' will continue...
            t)
 
-       (file-readable-p (expand-file-name bookmark-default-file))
+       (file-readable-p bookmark-default-file)
        (bookmark-load bookmark-default-file t t)
        (setq bookmarks-already-loaded t)))
 
@@ -1152,10 +1152,11 @@
   (bookmark-maybe-historicize-string bookmark)
   (bookmark-maybe-load-default-file)
   (let* ((bmrk-filename (bookmark-get-filename bookmark))
-         (newloc (expand-file-name
-                  (read-file-name
-                   (format "Relocate %s to: " bookmark)
-                   (file-name-directory bmrk-filename)))))
+         (newloc (abbreviate-file-name
+                  (expand-file-name
+                   (read-file-name
+                    (format "Relocate %s to: " bookmark)
+                    (file-name-directory bmrk-filename))))))
     (bookmark-set-filename bookmark newloc)
     (setq bookmark-alist-modification-count
           (1+ bookmark-alist-modification-count))
@@ -1432,7 +1433,7 @@
           ;;but there's no better default, and
           ;;I guess it's better than none at all.
           "~/" bookmark-default-file 'confirm)))
-  (setq file (expand-file-name file))
+  (setq file (abbreviate-file-name (expand-file-name file)))
   (if (not (file-readable-p file))
       (error "Cannot read bookmark file %s" file)
     (if (null no-msg)
@@ -1453,7 +1454,8 @@
                 (setq bookmark-alist-modification-count
                       (1+ bookmark-alist-modification-count)))
               (if (string-equal
-                   (expand-file-name bookmark-default-file)
+                   (abbreviate-file-name
+                    (expand-file-name bookmark-default-file))
                    file)
                   (setq bookmarks-already-loaded t))
               (bookmark-bmenu-surreptitiously-rebuild-list))
--- a/lisp/emacs-lisp/authors.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/emacs-lisp/authors.el	Thu Feb 18 21:54:17 2010 +0000
@@ -504,7 +504,9 @@
     ;; index and pick merged into search.
     ("mh-index.el" . "mh-search.el")
     ("mh-pick.el" . "mh-search.el")
-    ("INSTALL-CVS" . "INSTALL.CVS")
+    ;; INSTALL-CVS -> .CVS -> .BZR
+    ("INSTALL-CVS" . "INSTALL.BZR")
+    ("INSTALL.CVS" . "INSTALL.BZR")
     ("refcards/fr-drdref.pdf" . "refcards/fr-dired-ref.pdf")
     ("gnus-logo.eps" . "refcards/gnus-logo.eps")
     ("build-install" . "build-ins.in")
--- a/lisp/loadup.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/loadup.el	Thu Feb 18 21:54:17 2010 +0000
@@ -125,8 +125,8 @@
 (load "case-table")
 (load "international/characters")
 (load "composite")
-;; This file doesn't exist when building Emacs from CVS.  It is
-;; generated just after temacs is build.
+;; This file doesn't exist when building a development version of Emacs
+;; from the repository.  It is generated just after temacs is built.
 (load "international/charprop.el" t)
 
 ;; Load language-specific files.
--- a/lisp/mh-e/mh-acros.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/mh-e/mh-acros.el	Thu Feb 18 21:54:17 2010 +0000
@@ -26,12 +26,12 @@
 ;;; Commentary:
 
 ;; This file contains all macros that are used in more than one file.
-;; If you run "make recompile" in CVS Emacs and see the message
+;; If you run "make recompile" in Bazaar Emacs and see the message
 ;; "Source is newer than compiled," it is a sign that macro probably
 ;; needs to be moved here.
 
 ;; Historically, it was so named with a silent "m" so that it would be
-;; compiled first. Otherwise, "make recompile" in CVS Emacs would use
+;; compiled first. Otherwise, "make recompile" in Bazaar Emacs would use
 ;; compiled files with stale macro definitions. Later, no-byte-compile
 ;; was added to the Local Variables section to avoid this problem and
 ;; because it's pointless to compile a file full of macros. But we
--- a/lisp/net/tramp.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/net/tramp.el	Thu Feb 18 21:54:17 2010 +0000
@@ -3142,7 +3142,7 @@
   "Like `directory-files' for Tramp files."
   ;; FILES-ONLY is valid for XEmacs only.
   (when (file-directory-p directory)
-    (setq directory (expand-file-name directory))
+    (setq directory (file-name-as-directory (expand-file-name directory)))
     (let ((temp (nreverse (file-name-all-completions "" directory)))
 	  result item)
 
@@ -3150,13 +3150,13 @@
 	(setq item (directory-file-name (pop temp)))
 	(when (and (or (null match) (string-match match item))
 		   (or (null files-only)
-		       ;; files only
+		       ;; Files only.
 		       (and (equal files-only t) (file-regular-p item))
-		       ;; directories only
+		       ;; Directories only.
 		       (file-directory-p item)))
-	  (push (if full (expand-file-name item directory) item)
+	  (push (if full (concat directory item) item)
 		result)))
-      result)))
+      (if nosort result (sort result 'string<)))))
 
 (defun tramp-handle-directory-files-and-attributes
   (directory &optional full match nosort id-format)
@@ -4781,12 +4781,16 @@
 			tramp-temp-buffer-file-name)
 		       (t (file-local-copy filename)))))
 
+	      ;; When the file is not readable for the owner, it
+	      ;; cannot be inserted, even it is redable for the group
+	      ;; or for everybody.
+	      (set-file-modes local-copy (tramp-octal-to-decimal "0600"))
+
 	      (when (and (null remote-copy)
 			 (tramp-get-method-parameter
 			  method 'tramp-copy-keep-tmpfile))
 		;; We keep the local file for performance reasons,
 		;; useful for "rsync".
-		(set-file-modes local-copy (tramp-octal-to-decimal "0600"))
 		(setq tramp-temp-buffer-file-name local-copy)
 		(put 'tramp-temp-buffer-file-name 'permanent-local t))
 
@@ -8584,26 +8588,26 @@
 ;;   equivalent of the emacsclient -eval option in order to make this
 ;;   reasonably unproblematic.  And maybe trampclient should have some
 ;;   way of passing credentials, like by using an SSL socket or
-;;   something. (David Kastrup)
+;;   something.  (David Kastrup)
 ;; * Reconnect directly to a compliant shell without first going
-;;   through the user's default shell. (Pete Forman)
+;;   through the user's default shell.  (Pete Forman)
 ;; * Make `tramp-default-user' obsolete.
 ;; * How can I interrupt the remote process with a signal
-;;   (interrupt-process seems not to work)? (Markus Triska)
+;;   (interrupt-process seems not to work)?  (Markus Triska)
 ;; * Avoid the local shell entirely for starting remote processes.  If
 ;;   so, I think even a signal, when delivered directly to the local
 ;;   SSH instance, would correctly be propagated to the remote process
 ;;   automatically; possibly SSH would have to be started with
-;;   "-t". (Markus Triska)
+;;   "-t".  (Markus Triska)
 ;; * It makes me wonder if tramp couldn't fall back to ssh when scp
-;;   isn't on the remote host. (Mark A. Hershberger)
-;; * Use lsh instead of ssh. (Alfred M. Szmidt)
+;;   isn't on the remote host.  (Mark A. Hershberger)
+;; * Use lsh instead of ssh.  (Alfred M. Szmidt)
 ;; * Implement a general server-local-variable mechanism, as there are
 ;;   probably other variables that need different values for different
 ;;   servers too.  The user could then configure a variable (such as
 ;;   tramp-server-local-variable-alist) to define any such variables
 ;;   that they need to, which would then be let bound as appropriate
-;;   in tramp functions. (Jason Rumney)
+;;   in tramp functions.  (Jason Rumney)
 ;; * Optimize out-of-band copying, when both methods are scp-like (not
 ;;   rsync).
 ;; * Keep a second connection open for out-of-band methods like scp or
@@ -8613,7 +8617,7 @@
 ;;   Unicode in Dired file names by default.  Is it possible to
 ;;   improve Tramp to set LC_ALL to "C" only for commands where Tramp
 ;;   expects English?  Or just to set LC_MESSAGES to "C" if Tramp
-;;   expects only English messages? (Juri Linkov)
+;;   expects only English messages?  (Juri Linkov)
 ;; * Make shadowfile.el grok Tramp filenames.  (Bug#4526, Bug#4846)
 ;; * Do not handle files with drive letter as remote.  (Bug#5447)
 ;; * Load Tramp subpackages only when needed.  (Bug#1529, Bug#5448)
--- a/lisp/vc-cvs.el	Thu Feb 18 02:46:55 2010 +0000
+++ b/lisp/vc-cvs.el	Thu Feb 18 21:54:17 2010 +0000
@@ -459,8 +459,8 @@
           (if (re-search-forward
                (concat "^\\([CMUP] \\)?"
                        (regexp-quote
-                        (substring file (length (expand-file-name
-                                                 "." default-directory))))
+                        (substring file (1+ (length (expand-file-name
+                                                     "." default-directory)))))
                        "\\( already contains the differences between \\)?")
                nil t)
               (cond
--- a/src/ChangeLog	Thu Feb 18 02:46:55 2010 +0000
+++ b/src/ChangeLog	Thu Feb 18 21:54:17 2010 +0000
@@ -1,14 +1,26 @@
+2010-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* term.c (fatal): Add a final \n if needed (bug#5596).
+
+2010-02-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* nsterm.m (ns_ring_bell): Revert last change (Bug#5569).
+
+2010-02-18  Glenn Morris  <rgm@gnu.org>
+
+	* callint.c (Finteractive): Doc fix.
+
 2010-02-18  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny change)
 
-	* coding.c (record_conversion_result): Handle
-	CODING_RESULT_INSUFFICIENT_DST.
+	* coding.c (record_conversion_result):
+	Handle CODING_RESULT_INSUFFICIENT_DST.
 	(decode_coding_object): Record CODING_RESULT_INSUFFICIENT_MEM on
 	memory allocation error.
 
 2010-02-17  Kenichi Handa  <handa@m17n.org>
 
-	* coding.c (decode_coding_ccl): Don't setup ccl program here.  Fix
-	for the case that the output buffer is fullfilled.
+	* coding.c (decode_coding_ccl): Don't setup ccl program here.
+	Fix for the case that the output buffer is fullfilled.
 	(decode_coding): Setup ccl program here.  Keep looping when the
 	decoder stopped because the output buffer is
 	fullfilled (bug#5534).
@@ -19,7 +31,7 @@
 
 	* xterm.c (x_clear_frame_area): Call gtk_widget_queue_draw if USE_GTK,
 	bug #5571.
-	(XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get
+	(XTflash): Use Gdk-routines if USE_GTK so scroll bars don't get
 	overdrawn.
 
 2010-02-10  Jan Djärv  <jan.h.d@swipnet.se>
--- a/src/callint.c	Thu Feb 18 02:46:55 2010 +0000
+++ b/src/callint.c	Thu Feb 18 21:54:17 2010 +0000
@@ -127,7 +127,7 @@
  invoked the command for its first mouse click (or any other event
  which specifies a window).
 If the string begins with `^' and `shift-select-mode' is non-nil,
- Emacs first calls the function `handle-shift-select'.
+ Emacs first calls the function `handle-shift-selection'.
 You may use `@', `*', and `^' together.  They are processed in the
  order that they appear, before reading any arguments.
 usage: (interactive &optional ARGS)  */)
--- a/src/fileio.c	Thu Feb 18 02:46:55 2010 +0000
+++ b/src/fileio.c	Thu Feb 18 21:54:17 2010 +0000
@@ -1408,8 +1408,9 @@
    bugs _are_ found, it might be of interest to look at the old code and
    see what did it do in the relevant situation.
 
-   Don't remove this code: it's true that it will be accessible via CVS,
-   but a few years from deletion, people will forget it is there.  */
+   Don't remove this code: it's true that it will be accessible
+   from the repository, but a few years from deletion, people will
+   forget it is there.  */
 
 /* Changed this DEFUN to a DEAFUN, so as not to confuse `make-docfile'.  */
 DEAFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
--- a/src/nsterm.m	Thu Feb 18 02:46:55 2010 +0000
+++ b/src/nsterm.m	Thu Feb 18 21:54:17 2010 +0000
@@ -808,58 +808,23 @@
       view = FRAME_NS_VIEW (frame);
       if (view != nil)
         {
-          /* Get the bounds of our NSView */
-          NSRect viewBounds = [view bounds];
-
-          /* Height of each line to flash.  */
-          int flash_height = FRAME_LINE_HEIGHT (frame);
-          int width = FRAME_PIXEL_WIDTH (frame)
-                    - NS_SCROLL_BAR_WIDTH (frame);
-
-          /* Get the GraphicsContext */
-          CGContextRef ctxt = [[NSGraphicsContext currentContext] graphicsPort];
-          CGRect lowerLine, upperLine;
-          lowerLine =
-          CGRectMake(viewBounds.origin.x, viewBounds.origin.y,
-                     width + NS_SCROLL_BAR_WIDTH(frame),
-                     flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame));
-          upperLine =
-          CGRectMake(viewBounds.origin.x,
-                     viewBounds.origin.y + viewBounds.size.height
-                     - (flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame)),
-                     width,
-                     flash_height + FRAME_INTERNAL_BORDER_WIDTH (frame));
-
-          /* Invert the colors using a difference blend.  */
-          CGContextSetBlendMode(ctxt, kCGBlendModeDifference);
-          CGContextSetGrayFillColor(ctxt, 1, 1);
-
-          /* If window is tall, flash top and bottom line.  */
-          if (viewBounds.size.height > 3 * FRAME_LINE_HEIGHT (frame))
-            {
-              CGContextFillRect(ctxt, upperLine);
-              CGContextFillRect(ctxt, lowerLine);
-            }
-          else
-            /* If it is short, flash it all.  */
-            CGContextFillRect(ctxt, NSRectToCGRect([view bounds]));
-
-          /* Bounce Dock icon. Maybe we can allow some configuration here.  */
-          [NSApp requestUserAttention: NSInformationalRequest];
-
+          NSRect r, surr;
+          NSPoint dim = NSMakePoint (128, 128);
+
+          r = [view bounds];
+          r.origin.x += (r.size.width - dim.x) / 2;
+          r.origin.y += (r.size.height - dim.y) / 2;
+          r.size.width = dim.x;
+          r.size.height = dim.y;
+          surr = NSInsetRect (r, -2, -2);
+          ns_focus (frame, &surr, 1);
+          [[view window] cacheImageInRect: [view convertRect: surr toView:nil]];
+          [ns_lookup_indexed_color (NS_FACE_FOREGROUND
+                                      (FRAME_DEFAULT_FACE (frame)), frame) set];
+          NSRectFill (r);
           [[view window] flushWindow];
           ns_timeout (150000);
-
-          /* If window is tall, flash top and bottom line.  */
-          if (viewBounds.size.height > 3 * FRAME_LINE_HEIGHT (frame))
-            {
-              CGContextFillRect(ctxt, upperLine);
-              CGContextFillRect(ctxt, lowerLine);
-            }
-          else
-            /* If it is short, flash it all.  */
-            CGContextFillRect(ctxt, NSRectToCGRect([view bounds]));
-
+          [[view window] restoreCachedImage];
           [[view window] flushWindow];
           ns_unfocus (frame);
         }
--- a/src/term.c	Thu Feb 18 02:46:55 2010 +0000
+++ b/src/term.c	Thu Feb 18 21:54:17 2010 +0000
@@ -3938,6 +3938,8 @@
   va_start (ap, str);
   fprintf (stderr, "emacs: ");
   vfprintf (stderr, str, ap);
+  if (!(strlen (str) > 0 && str[strlen (str) - 1] == '\n'))
+    fprintf (stderr, "\n");
   va_end (ap);
   fflush (stderr);
   exit (1);