Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!sdcrdcf!sdcsmb!sea!eggert From: eggert@sm.unisys.com (Paul Eggert) Newsgroups: comp.text Subject: Re: troff/nroff macros, index generates "Bad Storage Allocation" Message-ID:Date: 7 Jul 88 19:51:11 GMT References: <10944@grebyn.COM> Organization: Unisys Santa Monica Lines: 19 In article <10944@grebyn.COM> karl@grebyn.com (Karl A. Nyberg) gives sample troff -me input that elicits the message "Bad storage error". The problem arises from the following definition in the input: .de ti .(x t \\$1 .)x \n% .. This redefines the builtin troff ti (temporary indent) directive, which is used by the )x macro. An endless recursion between ti and )x would ensue, except that -me here for other reasons removes the |X diversion, which (because of the nested invocation) it is currently inside. The "Bad storage error" in this case means troff is trying to execute a diversion that has been removed. Moral: don't redefine predeclared names. If you want sorted indexes, your best bet is to use .tm to send the raw data to a file, sort the file, and then run it off separately.