DEADSOFTWARE

fixed pointer arithmetics; headless uses dummy audio with sdl_mixer
[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 {$MODE OBJFPC}
17 unit envvars;
19 interface
21 uses SysUtils, CTypes;
23 function SetEnvVar(const VarName: AnsiString; const VarVal: AnsiString): Boolean;
25 implementation
27 {$IFDEF WINDOWS}
28 uses Windows;
29 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
30 begin
31 if (SetEnvironmentVariable(VarStr, VarVal)) then
32 Result := 0
33 else
34 Result := -1;
35 end;
36 {$ELSE}
37 {$LINKLIB c}
38 const clib = 'c';
39 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
40 cdecl; external clib name 'setenv';
41 {$ENDIF}
43 function SetEnvVar(const VarName: AnsiString; const VarVal: AnsiString): Boolean;
44 begin
45 Result := (setenv(PChar(VarName), PChar(VarVal), 1) = 0);
46 end;
48 end.