changeset 106785:a32698d5bb0c

(format-annotate-function): Only set write-region-post-annotation-function after running to-fn so as not to affect nested write-region calls (bug#5273).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 10 Jan 2010 00:22:54 -0500
parents 07693e3d04c6
children 04c3b0f26a9e e8989fe0a353 e36c1160a378
files lisp/ChangeLog lisp/format.el
diffstat 2 files changed, 32 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Jan 09 19:39:05 2010 -0500
+++ b/lisp/ChangeLog	Sun Jan 10 00:22:54 2010 -0500
@@ -1,7 +1,13 @@
+2010-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* format.el (format-annotate-function): Only set
+	write-region-post-annotation-function after running to-fn so as not to
+	affect nested write-region calls (bug#5273).
+
 2010-01-10  Chong Yidong  <cyd@stupidchicken.com>
 
-	* cedet/semantic.el (semantic-new-buffer-setup-functions): Add
-	python parser.
+	* cedet/semantic.el (semantic-new-buffer-setup-functions):
+	Add python parser.
 
 	* Makefile.in (ELCFILES): Add wisent/python-wy.el and
 	wisent/python.el.
@@ -33,8 +39,8 @@
 
 2010-01-08  Kenichi Handa  <handa@m17n.org>
 
-	* international/fontset.el (build-default-fontset-data): Exclude
-	characters in scripts kana, hangul, han, or cjk-misc.
+	* international/fontset.el (build-default-fontset-data):
+	Exclude characters in scripts kana, hangul, han, or cjk-misc.
 
 2010-01-07  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -54,8 +60,8 @@
 
 2010-01-05  Tom Tromey  <tromey@redhat.com>
 
-	* progmodes/python.el (python-font-lock-keywords): Handle
-	qualified decorators (Bug#881).
+	* progmodes/python.el (python-font-lock-keywords):
+	Handle qualified decorators (Bug#881).
 
 2010-01-05  Dan Nicolaescu  <dann@ics.uci.edu>
 
@@ -64,8 +70,7 @@
 
 2010-01-05  Kenichi Handa  <handa@m17n.org>
 
-	* language/indian.el (malayalam-composable-pattern): Fix ZWNJ and
-	ZWJ.
+	* language/indian.el (malayalam-composable-pattern): Fix ZWNJ and ZWJ.
 
 2010-01-05  Dan Nicolaescu  <dann@ics.uci.edu>
 
@@ -90,8 +95,8 @@
 2010-01-02  Daniel Elliott  <danelliottster@gmail.com>  (tiny change)
 
 	* progmodes/octave-mod.el (octave-end-keywords)
-	(octave-block-begin-or-end-regexp, octave-block-match-alist): Add
-	"end" keyword (Bug#3061).
+	(octave-block-begin-or-end-regexp, octave-block-match-alist):
+	Add "end" keyword (Bug#3061).
 	(octave-end-as-array-index-p): New function.
 	(calculate-octave-indent): Use it.
 
@@ -121,18 +126,18 @@
 
 2010-01-02  Karl Fogel  <kfogel@red-bean.com>
 
-	* bookmark.el (bookmark-bmenu-select, bookmark-bmenu-1-window,
+	* bookmark.el (bookmark-bmenu-select, bookmark-bmenu-1-window)
 	(bookmark-bmenu-2-window, bookmark-bmenu-this-window)
 	(bookmark-bmenu-other-window, bookmark-bmenu-switch-other-window)
 	(bookmark-bmenu-show-annotation, bookmark-bmenu-edit-annotation)
 	(bookmark-bmenu-rename, bookmark-bmenu-locate)
-	(bookmark-bmenu-relocate, bookmark-bmenu-goto-bookmark): Remove
-	unnecessary calls to `bookmark-bmenu-ensure-position'.
+	(bookmark-bmenu-relocate, bookmark-bmenu-goto-bookmark):
+	Remove unnecessary calls to `bookmark-bmenu-ensure-position'.
 
 2010-01-02  Eli Zaretskii  <eliz@gnu.org>
 
-	* emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Make
-	the lines in the generated doc string shorter.  (Bug#4668)
+	* emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
+	Make the lines in the generated doc string shorter.  (Bug#4668)
 
 2010-01-02  Ryan Yeske  <rcyeske@gmail.com>
 
@@ -140,10 +145,10 @@
 
 2010-01-02  Eli Zaretskii  <eliz@gnu.org>
 
-	* Makefile.in (bzr-update): Renamed from cvs-update.
+	* Makefile.in (bzr-update): Rename from cvs-update.
 	(cvs-update): New target for backward compatibility.
 
-	* makefile.w32-in (bzr-update): Renamed from cvs-update.
+	* makefile.w32-in (bzr-update): Rename from cvs-update.
 	(cvs-update): New target for backward compatibility.
 
 2010-01-02  Karl Fogel  <kfogel@red-bean.com>
@@ -9765,7 +9770,7 @@
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 2009  Free Software Foundation, Inc.
+    Copyright (C) 2009, 2010  Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
--- a/lisp/format.el	Sat Jan 09 19:39:05 2010 -0500
+++ b/lisp/format.el	Sun Jan 10 00:22:54 2010 -0500
@@ -222,9 +222,6 @@
 		  (multibyte enable-multibyte-characters)
 		  (coding-system buffer-file-coding-system))
 	      (with-current-buffer copy-buf
-		(set (make-local-variable
-		      'write-region-post-annotation-function)
-		     'kill-buffer)
 		(setq selective-display sel-disp)
 		(set-buffer-multibyte multibyte)
 		(setq buffer-file-coding-system coding-system))
@@ -232,6 +229,15 @@
 	      (set-buffer copy-buf)
 	      (format-insert-annotations write-region-annotations-so-far from)
 	      (format-encode-run-method to-fn (point-min) (point-max) orig-buf)
+              (when (buffer-live-p copy-buf)
+                (with-current-buffer copy-buf
+                  ;; Set write-region-post-annotation-function to
+                  ;; delete the buffer once the write is done, but do
+                  ;; it after running to-fn so it doesn't affect
+                  ;; write-region calls in to-fn.
+                  (set (make-local-variable
+                        'write-region-post-annotation-function)
+                       'kill-buffer)))
 	      nil)
 	  ;; Otherwise just call function, it will return annotations.
 	  (funcall to-fn from to orig-buf)))))