root/branches/bud/hcf/env.d

Revision 180, 2.1 kB (checked in by Gregor, 2 years ago)

2006-12-20 gregor

hcf/process.d, hcf/env.d: Support for DMD 0.177

Line 
1 /**
2  * Helpful environment functions
3  *
4  * Authors:
5  *  Gregor Richards
6  *
7  * License:
8  *  Copyright (c) 2006  Gregor Richards
9  * 
10  *  Permission is hereby granted, free of charge, to any person obtaining a
11  *  copy of this software and associated documentation files (the "Software"),
12  *  to deal in the Software without restriction, including without limitation
13  *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
14  *  and/or sell copies of the Software, and to permit persons to whom the
15  *  Software is furnished to do so, subject to the following conditions:
16  * 
17  *  The above copyright notice and this permission notice shall be included in
18  *  all copies or substantial portions of the Software.
19  * 
20  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21  *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22  *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23  *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24  *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25  *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26  *  DEALINGS IN THE SOFTWARE.
27  */
28
29 module hcf.env;
30
31 import std.string;
32
33 import std.c.stdlib;
34
35 version (Windows) {
36     import bcd.windows.windows;
37 }
38
39 /** Get an environment variable D-ly */
40 char[] getEnvVar(char[] var)
41 {
42     version (Posix) {
43         return toString(
44             getenv(toStringz(var)));
45     } else version (Windows) {
46         char[1024] buffer;
47         buffer[0] = '\0';
48         GetEnvironmentVariableA(
49                 toStringz(var),
50                 buffer.ptr,
51                 1024);
52         return toString(buffer.ptr);
53     } else {
54         static assert(0);
55     }
56 }
57
58 /** Set an environment variable D-ly */
59 void setEnvVar(char[] var, char[] val)
60 {
61     version (Posix) {
62         setenv(toStringz(var),
63                toStringz(val),
64                1);
65     } else version(Windows) {
66         SetEnvironmentVariableA(
67             toStringz(var),
68             toStringz(val));
69     } else {
70         static assert(0);
71     }
72 }
Note: See TracBrowser for help on using the browser.