.ig
Interpolate a macro as a string from within another macro to verify that
the outer macro's arguments don't become hidden and are available to
the inner macro.  Also verify that shifting the arguments in the inner
macro affects the outer macro's arguments.
..
.cp 0
.nf
.de outer
\\*[inner]\\
..
.\" define inner macro that prints \$0.  This should print "outer".
.de inner
Macro name; this should print "outer": \\$0
..
.outer
.\"
.\" define outer macro that prints arguments, calls inner macro,
.\" and prints arguments again
.\"
.de outer
Outer name: \\$0
Outer arg count: \\n[.$]
Outer arguments: \\$@
\\*[inner]\\
Outer name: \\$0
Outer arg count: \\n[.$]
Outer arguments: \\$@
..
.\"
.\" define inner macro that shifts outer macro's arguments
.\"
.de inner
Inner macro is shifting arguments
.shift
..
.outer a b c d e
