Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!metro!munnari.OZ.AU!spool.mu.edu!howland.reston.ans.net!swrinde!newsfeed.internetmci.com!in2.uu.net!news.eden.com!arlut.utexas.edu!khan!jerry From: jerry@arlut.utexas.edu (Jerry Heyman) Newsgroups: alt.unix.wizards,comp.unix.admin,comp.unix.advocacy,comp.unix.aix,comp.unix.bsd.misc,comp.unix.solaris,comp.unix.ultrix Subject: Re: A challenge Followup-To: alt.unix.wizards,comp.unix.admin,comp.unix.advocacy,comp.unix.aix,comp.unix.bsd.misc,comp.unix.solaris,comp.unix.ultrix Date: 20 Dec 1995 23:49:46 GMT Organization: UT Applied Research Laboratories Lines: 49 Distribution: inet Message-ID: <4ba7eq$lrs@ns1.arlut.utexas.edu> References: <4b4q0l$pc3@news.inc.net> <4b5e2r$nma@shocker.mid.net> <4b9kvv$ria@hecate.umd.edu> NNTP-Posting-Host: khan.arlut.utexas.edu X-Newsreader: TIN [version 1.2 PL2] Xref: euryale.cc.adfa.oz.au alt.unix.wizards:2487 comp.unix.admin:36328 comp.unix.advocacy:12482 comp.unix.aix:67057 comp.unix.bsd.misc:395 comp.unix.solaris:55199 comp.unix.ultrix:26573 Ed Schmahl (ed@astro.umd.edu) wrote: : Here's a question (possibly useful, possibly stupid) that none of the : Unix wizards I know have been able to answer. Let's see if anyone on : the Net has any suggestions. Okay, I don't claim to be a wizard - but I'll give it a try... : Say we've got a (gasp) Fortran program that outputs data to a file called : R:foobar. The program compiles fine on VMS and DOS operating systems, but not : on Unix systems, which complains about the ":" as a directory tree separator. : The obvious (non wizardly) way to solve this is to modify the source code to : sense the OS that it's being compiled under and change the ":" to a "/" : when it's compiled under Unix. But is there a (wizardly) way : to force Unix, during run time, to accept R:foobar as if it was R/foobar? I assume you mean forcing your program (not Unix) to map R:foobar to R/foobar. You could define an environment variable (say FILE_SEPARATOR) which is set to either ":" or "/" depending on the system you're running on, and then add an if test in the code that says (roughly) separator = getenv(FILE_SEPARATOR) IF (separator .NE. ":") THEN spot = INDEX(filename,":") filename = substr (filename,1,spot-1) || "/" || substr(filename,spot+1) ENDIF While not eligant, it handles the simple case. Because VMS uses : as a directory separator, you could put the above in a loop to handle possible sub directories. I'm sure that someone else will come up with a better/slicker solution... : Ed Schmahl : -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= : Department of Astronomy http://www.astro.umd.edu/~ed : University of Maryland ed@astro.umd.edu : College Park, MD 20742 (301) 405-1506 : -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= jerry -- Jerry Heyman | jerry@arlut.utexas.edu Tactical Simulation Division | http://www.arlut.utexas.edu/~jerry/main.html Applied Research Laboratories of UT Austin | "Software is the difference P.O. Box 8029, Austin, TX 78713-8029 | between hardware and reality"