[net.micro.pc] PC-DOS 3.1 strangeness

nather@utastro.UUCP (Ed Nather) (01/28/86)

In upgrading from PC-DOS 2.1 to 3.1 I expected some incompatibilities, but
I have really only encountered one, and it baffles me.

I use the (undocumented) DOS function 37h to reset "switchar"
to the character "\" so I can use the "/" as a path separator, as in Unix.
I also use the Microsoft C v3.0 compiler, which uses environment strings
to find things, and uses the PATH string to locate its executable code.
All this worked fine under PC-DOS 2.0 and 2.1.  In moving to DOS 3.1, I
find the driver programs (cl.exe and msc.exe) are unable to follow a path
which uses "/" as a separator; it only works with the separator "\".  Yet
exactly the same program works correctly under DOS 2.x.  All the programs
I have which use the DOS functions "Find First" and "Find Next" work as
before under 3.1.

Does anyone know why there should be this difference between the two
versions of PC-DOS?  Is there any way it might be fixed?

Any help would be much appreciated.  I await your wisdom ...

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.UTEXAS.EDU

nather@utastro.UUCP (Ed Nather) (01/28/86)

A bit of experimenting has localized the problem I described in the
referenced message:  the PATH variable I use on a 2-floppy PC with a
RAMdisk as drive C has the entry

     PATH=C:/;A:/bin; ...

which causes no trouble to the DOS 2.1 command.com or to the Microsoft
compile&link program cl.exe under DOS 2.x.  Under DOS 3.1, however,
cl.exe seems to think the "/;" character pair is a switch, and it
is unable to use the PATH string beyond that point.  The DOS 3.1
command.com is happy with it, however.  There is a kludge-fix:  

     PATH=C:/.;A:/bin ...

seems to work, at least under DOS 3.1; cl.exe finds things in a:/bin,
and other programs find things in the root file of RAMdisk drive C.

I guess I'm still confused about the problem -- why should there be a
difference between the way cl.exe follows a path under DOS 3.1 and the
way it follows the SAME path under DOS 2.1?

"The path to enlightenment is a path of contemplation, not a path
of struggle ..."
                                   Gautama Buddha

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.UTEXAS.EDU

davidsen@steinmetz.UUCP (Davidsen) (02/03/86)

The Microsoft linker always uses "/"s for switches. I am not sure if there is
more to the problem than that, my version seems to work with "/"s in the source paths.
-- 
	-bill davidsen

	seismo!rochester!steinmetz!--\
       /                               \
ihnp4!              unirot ------------->---> crdos1!davidsen
       \                               /
        chinet! ---------------------/        (davidsen@ge-crd.ARPA)

"It seemed like a good idea at the time..."