DEADSOFTWARE

941b8e0b78d548ef5b90cc1f71341e6c001f4853
[d2df-sdl.git] / src / shared / envvars.pas
1 (* Copyright (C) Doom 2D: Forever Developers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *)
16 {$INCLUDE a_modes.inc}
17 {.$MODE OBJFPC}
18 unit envvars;
20 interface
22 uses SysUtils, CTypes;
24 function SetEnvVar(const VarName: AnsiString; const VarVal: AnsiString): Boolean;
26 implementation
28 {$IFDEF WINDOWS}
29 uses Windows;
30 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
31 begin
32 if (SetEnvironmentVariable(VarStr, VarVal)) then
33 Result := 0
34 else
35 Result := -1;
36 end;
37 {$ELSE}
38 {$LINKLIB c}
39 const clib = 'c';
40 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
41 cdecl; external clib name 'setenv';
42 {$ENDIF}
44 function SetEnvVar(const VarName: AnsiString; const VarVal: AnsiString): Boolean;
45 begin
46 Result := (setenv(PChar(VarName), PChar(VarVal), 1) = 0);
47 end;
49 end.