Path: utzoo!utgpu!water!watmath!clyde!att!pacbell!ames!mailrus!tut.cis.ohio-state.edu!mandrill!gatech!udel!rochester!cornell!batcomputer!sun.soe.clarkson.edu!nelson
From: nelson@sun.soe.clarkson.edu (Russ Nelson)
Newsgroups: comp.sys.ibm.pc
Subject: Re: using "/" in pathnames
Message-ID: <1009@sun.soe.clarkson.edu>
Date: 30 May 88 02:14:01 GMT
References: <1238@bingvaxu.cc.binghamton.edu>
Reply-To: nelson@sun.soe.clarkson.edu (Russ Nelson)
Organization: Clarkson University, Potsdam, NY
Lines: 40
In article <1238@bingvaxu.cc.binghamton.edu> sullivan@marge.math.binghamton.edu (fred sullivan) writes:
>Some time ago someone complained about having to use "\" in MSDOS
>pathnames. I just submitted to comp.binaries.ibm.pc a program to
>fix this. Similar programs are available as part of Dan Norton's
>package of tools (swchar) and from simtel20
>(pd1:switchar.*).
Several caveats about '/' vs '\' in pathnames:
o Theoretically, '/' is usable in pathnames at all times.
o The Set Switchar (3701h) and Get Switchar (3700h) DOS functions *are*
documented. Don't let Microsoft tell you otherwise. I will send a
photocopy of the page in Zenith's Programmers Utility Package that
documents the call to anyone who sends me an SASE.
o Command.com thinks that '/' is the switchar. Using the Set Switchar
DOS call, you can set the switchar to '-'. This lets you use '/' as
a pathname separator.
o Most PC Magazine programs and the Norton Utilities ignore the
switchar='-' setting. In certain places, they parse the pathname,
looking ONLY for '\'.
o DOS Backup is rumored to go whacko with switchar=-.
o Turbo C has two undocumented functions in its library: setswitchar(char c),
and char getswitchar(). They do just what you think they do.
o All of the software I write is guaranteed to work with switchar=-. :-)
If you are interested in writing software that works with switchar=-,
then do this:
o if (getswitchar() == '/') Pathchar = '\\' else Pathchar = '/';
o When parsing pathnames, search for '\' OR Pathchar.
o Of course, when parsing parameters, look for your switches to begin
with getswitchar().
Typically, when I find a useful PC Magazine utility, I modify it to use
switchar=-. Thank goodness that they have the good sense to publish
source!
--
char *reply-to-russ(int network) {
if(network == BITNET) return "NELSON@CLUTX";
else return "nelson@clutx.clarkson.edu"; }