emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#17831: closed (24.4.50; bad default value for `Man


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#17831: closed (24.4.50; bad default value for `Man-width')
Date: Wed, 02 Jul 2014 00:19:07 +0000

Your message dated Wed, 02 Jul 2014 02:57:42 +0300
with message-id <address@hidden>
and subject line Re: bug#2588: 23.0.90; Man buffer improperly formatted - wrong 
width
has caused the debbugs.gnu.org bug report #2588,
regarding 24.4.50; bad default value for `Man-width'
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
2588: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2588
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.4.50; bad default value for `Man-width' Date: Sun, 22 Jun 2014 21:30:45 +0800
Man-width defaults to the window width at the time of running `man'. But
if the frame is split horizontally it usually leads to a view with the
right-hand-side half unviewable.

Leo



--- End Message ---
--- Begin Message --- Subject: Re: bug#2588: 23.0.90; Man buffer improperly formatted - wrong width Date: Wed, 02 Jul 2014 02:57:42 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
Version: 24.4.50

>> The problem is, AFAICS, that with pop-up-frames `man' is run _before_
>> the frame to display its output is created.  To do what you want we
>
> We could try to fix this: I think it would actually be desirable to pop
> up the frame immediately and then asynchronously fill it as man's output
> comes in.

Now this is implemented in bug#17831 merged with bug#2588, but to fix
the original issue of running `man' with pop-up-frames in a frame that
is 30 chars wide, required an additional change (now installed as well)
to select the window after popping up the frame to get its real width
(since display-buffer in Man-notify method `friendly' doesn't select
the window):

=== modified file 'lisp/man.el'
--- lisp/man.el 2014-05-09 07:02:00 +0000
+++ lisp/man.el 2014-07-01 23:54:32 +0000
@@ -1030,15 +1030,22 @@ (defmacro Man-start-calling (&rest body)
     ;;               ther is available).
     (when (or window-system
              (not (or (getenv "MANWIDTH") (getenv "COLUMNS"))))
-      ;; This isn't strictly correct, since we don't know how
-      ;; the page will actually be displayed, but it seems
-      ;; reasonable.
+      ;; Since the page buffer is displayed beforehand,
+      ;; we can select its window and get the window/frame width.
       (setenv "COLUMNS" (number-to-string
                         (cond
                          ((and (integerp Man-width) (> Man-width 0))
                           Man-width)
-                         (Man-width (frame-width))
-                         ((window-width))))))
+                         (Man-width
+                          (if (window-live-p (get-buffer-window 
(current-buffer) t))
+                              (with-selected-window (get-buffer-window 
(current-buffer) t)
+                                (frame-width))
+                            (frame-width)))
+                         (t
+                          (if (window-live-p (get-buffer-window 
(current-buffer) t))
+                              (with-selected-window (get-buffer-window 
(current-buffer) t)
+                                (window-width))
+                            (window-width)))))))
     ;; Since man-db 2.4.3-1, man writes plain text with no escape
     ;; sequences when stdout is not a tty.     In 2.5.0, the following
     ;; env-var was added to allow control of this (see Debian Bug#340673).


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]