/usr/lib/lazarus/0.9.30.4/ideintf/baseideintf.pas is in lazarus-src-0.9.30.4 0.9.30.4-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | { Copyright (C) 2004
*****************************************************************************
* *
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
Author: Mattias Gaertner
Abstract: Base classes of the IDEIntf.
}
unit BaseIDEIntf;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LazConfigStorage, Dialogs;
type
TGetIDEConfigStorage = function(const Filename: string; LoadFromDisk: Boolean
): TConfigStorage;
var
// will be set by the IDE
DefaultConfigClass: TConfigStorageClass = nil;
GetIDEConfigStorage: TGetIDEConfigStorage = nil; // load errors: raises exceptions
function EnvironmentAsStringList: TStringList;
procedure AssignEnvironmentTo(DestStrings, Overrides: TStrings);
implementation
function EnvironmentAsStringList: TStringList;
var
i, SysVarCount, e: integer;
Variable, Value: string;
Begin
Result:=TStringList.Create;
SysVarCount:=GetEnvironmentVariableCount;
for i:=0 to SysVarCount-1 do begin
Variable:=GetEnvironmentStringUTF8(i+1);
// On windows some (hidden) environment variables can be returned by
// GetEnvironmentStringUTF8. These kind of variables start with a =
if (length(Variable)>0) and (Variable[1]<>'=') then begin
e:=1;
while (e<=length(Variable)) and (Variable[e]<>'=') do inc(e);
Value:=copy(Variable,e+1,length(Variable)-e);
Variable:=LeftStr(Variable,e-1);
Result.Values[Variable]:=Value;
end;
end;
end;
procedure AssignEnvironmentTo(DestStrings, Overrides: TStrings);
var
EnvList: TStringList;
i: integer;
Variable, Value: string;
begin
// get system environment
EnvList:=EnvironmentAsStringList;
try
if Overrides<>nil then begin
// merge overrides
for i:=0 to Overrides.Count-1 do begin
Variable:=Overrides.Names[i];
Value:=Overrides.Values[Variable];
EnvList.Values[Variable]:=Value;
end;
end;
DestStrings.Assign(EnvList);
finally
EnvList.Free;
end;
end;
end.
|