[Haskell-cafe] Re: HS-Plugins 1.0 chokes on simple test,
WinXP GHC-6.6
Iain Alexander
ia at stryx.demon.co.uk
Mon Mar 12 21:28:37 EDT 2007
> > I'm running cygwin on WinXP and got a different failure (below) from
> the
> > latest darcs hs-plugins. Line 11 is right after the TOP definition.
> Does
> > anyone have a theory about what's going on here? - Conal
>
> looks like the TOP and GHC_LIB_PATH values are the output of external
> commands, such as ghc --print-libdir, and someone forgot to remove the
> linefeeds from the output before inserting it in the script?
>
Recent versions of cygwin bash do not by default handle DOS/Windows-style line
endings well. See any recent bash release notice on cygwin-announce for
details, but here are the juicy bits.
According to Eric Blake
volunteer cygwin bash maintainer
<quote>
4. This version of bash has a cygwin-specific shell option, named "igncr" to
force bash to ignore \r, independently of cygwin's mount style. As of bash-
3.2.3-5, it controls regular scripts, command substitution, and sourced files.
I hope to convince the upstream bash maintainer to accept this patch into the
future bash 4.0 even on Linux, rather than keeping it a cygwin-specific patch,
but only time will tell. There are several ways to activate this option:
4a. For a single affected script, add this line just after the she-bang:
(set -o igncr) 2>/dev/null && set -o igncr; # comment is needed
4b. For a single script, invoke bash explicitly with the shopt, as in
'bash -o igncr ./myscript' rather than the simpler './myscript'.
4c. To affect all scripts, export the environment variable BASH_ENV,
pointing to a file that sets the shell option as desired. Bash will
source this file on startup for every script.
4d. Added in the bash-3.2-2 release: export the environment variable SHELLOPTS
with igncr included in it. It is read-only from within bash, but you can set
it before invoking bash; once in bash, it auto-tracks the current state of 'set
-o igncr'. If exported, then all bash child processes inherit the same option
settings; with the exception added in 3.2.9-11 that certain interactive options
are not inherited in non-interactive use.
5. You can also experiment with the IFS variable for controlling how bash will
treat \r during variable expansion.
</quote>
--
Iain Alexander ia at stryx.demon.co.uk
More information about the Haskell-Cafe
mailing list