> 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?