Opened 12 years ago

Closed 12 years ago

Last modified 48 years ago

#389 closed bug (Fixed)

System.Cmd.system fails on Win9x

Reported by: nobody Owned by: nobody
Priority: normal Milestone:
Component: libraries/base Version: 6.4
Keywords: Cc:
Operating System: Architecture:
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


Vivian McPhail

From a ghci session (6.4):

Prelude> System.Cmd.system "dir"
*** Exception: C:\WINDOWS\SYSTEM\CMD.EXE: runCommand:
does not exist (No such file or directory)

System.Cmd.system tries to run cmd.exe but on Win9x
this is

These executables are both mentioned in the
documentation so the distinction is not unknown.

I see that the source code for System.Process.Internals
has code for detecting this, but for some reason it
does not appear to be working:

-- Find CMD.EXE (or COMMAND.COM on Win98).  We use the
same algorithm as
-- system() in the VC++ CRT (Vc7/crt/src/system.c in a
VC++ installation).
findCommandInterpreter :: IO FilePath
findCommandInterpreter = do
  -- try COMSPEC first
  catchJust ioErrors (getEnv "COMSPEC") $ \e -> do
    when (not (isDoesNotExistError e)) $ ioError e

    -- try to find CMD.EXE or COMMAND.COM
    osver <- c_get_osver
    let filename | osver .&. 0x8000 /= 0 = ""
		 | otherwise             = "cmd.exe"
    path <- getEnv "PATH"

Change History (2)

comment:1 Changed 12 years ago by nobody

Logged In: NO 

Vivian McPhail

GHC 6.4.1 works, so the bug must have been fixed!


comment:2 Changed 12 years ago by simonmar

Status: assignedclosed
Logged In: YES 

Yes, already fixed.
Note: See TracTickets for help on using tickets.