String definitions that embed the `"` character cannot portably be used
(in full generality) in macro arguments.  If incautiously used in AT&T
troffs, they can cause misrenderings like this:

" .}S 3 1 "" " "tput"" "" "" "" ""

...as in, the foregoing text appears literally in the formatted man
page.

https://www.gnu.org/software/groff/manual/groff.html.node/Calling-Macros.html

Examples of corrected rendering with DWB 3.3 nroff
==================================================

-            Note: Redirecting the output of  tput init or  tput reset to
-            a file will capture only part of their actions.  Changes to
-            the terminal modes are not affected by file descriptor redi-
-            rection, since the terminal modes are altered via ioctl(2).
+            Note: Redirecting the output of "tput init" or "tput reset"
+            to a file will capture only part of their actions.  Changes
+            to the terminal modes are not affected by file descriptor
+            redirection, since the terminal modes are altered via
+            ioctl(2).

           Aliases
             If tput is invoked via link with any of the names clear,
             init, or reset, it operates as if run with the corresponding
             (pseudo-)capability operand.  For example, executing a link
-            named reset that points to tput has the same effect as  tput
-            reset
+            named reset that points to tput has the same effect as "tput
+            reset".
...
-            -x       prevents  tput clear from attempting to clear the
+            -x       prevents "tput clear" from attempting to clear the
                      scrollback buffer.
...
             tput clear cup 10 10 bold
-                 Perform the same actions as the foregoing  tput -S
+                 Perform the same actions as the foregoing "tput -S"
                  example.
---
 man/tput.1 | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/man/tput.1 b/man/tput.1
index eb29fb442..3a0b4d835 100644
--- a/man/tput.1
+++ b/man/tput.1
@@ -36,9 +36,9 @@
 .\}
 .el \{\
 .ie t .ds `` ``
-.el   .ds `` ""
+.el   .ds `` ""\" cannot be used in quoted macro argument w/ AT&T troff
 .ie t .ds '' ''
-.el   .ds '' ""
+.el   .ds '' ""\" cannot be used in quoted macro argument w/ AT&T troff
 .\}
 .
 .de bP
@@ -279,9 +279,13 @@ .SS Operands
 .PP
 .I Note:
 Redirecting the output of
-.RB \%\*(`` "@TPUT@ init" \*(''
+\*(``\c
+.B "@TPUT@ init\c"
+\*(''
 or
-.RB \%\*(`` "@TPUT@ reset" \*(''
+\*(``\c
+.B "@TPUT@ reset\c"
+\*(''
 to a file will capture only part of their actions.
 Changes to the terminal modes are not affected by file descriptor
 redirection,
@@ -302,7 +306,9 @@ .SS Aliases
 that points to
 .B \%@TPUT@
 has the same effect as
-.RB \%\*(`` "@TPUT@ \%reset" \*(''.
+\%\*(``\c
+.B "@TPUT@ \%reset\c"
+\*(''.
 .PP
 This feature was introduced by
 .I \%ncurses
@@ -419,7 +425,9 @@ .SH OPTIONS
 .TP
 .B \-x
 prevents
-.RB \%\*(`` "@TPUT@ clear" \*(''
+\%\*(``\c
+.B "@TPUT@ clear\c"
+\*(''
 from attempting to clear the scrollback buffer.
 .SH EXIT STATUS
 Normally,
@@ -1068,7 +1076,9 @@ .SH EXAMPLES
 .TP
 .B "@TPUT@ clear cup 10 10 bold"
 Perform the same actions as the foregoing
-.RB \%\*(`` "@TPUT@ \-S" \*(''
+\%\*(``\c
+.B "@TPUT@ \-S\c"
+\*(''
 example.
 .SH SEE ALSO
 \fB\%@CLEAR@\fP(1),
-- 
2.30.2

Attachment: signature.asc
Description: PGP signature

Reply via email to