Subject: bug#7488: 24.0.50; format-decode-region acts on whole buffer, not on region

From: Lawrence Mitchell <[email-masked]>
Date: Mon, 29 Nov 2010 11:27:40 +0000

Drew Adams wrote:
> emacs -Q

> ;; On Windows, load cygwin-mount.el and setup-cygwin.el, from Emacs wiki:
> http://www.emacswiki.org/cgi-bin/wiki?action=index;match=%5C.(el%7Ctar)(%5C.gz)%
> 3F%24

format-decode-run-method seems to ignore the values of its region
arguments (assuming the buffer is narrowed maybe?)

Here's a patch:

>From d1bc7ad648e75979169765d6384314a21c9dcf17 Mon Sep 17 00:00:00 2001
From: Lawrence Mitchell <[email-masked]>
Date: Mon, 29 Nov 2010 11:24:57 +0000
Subject: [PATCH] Make format-decode-run-method pay attention to region arguments.

Instead of assuming a narrowed buffer and apply the decoding method to
the whole buffer, use the passed in values of FROM and TO.
---
 lisp/ChangeLog |    6 ++++++
 lisp/format.el |    3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 58fce7a..9a12f5e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-29  Lawrence Mitchell  <[email-masked]>
+
+	* format.el (format-decode-run-method): Use values of FROM and TO
+	rather than point-min and point-max to operate on the region
+	correctly.
+
 2010-11-15  Agustín Martín  <[email-masked]>
 
 	* textmodes/flyspell.el (flyspell-generic-progmode-verify):
diff --git a/lisp/format.el b/lisp/format.el
index 0436187..b4277ef 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -181,8 +181,7 @@ it should be a Lisp function.  Decoding is done for the given BUFFER."
 	;; We should perhaps go via a temporary buffer and copy it
 	;; back, in case of errors.
 	(if (and (zerop (save-window-excursion
-			  (shell-command-on-region (point-min) (point-max)
-						   method t t
+			  (shell-command-on-region from to method t t
 						   error-buff)))
 		 ;; gzip gives zero exit status with bad args, for instance.
 		 (zerop (with-current-buffer error-buff
-- 
1.7.2.2.180.g9841a.dirty