Subject: bug#18498: closed (Re: bug#18498: 24.3.93; [PATCH] Fix fit-window-to-buffer's buffer width calculation)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 18 Sep 2014 12:10:04 +0000

Your bug report

#18498: 24.3.93; [PATCH] Fix fit-window-to-buffer's buffer width calculation

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18498: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18498
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18498: 24.3.93; [PATCH] Fix fit-window-to-buffer's buffer width calculation
From: martin rudalics <[email-masked]>
To: "Kan-Ru Chen (陳侃如)" <[email-masked]>, [email-masked]
Date: Thu, 18 Sep 2014 14:08:59 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Patch:

Committed in revision 117506 of the emacs-24 branch.  Bug closed.

Thank you very much, martin

Subject: 24.3.93; [PATCH] Fix fit-window-to-buffer's buffer width calculation
From: Kan-Ru Chen (陳侃如) <[email-masked]>
To: [email-masked]
Date: Thu, 18 Sep 2014 17:46:55 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

To reproduce:

emacs -Q --eval '(progn (setq fit-window-to-buffer-horizontally t)
                        (set-frame-size nil 120 20)
                        (with-current-buffer-window "*scratch*" nil nil
                          (insert (make-string 20 ?x))
                          (insert (make-string 10 ?\n))
                          (insert (make-string 90 ?x))
                          (split-window-horizontally)
                          (fit-window-to-buffer)
                          (message "window width: %d" (window-width))))'

Expected result: window width: 90
Actual result: window width: 20

Patch:

>From 3bcdeb847e579981229b065b8dbd01722a94fc18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kan-Ru=20Chen=20=28=E9=99=B3=E4=BE=83=E5=A6=82=29?=
 <[email-masked]>
Date: Thu, 18 Sep 2014 17:36:54 +0800
Subject: Fix fit-window-to-buffer's buffer width calculation

 * window.el (fit-window-to-buffer): When counting buffer width,
 count the whole visible buffer.  Correctly convert the body-height
 to pixel size for window-text-pixel-size.

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c82b6f7..9096b92 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,8 +1,14 @@
+2014-09-18  Kan-Ru Chen  <[email-masked]>
+
+	* window.el (fit-window-to-buffer): When counting buffer width,
+	count the whole visible buffer.  Correctly convert the body-height
+	to pixel size for window-text-pixel-size.
+
 2014-09-14  Glenn Morris  <[email-masked]>
 
 	* image.el (image-multi-frame-p): Fix thinko - do not force
 	a delay if none was specified.  (Bug#18334)
 
 2014-09-12  Kan-Ru Chen  <[email-masked]>
 
 	* window.el (fit-window-to-buffer): Doc fix.
diff --git a/lisp/window.el b/lisp/window.el
index 4dc30ff..c547725 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -7296,17 +7296,17 @@ accessible position."
 		 (width (+ (car (window-text-pixel-size
 				 nil (window-start) (point-max)
 				 (frame-pixel-width)
 				 ;; Add one char-height to assure that
 				 ;; we're on the safe side.  This
 				 ;; overshoots when the first line below
 				 ;; the bottom is wider than the window.
 				 (* body-height
-				    (if pixelwise char-height 1))))
+				    (if pixelwise 1 char-height))))
 			   (window-right-divider-width))))
 	    (unless pixelwise
 	      (setq width (/ (+ width char-width -1) char-width)))
 	    (unless (= width body-width)
 	      (window-resize-no-error
 	       window
 	       (- (max min-width
 		       (min max-width
-- 
1.9.1