Hi Frank,

On Fri, 2021-07-30 at 08:47 -0400, Frank Ch. Eigler wrote:
> > aha, ok, I understand now. This makes testing in-tree a bit more
> > difficult. So the .so ./debuginfod-client-config.7 does work if you
> > got
> > into the doc/ subdirectory, then man ./debuginfod-find.1 does show
> > the
> > included chunks. But for the installed tree it should be .so man7
> > debuginfod-client-config.7 ?
> 
> It'd probably be ".so ../man7/debuginfod-client-config.7" or
> something.

I cannot find the canonical documentation on this, but it looks like
the search path is the current directory plus MANPATH, so I am not sure
.. would work. man7 (and I think it should be space, not slash) should
work as long its parent is either the current directory or in the
MANPATH. But all this is a little fuzzy.

Maybe we need man1, man3, man7, etc subdirs in doc to make it also work
in-tree (but then buildir != srcdir probably is still borken). It might
be fine if it only works in the install tree though. Just don't know
how to write tests to double check things are fine.

> > That is interesting, then we could make debuginfod-client-config.7
> > into a real man page and include only the actual contents. I am not
> > completely sure I understand how this works though. I hope there is
> > some man/troff documentation that explains this trick?
> 
> Documentation?  Nah, let's reverse-engineer:
> 
> NROFF                           CPP
> 
> builtins.1:
> 
> .nr zZ 1                        #define zZ 1
> .so bash.1                      #include <bash.1>
> 
> bash.1:
> 
> .if \n(zZ=1 .ig zZ              #ifndef zZ
>   [...]                            [...]
> .zZ                             #else
>   [...]                            [...]

OK, that looks workable (although slightly ugly).

Alice, would you be able to rewrite the split man pages using the above
trickery? Please do feel to ask for more info and we'll try to figure
something out.

Thanks,

Mark

Reply via email to