[PATCH 22/42] find.1: access “ and ” portably
"G. Branden Robinson" <[email protected]> Tue, 18 Nov 2025 21:47:23 -0600
| Newsgroups | gmane.comp.gnu.findutils.bugs |
|---|---|
| Message-ID | <20251119034723.q2ztuwmufpmbvduc@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 ccec8cd3..199f5240 100644
--- a/find/find.1
+++ b/find/find.1
@@ -2795,7 +2795,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----- iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmkdPcoACgkQ0Z6cfXEm bc7qvA/8DhfToQ3Fssw/iMwieZW4rA/Ud1DuK0hB775pMCfHZwEEq+QgHQqaSnEW Cmu0QK7trQ2H7waLQ4WblAfLyDZKK+Nhu/Z6RIBp1Pi1Fz0mJNWCf7FYUaJStUsR e+EOIYPdfbTWQHrK5LvfT9RWkHoOHFPKgEw/dABLIOVzah6eXj0DT3eEVPXA3yCZ Lq9MrQ640vOF1A/Yj5mOAQKIr3PaTegaRaKDkAKSr1mKvXXi8QIpYShqwXMJnjTm +JNnpNrFzPh5PKm12E9PbkRzY4y//5E1jVrf9Ip4zOmPlH0GUUPkIWHSN9xB+nb4 d5yyp5bIiPFfVKAhNn2JGtuOFzKAK0w85skrhVcv/mXli5JQvI7vaxT3lrH7wLJh zW+PjM3Rncfc8/WyvTv01B5pcFeM8AQdZO3i+E8y6MxJD96AVEL0UK9UOkSy+iry qS3vcWO3VP6DdpxpIZRZ8aY/dDR5N/TYDqGc7/ZVGv0EBKLEqYRpM7ComHt33S42 /0gGVomIgQXd14zhVeUy2htkF4MdEgvAtJxudpePqZYpGv4UYsDj4xhGZ1SD+xtV uP7S+li1Pfp63TzSi8tkPyNfX3uIvZhHqb2/Kdl9boq7KvXuGmIMnqqaReuilLRA n87p81qSlQToQ4GTVWSPqXT3jKhZHU9ems0iSwNpWexi1DX3N38= =dWTx -----END PGP SIGNATURE-----