[Haskell-cafe] Setting environment variables on Windows

Sönke Hahn shahn at cs.tu-berlin.de
Wed Oct 14 10:50:56 EDT 2009


On Friday 09 October 2009 07:19:30 pm Peter Verswyvelen wrote:
> Mmm, that seems like a shortcoming.
> 
> Well, you could just wrap the C functions yourself, like this (two
> possibilities, no error checking yet, quick hack):
> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=10565#a10565
> 
> Note that using SetEnvironmentVariable does not seem to be compatible with
> getEnv, but calling _putenv does work.

Both solutions seem to work on my system. Using c_putenv doesn't require 
linking additional libraries in my case, so i'm going with that. You've been 
very helpful, thank you very much.

> 
> So I guess someone should add this setEnv wrapper to the System.Environment
> module? Ticket?

Once i figure out, how to implement functions differently for linux and windows, 
i'll write a ticket with an example module based on your suggestion.

Again, many thanks,

Sönke

> 
> On Fri, Oct 9, 2009 at 5:37 PM, Sönke Hahn <shahn at cs.tu-berlin.de> wrote:
> > Hi!
> >
> > I need to set an environment variable from Haskell and i would like to do
> 
> that
> 
> > cross-platform. There is System.Posix.Env.setEnv, which does exactly,
> > what
> 
> i
> 
> > want on Linux. There is the module System.Environment, which seems to be
> > cross-platform, but it does not contain functions to manipulate the
> > environment (, just to inspect it). At first glance, I didn't find
> 
> anything
> 
> > relevant in the sub-modules of System.Win32.
> >
> > Is this just not implemented? How could i implement it myself?
> >
> > Grateful for any comment,
> >
> > Sönke
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> 


More information about the Haskell-Cafe mailing list