Hugs, Mac OS X 10.1.5, and pathnames
Hamilton Richards
hrichrds@swbell.net
Sat, 31 Aug 2002 16:20:45 -0500
In OS X, pathnames have two distinct syntaxes. The GUI uses the pre-X
syntax, in which a pathname begins with a volume name and the
separator is `:', as in
Macintosh HD:Users:ham:Documents:whatever.hs
In the Darwin (i.e., unix) command-line "underworld", a pathname
begins with /Volumes, spaces are escaped with `\', and the separator
is `/', as in
/Volumes/Macintosh\ HD/Users/ham/Documents/whatever.hs
When you drag a file icon onto the command line, Terminal does the
right thing-- it converts the pathname from the GUI syntax to the
Darwin syntax, and utilities such as more work just as they should.
Hugs, however, doesn't do so well. For example,
Prelude> :l /Volumes/Macintosh\ HD/Users/ham/Documents/whatever.hs
Reading file "/Volumes/Macintosh\":
ERROR "/Volumes/Macintosh\" - Unable to open file "/Volumes/Macintosh\"
Quoting the pathname changes the problem, but doesn't cure it:
Prelude> :l "/Volumes/Macintosh\ HD/Users/ham/Documents/whatever.hs"
ERROR - Missing `\' terminating string literal gap
Apparently what's confusing Hugs is the `\', because removing it
cures the problem:
Prelude> :l "/Volumes/Macintosh HD/Users/ham/Documents/whatever.hs"
Reading file "/Volumes/Macintosh HD/Users/ham/Documents/whatever.hs":
Is this problem unavoidable, or is it just an oversight?
Thanks,
--Ham
--
------------------------------------------------------------------
Hamilton Richards Department of Computer Sciences
Senior Lecturer Mail Code C0500
512-471-9525 The University of Texas at Austin
Taylor Hall 5.138 Austin, Texas 78712-1188
ham@cs.utexas.edu hrichrds@swbell.net
------------------------------------------------------------------