-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathuConfig.pas
More file actions
57 lines (44 loc) · 967 Bytes
/
uConfig.pas
File metadata and controls
57 lines (44 loc) · 967 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
unit uConfig;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Classes, IniFiles, LazFileUtils;
type
TIniFile = IniFiles.TIniFile;
function GetSettingsFolder: string;
function OpenIniFile: TIniFile;
implementation
function GetSettingsFolder: string;
var
tf: string;
h: THandle;
begin
// if portable is writable, use that
Result:= ExtractFilePath(ParamStr(0));
tf:= Result + 'sshfs_gui.ini';
h:= FileOpen(tf, fmOpenReadWrite);
if h = feInvalidHandle then
h:= FileCreate(tf);
if h <> feInvalidHandle then begin
FileClose(h);
Exit;
end;
// otherwise, use appdata
Result:= GetAppConfigDir(False);
end;
function OpenIniFile: TIniFile;
begin
Result:= TIniFile.Create(GetSettingsFolder + 'sshfs_gui.ini');
end;
function GetAppName: String;
begin
Result:= 'SSHFS_GUI';
end;
function GetAppVendor: String;
begin
Result:= '';
end;
initialization
OnGetApplicationName:= @GetAppName;
OnGetVendorName:= @GetAppVendor;
end.