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..."