GNU bug report logs - #40888
M-x man: don't redraw good pages when not finding bad pages

Previous Next

Package: emacs;

Reported by: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>

Date: Mon, 27 Apr 2020 00:15:02 UTC

Severity: wishlist

Tags: wontfix

Found in versions 28.0.50, 26.3

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40888 in the body.
You can then email your comments to 40888 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Mon, 27 Apr 2020 00:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 27 Apr 2020 00:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: bug-gnu-emacs <at> gnu.org
Subject: M-x man: don't redraw good pages when not finding bad pages
Date: Mon, 27 Apr 2020 06:59:29 +0800
$ emacs -q
M-x man cat
M-x man dog

Why does it have to redraw the entire cat man page, before just saying
it can't find dog? Why can't it just say it can't find dog?
Just leave the good page there undisturbed.

Redrawing the cat man page makes our eyes think maybe it has got
something new, when it hasn't.

It also distracts us from noticing the failure message in the
minibuffer.

emacs-version "26.3".




Severity set to 'minor' from 'normal' Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Mon, 27 Apr 2020 06:59:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Mon, 27 Apr 2020 08:34:01 GMT) Full text and rfc822 format available.

Message #10 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Nordin <tomasn <at> posteo.net>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>,
 40888 <at> debbugs.gnu.org
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Mon, 27 Apr 2020 10:33:12 +0200
積丹尼 Dan Jacobson <jidanni <at> jidanni.org> writes:

> $ emacs -q
> M-x man cat
> M-x man dog
>
> Why does it have to redraw the entire cat man page, before just saying
> it can't find dog? Why can't it just say it can't find dog?
> Just leave the good page there undisturbed.

I think it is fixed to work like that, it does here with 28.0.50.

Maybe this news item is relevant

*** New function 'display-buffer-reuse-mode-window' is an action function
suitable for use in 'display-buffer-alist'.  For example, to avoid
creating a new window when opening man pages when there's already one,
use

(add-to-list 'display-buffer-alist
     '("\\`\\*Man .*\\*\\'" .
       (display-buffer-reuse-mode-window
        (inhibit-same-window . nil)
        (mode . Man-mode))))

under the super heading * Lisp Changes in Emacs 26.1.

> emacs-version "26.3".

Confusing then. But maybe that function was used later for the man
rendering.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Mon, 27 Apr 2020 14:55:01 GMT) Full text and rfc822 format available.

Message #13 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: Tomas Nordin <tomasn <at> posteo.net>
Cc: 40888 <at> debbugs.gnu.org
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding bad
 pages
Date: Mon, 27 Apr 2020 22:54:29 +0800
>>>>> "TN" == Tomas Nordin <tomasn <at> posteo.net> writes:
TN> under the super heading * Lisp Changes in Emacs 26.1.
Well all I know is with 26.3,
emacs or emacs -nw,
I still see a blink (the whole cat man page redrawn) when I do M-x man dog.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Mon, 27 Apr 2020 15:09:01 GMT) Full text and rfc822 format available.

Message #16 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding bad
 pages
Date: Mon, 27 Apr 2020 17:07:40 +0200
Dan Jacobson <jidanni <at> jidanni.org> writes:

> >>>>> "TN" == Tomas Nordin <tomasn <at> posteo.net> writes:
> TN> under the super heading * Lisp Changes in Emacs 26.1.
> Well all I know is with 26.3,
> emacs or emacs -nw,
> I still see a blink (the whole cat man page redrawn) when I do M-x man dog.

I can reproduce this here.

GNU Emacs 28.0.50 (build 51, x86_64-pc-linux-gnu, GTK+ Version
3.24.18, cairo version 1.16.0) of 2020-04-25

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Mon, 27 Apr 2020 20:26:02 GMT) Full text and rfc822 format available.

Message #19 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Nordin <tomasn <at> posteo.net>
To: Stefan Kangas <stefan <at> marxist.se>, 積丹尼 Dan Jacobson
 <jidanni <at> jidanni.org>
Cc: 40888 <at> debbugs.gnu.org
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Mon, 27 Apr 2020 22:25:01 +0200
Stefan Kangas <stefan <at> marxist.se> writes:

> Dan Jacobson <jidanni <at> jidanni.org> writes:
>
>> >>>>> "TN" == Tomas Nordin <tomasn <at> posteo.net> writes:
>> TN> under the super heading * Lisp Changes in Emacs 26.1.
>> Well all I know is with 26.3,
>> emacs or emacs -nw,
>> I still see a blink (the whole cat man page redrawn) when I do M-x man dog.
>
> I can reproduce this here.

Me too. I misunderstood and thought that the cat man buffer was
destroyed. But yes, I see the blink too, now I get the point.

>
> GNU Emacs 28.0.50 (build 51, x86_64-pc-linux-gnu, GTK+ Version
> 3.24.18, cairo version 1.16.0) of 2020-04-25
>
> Best regards,
> Stefan Kangas




bug Marked as found in versions 26.3. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Mon, 27 Apr 2020 21:35:01 GMT) Full text and rfc822 format available.

bug Marked as found in versions 28.0.50. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Mon, 27 Apr 2020 21:35:01 GMT) Full text and rfc822 format available.

Severity set to 'wishlist' from 'minor' Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 03 May 2020 00:57:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Wed, 05 Aug 2020 11:29:01 GMT) Full text and rfc822 format available.

Message #28 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org,
 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Wed, 05 Aug 2020 13:28:19 +0200
Stefan Kangas <stefan <at> marxist.se> writes:

>> >>>>> "TN" == Tomas Nordin <tomasn <at> posteo.net> writes:
>> TN> under the super heading * Lisp Changes in Emacs 26.1.
>> Well all I know is with 26.3,
>> emacs or emacs -nw,
>> I still see a blink (the whole cat man page redrawn) when I do M-x man dog.
>
> I can reproduce this here.

Me too...  but I don't think there's a redrawing of the cat page,
really.

What seems to be happening is that M-x man RET dog RET pops up a "*Man
dog*" buffer in a window, and then starts working in the background.

And then it can't find the dog man page, and then kills the buffer (and
window).

This makes everything redisplay, which is the blink we're seeing.

I'm not sure whether anything can be done about this -- it's an artefact
of working asynchronously, and then restoring window configurations.

Anybody got any ideas?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Thu, 06 Aug 2020 05:34:02 GMT) Full text and rfc822 format available.

Message #31 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org,
 Stefan Kangas <stefan <at> marxist.se>
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding bad
 pages
Date: Thu, 06 Aug 2020 13:32:51 +0800
>>>>> "LI" == Lars Ingebrigtsen <larsi <at> gnus.org> writes:
LI> Me too...  but I don't think there's a redrawing of the cat page,
LI> really.

LI> What seems to be happening is that M-x man RET dog RET pops up a "*Man
LI> dog*" buffer in a window, and then starts working in the background.

LI> And then it can't find the dog man page, and then kills the buffer (and
LI> window).

LI> This makes everything redisplay, which is the blink we're seeing.

LI> I'm not sure whether anything can be done about this -- it's an artefact
LI> of working asynchronously, and then restoring window configurations.

LI> Anybody got any ideas?

Well, just like we don't purchase a house for our client before we check
if he has money in the bank, even if it means waiting for business
hours, it seems the program should first make sure what it intends to
display even exists. "test -f" certainly won't slow things down that much.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Thu, 06 Aug 2020 07:19:02 GMT) Full text and rfc822 format available.

Message #34 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org,
 Stefan Kangas <stefan <at> marxist.se>
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Thu, 06 Aug 2020 09:17:48 +0200
積丹尼 Dan Jacobson <jidanni <at> jidanni.org> writes:

> Well, just like we don't purchase a house for our client before we check
> if he has money in the bank, even if it means waiting for business
> hours, it seems the program should first make sure what it intends to
> display even exists. "test -f" certainly won't slow things down that much.

What would you test to see whether the "man" command is going to be
successful or not?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Thu, 06 Aug 2020 13:42:02 GMT) Full text and rfc822 format available.

Message #37 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: larsi <at> gnus.org, 40888 <at> debbugs.gnu.org, stefan <at> marxist.se, tomasn <at> posteo.net
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding bad
 pages
Date: Thu, 06 Aug 2020 16:40:48 +0300
> From: 積丹尼 Dan Jacobson
>  <jidanni <at> jidanni.org>
> Date: Thu, 06 Aug 2020 13:32:51 +0800
> Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org,
>  Stefan Kangas <stefan <at> marxist.se>
> 
> Well, just like we don't purchase a house for our client before we check
> if he has money in the bank, even if it means waiting for business
> hours, it seems the program should first make sure what it intends to
> display even exists. "test -f" certainly won't slow things down that much.

"test -f" won't do the job, because 'man' employs a non-trivial logic
to find the man page, using environment variables, command-line
options, and hardcoded directories and file names.  IOW, there's no
easy way of knowing what to put after "test -f".

Sounds like you are suggesting that Emacs either (a) reproduces all
that 'man' logic internally (not easily done, as different
implementations vary in how they do it), or (b)rely on 'man' itself
telling whether the file exists, which AFAIK must use command-line
options that aren't necessarily available in all versions of 'man', to
say nothing about slowing down the command due to duplicate
invocation.

All that to solve a minor annoyance?  Is that really justified?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Thu, 06 Aug 2020 17:40:02 GMT) Full text and rfc822 format available.

Message #40 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: larsi <at> gnus.org, 40888 <at> debbugs.gnu.org, stefan <at> marxist.se, tomasn <at> posteo.net
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding bad
 pages
Date: Fri, 07 Aug 2020 01:39:36 +0800
>>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: 積丹尼 Dan Jacobson
>> <jidanni <at> jidanni.org>
>> Date: Thu, 06 Aug 2020 13:32:51 +0800
>> Cc: Tomas Nordin <tomasn <at> posteo.net>, 40888 <at> debbugs.gnu.org,
>> Stefan Kangas <stefan <at> marxist.se>
>> 
>> Well, just like we don't purchase a house for our client before we check
>> if he has money in the bank, even if it means waiting for business
>> hours, it seems the program should first make sure what it intends to
>> display even exists. "test -f" certainly won't slow things down that much.

EZ> "test -f" won't do the job, because 'man' employs a non-trivial logic
EZ> to find the man page, using environment variables, command-line
EZ> options, and hardcoded directories and file names.  IOW, there's no
EZ> easy way of knowing what to put after "test -f".

EZ> Sounds like you are suggesting that Emacs either (a) reproduces all
EZ> that 'man' logic internally (not easily done, as different
EZ> implementations vary in how they do it), or (b)rely on 'man' itself
EZ> telling whether the file exists, which AFAIK must use command-line
EZ> options that aren't necessarily available in all versions of 'man', to
EZ> say nothing about slowing down the command due to duplicate
EZ> invocation.

EZ> All that to solve a minor annoyance?  Is that really justified?

OK, instead of
1. Make a buffer
2. Get the stuff to put into it.
3. Put that stuff into it.

Do:
2. Get the stuff to put into it.
1. Make a buffer
3. Put that stuff into it.

That way if (2) fails, it can quit before (1) happens, instead of before
(3) happens.

Just like at theaters, one doesn't change the stage set for actor B, if
he isn't coming tonight, then have to change it back so actor A can keep
acting some more.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Thu, 06 Aug 2020 17:42:01 GMT) Full text and rfc822 format available.

Message #43 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 40888 <at> debbugs.gnu.org, stefan <at> marxist.se,
 tomasn <at> posteo.net
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Thu, 06 Aug 2020 19:41:32 +0200
積丹尼 Dan Jacobson <jidanni <at> jidanni.org> writes:

> Do:
> 2. Get the stuff to put into it.
> 1. Make a buffer
> 3. Put that stuff into it.
>
> That way if (2) fails, it can quit before (1) happens, instead of before
> (3) happens.

No, when doing async stuff that opens buffers, Emacs tries to open the
buffer first before doing anything -- because popping up a buffer
a random amount of time later can be annoying and steal keyboard focus
and stuff.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40888; Package emacs. (Sun, 20 Feb 2022 14:18:02 GMT) Full text and rfc822 format available.

Message #46 received at 40888 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 40888 <at> debbugs.gnu.org, stefan <at> marxist.se,
 tomasn <at> posteo.net
Subject: Re: bug#40888: M-x man: don't redraw good pages when not finding
 bad pages
Date: Sun, 20 Feb 2022 15:17:29 +0100
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> No, when doing async stuff that opens buffers, Emacs tries to open the
> buffer first before doing anything -- because popping up a buffer
> a random amount of time later can be annoying and steal keyboard focus
> and stuff.

So I think the conclusion here is that this is working as designed, and
I'm therefore closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) wontfix. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 20 Feb 2022 14:18:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 40888 <at> debbugs.gnu.org and 積丹尼 Dan Jacobson <jidanni <at> jidanni.org> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 20 Feb 2022 14:18:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 21 Mar 2022 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 35 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.