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

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

bug#36927: 26.2.90; include stdarg.h is without hyperlinking on vfprintf


From: Eli Zaretskii
Subject: bug#36927: 26.2.90; include stdarg.h is without hyperlinking on vfprintf's manpage
Date: Sun, 11 Aug 2019 17:09:38 +0300

> From: VanL <van@scratch.space>
> Date: Sun, 11 Aug 2019 15:26:50 +1000
> Cc: 36927@debbugs.gnu.org
> 
> >> A possible way is to wait for all the subprocess sections to be done and 
> >> to post-process on the fully collected buffer having lines like
> > 
> > I considered this possibility, but rejected it: since we display the
> > man page even before the async subprocess exits, it would mean that
> > the displayed portion is not fontified until the very end, which would
> > render the entire idea of formatting in the background useless, and
> > would have use behave on all platforms as we do on MS-DOS.
> 
> Graphics engines use a two buffer mechanism for collecting unfinished pixels 
> backstage in one buffer and displaying finished pixels on stage in the ready 
> buffer and then they alternate in their role.

We already do that in man.el, effectively: a new chunk of the text is
first fontified and buttonized, and only afterwards displayed.

> Not having all the `#include' lines buttonized is like missing a main 
> character on stage.

I never said anything to the contrary.  I've just spent several hours
of my time fixing that.

> Of the 40 `(defun' signatures in man.el the following 6 hint of opportunities 
> in the event model's pipeline to place buttons in at 
> 
>   2) `update' or 6) `cleanup' before 3) `notify-when-ready'
> 
> 1) on line 1075: (defun Man-getpage-in-background (topic)

That's the top-level function which does the job of, among other
things, fontifying and buttonizing the man page.

> 2) on line 1127: (defun Man-update-manpage ()

Not relevant to the issue at hand: this command is for a different use
case, and it invokes 'man' synchronously anyway.

> 3) on line 1154: (defun Man-notify-when-ready (man-buffer)

This one is called when the 'man' program exits, so waiting until that
time will eliminate the advantage of running 'man' in the background.
Irrelevant.

> 4) on line 1262: (defun Man-highlight-references (&optional xref-man-type)
> 5) on line 1289: (defun Man-highlight-references0 (start-section regexp 
> button-pos target type)

These two are the ones where I made the changes (the first one just
calls the second one).

> 6) on line 1331: (defun Man-cleanup-manpage (&optional interactive)     

Isn't called in the scenario discussed here, so is irrelevant.

Not sure where you are trying to take this discussion.





reply via email to

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