DEADSOFTWARE

System username used as player's nickname by default
[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;
25 function GetUserName: String;
27 implementation
29 {$IFDEF WINDOWS}
30 uses Windows;
31 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
32 begin
33 if (SetEnvironmentVariable(VarStr, VarVal)) then
34 Result := 0
35 else
36 Result := -1;
37 end;
38 {$ELSE}
39 {$LINKLIB c}
40 const clib = 'c';
41 function setenv(const VarStr: PChar; const VarVal: PChar; Repl: cint): cint;
42 cdecl; external clib name 'setenv';
43 {$ENDIF}
45 function SetEnvVar(const VarName: AnsiString; const VarVal: AnsiString): Boolean;
46 begin
47 Result := (setenv(PChar(VarName), PChar(VarVal), 1) = 0);
48 end;
50 function GetUserName: String;
51 begin
52 {$IF DEFINED(WINDOWS)}
53 Result := SysUtils.GetEnvironmentVariable('USERNAME')
54 {$ELSEIF DEFINED(UNIX)}
55 Result := SysUtils.GetEnvironmentVariable('USER')
56 {$ELSE}
57 Result := ''
58 {$ENDIF}
59 end;
61 end.