
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1299 8e941d3f-bd1b-0410-a28a-d453659cc2b4
92 lines
3.1 KiB
ObjectPascal
92 lines
3.1 KiB
ObjectPascal
{ The unit is part of Lazarus Chelper package
|
|
|
|
Copyright (C) 2010 Dmitry Boyarintsev skalogryz dot lists at gmail.com
|
|
|
|
This library is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU Library General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or (at your
|
|
option) any later version.
|
|
|
|
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. See the GNU Library General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; if not, write to the Free Software Foundation,
|
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
}
|
|
unit cconvconfig;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, ctopasconvert, IniFiles;
|
|
|
|
procedure LoadFromFile(const FileName: AnsiString; cfg: TConvertSettings);
|
|
procedure SaveToFile(const FileName: AnsiString; cfg: TConvertSettings);
|
|
|
|
implementation
|
|
|
|
procedure LoadFromFile(const FileName: AnsiString; cfg: TConvertSettings);
|
|
var
|
|
ini : TIniFile;
|
|
begin
|
|
if not Assigned(cfg) then Exit;
|
|
try
|
|
ini:=TIniFile.Create(FileName);
|
|
try
|
|
// C to Pas Types
|
|
ini.ReadSectionValues('Types', cfg.CtoPasTypes);
|
|
cfg.RecordsArePacked:=ini.ReadBool('Main','RecordsArePacked', cfg.RecordsArePacked);
|
|
cfg.FuncsAreExternal:=ini.ReadBool('Main','FuncsAreExternal', cfg.FuncsAreExternal);
|
|
cfg.EnumsAsConst:=ini.ReadBool('Main','EnumAsConst', cfg.EnumsAsConst);
|
|
|
|
cfg.TypeNamePrefix:=ini.ReadString('Main','TypeNamePrefix',cfg.TypeNamePrefix);
|
|
cfg.RefTypeNamePrefix:=ini.ReadString('Main','RefTypeNamePrefix',cfg.RefTypeNamePrefix);
|
|
cfg.FuncConv:=ini.ReadString('Main','FuncConv',cfg.FuncConv);
|
|
cfg.FuncDeclPostfix:=ini.ReadString('Main','FuncDeclPostfix',cfg.FuncDeclPostfix);
|
|
cfg.ExtLibName:=ini.ReadString('Main','ExtLibName',cfg.ExtLibName);
|
|
cfg.ParamPrefix:=ini.ReadString('Main','ParamPrefix',cfg.ParamPrefix);
|
|
finally
|
|
ini.Free;
|
|
end;
|
|
except
|
|
end;
|
|
end;
|
|
|
|
procedure SaveToFile(const FileName: AnsiString; cfg: TConvertSettings);
|
|
var
|
|
ini : TIniFile;
|
|
i : Integer;
|
|
begin
|
|
if not Assigned(cfg) then Exit;
|
|
try
|
|
ini:=TIniFile.Create(FileName);
|
|
try
|
|
|
|
// C to Pas Types
|
|
for i:=0 to cfg.CtoPasTypes.Count-1 do
|
|
ini.WriteString('Types', cfg.CtoPasTypes.Names[i], cfg.CtoPasTypes.ValueFromIndex[i]);
|
|
ini.WriteBool('Main','RecordsArePacked', cfg.RecordsArePacked);
|
|
ini.WriteBool('Main','FuncsAreExternal', cfg.FuncsAreExternal);
|
|
ini.WriteBool('Main','EnumAsConst', cfg.EnumsAsConst);
|
|
|
|
ini.WriteString('Main','TypeNamePrefix',cfg.TypeNamePrefix);
|
|
ini.WriteString('Main','RefTypeNamePrefix',cfg.RefTypeNamePrefix);
|
|
ini.WriteString('Main','FuncConv',cfg.FuncConv);
|
|
ini.WriteString('Main','FuncDeclPostfix',cfg.FuncDeclPostfix);
|
|
ini.WriteString('Main','ParamPrefix',cfg.ParamPrefix);
|
|
ini.WriteString('Main','ExtLibName',cfg.ExtLibName);
|
|
finally
|
|
ini.Free;
|
|
end;
|
|
except
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|