charly@altos86.Altos.COM (Charly Rhoades) (01/05/90)
I'm hacking troff code, and I come across a number of constructions that use <Ctrl-G> characters, such as the examples below: .if\w^G\\n(}Z^G .nr A 3 ' and .if^G\*(]S^G^G .ds ]S \s14\f3\*(}Z\fP\s0 and .if^G\\$1^G2^G .if !^G\\$5^G^G .ds }i\^ I suppose I'm missing something fundamental here, and I can't find any help from the manuals (hah!). Please enlighten me, or tell me from what source I might find enlightenment. Charly Rhoades Altos Computer Systems - San Jose, CA {amdahl|sun|pyramid|uunet}!altos!charly ------------------------------------------------------------------------------ If you know you have an unpleasant nature and dislike people, this is no obstacle to work. J. G. Bennett ------------------------------------------------------------------------------
cosell@bbn.com (Bernie Cosell) (01/05/90)
charly@altos86.Altos.COM (Charly Rhoades) writes: }I'm hacking troff code, and I come across a number of constructions }that use <Ctrl-G> characters, such as the examples below: Dunno about the first two, but this one: } .if^G\\$1^G2^G .if !^G\\$5^G^G .ds }i\^ is pretty standard usage. The problem is that this part of troff uses character delimited strings. So in order to work, you have to guarantee that the delimiter doesn't appear *in* the strings themselves. Now, this is mostly trivial when you are delmiting your own strings, but it becomes a bit problematic when you're writing a macro that is going to take a string from \\$1. What you have to do is pick an unlikely character to use as the in-the-macro delimiter. We used '~' for a while, and while it was readable it really wasn't acceptable. control-G is a fairly conventional char to use for that purpose. /Bernie\