changeset 10700:f6f235bc26ba

(print-region-new-buffer): Return new start and end. (print-region-1): Use new calling convention.
author Richard M. Stallman <rms@gnu.org>
date Wed, 08 Feb 1995 06:35:50 +0000
parents 2713f4ff634a
children 358030fd130c
files lisp/lpr.el
diffstat 1 files changed, 15 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/lpr.el	Wed Feb 08 06:30:05 1995 +0000
+++ b/lisp/lpr.el	Wed Feb 08 06:35:50 1995 +0000
@@ -97,8 +97,8 @@
     (save-excursion
       (message "Spooling...")
       (if (/= tab-width 8)
-	  (progn
-	    (print-region-new-buffer start end)
+	  (let ((new-coords (print-region-new-buffer start end)))
+	    (setq start (car new-coords) end (cdr new-coords))
 	    (setq tab-width width)
 	    (save-excursion
 	      (goto-char end)
@@ -113,7 +113,8 @@
 				        lpr-headers-switches)
 				     switches))
 	    ;; Run a separate program to get page headers.
-	    (print-region-new-buffer start end)
+	    (let ((new-coords (print-region-new-buffer start end)))
+	      (setq start (car new-coords) end (cdr new-coords)))
 	    (apply 'call-process-region start end lpr-page-header-program
 				 t t nil
 				 (nconc (and lpr-add-switches
@@ -134,16 +135,18 @@
       (message "Spooling...done"))))
 
 ;; This function copies the text between start and end
-;; into a new buffer, makes that buffer current,
-;; and sets start and end to the buffer bounds.
-;; start and end are used free.
+;; into a new buffer, makes that buffer current.
+;; It returns the new range to print from the new current buffer
+;; as (START . END).
+
 (defun print-region-new-buffer (ostart oend)
-  (or (string= (buffer-name) " *spool temp*")
-      (let ((oldbuf (current-buffer)))
-	(set-buffer (get-buffer-create " *spool temp*"))
-	(widen) (erase-buffer)
-	(insert-buffer-substring oldbuf ostart oend)
-	(setq start (point-min) end (point-max)))))
+  (if (string= (buffer-name) " *spool temp*")
+      (cons ostart oend)
+    (let ((oldbuf (current-buffer)))
+      (set-buffer (get-buffer-create " *spool temp*"))
+      (widen) (erase-buffer)
+      (insert-buffer-substring oldbuf ostart oend)
+      (cons (point-min) (point-max)))))
 
 (defun printify-region (begin end)
   "Turn nonprinting characters (other than TAB, LF, SPC, RET, and FF)