Path: utzoo!attcan!uunet!slxsys!jclark!jjc From: jjc@jclark.UUCP (James Clark) Newsgroups: comp.text Subject: Re: tbl error message:line 202: Too many text block diversions Message-ID: Date: 1 Jul 89 09:17:14 GMT References: <19811@cos.com> <809@dtscp1.UUCP> Sender: news@jclark.UUCP Organization: None Lines: 31 In-reply-to: scott@dtscp1.UUCP's message of 29 Jun 89 04:52:17 GMT In article <809@dtscp1.UUCP> scott@dtscp1.UUCP (Scott Barman) writes: One of the problems is they all share the same namespace. Therefore if you have a diversion named ZZ you cannot have a macro named ZZ as well. This makes sense considering how diversions are used, but you cannot define a string as ZZ without doing strange things to troff! NOTE: Yes, I realize this is an argument for long names, but it is also one for a separate namespaces. Separate name spaces for diversions, strings and macros are not a good idea. It is an important feature of troff that diversions, strings and macros not only share the same name space but are the same thing: for example, you can use `as' or `am' on something defined with `di', or you can interpolate with `\*' something defined with `di' or `de' For a good example of how this can be useful have a look at how the man TP macro works. It relies on the fact that you can do something like this: .di x Label .br .di .ds y \*x\ \*y Paragraph starts here on the same line as the label. It is this sort of thing that makes implementing a troff that is input compatible with the original not as easy as you might think. James Clark jjc@jclark.uucp