> Date: Sat, 08 Nov 2014 14:36:35 +0100 (CET)
> Cc: groff@gnu.org
> From: Werner LEMBERG <w...@gnu.org>
> 
> >   .lf 1 man\man1\chem.1
> 
> This is a feature of GNU troff (and I guess that other troff
> implementations are doing it similarly): Arguments of `.lf' are
> handled the normal troff way, including expansion.  For example, you
> might write
> 
>   .ds foo /usr/local
>   ...
>   .lf 1 \*[foo]
> 
> A side consequence is that stuff like `\m' is interpreted as escape
> sequences.

Right, that was also my conclusion from reading troff/input.cpp.

> > One possible solution to this is to convert all backslashes to
> > forward slashes '/' when writing the .lf directive.
> 
> This would be the best solution, I think.

OK, will do.

Is there a good place to put the function that will do this?  Or
should I just have it in each place that needs it?

> > Unfortunately, there are quite a few places where .lf is emitted,
> > [...]
> 
> Indeed.  I guess that gnulib already offers a canonical function to
> convert file names into a standard form with forward slashes, so it's
> unfortunate that we are bitten by this problem right now since we will
> switch to standard autotools in the very near future (cf. branch
> `origin/automake3')

I don't think this is relevant (unless I again am missing something):
the issue here is not canonicalization of file names, but rather
conversion of each backslash in a file name to a forward slash.  This
can be handled by a simple loop.

Or did you mean something else?

Reply via email to