[PATCH 20/40] find/find.1: Access “ and ” portably.

"G. Branden Robinson" <[email protected]> Thu, 13 Nov 2025 10:48:34 -0600
Newsgroups gmane.comp.gnu.findutils.bugs
Message-ID <20251113164834.m7g56d2tmrul6466@illithid>
The `\(lq` and `\(rq` and special character escape sequences are not
universally portable.

Traditionally, AT&T troff did not bother to identify these special
characters at all; it was apparently felt that adjacently setting
directional single quotes sufficed.  You can discern this fact in
materials typeset by AT&T troff by observing what one might call
generous kerning of these glyphs when used as "double" quotes.

However, someone at the Berkeley CSRG had a brainwave, and for 4BSD in
1980, added strings named `lq` and `rq` to the man(7) package so that
man pages could access double quotes by whatever means the underlying
implementation had for realizing them.  This excellent idea made it into
Unix System V (1988/9), so that every surviving troff implementation
known to me, including DWB and Solaris 10, supports them--save one.  The
exception is Plan 9.  Fortunately, the Plan 9 from User Space
("plan9port") project accepted a patch from me on 10 October to add
support there as well.[1]

Like the \*" string, \*(lq and \*(rq should not be used in quoted macro
arguments if one desires portability to AT&T troff-descended formatters
(other than Heirloom Doctools troff); if the implementation defines
these strings such that their interpolations contain `"`, undesired
output is the likely result.

[1] https://github.com/9fans/plan9port/pull/735
---
 find/find.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/find/find.1 b/find/find.1
index 85fe8251..a3fb3ce4 100644
--- a/find/find.1
+++ b/find/find.1
@@ -2792,7 +2792,7 @@ .SS Operator precedence surprises
 and when there is no operator specified between tests,
 .B \-a
 is assumed.
-.SS \(lqpaths must precede expression\(rq error message
+.SS \*(lqpaths must precede expression\*(rq error message
 .nf
 .B $ find .\& \-name *.c \-print
 find: paths must precede expression
-- 
2.30.2
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmkWC+IACgkQ0Z6cfXEm
bc7AwQ/9EiHOZSM+q4aI+3gCJEmub6wkPiaC1ZzZJmH3z/6laspB9mUDw3QMOiCf
90PkVv2WIleVoFfl/rLXCzzLtpexoVVae0brZN8uJSIDJOViQ7TXJWXDOWdzZEjG
ywKgQHqnH3cnVtZxpjVdxpUp9NhAAcPFeRXmDiRDEukzU8zYt7jQkOhFmRckEsg3
8TldCMZ61WmWcoc2+FSnQNZP8TNEEFcMaxIFipfq25xJ1Y7X8BE9uoOYUtI4SLaj
1pu+KBH1+JZKsOtmCLNj1ACx1tj9bUgqOJjYeTpeqoYXOfM1w0oWWHcAz7hAHnFw
AOqmkFnh6KWlDG6PauotZyWsj8awng8uNwYcKiONRLvoOxftfuiPqD8IojIC1HRE
n1Sc67wrZCJf1d24/Yd24wu818rVdz4anEG63jVKorcubFrc9r2VgIrRp7MErVc1
+wJXhgXiALvStlTO05WWlLTsp06r9xL6AM4gFlbyRn1QkHTUSnPhz7exYoXsFwiK
axqtENF7TyHx5qNbHmS356jdktHEonqK+mUoq3eJWVaiLlkns7oYq0uzXh5Smo95
Xn38eRB9HVv1wr2anIEUQYgxFQAOe6U1RBwNEaQmokcIXao5vN7k9SfTS5nUJAN3
NrWp57NFBI+jpQteiTAlDHhOrYoF2KZT2GHLO8qhO8rHiAe8PPw=
=HCxh
-----END PGP SIGNATURE-----