At 2019-02-27T11:21:14+0100, Michael Kerrisk (man-pages) wrote: > Bjarni, > > On 1/1/19 10:51 PM, Bjarni Ingi Gislason wrote: > > Use '\e' for printing the escape character, not '\\'. > > You do not say why such a change is desirable. *roff escape sequences may sometimes look like C escapes, but that is misleading. *roff is in part a macro language and that means recursive expansion to arbitrary depths. You can get away with "\\" in a context where no macro expansion is taking place, but try to spell a literal backslash this way in the argument to a macro and you will likely be unhappy with results. Try viewing the attached file with "man -l". "\e" is the preferred and portable way to get a portable "escape literal" going back to CSTR #54, the original Bell Labs troff paper. groff(7) discusses the issue: \\ reduces to a single backslash; useful to delay its interpretation as escape character in copy mode. For a printable backslash, use \e, or even better \[rs], to be independent from the current escape character. As of groff 1.22.4, groff_man(7) does as well: \e Widely used in man pages to represent a backslash output glyph. It works reliably as long as the .ec request is not used, which should never happen in man pages, and it is slightly more portable than the more exact ‘\(rs’ (“reverse solidus”) escape sequence. People not concerned with portability to extremely old troffs should probably just use \(rs (or \[rs]), as it means "the backslash glyph", not "the glyph corresponding to whatever the current escape character is". Regards, Branden
.TH skel 1 2018-07-09 "skeltools 0.1" .SH Name skel \- skeletal man page for experiments .SH Description Foos are always in bar. .SH "Section Heading with Double-Backslash Seq\\uence" How did that work out?
Attachment:
signature.asc
Description: PGP signature