Re: [PATCH AMENDED] help: add "man.viewer" config var to use "woman" or "konqueror"
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Mar 3, 2008, 07:38 UTC
- Message-ID
- <200803030838.48976.chriscool@tuxfamily.org>
- In-Reply-To
- <7vir079ong.fsf@gitster.siamese.dyndns.org>
Le samedi 1 mars 2008, Junio C Hamano a écrit :
Show 13 quoted lines
> Xavier Maillard <xma@gnu.org> writes: > > This patch makes it possible to view man pages using other tools > > than the "man" program. It also implements support for emacs' > > "woman" and konqueror with the man KIO slave to view man pages. > > > > Note that "emacsclient" is used with option "-e" to launch "woman" > > on GNU emacs and this works only on versions >= 22. > > > > Signed-off-by: Christian Couder <chriscool@tuxfamily.org> > > Amended-by: Xavier Maillard <xma@gnu.org> > > When you do something like this, please CC the original author > to keep him in the loop.
Yes please.
Show 14 quoted lines
> I really do not think doing it this way would scale. What if > somebody prefers konq under X, and otherwise woman but wants to > fall back to man? > > I do not think checking emacsclient version _every time_ is a > good idea either, but for the sake of discussing an alternative > approach, let's say that is fine. > > How about allowing multi-valued man.viewer like this: > > [man] > viewer = woman > viewer = konqueror > viewer = man
I tried the above in my .git/config and I get:
$ git config man.viewer woman error: More than one value for the key man.viewer: konqueror error: More than one value for the key man.viewer: man
so I guess this can work only in C.
Show 21 quoted lines
> and have:
>
> static struct man_viewer {
> char *name;
> void (*exec)(const char *);
> } viewers[] = {
> { "woman", exec_woman },
> { "konqueror", exec_konqueror },
> { "man", exec_man },
> { NULL, },
> };
>
> Then you can iterate the man.viewer values, ask the viewer's
> exec() function to show the page (or return when it is not
> in an environment that it can be useful).
>
> show_man_page() would become:
>
> for (each viewer in user's config)
> viewer.exec(page); /* will return when unable */
> die("no man viewer handled the request");Great idea, I will see if I can do that in some latter patches.
Thanks, Christian.