Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!mhuxl!houxm!hogpc!houti!ariel!vax135!cornell!uw-beaver!tektronix!hplabs!sri-unix!lcc.barry@UCLA-LOCUS.ARPA From: lcc.barry@UCLA-LOCUS.ARPA@sri-unix.UUCP Newsgroups: net.lang.c Subject: Re: 6 character external identifiers Message-ID: <2051@sri-arpa.UUCP> Date: Mon, 16-Jul-84 13:11:19 EDT Article-I.D.: sri-arpa.2051 Posted: Mon Jul 16 13:11:19 1984 Date-Received: Fri, 20-Jul-84 04:02:11 EDT Lines: 29 From: Barry Gold > > I can live with 6 character names: I'll just run programs I want > > to be ``portable'' through another program that finds identifiers > > that aren't unique to 6 characters, and replaces them with new > > made up ones that are. For example, > > > > int ReplaceString () { ... } > > int ReplaceChar () { ... } > > > > would turn into > > > > int _1ReplaceString () { ... } > > int _2ReplaceChar () { ... } > > Okay. But what if ReplaceString and ReplaceChar are to be placed in a > library? How do you guarantee that your special program will generate > _1ReplaceString for ReplaceString, and _2ReplaceChar for ReplaceChar, in > any program that tries to use these routines (e.g., in a program that > includes a function called ReplaceNode)? There's a very elegant dictionary scheme for this that we used in the Swift project at System Development Corporation. Depending on the degree of interest expressed, I'll either send it to you (Scott Stevens) for summarization or post it to this newsgroup. It may be awhile, though; it'll take several pages to describe adequately and I'm kind of busy on other projects right now. barry gold