1 /* Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ** Redistribution and use in source and binary forms, with or without
4 ** modification, are permitted provided that the following conditions
7 ** 1. Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
14 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ** POSSIBILITY OF SUCH DAMAGE.
28 #include <exec/memory.h>
30 #include <proto/exec.h>
31 #include <proto/dos.h>
34 #define VAR_FLAGS LV_VAR|GVF_GLOBAL_ONLY
36 STRPTR
GetEnvVar (CONST_STRPTR name
) {
38 if (GetVar(name
, buf
, sizeof(buf
), VAR_FLAGS
) != -1) {
42 contents
= AllocVec(size
+2, MEMF_ANY
);
44 contents
[size
+1] = '\0';
45 if (GetVar(name
, contents
, size
+1, VAR_FLAGS
) != -1) {
54 BOOL
SetEnvVar (CONST_STRPTR name
, CONST_STRPTR contents
, BOOL envarc
) {
55 if (contents
&& contents
[0]) {
56 ULONG flags
= VAR_FLAGS
;
57 if (envarc
) flags
|= GVF_SAVE_VAR
;
58 return SetVar(name
, contents
, strlen(contents
), flags
);
60 return DeleteVar(name
, VAR_FLAGS
);