You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2011-01-09 21:08:20
|
Revision: 3467 http://jcl.svn.sourceforge.net/jcl/?rev=3467&view=rev Author: outchy Date: 2011-01-09 21:08:14 +0000 (Sun, 09 Jan 2011) Log Message: ----------- code to register and unregister the 4 JCL help files for each help flavor (H2, CHM, HLP). Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/jcl/install/JclInstallResources.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2011-01-09 13:12:56 UTC (rev 3466) +++ trunk/jcl/install/JclInstall.pas 2011-01-09 21:08:14 UTC (rev 3467) @@ -233,9 +233,21 @@ FVclDialogSendFileName: string; FVclDialogIconFileName: string; FVclDialogSendIconFileName: string; + FJclOldChmHelpFileName: string; FJclChmHelpFileName: string; + FJclContainersChmHelpFileName: string; + FJclDeveloperToolsChmHelpFileName: string; + FJclVclChmHelpFileName: string; + FJclOldHlpHelpFileName: string; FJclHlpHelpFileName: string; + FJclContainersHlpHelpFileName: string; + FJclDeveloperToolsHlpHelpFileName: string; + FJclVclHlpHelpFileName: string; + FJclOldHxSHelpFileName: string; FJclHxSHelpFileName: string; + FJclContainersHxSHelpFileName: string; + FJclDeveloperToolsHxSHelpFileName: string; + FJclVclHxSHelpFileName: string; FJclReadmeFileName: string; FJclLicenseFileName: string; FGUI: IJediInstallGUI; @@ -295,9 +307,21 @@ property VclDialogSendFileName: string read FVclDialogSendFileName; property VclDialogIconFileName: string read FVclDialogIconFileName; property VclDialogSendIconFileName: string read FVclDialogSendIconFileName; + property JclOldChmHelpFileName: string read FJclOldChmHelpFileName; property JclChmHelpFileName: string read FJclChmHelpFileName; + property JclContainersChmHelpFileName: string read FJclContainersChmHelpFileName; + property JclDeveloperToolsChmHelpFileName: string read FJclDeveloperToolsChmHelpFileName; + property JclVclChmHelpFileName: string read FJclVclChmHelpFileName; + property JclOldHlpHelpFileName: string read FJclOldHlpHelpFileName; property JclHlpHelpFileName: string read FJclHlpHelpFileName; + property JclContainersHlpHelpFileName: string read FJclContainersHlpHelpFileName; + property JclDeveloperToolsHlpHelpFileName: string read FJclDeveloperToolsHlpHelpFileName; + property JclVclHlpHelpFileName: string read FJclVclHlpHelpFileName; + property JclOldHxSHelpFileName: string read FJclOldHxSHelpFileName; property JclHxSHelpFileName: string read FJclHxSHelpFileName; + property JclContainersHxSHelpFileName: string read FJclContainersHxSHelpFileName; + property JclDeveloperToolsHxSHelpFileName: string read FJclDeveloperToolsHxSHelpFileName; + property JclVclHxSHelpFileName: string read FJclVclHxSHelpFileName; property JclReadmeFileName: string read FJclReadmeFileName; property JclLicenseFileName: string read FJclLicenseFileName; property RadToolInstallations: TJclBorRADToolInstallations read FRadToolInstallations; @@ -438,10 +462,10 @@ VersionDirExp = '\%%s'; // native packages - JclDpk = 'Jcl'; - JclContainersDpk = 'JclContainers'; - JclDeveloperToolsDpk = 'JclDeveloperTools'; - JclVclDpk = 'JclVcl'; + JclPackage = 'Jcl'; + JclContainersPackage = 'JclContainers'; + JclDeveloperToolsPackage = 'JclDeveloperTools'; + JclVclPackage = 'JclVcl'; JclExpertBase = 'JclBaseExpert'; JclExpertDebug = 'JclDebugExpert'; @@ -495,21 +519,51 @@ ExceptIcoVclFileName = 'ExceptDlg.ico'; ExceptIcoVclSndFileName = 'ExceptDlgMail.ico'; - JclChmHelpFile = 'help' + DirDelimiter + 'JCLHelp.chm'; - JclHlpHelpFile = 'help' + DirDelimiter + 'JCLHelp.hlp'; - JclHxSHelpFile = 'help' + DirDelimiter + 'JCLHelp.HxS'; + JclOldChmHelpFile = 'help' + DirDelimiter + 'JCLHelp.chm'; + JclChmHelpFile = 'help' + DirDelimiter + JclPackage + '.chm'; + JclContainersChmHelpFile = 'help' + DirDelimiter + JclContainersPackage + '.chm'; + JclDeveloperToolsChmHelpFile = 'help' + DirDelimiter + JclDeveloperToolsPackage + '.chm'; + JclVclChmHelpFile = 'help' + DirDelimiter + JclVclPackage + '.chm'; + JclOldHlpHelpFile = 'help' + DirDelimiter + 'JCLHelp.hlp'; + JclHlpHelpFile = 'help' + DirDelimiter + JclPackage + '.hlp'; + JclContainersHlpHelpFile = 'help' + DirDelimiter + JclContainersPackage + '.hlp'; + JclDeveloperToolsHlpHelpFile = 'help' + DirDelimiter + JclDeveloperToolsPackage + '.hlp'; + JclVclHlpHelpFile = 'help' + DirDelimiter + JclVclPackage + '.hlp'; + JclOldHxSHelpFile = 'help' + DirDelimiter + 'JCLHelp.HxS'; + JclHxSHelpFile = 'help' + DirDelimiter + JclPackage + '.HxS'; + JclContainersHxSHelpFile = 'help' + DirDelimiter + JclContainersPackage + '.HxS'; + JclDeveloperToolsHxSHelpFile = 'help' + DirDelimiter + JclDeveloperToolsPackage + '.HxS'; + JclVclHxSHelpFile = 'help' + DirDelimiter + JclVclPackage + '.HxS'; - Help2NameSpace = 'Jedi.Jcl'; - Help2Collection = 'JCLHelp_COL_MASTER.HxC'; - Help2Description = 'JEDI Code Library'; - Help2Identifier = 'JCLHelp'; - Help2LangId = 1033; // en/english - Help2HxSFile = 'JCLHelp.HxS'; - Help2HxIFile = 'JCLHelp.HxI'; + JclHelp2NameSpace = 'Jedi.Jcl'; + JclHelp2Collection = 'JCLHelp_COL_MASTER.HxC'; + JclHelp2Description = 'JEDI Code Library'; + JclHelp2LangId = 1033; // en/english + JclOldHelp2Identifier = 'JCLHelp'; + JclHelp2Identifier = 'Jcl'; + JclContainersHelp2Identifier = 'JclContainers'; + JclDeveloperToolsHelp2Identifier = 'JclDeveloperTools'; + JclVclHelp2Identifier = 'JclVcl'; + JclOldHelp2HxSFile = 'JCLHelp.HxS'; + JclOldHelp2HxIFile = 'JCLHelp.HxI'; + JclHelp2HxSFile = 'Jcl.HxS'; + JclHelp2HxIFile = 'Jcl.HxI'; + JclContainersHelp2HxSFile = 'JclContainers.HxS'; + JclContainersHelp2HxIFile = 'JclContainers.HxI'; + JclDeveloperToolsHelp2HxSFile = 'JclDeveloperTools.HxS'; + JclDeveloperToolsHelp2HxIFile = 'JclDeveloperTools.HxI'; + JclVclHelp2HxSFile = 'JclVcl.HxS'; + JclVclHelp2HxIFile = 'JclVcl.HxI'; - JclHelpTitle = 'JCL %d.%d Help'; - JclHelpIndexName = 'JEDI Code Library Reference'; - HHFileName = 'HH.EXE'; + JclHelpTitle = 'JCL %d.%d Help'; + JclHelpIndexName = 'JEDI Code Library Reference'; + JclContainersHelpTitle = 'JCL %d.%d Containers Help'; + JclContainersHelpIndexName = 'JEDI Code Library Containers Reference'; + JclDeveloperToolsHelpTitle = 'JCL %d.%d Developer Tools Help'; + JclDeveloperToolsHelpIndexName = 'JEDI Code Library Developer Tools Reference'; + JclVclHelpTitle = 'JCL %d.%d VCL Help'; + JclVclHelpIndexName = 'JEDI Code Library VCL Package Reference'; + HHFileName = 'HH.EXE'; ReadmeFileName = 'Readme.txt'; LicenseFileName = 'LICENSE.txt'; @@ -1539,12 +1593,12 @@ begin MarkOptionBegin(joJCLPackages); - Result := CompilePackage(FullPackageFileName(Target, JclDpk)) - and CompilePackage(FullPackageFileName(Target, JclContainersDpk)) - and CompilePackage(FullPackageFileName(Target, JclDeveloperToolsDpk)); + Result := CompilePackage(FullPackageFileName(Target, JclPackage)) + and CompilePackage(FullPackageFileName(Target, JclContainersPackage)) + and CompilePackage(FullPackageFileName(Target, JclDeveloperToolsPackage)); if Result and Target.SupportsVCL then - Result := Result and CompilePackage(FullPackageFileName(Target, JclVclDpk)); + Result := Result and CompilePackage(FullPackageFileName(Target, JclVclPackage)); MarkOptionEnd(joJCLPackages, Result); end; @@ -1698,43 +1752,60 @@ {$IFDEF MSWINDOWS} function InstallHelpFiles: Boolean; function AddHelpToIdeTools: Boolean; - var - ToolsIndex: Integer; - HelpTitle: string; - IdeTool: TJclBorRADToolIdeTool; - begin - Result := True; - try - IdeTool := Target.IdeTools; - HelpTitle := Format(JclHelpTitle, [JclVersionMajor, JclVersionMinor]); - if IdeTool.IndexOfTitle(HelpTitle) = -1 then - begin + function AddFile(const Title, FileName: string): Boolean; + var + ToolsIndex: Integer; + IdeTool: TJclBorRADToolIdeTool; + begin + Result := True; + try + IdeTool := Target.IdeTools; ToolsIndex := IdeTool.Count; - IdeTool.Count := ToolsIndex + 1; - IdeTool.Title[ToolsIndex] := HelpTitle; + IdeTool.Count := ToolsIndex + 4; + + IdeTool.Title[ToolsIndex] := Format(Title, [JclVersionMajor, JclVersionMinor]); IdeTool.Path[ToolsIndex] := HHFileName; - IdeTool.Parameters[ToolsIndex] := StrDoubleQuote(FDistribution.FJclChmHelpFileName); + IdeTool.Parameters[ToolsIndex] := StrDoubleQuote(FileName); IdeTool.WorkingDir[ToolsIndex] := Distribution.JclPath; + except + Result := False; end; - except - Result := False; + if Result then + WriteLog(Format(LoadResString(@RsLogAddIDETools), [FileName, Target.RADToolName])) + else + WriteLog(LoadResString(@RsLogFailedAddIDETools)); end; + begin + Result := AddFile(JclHelpTitle, Distribution.JclChmHelpFileName) and + AddFile(JclContainersHelpTitle, Distribution.JclContainersChmHelpFileName) and + AddFile(JclDeveloperToolsHelpTitle, Distribution.JclDeveloperToolsChmHelpFileName) and + AddFile(JclVclHelpTitle, Distribution.JclVclChmHelpFileName); end; function AddHelpToOpenHelp: Boolean; + function AddFile(const FileName, IndexName: string): Boolean; + begin + Result := Target.OpenHelp.AddHelpFile(FileName, IndexName); + if Result then + WriteLog(Format(LoadResString(@RsLogAddOpenHelp), [FileName, Target.RADToolName])) + else + WriteLog(LoadResString(@RsLogFailedAddOpenHelp)); + end; begin - Result := Target.OpenHelp.AddHelpFile(Distribution.FJclHlpHelpFileName, JclHelpIndexName); - if Result then - WriteLog(Format(LoadResString(@RsLogAddOpenHelp), [Distribution.FJclHlpHelpFileName, Target.RADToolName])) - else - WriteLog(LoadResString(@RsLogFailedAddOpenHelp)); + Result := AddFile(Distribution.JclHlpHelpFileName, JclHelpIndexName) and + AddFile(Distribution.JclContainersHlpHelpFileName, JclContainersHelpIndexName) and + AddFile(Distribution.JclDeveloperToolsHlpHelpFileName, JclDeveloperToolsHelpIndexName) and + AddFile(Distribution.JclVclHlpHelpFileName, JclVclHelpIndexName); end; function RegisterHelp2Files: Boolean; var - //CurrentDir: string; - NameSpace, Collection, Description, Identifier, HxSFile, HxIFile: WideString; - LangId: Integer; + JclNameSpace, JclCollection, JclDescription, + JclIdentifier, JclHxSFile, JclHxIFile, + JclContainersIdentifier, JclContainersHxSFile, JclContainersHxIFile, + JclDeveloperToolsIdentifier, JclDeveloperToolsHxSFile, JclDeveloperToolsHxIFile, + JclVclIdentifier, JclVclHxSFile, JclVclHxIFile: WideString; + JclLangId: Integer; begin Result := True; if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then @@ -1743,21 +1814,33 @@ WriteLog(LoadResString(@RsLogAddHelp2Files)); // to avoid Write AV, data have to be copied in data segment - NameSpace := Help2NameSpace; - Collection := Help2Collection; - Description := Help2Description; - Identifier := Help2Identifier; - LangId := Help2LangId; - HxSFile := Help2HxSFile; - HxIFile := Help2HxIFile; + JclNameSpace := JclHelp2NameSpace; + JclCollection := JclHelp2Collection; + JclDescription := JclHelp2Description; + JclLangId := JclHelp2LangId; + JclIdentifier := JclHelp2Identifier; + JclHxSFile := JclHelp2HxSFile; + JclHxIFile := JclHelp2HxIFile; + JclContainersIdentifier := JclContainersHelp2Identifier; + JclContainersHxSFile := JclContainersHelp2HxSFile; + JclContainersHxIFile := JclContainersHelp2HxIFile; + JclDeveloperToolsIdentifier := JclDeveloperToolsHelp2Identifier; + JclDeveloperToolsHxSFile := JclDeveloperToolsHelp2HxSFile; + JclDeveloperToolsHxIFile := JclDeveloperToolsHelp2HxIFile; + JclVclIdentifier := JclVclHelp2Identifier; + JclVclHxSFile := JclVclHelp2HxSFile; + JclVclHxIFile := JclVclHelp2HxIFile; Distribution.RegHelpCreateTransaction; - Distribution.RegHelpRegisterNameSpace(NameSpace, Collection, Description); - Distribution.RegHelpRegisterHelpFile(NameSpace, Identifier, LangId, HxSFile, HxIFile); + Distribution.RegHelpRegisterNameSpace(JclNameSpace, JclCollection, JclDescription); + Distribution.RegHelpRegisterHelpFile(JclNameSpace, JclIdentifier, JclLangId, JclHxSFile, JclHxIFile); + Distribution.RegHelpRegisterHelpFile(JclNameSpace, JclContainersIdentifier, JclLangId, JclContainersHxSFile, JclContainersHxIFile); + Distribution.RegHelpRegisterHelpFile(JclNameSpace, JclDeveloperToolsIdentifier, JclLangId, JclDeveloperToolsHxSFile, JclDeveloperToolsHxIFile); + Distribution.RegHelpRegisterHelpFile(JclNameSpace, JclVclIdentifier, JclLangId, JclVclHxSFile, JclVclHxIFile); if OptionChecked[joJCLHelpHxSPlugin] then begin MarkOptionBegin(joJCLHelpHxSPlugin); - Distribution.RegHelpPlugNameSpaceIn(NameSpace, TJclBDSInstallation(Target).Help2Manager.IdeNamespace); + Distribution.RegHelpPlugNameSpaceIn(JclNameSpace, TJclBDSInstallation(Target).Help2Manager.IdeNamespace); MarkOptionEnd(joJCLHelpHxSPlugin, Result); end; @@ -2007,18 +2090,18 @@ if ATarget.RadToolKind = brBorlandDevStudio then begin ABDSTarget := ATarget as TJclBDSInstallation; - ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclDpk))); - ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclContainersDpk))); - ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclDeveloperToolsDpk))); + ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclPackage))); + ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclContainersPackage))); + ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclDeveloperToolsPackage))); if RuntimeInstallation and ATarget.SupportsVCL then - ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclVclDpk))); + ABDSTarget.CleanPackageCache(BinaryFileName(GetBPLPath, Distribution.JclPath + FullPackageFileName(ATarget, JclVclPackage))); end; //ioJclPackages - ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclDpk), GetBplPath); - ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclContainersDpk), GetBplPath); - ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclDeveloperToolsDpk), GetBplPath); + ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclPackage), GetBplPath); + ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclContainersPackage), GetBplPath); + ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclDeveloperToolsPackage), GetBplPath); if RuntimeInstallation and ATarget.SupportsVCL then - ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclVclDpk), GetBplPath); + ATarget.UnregisterPackage(Distribution.JclPath + FullPackageFileName(ATarget, JclVclPackage), GetBplPath); {$IFDEF MSWINDOWS} RemoveJediRegInformation(Target.ConfigDataLocation, 'JCL', ATarget.RootKey); {$ENDIF MSWINDOWS} @@ -2026,11 +2109,11 @@ procedure DeletePackages; begin - DeletePackage(FullPackageFileName(Target, JclDpk)); - DeletePackage(FullPackageFileName(Target, JclContainersDpk)); - DeletePackage(FullPackageFileName(Target, JclDeveloperToolsDpk)); + DeletePackage(FullPackageFileName(Target, JclPackage)); + DeletePackage(FullPackageFileName(Target, JclContainersPackage)); + DeletePackage(FullPackageFileName(Target, JclDeveloperToolsPackage)); if RuntimeInstallation and Target.SupportsVCL then - DeletePackage(FullPackageFileName(Target, JclVclDpk)); + DeletePackage(FullPackageFileName(Target, JclVclPackage)); end; {$IFDEF MSWINDOWS} procedure UnregisterExperts(ATarget: TJclBorRADToolInstallation); @@ -2092,31 +2175,47 @@ procedure UninstallHelp; procedure RemoveHelpFromIdeTools; - var - HelpIndex: Integer; - HelpTitle: string; - begin - HelpTitle := Format(JclHelpTitle, [JclVersionMajor, JclVersionMinor]); - with Target.IdeTools do + procedure RemoveIdeTool(const Title: string); + var + HelpIndex: Integer; begin - HelpIndex := IndexOfTitle(HelpTitle); + HelpIndex := Target.IdeTools.IndexOfTitle(Title); if HelpIndex <> -1 then - RemoveIndex(HelpIndex); + begin + Target.IdeTools.RemoveIndex(HelpIndex); + WriteLog(Format(LoadResString(@RsLogDelIdeTools), [Title, Target.RADToolName])) + end + else + WriteLog(LoadResString(@RsLogFailedDelIdeTools)); end; + begin + RemoveIdeTool(Format(JclHelpTitle, [JclVersionMajor, JclVersionMinor])); + RemoveIdeTool(Format(JclContainersHelpTitle, [JclVersionMajor, JclVersionMinor])); + RemoveIdeTool(Format(JclDeveloperToolsHelpTitle, [JclVersionMajor, JclVersionMinor])); + RemoveIdeTool(Format(JclVclHelpTitle, [JclVersionMajor, JclVersionMinor])); end; procedure RemoveHelpFromOpenHelp; + procedure RemoveFile(const FileName, IndexName: string); + begin + if Target.OpenHelp.RemoveHelpFile(FileName, IndexName) then + WriteLog(Format(LoadResString(@RsLogDelOpenHelp), [FileName, Target.RADToolName])) + else + WriteLog(LoadResString(@RsLogFailedDelOpenHelp)); + end; begin - if Target.OpenHelp.RemoveHelpFile(Distribution.FJclHlpHelpFileName, JclHelpIndexName) then - WriteLog(Format(LoadResString(@RsLogDelOpenHelp), [Distribution.FJclHlpHelpFileName, Target.RADToolName])) - else - WriteLog(LoadResString(@RsLogFailedDelOpenHelp)); + RemoveFile(Distribution.JclOldHlpHelpFileName, JclHelpIndexName); + RemoveFile(Distribution.JclHlpHelpFileName, JclHelpIndexName); + RemoveFile(Distribution.JclContainersHlpHelpFileName, JclContainersHelpIndexName); + RemoveFile(Distribution.JclDeveloperToolsHlpHelpFileName, JclDeveloperToolsHelpIndexName); + RemoveFile(Distribution.JclVclHlpHelpFileName, JclVclHelpIndexName); end; procedure UnregisterHelp2Files; var - NameSpace, Identifier, HxSFile, HxIFile: WideString; - LangId: Integer; + JclNameSpace, JclOldIdentifier, JclIdentifier, JclContainersIdentifier, + JclDeveloperToolsIdentifier, JclVclIdentifier: WideString; + JclLangId: Integer; begin if (Target.RadToolKind <> brBorlandDevStudio) or (Target.VersionNumber < 3) then Exit; @@ -2124,16 +2223,22 @@ WriteLog(LoadResString(@RsLogDelHelp2Files)); // to avoid Write AV, data has to be copied in data segment - NameSpace := Help2NameSpace; - Identifier := Help2Identifier; - LangId := Help2LangId; - HxSFile := Help2HxSFile; - HxIFile := Help2HxIFile; + JclNameSpace := JclHelp2NameSpace; + JclLangId := JclHelp2LangId; + JclOldIdentifier := JclOldHelp2Identifier; + JclIdentifier := JclHelp2Identifier; + JclContainersIdentifier := JclContainersHelp2Identifier; + JclDeveloperToolsIdentifier := JclDeveloperToolsHelp2Identifier; + JclVclIdentifier := JclVclHelp2Identifier; Distribution.RegHelpCreateTransaction; - Distribution.RegHelpUnPlugNameSpace(NameSpace, TJclBDSInstallation(Target).Help2Manager.IdeNamespace); - Distribution.RegHelpUnregisterHelpFile(NameSpace, Identifier, LangId); - Distribution.RegHelpUnregisterNameSpace(NameSpace); + Distribution.RegHelpUnPlugNameSpace(JclNameSpace, TJclBDSInstallation(Target).Help2Manager.IdeNamespace); + Distribution.RegHelpUnregisterHelpFile(JclNameSpace, JclOldIdentifier, JclLangId); + Distribution.RegHelpUnregisterHelpFile(JclNameSpace, JclIdentifier, JclLangId); + Distribution.RegHelpUnregisterHelpFile(JclNameSpace, JclContainersIdentifier, JclLangId); + Distribution.RegHelpUnregisterHelpFile(JclNameSpace, JclDeveloperToolsIdentifier, JclLangId); + Distribution.RegHelpUnregisterHelpFile(JclNameSpace, JclVclIdentifier, JclLangId); + Distribution.RegHelpUnregisterNameSpace(JclNameSpace); Distribution.RegHelpCommitTransaction; WriteLog(LoadResString(@RsLogDefered)); @@ -3090,15 +3195,42 @@ ExceptDialogsPath := JclPath + ExceptIcoPath; FVclDialogIconFileName := ExceptDialogsPath + ExceptIcoVclFileName; FVclDialogSendIconFileName := ExceptDialogsPath + ExceptIcoVclSndFileName; + FJclOldChmHelpFileName := JclPath + JclOldChmHelpFile; FJclChmHelpFileName := JclPath + JclChmHelpFile; + FJclContainersChmHelpFileName := JclPath + JclContainersChmHelpFile; + FJclDeveloperToolsChmHelpFileName := JclPath + JclDeveloperToolsChmHelpFile; + FJclVclChmHelpFileName := JclPath + JclVclChmHelpFile; + FJclOldHlpHelpFileName := JclPath + JclOldHlpHelpFile; FJclHlpHelpFileName := JclPath + JclHlpHelpFile; + FJclContainersHlpHelpFileName := JclPath + JclContainersHlpHelpFile; + FJclDeveloperToolsHlpHelpFileName := JclPath + JclDeveloperToolsHlpHelpFile; + FJclVclHlpHelpFileName := JclPath + JclVclHlpHelpFile; + FJclOldHxSHelpFileName := JclPath + JclOldHxSHelpFile; FJclHxSHelpFileName := JclPath + JclHxSHelpFile; + FJclContainersHxSHelpFileName := JclPath + JclContainersHxSHelpFile; + FJclDeveloperToolsHxSHelpFileName := JclPath + JclDeveloperToolsHxSHelpFile; + FJclVclHxSHelpFileName := JclPath + JclVclHxSHelpFile; if not FileExists(FJclChmHelpFileName) then + begin FJclChmHelpFileName := ''; + FJclContainersChmHelpFileName := ''; + FJclDeveloperToolsChmHelpFileName := ''; + FJclVclChmHelpFileName := ''; + end; if not FileExists(FJclHlpHelpFileName) then + begin FJclHlpHelpFileName := ''; + FJclContainersHlpHelpFileName := ''; + FJclDeveloperToolsHlpHelpFileName := ''; + FJclVclHlpHelpFileName := ''; + end; if not FileExists(FJclHxSHelpFileName) then + begin FJclHxSHelpFileName := ''; + FJclContainersHxSHelpFileName := ''; + FJclDeveloperToolsHxSHelpFileName := ''; + FJclVclHxSHelpFileName := ''; + end; {$IFDEF MSWINDOWS} // Reset ReadOnly flag for dialog forms FileSetAttr(FVclDialogFileName, faArchive); Modified: trunk/jcl/install/JclInstallResources.pas =================================================================== --- trunk/jcl/install/JclInstallResources.pas 2011-01-09 13:12:56 UTC (rev 3466) +++ trunk/jcl/install/JclInstallResources.pas 2011-01-09 21:08:14 UTC (rev 3467) @@ -319,6 +319,10 @@ RsLogFailedAddDebugDCUPath = 'Failed to add debug DCU path'; RsLogDelDebugDCUPath = 'Removed "%s" from debug DCU Path.'; RsLogFailedDelDebugDCUPath = 'Failed to remove debug DCU Path.'; + RsLogAddIdeTools = 'Added %s to %s IDE Tools'; + RsLogFailedAddIdeTools = 'Failed to add help file to IDE Tools'; + RsLogDelIdeTools = 'Removing %s from %s IDE Tools'; + RsLogFailedDelIdeTools = 'Failed to remove help file from IDE Tools'; RsLogAddOpenHelp = 'Added %s to %s Open Help'; RsLogFailedAddOpenHelp = 'Failed to add help file to Open Help'; RsLogDelOpenHelp = 'Removing %s from %s Open Help'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-09 13:13:06
|
Revision: 3466 http://jcl.svn.sourceforge.net/jcl/?rev=3466&view=rev Author: outchy Date: 2011-01-09 13:12:56 +0000 (Sun, 09 Jan 2011) Log Message: ----------- help update: - remove orphaned topic file. - new custom help index. - do not erase the output directory before emitting help files. - add missing source files in package Jcl. Modified Paths: -------------- trunk/help/JclTemplate.dox trunk/jcl/packages/help/Jcl.dox trunk/jcl/packages/help/JclContainers.dox trunk/jcl/packages/help/JclDeveloperTools.dox trunk/jcl/packages/help/JclVcl.dox trunk/jcl/packages/help/template.dox trunk/jcl/packages/xml/Jcl-R.xml trunk/thirdparty/makedist/JclFiles.xml trunk/thirdparty/makedist/JclTesting.xml Added Paths: ----------- trunk/help/index.html Removed Paths: ------------- trunk/help/hlpgrps.dtx Modified: trunk/help/JclTemplate.dox =================================================================== --- trunk/help/JclTemplate.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/help/JclTemplate.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -9836,7 +9836,7 @@ FrameOption=0 [Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\General] -ClearDirectoryBeforeExport=1 +ClearDirectoryBeforeExport=0 CustomHEADCode= ExpandTOCLevels=1 GenerateHEADContent=1 @@ -21792,7 +21792,7 @@ FrameOption=0 [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\General] -ClearDirectoryBeforeExport=1 +ClearDirectoryBeforeExport=0 CustomHEADCode= ExpandTOCLevels=1 GenerateHEADContent=1 @@ -37508,7 +37508,7 @@ FrameOption=0 [Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\General] -ClearDirectoryBeforeExport=1 +ClearDirectoryBeforeExport=0 CustomHEADCode= ExpandTOCLevels=1 GenerateHEADContent=1 Deleted: trunk/help/hlpgrps.dtx =================================================================== --- trunk/help/hlpgrps.dtx 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/help/hlpgrps.dtx 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,495 +0,0 @@ -## Help groups that do not belong to a specific documentation file. --------------------------------------------------------------------------------- -@@JCL -<title JEDI Code Library> - -The JEDI Code Library (JCL) consists of a set of utility -functions and non-visual classes which can be instantly -reused in your Delphi and C++ Builder projects. - -The library is built upon code donated from the JEDI -community. It is reformatted to achieve a common -look-and-feel, tested, documented and merged into the -library. The library is grouped into several categories (see -below). The library is released to the public under the terms -\of the Mozilla Public License (MPL) and as such can be -freely used in both freeware/shareware, opensource and -commercial projects. - -The entire JEDI Code Library is distributed under the terms -\of the Mozilla Public License (MPL). This includes, but is -not limited to, this document and all source code and -ancillary files. Source code files included in the JCL have a -header which explicitly states this (as is required) however, -unless noted otherwise, all files including those without an -MPL header, are subject to the MPL license. - -For more information visit our http://jcl.delphi-jedi.org/ -homepage. - - -Note -This documentation has been created using Doc-O-Matic -Professional 5.0.2. Many thanks to -http://www.toolsfactory.com/ toolsfactory for generously -granting free licenses to the JEDI team! - -@@Algorithms -<GROUP JCL> -<TITLE Algorithms> -<TOPICORDER 100> --------------------------------------------------------------------------------- -@@Algorithms.Searching -<GROUP Algorithms> -<TITLE Searching> -<TOPICORDER 100> --------------------------------------------------------------------------------- -@@Algorithms.Sorting -<GROUP Algorithms> -<TITLE Sorting> -<TOPICORDER 200> --------------------------------------------------------------------------------- -@@Containers -<GROUP JCL> -<TITLE Containers> -<TOPICORDER 300> --------------------------------------------------------------------------------- -@@Containers.Interfaces -<GROUP Containers> -<TITLE Container interfaces> -<TOPICORDER 100> --------------------------------------------------------------------------------- -@@Containers.Sequence -<GROUP Containers> -<TITLE Sequence containers> -<TOPICORDER 200> -These containers hold sequences of data elements. --------------------------------------------------------------------------------- -@@Containers.Sequence.Vectors -<GROUP Containers.Sequence> -<TITLE Vectors> -<TOPICORDER 100> -Vectors provide a dynamic array structure with fast random access to any element. -Inserting and deleting elements at the end is fast. Can do subscript bounds checking. --------------------------------------------------------------------------------- -@@Containers.Sequence.LinkedLists -<GROUP Containers.Sequence> -<TITLE Linked Lists> -<TOPICORDER 200> -Doubly linked list. There is no random access to the elements. -Insertion and deletion anywhere is fast. --------------------------------------------------------------------------------- -@@Containers.Associative -<GROUP Containers> -<TITLE Associative containers> -<TOPICORDER 300> -Associative containers contain key/value pairs, providing access to each value -using a key. The elements are sorted by the key. Usually implemented as a -balanced binary tree. --------------------------------------------------------------------------------- -@@Containers.Associative.Maps -<GROUP Containers.Associative> -<TITLE Maps> -<TOPICORDER 100> -Maps provide access to elements using any type of key. This is a generalization -of the idea of accessing a vector with an integer subscript. --------------------------------------------------------------------------------- -@@Containers.Associative.Multimaps -<GROUP Containers.Associative> -<TITLE Multimaps> -<TOPICORDER 200> -Multimaps are maps which allow a key to map into more than one element. --------------------------------------------------------------------------------- -@@Containers.OrderedSets -<GROUP Containers> -<TITLE Ordered sets> -<TOPICORDER 400> -The set containers keep the elements in them in order, and are usually -implemented as balanced binary trees. They implement standard set -operations (union, intersection, ...) as you might expect from the name. --------------------------------------------------------------------------------- -@@Containers.Adapters -<GROUP Containers> -<TITLE Container adapters> -<TOPICORDER 500> -These are based on other containers, and are used only to enforce access rules. -Because there are special access restrictions, they have no iterators. --------------------------------------------------------------------------------- -@@Containers.Adapters.Stacks -<GROUP Containers.Adapters> -<TITLE Stacks> -<TOPICORDER 100> -Stacks allow only LIFO (Last In, First Out) access. --------------------------------------------------------------------------------- -@@Containers.Adapters.Queues -<GROUP Containers.Adapters> -<TITLE Queues> -<TOPICORDER 200> -Queues allow only FIFO (First In, First Out) access. --------------------------------------------------------------------------------- -@@Containers.Specialized -<GROUP Containers> -<TITLE Specialized containers> -<TOPICORDER 600> -The following containers are specialized in some ways: specific data type, -special utility routines, limited, but fast, implementations. --------------------------------------------------------------------------------- -@@Containers.Specialized.Arrays -<GROUP Containers.Specialized> -<TITLE Arrays> -<TOPICORDER 100> -valarray is an especially efficient implementation of arrays, but it doesn't -have all the standard container behavior. --------------------------------------------------------------------------------- -@@BaseServices -<GROUP JCL> -<TITLE Base Services> -<TOPICORDER 200> --------------------------------------------------------------------------------- -@@DateandTime -<GROUP JCL> -<TITLE Date and Time> -<TOPICORDER 400> --------------------------------------------------------------------------------- -@@Debugging -<GROUP JCL> -<TITLE Debugging> -<TOPICORDER 500> --------------------------------------------------------------------------------- - -@@ExprEval -<GROUP JCL> -<TITLE Expression Evaluation> -<TOPICORDER 700> --------------------------------------------------------------------------------- -@@FilesandIO -<GROUP JCL> -<TITLE Files and IO> -<TOPICORDER 800> --------------------------------------------------------------------------------- -@@Graphics -<GROUP JCL> -<TITLE Graphics> -<TOPICORDER 900> --------------------------------------------------------------------------------- -@@Internationalisation -<GROUP JCL> -<TITLE Internationalisation> -<TOPICORDER 1000> --------------------------------------------------------------------------------- -@@InternetandE-mail -<GROUP JCL> -<TITLE Internet and E-mail> -<TOPICORDER 1100> --------------------------------------------------------------------------------- -@@LibrariesProcessesandThreads -<GROUP JCL> -<TITLE Libraries\, Processes and Threads> -<TOPICORDER 1300> --------------------------------------------------------------------------------- -@@MathRoutines -<GROUP JCL> -<TITLE Math Routines> -<TOPICORDER 1400> --------------------------------------------------------------------------------- -@@MemoryClassesandObjects -<GROUP JCL> -<TITLE Memory\, Classes and Objects> -<TOPICORDER 1500> --------------------------------------------------------------------------------- -@@MIME -<GROUP JCL> -<TITLE MIME> -<TOPICORDER 1600> --------------------------------------------------------------------------------- -@@Miscellaneous -<GROUP JCL> -<TITLE Miscellaneous> -<TOPICORDER 1700> --------------------------------------------------------------------------------- -@@MultiMedia -<GROUP JCL> -<TITLE MultiMedia> -<TOPICORDER 1800> --------------------------------------------------------------------------------- -@@BaseServices.Notifications -<GROUP BaseServices> -<TITLE Notifier/listener pattern> -<TOPICORDER 1850> -The notifier/listener pattern allows for both generalizing the sending of -notifications to multiple interested parties (listeners) and ease of adding new -ways of processing notifications without needing to change any code. - -An example of this pattern can be found in .NET, where one can find a -Trace class and a number of derived TraceListener classes. Using that example, -the Trace class is an IJclNotifier implementer and the TraceListener an -IJclListener interface. However, the .NET Trace and TraceListener setup is a -specific implementation and doesn't need an IJclNotificationMessage implementer; -the Trace class simply calls specific methods of the TraceListener. The JEDI -Code Library provides a more generic approach to this pattern. - -* Notifiers * -A notifier (any class implementing IJclNotifier) has only two distinct tasks: - -* Managing a list of listeners (IJclListener implementing classes) -* Notify all registered listeners - -The first task is generally performed before a certain process within an -application is started or after it has finished. - -The second task is performed by the class or methods that are part of a process. -At any moment a message (IJclNotificationMessage implementing class) can be -constructed and passed on to the Notification method. - -* Listeners * -A listener (any class implementing IJclListener) has a single method that will -be called by a notifier whenever its notify method is called. The method will -specify the message that was passed to the notifier's notify method. A listener -can check incoming notifications for additional or derived interface(s) and -either process the notification or ignore it based on those interface(s). - -During processing the additional or derived interface(s) may provide additional -information regarding the nature of the notification. - -* Notification messages * -A notification message (any class implementing IJclNotificationMessage) is just -place holder. Normally, one would either create a derived interface or add -additional interfaces to the message implementation class, adding such -information as context or other data that may be of interest to listeners. - -* Setting up a notifier/listener pattern * -In general setting up a specific notification sub system involves the steps as -outlined below. It's not unthinkable that for certain situations you'll need -additional steps or may skip steps. - -1 create a notifier - The JEDI Code Library simplifies this task: create an instance of - TJclBaseNotifier and you're good to go in most cases. Assign the instance - to a variable declared as IJclNotifier, so that you can use the notifier - (the class itself declares the methods protected since it is assumed they - will be used through the interface reference at all times). - -2 create notification messages - Notification messages describe to the listener what has happened. If all you - need is a simple notification a proces has finished, you could suffice with - TJclBaseNotificationMessage. In most cases, however, you will need to - declare additional interfaces (use Ctrl+Shift+G to create a GUID). These - interfaces can have additional properties and/or functions to provide data - to the listener, but a message supporting a certain interface could be all - the information you'd need. Then you'll need to create one or more classes - that will implement these interfaces (in whatever combination you need). - -3 create a listener - In most cases you could simply derive a class from TJclBaseListener. - Alternatively you could create a new class to implement the IJclListener - interface, or - in case of a VCL application - have your MainForm implement - the interface. The interface has only one method and it will be passed an - IJclNotificationMessage instance. --------------------------------------------------------------------------------- -@@OrdinalMathandLogic -<GROUP JCL> -<TITLE Ordinal Math and Logic> -<TOPICORDER 1900> --------------------------------------------------------------------------------- -@@RegistryandInifiles -<GROUP JCL> -<TITLE Registry and Ini files> -<TOPICORDER 2000> --------------------------------------------------------------------------------- -@@RuntimeTypeInformation -<GROUP JCL> -<TITLE Runtime Type Information> -<TOPICORDER 2100> --------------------------------------------------------------------------------- -@@StringManipulation -<GROUP JCL> -<TITLE String Manipulation> -<TOPICORDER 2400> --------------------------------------------------------------------------------- -@@SystemInformationRoutines -<GROUP JCL> -<TITLE System Information Routines> -<TOPICORDER 2500> --------------------------------------------------------------------------------- -@@Unicode -<GROUP JCL> -<TITLE Unicode> -<TOPICORDER 2600> --------------------------------------------------------------------------------- -@@UnitConversions -<GROUP JCL> -<TITLE Unit Conversions> -<TOPICORDER 2700> --------------------------------------------------------------------------------- -@@Windows_Specific -<GROUP JCL> -<TITLE Windows Specific> -<TOPICORDER 2800> --------------------------------------------------------------------------------- -@@JclCounter.pas -Summary: - This unit contains a high performance counter class which can be used for highly - accurate timing --------------------------------------------------------------------------------- -@@JclDateTime.pas -Summary: - Routines for working with dates and times. Mostly conversion between the - different formats but also some date testing routines (is leap year? etc) -Contributors: - Anthony Steele - Charlie Calvert - Heri Bender - Marc Convents - Marcel van Brakel - Matthias Thoma - Michael Schnell - Nick Hodges - Anonymous - Petr Vones - Robert Marquardt - Robert Rossmair --------------------------------------------------------------------------------- -@@JclDebug.pas -Summary: - Various debugging support routines and classes. This includes: Diagnostics - routines, Trace routines, Stack tracing and Source Locations a la the C/C++ - __FILE__ and __LINE__ macros. -Contributors: - Marcel van Brakel - Flier Lu - Robert Marquardt - Robert Rossmair - Petr Vones --------------------------------------------------------------------------------- -@@JclFileUtils.pas -Description: - This unit contains routines and classes for working with - files, directories and path strings. Additionally it contains - wrapper classes for file mapping objects and version - resources. - - Generically speaking, everything that has to do with files - and directories. Note that filesystem specific functionality - has been extracted into external units, for example JclNTFS.pas - which contains NTFS specific utility routines, and that the JclShell.pas - unit contains some file related routines as well but they - are specific to the Windows shell. --------------------------------------------------------------------------------- -@@JclGraphics.pas -Description: - The resampling algorithms and methods used in this library - were adapted by Anders Melander from the article "General - Filtered Image Rescaling" by Dale Schumacher which appeared - in the book Graphics Gems III, published by Academic Press, Inc. - Additional improvements were done by David Ullrich, - Josha Beukema and Mike Lischke. --------------------------------------------------------------------------------- -@@JclMidi.pas -<GROUP MultiMedia.MIDI> -Summary: - Unit JclMIDI supplies platform-independent MIDI declarations. --------------------------------------------------------------------------------- -@@JclNTFS.pas -Summary: - Contains routines to perform filesystem related tasks available only with NTFS. - These are mostly relatively straightforward wrappers for various IOCTs related - to compression, sparse files, reparse points, volume mount points and so forth. -Notes: - Note that some functions require NTFS 5 or higher! --------------------------------------------------------------------------------- -@@JclRegistry.pas -Summary: - Unit JclRegistry contains useful routines for registry - manipulation in addition to standard routines provided by - several Delphi classes. -Description: - Contains various utility routines to read and write registry values. Using these routines - prevents you from having to instantiate temporary TRegistry objects and since the routines - directly call the registry API they do not suffer from the resource overhead as TRegistry does. -Donators: - John C Molyneux - Marcel van Brakel - Charlie Calvert -Contributors: - Marcel van Brakel - Stephane Fillon - Eric S. Fisher - Peter Friese - Anonymous - Andreas Hausladen - Manlio Laschena - Robert Marquardt - Robert Rossmair - Olivier Sannier - Petr Vones --------------------------------------------------------------------------------- -@@JclStrings.pas -Summary: - The module JclStrings contains routines for strings - manipulation, conversion and transformation. --------------------------------------------------------------------------------- -@@JclSvcCtrl.pas -Summary: - This unit contains routines and classes to control Windows NT services --------------------------------------------------------------------------------- -@@RegularExpressions -<GROUP JCL> - TODO --------------------------------------------------------------------------------- -@@IncludedFiles -<GROUP JCL> -<title Included files and configuration> - -\TODO - -@@UnitVersioning - TODO --------------------------------------------------------------------------------- -@@Streams -<GROUP JCL> - TODO - - -@@String bases -<GROUP JCL> -\ \ - -@@64-bit support -<GROUP JCL> -\ \ - -@@Generics -<GROUP JCL> -\ \ - -@@Version numbers -<GROUP JCL> -\ \ - -@@Dynamic arrays -<GROUP JCL> -\ \ - -@@Containers.files -<GROUP Containers> -<title Container files> - -\ \ - -@@Containers.functions -<GROUP Containers> -<title Container functions> - -\ \ - -@@Containers.exceptions -<GROUP Containers> -<title Container exceptions> - -\ \ - -@@Containres.Interfaces.Maps -<GROUP Containers> -<title Maps> - -\ \ Added: trunk/help/index.html =================================================================== --- trunk/help/index.html (rev 0) +++ trunk/help/index.html 2011-01-09 13:12:56 UTC (rev 3466) @@ -0,0 +1,35 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Welcome</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="generator" content="Doc-O-Matic" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + <link rel="STYLESHEET" href="default.css" type="text/css" /> + +<script type="text/javascript" src="scripts.js"></script> +<xml> + <MSHelp:Keyword Index="NamedURLIndex" Term="HomePage"/> + <MSHelp:Keyword Index="NamedURLIndex" Term="DefaultPage"/> +</xml> +</head> +<body class="Element54" onload="onBodyLoad();"> +<div class="Element55"> +JEDI Code Library</div> +<div class="Element56"> +<a href="Jclcontents.html">Contents</a> | <a href="Jclidx.html">Index</a></div> +<div class="Element55"> +JEDI Code Library Containers</div> +<div class="Element56"> +<a href="JclContainerscontents.html">Contents</a> | <a href="JclContainersidx.html">Index</a></div> +<div class="Element55"> +JEDI Code Library Developer Tools</div> +<div class="Element56"> +<a href="JclDeveloperToolscontents.html">Contents</a> | <a href="JclDeveloperToolsidx.html">Index</a></div> +<div class="Element55"> +JEDI Code Library VCL Package</div> +<div class="Element56"> +<a href="JclVclcontents.html">Contents</a> | <a href="JclVclidx.html">Index</a></div> + +<!-- End Client Area --> +</body></html> \ No newline at end of file Property changes on: trunk/help/index.html ___________________________________________________________________ Added: svn:mime-type + text/html Added: svn:eol-style + native Modified: trunk/jcl/packages/help/Jcl.dox =================================================================== --- trunk/jcl/packages/help/Jcl.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/help/Jcl.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,10 +1,17 @@ ; This is a Doc-O-Matic version 6.5.1.1382 project file. ; This file is maintained by Doc-O-Matic, do not edit manually. - [*Control*] MasterFile=..\..\..\help\JclTemplate.dox +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=Jclcontents.html +IndexFile=Jclidx.html + +[Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=Jclcontents.html +IndexFile=Jclidx.html + [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\HTMLHelp] Help2Collection=Jcl_COL_MASTER.HxC Help2ID=Jcl @@ -13,11 +20,15 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] HLPFilename=..\..\help\Jcl.hlp +[Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=Jclcontents.html +IndexFile=Jclidx.html + [Project Database Files] Count=0 [Source Files] -Count=132 +Count=135 File1=..\..\source\common\bzip2.pas File2=..\..\source\common\Jcl8087.pas File3=..\..\source\common\JclAnsiStrings.pas @@ -86,67 +97,70 @@ File66=..\..\source\windows\JclHookExcept.pas File67=..\..\source\windows\JclLANMan.pas File68=..\..\source\windows\JclLocales.pas -File69=..\..\source\windows\JclMetadata.pas -File70=..\..\source\windows\JclMiscel.pas -File71=..\..\source\windows\JclMsdosSys.pas -File72=..\..\source\windows\JclMultimedia.pas -File73=..\..\source\windows\JclNTFS.pas -File74=..\..\source\windows\JclPeImage.pas -File75=..\..\source\windows\JclRegistry.pas -File76=..\..\source\windows\JclSecurity.pas -File77=..\..\source\windows\JclShell.pas -File78=..\..\source\windows\JclStructStorage.pas -File79=..\..\source\windows\JclSvcCtrl.pas -File80=..\..\source\windows\JclTask.pas -File81=..\..\source\windows\JclTD32.pas -File82=..\..\source\windows\JclTimeZones.pas -File83=..\..\source\windows\JclWin32.pas -File84=..\..\source\windows\JclWin32Ex.pas -File85=..\..\source\windows\JclWinMIDI.pas -File86=..\..\source\windows\MSTask.pas -File87=..\..\source\windows\sevenzip.pas -File88=..\..\source\windows\Snmp.pas -File89=..\..\..\help\8087.dtx -File90=..\..\..\help\AppInst.dtx -File91=..\..\..\help\Base.dtx -File92=..\..\..\help\Com.dtx -File93=..\..\..\help\Complex.dtx -File94=..\..\..\help\Counter.dtx -File95=..\..\..\help\DateTime.dtx -File96=..\..\..\help\Debug.dtx -File97=..\..\..\help\ExprEval.dtx -File98=..\..\..\help\FileUtils.dtx -File99=..\..\..\help\Hardlinks.dtx -File100=..\..\..\help\IncludedFiles.dtx -File101=..\..\..\help\IniFiles.dtx -File102=..\..\..\help\Jcl.dtx -File103=..\..\..\help\LANMan.dtx -File104=..\..\..\help\Locales.dtx -File105=..\..\..\help\Logic.dtx -File106=..\..\..\help\Mapi.dtx -File107=..\..\..\help\Math.dtx -File108=..\..\..\help\Midi.dtx -File109=..\..\..\help\Mime.dtx -File110=..\..\..\help\Miscel.dtx -File111=..\..\..\help\Multimedia.dtx -File112=..\..\..\help\Notify.dtx -File113=..\..\..\help\NTFS.dtx -File114=..\..\..\help\pcre.dtx -File115=..\..\..\help\PE.dtx -File116=..\..\..\help\Registry.dtx -File117=..\..\..\help\RTTI.dtx -File118=..\..\..\help\Schedule.dtx -File119=..\..\..\help\Security.dtx -File120=..\..\..\help\Shell.dtx -File121=..\..\..\help\Statistics.dtx -File122=..\..\..\help\Streams.dtx -File123=..\..\..\help\StrHashMap.dtx -File124=..\..\..\help\Strings.dtx -File125=..\..\..\help\SvcCtrl.dtx -File126=..\..\..\help\Synch.dtx -File127=..\..\..\help\SysInfo.dtx -File128=..\..\..\help\SysUtils.dtx -File129=..\..\..\help\Unicode.dtx -File130=..\..\..\help\UnitConv.dtx -File131=..\..\..\help\WideStrings.dtx -File132=..\..\..\help\Win32.dtx +File69=..\..\source\windows\JclMapi.pas +File70=..\..\source\windows\JclMetadata.pas +File71=..\..\source\windows\JclMiscel.pas +File72=..\..\source\windows\JclMsdosSys.pas +File73=..\..\source\windows\JclMultimedia.pas +File74=..\..\source\windows\JclNTFS.pas +File75=..\..\source\windows\JclPeImage.pas +File76=..\..\source\windows\JclRegistry.pas +File77=..\..\source\windows\JclSecurity.pas +File78=..\..\source\windows\JclShell.pas +File79=..\..\source\windows\JclStructStorage.pas +File80=..\..\source\windows\JclSvcCtrl.pas +File81=..\..\source\windows\JclTask.pas +File82=..\..\source\windows\JclTD32.pas +File83=..\..\source\windows\JclTimeZones.pas +File84=..\..\source\windows\JclWin32.pas +File85=..\..\source\windows\JclWin32Ex.pas +File86=..\..\source\windows\JclWinMIDI.pas +File87=..\..\source\windows\mscoree_TLB.pas +File88=..\..\source\windows\mscorlib_TLB.pas +File89=..\..\source\windows\MSTask.pas +File90=..\..\source\windows\sevenzip.pas +File91=..\..\source\windows\Snmp.pas +File92=..\..\..\help\8087.dtx +File93=..\..\..\help\AppInst.dtx +File94=..\..\..\help\Base.dtx +File95=..\..\..\help\Com.dtx +File96=..\..\..\help\Complex.dtx +File97=..\..\..\help\Counter.dtx +File98=..\..\..\help\DateTime.dtx +File99=..\..\..\help\Debug.dtx +File100=..\..\..\help\ExprEval.dtx +File101=..\..\..\help\FileUtils.dtx +File102=..\..\..\help\Hardlinks.dtx +File103=..\..\..\help\IncludedFiles.dtx +File104=..\..\..\help\IniFiles.dtx +File105=..\..\..\help\Jcl.dtx +File106=..\..\..\help\LANMan.dtx +File107=..\..\..\help\Locales.dtx +File108=..\..\..\help\Logic.dtx +File109=..\..\..\help\Mapi.dtx +File110=..\..\..\help\Math.dtx +File111=..\..\..\help\Midi.dtx +File112=..\..\..\help\Mime.dtx +File113=..\..\..\help\Miscel.dtx +File114=..\..\..\help\Multimedia.dtx +File115=..\..\..\help\Notify.dtx +File116=..\..\..\help\NTFS.dtx +File117=..\..\..\help\pcre.dtx +File118=..\..\..\help\PE.dtx +File119=..\..\..\help\Registry.dtx +File120=..\..\..\help\RTTI.dtx +File121=..\..\..\help\Schedule.dtx +File122=..\..\..\help\Security.dtx +File123=..\..\..\help\Shell.dtx +File124=..\..\..\help\Statistics.dtx +File125=..\..\..\help\Streams.dtx +File126=..\..\..\help\StrHashMap.dtx +File127=..\..\..\help\Strings.dtx +File128=..\..\..\help\SvcCtrl.dtx +File129=..\..\..\help\Synch.dtx +File130=..\..\..\help\SysInfo.dtx +File131=..\..\..\help\SysUtils.dtx +File132=..\..\..\help\Unicode.dtx +File133=..\..\..\help\UnitConv.dtx +File134=..\..\..\help\WideStrings.dtx +File135=..\..\..\help\Win32.dtx Modified: trunk/jcl/packages/help/JclContainers.dox =================================================================== --- trunk/jcl/packages/help/JclContainers.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/help/JclContainers.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,10 +1,17 @@ ; This is a Doc-O-Matic version 6.5.1.1382 project file. ; This file is maintained by Doc-O-Matic, do not edit manually. - [*Control*] MasterFile=..\..\..\help\JclTemplate.dox +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclContainerscontents.html +IndexFile=JclContainersidx.html + +[Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclContainerscontents.html +IndexFile=JclContainersidx.html + [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\HTMLHelp] Help2Collection=JclContainers_COL_MASTER.HxC Help2ID=JclContainers @@ -13,6 +20,10 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] HLPFilename=..\..\help\JclContainers.hlp +[Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclContainerscontents.html +IndexFile=JclContainersidx.html + [Project Database Files] Count=1 File0=Jcl.doxdb Modified: trunk/jcl/packages/help/JclDeveloperTools.dox =================================================================== --- trunk/jcl/packages/help/JclDeveloperTools.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/help/JclDeveloperTools.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,10 +1,17 @@ ; This is a Doc-O-Matic version 6.5.1.1382 project file. ; This file is maintained by Doc-O-Matic, do not edit manually. - [*Control*] MasterFile=..\..\..\help\JclTemplate.dox +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclDeveloperToolscontents.html +IndexFile=JclDeveloperToolsidx.html + +[Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclDeveloperToolscontents.html +IndexFile=JclDeveloperToolsidx.html + [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\HTMLHelp] Help2Collection=JclDeveloperTools_COL_MASTER.HxC Help2ID=JclDeveloperTools @@ -13,6 +20,10 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] HLPFilename=..\..\help\JclDeveloperTools.hlp +[Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclDeveloperToolscontents.html +IndexFile=JclDeveloperToolsidx.html + [Project Database Files] Count=2 File0=Jcl.doxdb Modified: trunk/jcl/packages/help/JclVcl.dox =================================================================== --- trunk/jcl/packages/help/JclVcl.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/help/JclVcl.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,10 +1,17 @@ ; This is a Doc-O-Matic version 6.5.1.1382 project file. ; This file is maintained by Doc-O-Matic, do not edit manually. - [*Control*] MasterFile=..\..\..\help\JclTemplate.dox +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclVclcontents.html +IndexFile=JclVclidx.html + +[Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclVclcontents.html +IndexFile=JclVclidx.html + [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\HTMLHelp] Help2Collection=JclVcl_COL_MASTER.HxC Help2ID=JclVcl @@ -13,6 +20,10 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] HLPFilename=..\..\help\JclVcl.hlp +[Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=JclVclcontents.html +IndexFile=JclVclidx.html + [Project Database Files] Count=1 File0=Jcl.doxdb Modified: trunk/jcl/packages/help/template.dox =================================================================== --- trunk/jcl/packages/help/template.dox 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/help/template.dox 2011-01-09 13:12:56 UTC (rev 3466) @@ -1,6 +1,5 @@ ; This is a Doc-O-Matic version 6.5.1.1382 project file. ; This file is maintained by Doc-O-Matic, do not edit manually. - <%%% BEGIN PACKAGEONLY %%%> <%%% DO NOT GENERATE %%%> <%%% END PACKAGEONLY %%%> @@ -17,6 +16,14 @@ [*Control*] MasterFile=..\..\..\help\JclTemplate.dox +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=%NAME%contents.html +IndexFile=%NAME%idx.html + +[Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=%NAME%contents.html +IndexFile=%NAME%idx.html + [Configurations\H2\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\HTMLHelp] Help2Collection=%NAME%_COL_MASTER.HxC Help2ID=%NAME% @@ -25,6 +32,10 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] HLPFilename=..\..\help\%NAME%.hlp +[Configurations\HTML\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +ContentFile=%NAME%contents.html +IndexFile=%NAME%idx.html + [Project Database Files] Count=%REQUIRECOUNT% <%%% START REQUIRES %%%> Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/jcl/packages/xml/Jcl-R.xml 2011-01-09 13:12:56 UTC (rev 3466) @@ -80,7 +80,7 @@ <File Name="..\..\source\windows\JclHookExcept.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclLANMan.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclLocales.pas" Targets="Windows" Formname="" Condition=""/> - <File Name="..\..\source\windows\JclMapi.pas" Targets="Delphi,BCB" Formname="" Condition=""/> + <File Name="..\..\source\windows\JclMapi.pas" Targets="help,Delphi,BCB" Formname="" Condition=""/> <File Name="..\..\source\windows\JclMetadata.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclMiscel.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclMsdosSys.pas" Targets="Windows" Formname="" Condition=""/> @@ -98,8 +98,8 @@ <File Name="..\..\source\windows\JclWin32.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclWin32Ex.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\JclWinMIDI.pas" Targets="Windows" Formname="" Condition=""/> - <File Name="..\..\source\windows\mscoree_TLB.pas" Targets="Pascal" Formname="" Condition=""/> - <File Name="..\..\source\windows\mscorlib_TLB.pas" Targets="Pascal" Formname="" Condition=""/> + <File Name="..\..\source\windows\mscoree_TLB.pas" Targets="help,Pascal" Formname="" Condition=""/> + <File Name="..\..\source\windows\mscorlib_TLB.pas" Targets="help,Pascal" Formname="" Condition=""/> <File Name="..\..\source\windows\MSTask.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\sevenzip.pas" Targets="Windows" Formname="" Condition=""/> <File Name="..\..\source\windows\Snmp.pas" Targets="Windows" Formname="" Condition=""/> Modified: trunk/thirdparty/makedist/JclFiles.xml =================================================================== --- trunk/thirdparty/makedist/JclFiles.xml 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/thirdparty/makedist/JclFiles.xml 2011-01-09 13:12:56 UTC (rev 3466) @@ -227,6 +227,11 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox\%PREFIX%"/> </action> @@ -301,6 +306,11 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDelay"> <configuration index="0" caption="Delay" value="30"/> </action> @@ -380,6 +390,11 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDelay"> <configuration index="0" caption="Delay" value="30"/> </action> Modified: trunk/thirdparty/makedist/JclTesting.xml =================================================================== --- trunk/thirdparty/makedist/JclTesting.xml 2011-01-08 20:41:53 UTC (rev 3465) +++ trunk/thirdparty/makedist/JclTesting.xml 2011-01-09 13:12:56 UTC (rev 3466) @@ -292,6 +292,11 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDelay"> <configuration index="0" caption="Delay" value="60"/> </action> @@ -392,6 +397,11 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDelay"> <configuration index="0" caption="Delay" value="60"/> </action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-08 20:42:03
|
Revision: 3465 http://jcl.svn.sourceforge.net/jcl/?rev=3465&view=rev Author: outchy Date: 2011-01-08 20:41:53 +0000 (Sat, 08 Jan 2011) Log Message: ----------- Help split: one help file per package. Modified Paths: -------------- trunk/help/StrHashMap.dtx trunk/jcl/devtools/pgEdit.xml trunk/jcl/packages/xml/Jcl-R.xml trunk/jcl/packages/xml/JclContainers-R.xml trunk/jcl/packages/xml/JclDeveloperTools-R.xml trunk/jcl/packages/xml/JclVcl-R.xml trunk/thirdparty/makedist/JclFiles.xml trunk/thirdparty/makedist/JclTesting.xml Added Paths: ----------- trunk/help/Jcl.dtx trunk/help/JclContainers.dtx trunk/help/JclDeveloperTools.dtx trunk/help/JclTemplate.dox trunk/help/JclVcl.dtx trunk/jcl/packages/help/ trunk/jcl/packages/help/Jcl.dox trunk/jcl/packages/help/JclContainers.dox trunk/jcl/packages/help/JclDeveloperTools.dox trunk/jcl/packages/help/JclVcl.dox trunk/jcl/packages/help/template.dox Removed Paths: ------------- trunk/help/JCLHelp.dox Deleted: trunk/help/JCLHelp.dox =================================================================== --- trunk/help/JCLHelp.dox 2011-01-08 18:20:17 UTC (rev 3464) +++ trunk/help/JCLHelp.dox 2011-01-08 20:41:53 UTC (rev 3465) @@ -1,52468 +0,0 @@ -; This is a Doc-O-Matic version 6.5.1.1382 project file. -; This file is maintained by Doc-O-Matic, do not edit manually. - -[*Control*] -MasterFile= - -[AutoTexts] -Empty=0 -Saved=1 -Text0=The text for this unknown has been generated automatically. This means that it is not documented. -Text1=<not (yet) documented> -Text10=<not (yet) documented> -Text11=<not (yet) documented> -Text12=The text for this friend has been generated automatically. This means that it is not documented. -Text13=The text for this nested type has been generated automatically. This means that it is not documented. -Text14= -Text2=<not (yet) documented> -Text3=<not (yet) documented> -Text4=<not (yet) documented> -Text5=<not (yet) documented> -Text6=<not (yet) documented> -Text7=<not (yet) documented> -Text8=<not (yet) documented> -Text9=<not (yet) documented> - -[Class Hierarchy] -Count=1 -Current=0 - -[Class Hierarchy\0] -Module= -Name=Global Class Hierarchy - -[Class Hierarchy\0\ExcludedClasses] -Count=0 - -[Class Hierarchy\0\Node Positions] -Count=0 - -[Class Hierarchy\0\Options] -Zoom=1 - -[Class Hierarchy\0\Options\Animation] -AnimInterval=25 -MaxAnimSteps=3000 - -[Class Hierarchy\0\Options\Background] -Color=16777215 -ImageFile= - -[Class Hierarchy\0\Options\Clusters] -BackgroundColor=14215660 -Border=6 -BorderColor=0 -BuildClusters=0 -Threshold=0 - -[Class Hierarchy\0\Options\Grid] -Show=0 -Snap=0 -X=10 -Y=10 - -[Class Hierarchy\0\Options\Layout] -ControlPointSize=6 -GraphBorder=20 -LayoutDirection=1 -LevelSpacing=60 -MaxNodeWidth=200 -MinNodeHeight=15 -MinNodeWidth=30 -NodesAdjustWidthToGrid=0 -NodesAllSameWidth=0 -NodeSpacing=1 -Scale=0.1 -ShowControlPoints=0 -SubGraphSpacing=40 - -[Class Hierarchy\0\Options\Lines] -ArrowOptions=3 -Arrows=1 -Color=0 -PortOffset=15 -Reverse=0 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0000] -BackgroundColor=16777215 -BorderColor=0 -GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0000\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0000\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0001] -BackgroundColor=13434829 -BorderColor=0 -GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0001\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0001\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0002] -BackgroundColor=13434829 -BorderColor=0 -GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0002\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0002\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0003] -BackgroundColor=16764313 -BorderColor=0 -GradientBaseColor=14527351 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0003\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0003\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0004] -BackgroundColor=131071 -BorderColor=0 -GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=0 -Style=3 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0004\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0004\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0005] -BackgroundColor=131071 -BorderColor=0 -GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=0 -Style=3 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0005\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0005\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0006] -BackgroundColor=16777215 -BorderColor=0 -GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0006\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0006\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0007] -BackgroundColor=52479 -BorderColor=0 -GradientBaseColor=43741 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=2 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0007\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0007\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0008] -BackgroundColor=3394407 -BorderColor=0 -GradientBaseColor=1157445 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0008\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0008\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\NodeOptionsList\0009] -BackgroundColor=16777215 -BorderColor=0 -GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 -Show=1 -Style=0 -StyleOptions=7 -TextAlignment=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0009\Font] -Charset=1 -Color=0 -Height=-9 -Name=Tahoma -Orientation=0 -Pitch=0 -Size=7 -Style=0 - -[Class Hierarchy\0\Options\NodeOptionsList\0009\TextSpacing] -Bottom=2 -Left=8 -Right=8 -Top=2 - -[Class Hierarchy\0\Options\Print] -CropRectangle=0 -MarginBottom=15 -MarginLeft=15 -MarginRight=15 -MarginTop=15 -ShowMargins=0 -Zoom=1 - -[Class Hierarchy\0\Options\Shadows] -Color=10070188 -LineShadows=0 -NodeShadows=0 -OffsetX=4 -OffsetY=4 - -[Colors] -Color_0=Black -Color_1=Blue -Color_10=SyntaxHighlight_ParameterName -Color_11=SyntaxHighlight_SymbolName -Color_12=White -Color_2=Cool Blue -Color_3=Cool Orange -Color_4=Gray -Color_5=Gray Light -Color_6=Green -Color_7=Red -Color_8=SyntaxHighlight_Comment -Color_9=SyntaxHighlight_Keyword -Count=13 -CValue_0=0 -CValue_1=16711680 -CValue_10=102 -CValue_11=102 -CValue_12=16777215 -CValue_2=9723223 -CValue_3=41727 -CValue_4=10526880 -CValue_5=13421772 -CValue_6=65280 -CValue_7=255 -CValue_8=16711680 -CValue_9=7872391 - -[Configurations] -Count=6 -Current=0 -Name0=HTML -Name1=CHM -Name2=H2 -Name3=HLP -Name4=XML -Name5=PDF - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\AdditionalFiles] -Count=2 -File0=$(DOM)\graphics\html_fullframegradient.gif -File1=$(DOM)\graphics\html_titlebkg.jpg - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\CollapsePersistence] -CookieName=DOM_Collapsed_Sections -PersistentMode=0 -PersistentStoreName=domdocSettings - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Common Layout Options] -DisplayShowAllAboveHeader=0 -DisplayShowAllSections=1 -DisplayTopicLinks=1 -TopicLinkListSeparator=' | ' -TopicLinkListSeparatorSection=', ' - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] -ContentFile=contents.html -CSSFile=default.css -CustomSearchFile=ftxtsearch.html -FrameHeaderFile=header.html -FramesetFile=frames.html -IndexFile=idx.html -JavaScriptFile=scripts.js -LinkErrorFile=error.html -ReferenceFile=symref.html -UseCSS=1 -UseJavaScript=1 -UsePopups=1 -WelcomeFile=index.html - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Copy Source Files] -File0= -File1=$(DOM)\support\scripts.js -File2=$(DOM)\support\fset_fixed.html -File3=$(DOM)\support\fset_full.html -File4=$(DOM)\support\fset_fullfixed.html -File5=$(DOM)\support\fset_empty.html -File6=$(DOM)\support\fset_header.html -File7=$(DOM)\support\customsearch.html -File8= - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements] -Count=212 -DefaultCharset=0 -ElementID_0=-901 -ElementID_1=-900 -ElementID_10=-867 -ElementID_100=-243 -ElementID_101=-242 -ElementID_102=-241 -ElementID_103=-240 -ElementID_104=-235 -ElementID_105=-232 -ElementID_106=-231 -ElementID_107=-230 -ElementID_108=-229 -ElementID_109=-228 -ElementID_11=-866 -ElementID_110=-227 -ElementID_111=-226 -ElementID_112=-225 -ElementID_113=-224 -ElementID_114=-223 -ElementID_115=-222 -ElementID_116=-221 -ElementID_117=-220 -ElementID_118=-215 -ElementID_119=-212 -ElementID_12=-865 -ElementID_120=-211 -ElementID_121=-210 -ElementID_122=-209 -ElementID_123=-208 -ElementID_124=-207 -ElementID_125=-206 -ElementID_126=-205 -ElementID_127=-204 -ElementID_128=-203 -ElementID_129=-202 -ElementID_13=-862 -ElementID_130=-201 -ElementID_131=-200 -ElementID_132=-190 -ElementID_133=-183 -ElementID_134=-182 -ElementID_135=-181 -ElementID_136=-180 -ElementID_137=-170 -ElementID_138=-161 -ElementID_139=-160 -ElementID_14=-861 -ElementID_140=-153 -ElementID_141=-152 -ElementID_142=-151 -ElementID_143=-150 -ElementID_144=-146 -ElementID_145=-145 -ElementID_146=-144 -ElementID_147=-143 -ElementID_148=-142 -ElementID_149=-103 -ElementID_15=-860 -ElementID_150=-102 -ElementID_151=-101 -ElementID_152=-100 -ElementID_153=-99 -ElementID_154=-97 -ElementID_155=-96 -ElementID_156=-95 -ElementID_157=-94 -ElementID_158=-93 -ElementID_159=-92 -ElementID_16=-851 -ElementID_160=-91 -ElementID_161=-90 -ElementID_162=-86 -ElementID_163=-85 -ElementID_164=-84 -ElementID_165=-83 -ElementID_166=-82 -ElementID_167=-81 -ElementID_168=-80 -ElementID_169=-79 -ElementID_17=-850 -ElementID_170=-78 -ElementID_171=-77 -ElementID_172=-76 -ElementID_173=-75 -ElementID_174=-68 -ElementID_175=-67 -ElementID_176=-66 -ElementID_177=-65 -ElementID_178=-63 -ElementID_179=-62 -ElementID_18=-810 -ElementID_180=-61 -ElementID_181=-58 -ElementID_182=-57 -ElementID_183=-56 -ElementID_184=-55 -ElementID_185=-54 -ElementID_186=-50 -ElementID_187=-49 -ElementID_188=-48 -ElementID_189=-40 -ElementID_19=-801 -ElementID_190=-39 -ElementID_191=-37 -ElementID_192=-35 -ElementID_193=-34 -ElementID_194=-28 -ElementID_195=-27 -ElementID_196=-25 -ElementID_197=-15 -ElementID_198=-14 -ElementID_199=-13 -ElementID_2=-875 -ElementID_20=-800 -ElementID_200=-12 -ElementID_201=-11 -ElementID_202=-10 -ElementID_203=-9 -ElementID_204=-8 -ElementID_205=-7 -ElementID_206=-6 -ElementID_207=-5 -ElementID_208=-4 -ElementID_209=-3 -ElementID_21=-740 -ElementID_210=-2 -ElementID_211=-1 -ElementID_22=-731 -ElementID_23=-730 -ElementID_24=-721 -ElementID_25=-720 -ElementID_26=-710 -ElementID_27=-700 -ElementID_28=-639 -ElementID_29=-638 -ElementID_3=-874 -ElementID_30=-637 -ElementID_31=-636 -ElementID_32=-635 -ElementID_33=-634 -ElementID_34=-633 -ElementID_35=-632 -ElementID_36=-631 -ElementID_37=-630 -ElementID_38=-609 -ElementID_39=-608 -ElementID_4=-873 -ElementID_40=-607 -ElementID_41=-606 -ElementID_42=-605 -ElementID_43=-604 -ElementID_44=-603 -ElementID_45=-602 -ElementID_46=-601 -ElementID_47=-600 -ElementID_48=-315 -ElementID_49=-312 -ElementID_5=-872 -ElementID_50=-311 -ElementID_51=-310 -ElementID_52=-309 -ElementID_53=-308 -ElementID_54=-307 -ElementID_55=-306 -ElementID_56=-305 -ElementID_57=-304 -ElementID_58=-303 -ElementID_59=-302 -ElementID_6=-871 -ElementID_60=-301 -ElementID_61=-300 -ElementID_62=-295 -ElementID_63=-292 -ElementID_64=-291 -ElementID_65=-290 -ElementID_66=-289 -ElementID_67=-288 -ElementID_68=-287 -ElementID_69=-286 -ElementID_7=-870 -ElementID_70=-285 -ElementID_71=-284 -ElementID_72=-283 -ElementID_73=-282 -ElementID_74=-281 -ElementID_75=-280 -ElementID_76=-275 -ElementID_77=-272 -ElementID_78=-271 -ElementID_79=-270 -ElementID_8=-869 -ElementID_80=-269 -ElementID_81=-268 -ElementID_82=-267 -ElementID_83=-266 -ElementID_84=-265 -ElementID_85=-264 -ElementID_86=-263 -ElementID_87=-262 -ElementID_88=-261 -ElementID_89=-260 -ElementID_9=-868 -ElementID_90=-255 -ElementID_91=-252 -ElementID_92=-251 -ElementID_93=-250 -ElementID_94=-249 -ElementID_95=-248 -ElementID_96=-247 -ElementID_97=-246 -ElementID_98=-245 -ElementID_99=-244 -StandardFixedPitchFontname=Courier New,Courier,monospace -StandardVariablePitchFontname=Verdana,Arial,Helvetica,sans-serif - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=9211020 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=30 -Size=7 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=30 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=9 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=14540253 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14] -AddLinkElementStyle=1 -Alignment=0 -BackgroundColor=536870911 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=11 -StrikeOut=0 -Underline=0 -VSpaceAfter=200 -VSpaceBefore=200 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142] -AddLinkElementStyle=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=0 -Color=16711680 -Fontname= -Italic=0 -None=0 -ParaAttributeOnly=0 -Size=8 -StrikeOut=0 -Underline=1 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143] -AddLinkElementStyle=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=0 -Color=16737843 -Fontname= -Italic=0 -None=0 -ParaAttributeOnly=0 -Size=8 -StrikeOut=0 -Underline=1 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144] -AddLinkElementStyle=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=0 -Color=16711680 -Fontname= -Italic=0 -None=0 -ParaAttributeOnly=0 -Size=8 -StrikeOut=0 -Underline=1 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145] -AddLinkElementStyle=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=0 -Color=0 -Fontname= -Italic=0 -None=0 -ParaAttributeOnly=0 -Size=8 -StrikeOut=0 -Underline=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146] -AddLinkElementStyle=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=0 -Color=0 -Fontname= -Italic=0 -None=0 -ParaAttributeOnly=0 -Size=8 -StrikeOut=0 -Underline=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=-150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=50 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname=Arial,Helvetica,sans-serif -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=14 -StrikeOut=0 -Underline=0 -VSpaceAfter=90 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=120 -VSpaceBefore=-70 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname=Arial,Helvetica,sans-serif -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=14 -StrikeOut=0 -Underline=0 -VSpaceAfter=90 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=120 -VSpaceBefore=-70 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170] -AddLinkElementStyle=0 -Alignment=2 -BackgroundColor=16248815 -Bold=0 -ClearPreviousStyle=1 -Color=6684672 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Borders] -Bottom_Colour=14601672 -Bottom_Offset=20 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=20 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182] -AddLinkElementStyle=0 -Alignment=1 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=9 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Borders] -Bottom_Colour=16768980 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16768980 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=10 -Right_Colour=16768980 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=10 -Top_Colour=16768980 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=10 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname=Arial,Helvetica,sans-serif -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=150 -Size=14 -StrikeOut=0 -Underline=0 -VSpaceAfter=90 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2] -AddLinkElementStyle=0 -Alignment=1 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=30 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=30 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=20 -VSpaceBefore=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Extended Info] -Count=1 -Line00=white-space: nowrap; - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=6684672 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=6684672 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=100 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=-75 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=50 -VSpaceBefore=100 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=6684672 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16248815 -Bold=1 -ClearPreviousStyle=1 -Color=6684672 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=0 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=16775159 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=0 -VSpaceBefore=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Borders] -Bottom_Colour=14601672 -Bottom_Offset=50 -Bottom_Visible=1 -Bottom_Width=10 -Left_Colour=16777215 -Left_Offset=60 -Left_Visible=1 -Left_Width=20 -Right_Colour=536870911 -Right_Offset=60 -Right_Visible=1 -Right_Width=2147483647 -Top_Colour=16777215 -Top_Offset=50 -Top_Visible=1 -Top_Width=20 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=33 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=1 -ReadDirection=0 -RightIndent=2147483647 -Size=8 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=33 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=2147483647 -LineSpacing=0 -None=0 -ParaAttributeOnly=0 -ReadDirection=0 -RightIndent=2147483647 -Size=-1 -StrikeOut=0 -Underline=0 -VSpaceAfter=2147483647 -VSpaceBefore=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Borders] -Bottom_Colour=536870911 -Bottom_Offset=2147483647 -Bottom_Visible=0 -Bottom_Width=2147483647 -Left_Colour=536870911 -Left_Offset=2147483647 -Left_Visible=0 -Left_Width=2147483647 -Right_Colour=536870911 -Right_Offset=2147483647 -Right_Visible=0 -Right_Width=2147483647 -Top_Colour=536870911 -Top_Offset=2147483647 -Top_Visible=0 -Top_Width=2147483647 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Extended Info] -Count=0 - -[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230] -AddLinkElementStyle=0 -Alignment=0 -BackgroundColor=536870911 -Bold=0 -ClearPreviousStyle=1 -Color=0 -FirstIndent=2147483647 -Fontname= -Italic=0 -LeftIndent=150 -LineSpacing=0 -None=0 -... [truncated message content] |
From: <ou...@us...> - 2011-01-08 18:20:24
|
Revision: 3464 http://jcl.svn.sourceforge.net/jcl/?rev=3464&view=rev Author: outchy Date: 2011-01-08 18:20:17 +0000 (Sat, 08 Jan 2011) Log Message: ----------- Remove UTF8 BOM. Regenerate fpc/JclDeveloperTools.lpk. Modified Paths: -------------- trunk/jcl/packages/d11/template.dproj trunk/jcl/packages/d12/template.dproj trunk/jcl/packages/d14/template.dproj trunk/jcl/packages/d15/template.dproj trunk/jcl/packages/fpc/Jcl.pas trunk/jcl/packages/fpc/JclContainers.pas trunk/jcl/packages/fpc/JclDeveloperTools.lpk trunk/jcl/packages/fpc/template.pas Modified: trunk/jcl/packages/d11/template.dproj =================================================================== --- trunk/jcl/packages/d11/template.dproj 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/d11/template.dproj 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,4 +1,4 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>%GUID%</ProjectGuid> <MainSource>%NAME%%SOURCEEXTENSION%</MainSource> Modified: trunk/jcl/packages/d12/template.dproj =================================================================== --- trunk/jcl/packages/d12/template.dproj 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/d12/template.dproj 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>%GUID%</ProjectGuid> <MainSource>%NAME%%SOURCEEXTENSION%</MainSource> Modified: trunk/jcl/packages/d14/template.dproj =================================================================== --- trunk/jcl/packages/d14/template.dproj 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/d14/template.dproj 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>%GUID%</ProjectGuid> <MainSource>%NAME%%SOURCEEXTENSION%</MainSource> Modified: trunk/jcl/packages/d15/template.dproj =================================================================== --- trunk/jcl/packages/d15/template.dproj 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/d15/template.dproj 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>%GUID%</ProjectGuid> <MainSource>%NAME%%SOURCEEXTENSION%</MainSource> Modified: trunk/jcl/packages/fpc/Jcl.pas =================================================================== --- trunk/jcl/packages/fpc/Jcl.pas 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/fpc/Jcl.pas 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,9 +1,9 @@ -{ +{ ----------------------------------------------------------------------------- DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:46:59 UTC + Last generated: 08-01-2011 18:17:57 UTC ----------------------------------------------------------------------------- } Modified: trunk/jcl/packages/fpc/JclContainers.pas =================================================================== --- trunk/jcl/packages/fpc/JclContainers.pas 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/fpc/JclContainers.pas 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,9 +1,9 @@ -{ +{ ----------------------------------------------------------------------------- DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclContainers-R.xml) - Last generated: 07-05-2010 18:24:22 UTC + Last generated: 08-01-2011 18:17:57 UTC ----------------------------------------------------------------------------- } Modified: trunk/jcl/packages/fpc/JclDeveloperTools.lpk =================================================================== --- trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2011-01-08 18:20:17 UTC (rev 3464) @@ -39,7 +39,7 @@ <Description Value="JEDI Code Library Developer Tools package"/> <License Value="Copyright (C) 1999, 2009 Project JEDI"/> <Version Major="2" Minor="3" Release="0" Build="3847"/> - <Files Count="29"> + <Files Count="28"> <Item1> <Filename Value="..\..\source\common\JclCompilerUtils.pas"/> <UnitName Value="JclCompilerUtils"/> @@ -128,30 +128,30 @@ <Filename Value="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> <UnitName Value="JclPreProcessorStacksTemplates"/> </Item22> - <Item24> + <Item23> <Filename Value="..\..\source\common\JclPreProcessorTemplates.pas"/> <UnitName Value="JclPreProcessorTemplates"/> + </Item23> + <Item24> + <Filename Value="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> + <UnitName Value="JclPreProcessorTreesTemplates"/> </Item24> <Item25> - <Filename Value="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> - <UnitName Value="JclPreProcessorTreesTemplates"/> + <Filename Value="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> + <UnitName Value="JclPreProcessorVectorsTemplates"/> </Item25> <Item26> - <Filename Value="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> - <UnitName Value="JclPreProcessorVectorsTemplates"/> + <Filename Value="..\..\source\common\JclUsesUtils.pas"/> + <UnitName Value="JclUsesUtils"/> </Item26> <Item27> - <Filename Value="..\..\source\common\JclUsesUtils.pas"/> - <UnitName Value="JclUsesUtils"/> + <Filename Value="..\..\source\windows\JclHelpUtils.pas"/> + <UnitName Value="JclHelpUtils"/> </Item27> <Item28> - <Filename Value="..\..\source\windows\JclHelpUtils.pas"/> - <UnitName Value="JclHelpUtils"/> - </Item28> - <Item29> <Filename Value="..\..\source\windows\MSHelpServices_TLB.pas"/> <UnitName Value="MSHelpServices_TLB"/> - </Item29> + </Item28> </Files> <RequiredPkgs Count="3"> <Item1> Modified: trunk/jcl/packages/fpc/template.pas =================================================================== --- trunk/jcl/packages/fpc/template.pas 2011-01-07 21:03:44 UTC (rev 3463) +++ trunk/jcl/packages/fpc/template.pas 2011-01-08 18:20:17 UTC (rev 3464) @@ -1,4 +1,4 @@ -{ +{ ----------------------------------------------------------------------------- DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (%XMLNAME%) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-07 21:03:50
|
Revision: 3463 http://jcl.svn.sourceforge.net/jcl/?rev=3463&view=rev Author: outchy Date: 2011-01-07 21:03:44 +0000 (Fri, 07 Jan 2011) Log Message: ----------- Some speed and memory space optimization: Properties and Items object are not implicitly created by TJclSimpleXML internal stuff. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-01-07 18:27:50 UTC (rev 3462) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-01-07 21:03:44 UTC (rev 3463) @@ -1287,6 +1287,9 @@ Elems: TJclSimpleXMLElem; SrcElem, DestElem: TJclSimpleXMLElem; I: Integer; + SrcProps, DestProps: TJclSimpleXMLProps; + SrcProp: TJclSimpleXMLProp; + SrcElems, DestElems: TJclSimpleXMLElems; begin Clear; if Value = nil then @@ -1294,17 +1297,30 @@ Elems := TJclSimpleXMLElem(Value); Name := Elems.Name; Self.Value := Elems.Value; - for I := 0 to Elems.Properties.Count - 1 do - Properties.Add(Elems.Properties[I].Name, Elems.Properties[I].Value); + SrcProps := Elems.FProps; + if Assigned(SrcProps) then + begin + DestProps := Properties; + for I := 0 to SrcProps.Count - 1 do + begin + SrcProp := SrcProps.Item[I]; + DestProps.Add(SrcProp.Name, SrcProp.Value); + end; + end; - for I := 0 to Elems.Items.Count - 1 do + SrcElems := Elems.FItems; + if Assigned(SrcElems) then begin - // Create from the class type, so that the virtual constructor is called - // creating an element of the correct class type. - SrcElem := Elems.Items[I]; - DestElem := TJclSimpleXMLElemClass(SrcElem.ClassType).Create(Self, SrcElem.Name); - DestElem.Assign(SrcElem); - Items.Add(DestElem); + DestElems := Items; + for I := 0 to SrcElems.Count - 1 do + begin + // Create from the class type, so that the virtual constructor is called + // creating an element of the correct class type. + SrcElem := SrcElems.Item[I]; + DestElem := TJclSimpleXMLElemClass(SrcElem.ClassType).Create(Self, SrcElem.Name); + DestElem.Assign(SrcElem); + DestElems.Add(DestElem); + end; end; end; @@ -2799,6 +2815,8 @@ begin lValue := Items[0].Value; Items.Clear; + // free some memory + FreeAndNil(FItems); end; Break; end @@ -2845,10 +2863,11 @@ St := Level + '<' + AName; StringStream.WriteString(St, 1, Length(St)); - Properties.SaveToStringStream(StringStream); + if Assigned(FProps) then + FProps.SaveToStringStream(StringStream); end; - if (Items.Count = 0) then + if (ItemCount = 0) then begin tmp := Value; if (Name <> '') then @@ -2876,7 +2895,7 @@ begin LevelAdd := SimpleXML.IndentString; end; - Items.SaveToStringStream(StringStream, Level + LevelAdd, AParent); + FItems.SaveToStringStream(StringStream, Level + LevelAdd, AParent); if Name <> '' then begin St := Level + '</' + AName + '>' + sLineBreak; @@ -3212,7 +3231,8 @@ else St := St + Name; StringStream.WriteString(St, 1, Length(St)); - Properties.SaveToStringStream(StringStream); + if Assigned(FProps) then + FProps.SaveToStringStream(StringStream); St := '?>' + sLineBreak; StringStream.WriteString(St, 1, Length(St)); if AParent <> nil then @@ -3243,8 +3263,11 @@ EncodingProp: TJclSimpleXMLProp; begin inherited LoadFromStringStream(StringStream, AParent); - - EncodingProp := Properties.ItemNamed['encoding']; + + if Assigned(FProps) then + EncodingProp := FProps.ItemNamed['encoding'] + else + EncodingProp := nil; if Assigned(EncodingProp) and (EncodingProp.Value <> '') then CodePage := CodePageFromCharsetName(EncodingProp.Value) else @@ -3640,6 +3663,7 @@ const Name: string; const Arguments: TVarDataArray): Boolean; var VXML, LXML: TJclSimpleXMLElem; + VElems: TJclSimpleXMLElems; I, J, K: Integer; begin Result := False; @@ -3649,16 +3673,19 @@ K := Arguments[0].vInteger; J := 0; - if K > 0 then - for I := 0 to VXML.Items.Count - 1 do - if UpperCase(VXML.Items[I].Name) = Name then + if (K > 0) and VXML.HasItems then + begin + VElems := VXML.Items; + for I := 0 to VElems.Count - 1 do + if UpperCase(VElems.Item[I].Name) = Name then begin Inc(J); if J = K then Break; end; + end; - if (J = K) and (J < VXML.Items.Count) then + if (J = K) and (J < VXML.ItemCount) then begin LXML := VXML.Items[J]; if LXML <> nil then @@ -3679,14 +3706,17 @@ begin Result := False; VXML := TJclSimpleXMLElem(V.VAny); - LXML := VXML.Items.ItemNamed[Name]; - if LXML <> nil then + if VXML.HasItems then begin - Dest.vType := VarXML; - Dest.vAny := Pointer(LXML); - Result := True; - end - else + LXML := VXML.Items.ItemNamed[Name]; + if LXML <> nil then + begin + Dest.vType := VarXML; + Dest.vAny := Pointer(LXML); + Result := True; + end; + end; + if (not Result) and VXML.HasProperties then begin lProp := VXML.Properties.ItemNamed[Name]; if lProp <> nil then @@ -3702,7 +3732,7 @@ VXML: TJclSimpleXMLElem; begin VXML := TJclSimpleXMLElem(V.VAny); - Result := (VXML = nil) or (VXML.Items.Count = 0); + Result := (VXML = nil) or (not VXML.HasItems); end; function TXMLVariant.SetProperty(const V: TVarData; const Name: string; @@ -3723,20 +3753,23 @@ begin Result := False; VXML := TJclSimpleXmlElem(V.VAny); - LXML := VXML.Items.ItemNamed[Name]; - if LXML = nil then + if VXML.HasItems then begin + LXML := VXML.Items.ItemNamed[Name]; + if LXML <> nil then + begin + LXML.Value := GetStrValue; + Result := True; + end; + end; + if (not Result) and VXML.HasProperties then + begin lProp := VXML.Properties.ItemNamed[Name]; if lProp <> nil then begin lProp.Value := GetStrValue; Result := True; end; - end - else - begin - LXML.Value := GetStrValue; - Result := True; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-07 18:27:56
|
Revision: 3462 http://jcl.svn.sourceforge.net/jcl/?rev=3462&view=rev Author: outchy Date: 2011-01-07 18:27:50 +0000 (Fri, 07 Jan 2011) Log Message: ----------- TJclSimpleXmlElem getters for properties "Items" and "Properties" always allocate some memory even if the node does not have properties and sub nodes. This memory will be released only when the node is destroyed, this behavior increases the memory usage during application lifetime. The new HasItems/HasProperties and ItemCount/PropertyCount getters make tests without allocation possible. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-01-05 19:30:51 UTC (rev 3461) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-01-07 18:27:50 UTC (rev 3462) @@ -317,6 +317,10 @@ FProps: TJclSimpleXMLProps; FSimpleXML: TJclSimpleXML; FContainer: TJclSimpleXMLElems; + function GetHasItems: Boolean; + function GetHasProperties: Boolean; + function GetItemCount: Integer; + function GetPropertyCount: Integer; protected function GetSimpleXML: TJclSimpleXML; function GetChildsCount: Integer; @@ -344,6 +348,10 @@ published property Parent: TJclSimpleXMLElem read FParent write FParent; property ChildsCount: Integer read GetChildsCount; + property HasItems: Boolean read GetHasItems; + property HasProperties: Boolean read GetHasProperties; + property ItemCount: Integer read GetItemCount; + property PropertyCount: Integer read GetPropertyCount; property Items: TJclSimpleXMLElems read GetItems; property Properties: TJclSimpleXMLProps read GetProps; end; @@ -1432,6 +1440,23 @@ Result := Result + FItems[I].ChildsCount; end; +function TJclSimpleXMLElem.GetHasItems: Boolean; +begin + Result := Assigned(FItems) and (FItems.Count > 0); +end; + +function TJclSimpleXMLElem.GetHasProperties: Boolean; +begin + Result := Assigned(FProps) and (FProps.Count > 0); +end; + +function TJclSimpleXMLElem.GetItemCount: Integer; +begin + Result := 0; + if Assigned(FItems) then + Result := FItems.Count; +end; + function TJclSimpleXMLElem.GetItems: TJclSimpleXMLElems; begin if FItems = nil then @@ -1444,6 +1469,13 @@ Result := Items.NamedElems[AChild.Name].IndexOf(AChild); end; +function TJclSimpleXMLElem.GetPropertyCount: Integer; +begin + Result := 0; + if Assigned(FProps) then + Result := FProps.Count; +end; + function TJclSimpleXMLElem.GetProps: TJclSimpleXMLProps; begin if FProps = nil then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-05 19:30:57
|
Revision: 3461 http://jcl.svn.sourceforge.net/jcl/?rev=3461&view=rev Author: outchy Date: 2011-01-05 19:30:51 +0000 (Wed, 05 Jan 2011) Log Message: ----------- revision 3460 cleanup. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3460&view=rev Modified Paths: -------------- trunk/jcl/source/common/JclSysInfo.pas Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2011-01-05 19:29:18 UTC (rev 3460) +++ trunk/jcl/source/common/JclSysInfo.pas 2011-01-05 19:30:51 UTC (rev 3461) @@ -1183,7 +1183,7 @@ MXCSR_FZ = BIT_15; // Flush to Zero const - IntelCacheDescription: array [0..101] of TCacheInfo = ( + IntelCacheDescription: array [0..102] of TCacheInfo = ( (D: $00; Family: cfOther; Size: 0; WaysOfAssoc: 0; LineSize: 0; LinePerSector: 0; Entries: 0; I: @RsIntelCacheDescr00), (D: $01; Family: cfInstructionTLB; Size: 4; WaysOfAssoc: 4; LineSize: 0; LinePerSector: 0; Entries: 32; I: @RsIntelCacheDescr01), (D: $02; Family: cfInstructionTLB; Size: 4096; WaysOfAssoc: 4; LineSize: 0; LinePerSector: 0; Entries: 2; I: @RsIntelCacheDescr02), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-05 19:29:27
|
Revision: 3460 http://jcl.svn.sourceforge.net/jcl/?rev=3460&view=rev Author: outchy Date: 2011-01-05 19:29:18 +0000 (Wed, 05 Jan 2011) Log Message: ----------- Intel spec update. Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas trunk/jcl/source/common/JclSysInfo.pas Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2011-01-05 18:03:07 UTC (rev 3459) +++ trunk/jcl/source/common/JclResources.pas 2011-01-05 19:29:18 UTC (rev 3460) @@ -1843,6 +1843,7 @@ RsIntelCacheDescr71 = 'Trace cache: 16 K-Ops, 8-way set associative'; RsIntelCacheDescr72 = 'Trace cache: 32 K-Ops, 8-way set associative'; RsIntelCacheDescr73 = 'Trace cache: 64 K-Ops, 8-way set associative'; + RsIntelCacheDescr76 = 'Instruction TLB: 2M/4M pages, fully associative, 8 entries'; RsIntelCacheDescr78 = '2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size'; RsIntelCacheDescr79 = '2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector'; RsIntelCacheDescr7A = '2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector'; Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2011-01-05 18:03:07 UTC (rev 3459) +++ trunk/jcl/source/common/JclSysInfo.pas 2011-01-05 19:29:18 UTC (rev 3460) @@ -1246,6 +1246,7 @@ (D: $71; Family: cfTrace; Size: 16; WaysOfAssoc: 8; LineSize: 0; LinePerSector: 0; Entries: 0; I: @RsIntelCacheDescr71), (D: $72; Family: cfTrace; Size: 32; WaysOfAssoc: 8; LineSize: 0; LinePerSector: 0; Entries: 0; I: @RsIntelCacheDescr72), (D: $73; Family: cfTrace; Size: 64; WaysOfAssoc: 8; LineSize: 0; LinePerSector: 0; Entries: 0; I: @RsIntelCacheDescr73), + (D: $76; Family: cfInstructionTLB; Size: 2048; WaysOfAssoc: 0; LineSize: 0; LinePerSector: 0; Entries: 8; I: @RsIntelCacheDescr76), (D: $78; Family: cfL2Cache; Size: 1024; WaysOfAssoc: 4; LineSize: 64; LinePerSector: 0; Entries: 0; I: @RsIntelCacheDescr78), (D: $79; Family: cfL2Cache; Size: 128; WaysOfAssoc: 8; LineSize: 64; LinePerSector: 2; Entries: 0; I: @RsIntelCacheDescr79), (D: $7A; Family: cfL2Cache; Size: 256; WaysOfAssoc: 8; LineSize: 64; LinePerSector: 2; Entries: 0; I: @RsIntelCacheDescr7A), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-05 18:03:14
|
Revision: 3459 http://jcl.svn.sourceforge.net/jcl/?rev=3459&view=rev Author: outchy Date: 2011-01-05 18:03:07 +0000 (Wed, 05 Jan 2011) Log Message: ----------- Mantis 5448: The routine "NtfsGetJunctionPointDestination" in JclNTFS.pas contains errors. Modified Paths: -------------- trunk/jcl/source/windows/JclNTFS.pas Modified: trunk/jcl/source/windows/JclNTFS.pas =================================================================== --- trunk/jcl/source/windows/JclNTFS.pas 2011-01-03 20:34:38 UTC (rev 3458) +++ trunk/jcl/source/windows/JclNTFS.pas 2011-01-05 18:03:07 UTC (rev 3459) @@ -1201,6 +1201,8 @@ Handle: THandle; ReparseData: TReparseDataBufferOverlay; BytesReturned: DWORD; + SubstituteName: WideString; + SubstituteNameAddr: PWideChar; begin Result := False; if NtfsFileHasReparsePoint(Source) then @@ -1217,8 +1219,12 @@ begin if BytesReturned >= DWORD(ReparseData.Reparse.SubstituteNameLength + SizeOf(WideChar)) then begin - SetLength(Destination, (ReparseData.Reparse.SubstituteNameLength div SizeOf(WideChar)) + 1); - Move(ReparseData.Reparse.PathBuffer[0], Destination[1], ReparseData.Reparse.SubstituteNameLength); + SetLength(Destination, ReparseData.Reparse.SubstituteNameLength div SizeOf(WideChar)); + SubstituteNameAddr := @ReparseData.Reparse.PathBuffer; + Inc(SubstituteNameAddr, ReparseData.Reparse.SubstituteNameOffset div SizeOf(WideChar)); + SetString(SubstituteName, SubstituteNameAddr, Length(Destination)); + Destination := string(SubstituteName); + Result := True; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-03 20:34:45
|
Revision: 3458 http://jcl.svn.sourceforge.net/jcl/?rev=3458&view=rev Author: outchy Date: 2011-01-03 20:34:38 +0000 (Mon, 03 Jan 2011) Log Message: ----------- Remove the jedi external in help directory (JEDI files now have their own help file). SVN properties cleanup. Modified Paths: -------------- trunk/thirdparty/InnoSetup/Settings.iss trunk/thirdparty/svn_cleaner/SvnCleaner.xml Property Changed: ---------------- trunk/help/ trunk/thirdparty/InnoSetup/Settings.iss Property changes on: trunk/help ___________________________________________________________________ Deleted: svn:externals - jedi https://projectjedi.svn.sourceforge.net:443/svnroot/projectjedi/trunk/shared/help Modified: trunk/thirdparty/InnoSetup/Settings.iss =================================================================== --- trunk/thirdparty/InnoSetup/Settings.iss 2011-01-03 20:25:30 UTC (rev 3457) +++ trunk/thirdparty/InnoSetup/Settings.iss 2011-01-03 20:34:38 UTC (rev 3458) @@ -1,2 +1,2 @@ -#define Include_Delphi15 -#define JclVersionStr "2.0.1.3449" +#define Include_Delphi15 +#define JclVersionStr "2.0.1.3449" Property changes on: trunk/thirdparty/InnoSetup/Settings.iss ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/thirdparty/svn_cleaner/SvnCleaner.xml =================================================================== --- trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2011-01-03 20:25:30 UTC (rev 3457) +++ trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2011-01-03 20:34:38 UTC (rev 3458) @@ -91,9 +91,6 @@ <value>*.doxdb</value> <value>*.bak</value> </property> - <property name="svn:externals"> - <value>jedi https://projectjedi.svn.sourceforge.net:443/svnroot/projectjedi/trunk/shared/help</value> - </property> </setting> <setting path="qa/automated/dunit" mask="" recurse="no" dironly="yes"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-03 20:25:40
|
Revision: 3457 http://jcl.svn.sourceforge.net/jcl/?rev=3457&view=rev Author: outchy Date: 2011-01-03 20:25:30 +0000 (Mon, 03 Jan 2011) Log Message: ----------- embed content structure inside the help topics rather than in the help project file. Modified Paths: -------------- trunk/help/Com.dtx trunk/help/JCLHelp.dox trunk/help/LANMan.dtx trunk/help/PE.dtx trunk/help/Security.dtx trunk/help/Shell.dtx trunk/help/Streams.dtx trunk/help/SvcCtrl.dtx trunk/help/Win32.dtx trunk/help/hlpgrps.dtx trunk/help/pcre.dtx Modified: trunk/help/Com.dtx =================================================================== --- trunk/help/Com.dtx 2011-01-03 10:49:24 UTC (rev 3456) +++ trunk/help/Com.dtx 2011-01-03 20:25:30 UTC (rev 3457) @@ -1,15 +1,15 @@ -@@Windows.ComponentObjectModel -<GROUP Windows> +@@Windows_Specific.ComponentObjectModel +<GROUP Windows_Specific> <TITLE Component Object Model> <TOPICORDER 200> -------------------------------------------------------------------------------- -@@Windows.ComponentObjectModel.VersionUtilities -<GROUP Windows.ComponentObjectModel> +@@Windows_Specific.ComponentObjectModel.VersionUtilities +<GROUP Windows_Specific.ComponentObjectModel> <TITLE Version Utilities> <TOPICORDER 100> -------------------------------------------------------------------------------- @@IsDCOMInstalled -<GROUP Windows.ComponentObjectModel.VersionUtilities> +<GROUP Windows_Specific.ComponentObjectModel.VersionUtilities> Summary: Returns whether DCOM is installed. Description: @@ -28,7 +28,7 @@ Kevin S. Gallagher -------------------------------------------------------------------------------- @@IsDCOMEnabled -<GROUP Windows.ComponentObjectModel.VersionUtilities> +<GROUP Windows_Specific.ComponentObjectModel.VersionUtilities> Summary: Returns whether DCOM is enabled. Description: @@ -43,7 +43,7 @@ Kevin S. Gallagher -------------------------------------------------------------------------------- @@GetDCOMVersion -<GROUP Windows.ComponentObjectModel.VersionUtilities> +<GROUP Windows_Specific.ComponentObjectModel.VersionUtilities> Summary: Returns the version of DCOM installed. Description: @@ -59,7 +59,7 @@ Kevin S. Gallagher -------------------------------------------------------------------------------- @@GetMDACVersion -<GROUP Windows.ComponentObjectModel.VersionUtilities> +<GROUP Windows_Specific.ComponentObjectModel.VersionUtilities> Summary: Returns the version of MDAC (Microsoft Data Access) installed. Description: Modified: trunk/help/JCLHelp.dox =================================================================== --- trunk/help/JCLHelp.dox 2011-01-03 10:49:24 UTC (rev 3456) +++ trunk/help/JCLHelp.dox 2011-01-03 20:25:30 UTC (rev 3457) @@ -50292,7 +50292,7 @@ GraphBorder=0 LayoutDirection=1 LevelSpacing=30 -MaxNodeWidth=200 +MaxNodeWidth=350 MinNodeHeight=15 MinNodeWidth=30 NodesAdjustWidthToGrid=0 @@ -50314,8 +50314,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50325,7 +50325,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50341,8 +50341,8 @@ BackgroundColor=13434829 BorderColor=0 GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50352,7 +50352,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50368,8 +50368,8 @@ BackgroundColor=13434829 BorderColor=0 GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50379,7 +50379,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50395,8 +50395,8 @@ BackgroundColor=16764313 BorderColor=0 GradientBaseColor=14527351 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50406,7 +50406,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50422,8 +50422,8 @@ BackgroundColor=131071 BorderColor=0 GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=0 Style=3 StyleOptions=7 @@ -50433,7 +50433,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50449,8 +50449,8 @@ BackgroundColor=131071 BorderColor=0 GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=0 Style=3 StyleOptions=7 @@ -50460,7 +50460,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50476,8 +50476,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50487,7 +50487,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50503,8 +50503,8 @@ BackgroundColor=52479 BorderColor=0 GradientBaseColor=43741 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=2 StyleOptions=7 @@ -50514,7 +50514,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50530,8 +50530,8 @@ BackgroundColor=3394407 BorderColor=0 GradientBaseColor=1157445 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50541,7 +50541,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -50557,8 +50557,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -50568,7 +50568,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -51295,102603 +51295,8 @@ UseInheritedUseUsing=0 [External Topic Properties] -Count=16795 -ID0=!!CLASSES -ID1=!!CONSTANTS -ID10=!!OVERLOADED_AppendFormat_TStringBuilder -ID100=!!OVERLOADED_InsertSegments_TEDITransactionSet -ID1000=CALINFO_ENUMPROCEXA -ID10000=TExtendedCompare -ID10001=TExtendedEqualityCompare -ID10002=TExtendedHashConvert -ID10003=TExtendedIterateProcedure -ID10004=TExtendedSortProc -ID10005=TFileEnumeratorSyncMode -ID10006=TFileEnumeratorSyncMode.smPerDirectory -ID10007=TFileEnumeratorSyncMode.smPerFile -ID10008=TFileFlag -ID10009=TFileFlag.ffDebug -ID1001=CALL_PENDING -ID10010=TFileFlag.ffInfoInferred -ID10011=TFileFlag.ffPatched -ID10012=TFileFlag.ffPreRelease -ID10013=TFileFlag.ffPrivateBuild -ID10014=TFileFlag.ffSpecialBuild -ID10015=TFileHandler -ID10016=TFileHandlerEx -ID10017=TFileInfoHandlerEx -ID10018=TFileListOption -ID10019=TFileListOption.flFullNames -ID1002=CallFunctionShim@PWideChar@PChar@Pointer@Pointer@PWideChar@Pointer -ID10020=TFileListOption.flMaskedSubfolders -ID10021=TFileListOption.flRecursive -ID10022=TFileMatchFunc -ID10023=TFileSearchOption -ID10024=TFileSearchOption.fsIncludeHiddenSubDirectories -ID10025=TFileSearchOption.fsIncludeSubDirectories -ID10026=TFileSearchOption.fsLastChangeAfter -ID10027=TFileSearchOption.fsLastChangeBefore -ID10028=TFileSearchOption.fsMaxSize -ID10029=TFileSearchOption.fsMinSize -ID1003=CallPCRECallout@pcre_callout_block -ID10030=TFileSearchTaskID -ID10031=TFileSearchTerminationEvent -ID10032=TFileSystemFlag -ID10033=TFileSystemFlag.fsCasePreservedNames -ID10034=TFileSystemFlag.fsCaseSensitive -ID10035=TFileSystemFlag.fsPersistentACLs -ID10036=TFileSystemFlag.fsSupportsEncryption -ID10037=TFileSystemFlag.fsSupportsFileCompression -ID10038=TFileSystemFlag.fsSupportsNamedStreams -ID10039=TFileSystemFlag.fsSupportsObjectIds -ID1004=CallPCREFree@Pointer -ID10040=TFileSystemFlag.fsSupportsRemoteStorage -ID10041=TFileSystemFlag.fsSupportsReparsePoints -ID10042=TFileSystemFlag.fsSupportsSparseFiles -ID10043=TFileSystemFlag.fsSupportsUnicodeOnDisk -ID10044=TFileSystemFlag.fsSupportsVolumeQuotas -ID10045=TFileSystemFlag.fsVolumeIsCompressed -ID10046=TFileSystemFlag.fsVolumeIsReadOnly -ID10047=TFileSystemFlags -ID10048=TFileTime -ID10049=TFileTimeSetter -ID1005=CallPCREMalloc@Integer -ID10050=TFileVersionFormat -ID10051=TFileVersionFormat.vfFull -ID10052=TFileVersionFormat.vfMajorMinor -ID10053=TFindNameBuffer -ID10054=TFindNameHeader -ID10055=TFloat32Func -ID10056=TFloat64Func -ID10057=TFloat80Func -ID10058=TFloatApplyFunction -ID10059=TFloatCompare -ID1006=CallPCREStackFree@Pointer -ID10060=TFloatEqualityCompare -ID10061=TFloatHashConvert -ID10062=TFloatIterateProcedure -ID10063=TFloatSortProc -ID10064=TFNCreateHardLinkA -ID10065=TFNCreateHardLinkW -ID10066=TFontCharSet -ID10067=TFontType -ID10068=TFontType.ftAuto -ID10069=TFontType.ftCaption -ID1007=CallPCREStackMalloc@Integer -ID10070=TFontType.ftContent -ID10071=TFpoData -ID10072=TFreeSysResKind -ID10073=TFreeSysResKind.rtGdi -ID10074=TFreeSysResKind.rtSystem -ID10075=TFreeSysResKind.rtUser -ID10076=TFreeSystemResources -ID10077=TFreeSystemResources.GdiRes -ID10078=TFreeSystemResources.SystemRes -ID10079=TFreeSystemResources.UserRes -ID1008=CardinalMask -ID10080=TGenericReparseBuffer -ID10081=TGenericReparseBuffer.DataBuffer -ID10082=TGetFileExInfoLevels -ID10083=TGlobalTypeInfo -ID10084=TGlobalTypeInfo.Count -ID10085=TGlobalTypeInfo.Offsets -ID10086=TGroupInfo0 -ID10087=TGroupInfo1 -ID10088=THashConvert -ID10089=THLSValue -ID1009=CardinalSimpleCompare@Cardinal@Cardinal -ID10090=THLSVector -ID10091=THLSVector.Hue -ID10092=THLSVector.Luminance -ID10093=THLSVector.Saturation -ID10094=THREADSAFE -ID10095=ThreeEpsDouble -ID10096=ThreeEpsExtended -ID10097=ThreeEpsilon -ID10098=ThreeEpsSingle -ID10099=ThreePi -ID101=!!OVERLOADED_InsertSubElement_TEDISEFCompositeElement -ID1010=CardinalSimpleEqualityCompare@Cardinal@Cardinal -ID10100=TIIDUnion -ID10101=TIIDUnion.Characteristics -ID10102=TIIDUnion.OriginalFirstThunk -ID10103=TImageArchitectureEntry -ID10104=TImageArchitectureHeader -ID10105=TImageArchiveMemberHeader -ID10106=TImageCoffSymbolsHeader -ID10107=TImageCorILMethodFat -ID10108=TImageCorILMethodHeader -ID10109=TImageCorILMethodHeader.Fat -ID1011=CardinalSimpleHashConvert@Cardinal -ID10110=TImageCorILMethodHeader.Tiny -ID10111=TImageCorILMethodSectEH -ID10112=TImageCorILMethodSectEHClauseFat -ID10113=TImageCorILMethodSectEHClauseSmall -ID10114=TImageCorILMethodSectEHFat -ID10115=TImageCorILMethodSectEHSmall -ID10116=TImageCorILMethodSectFat -ID10117=TImageCorILMethodSectHeader -ID10118=TImageCorILMethodSectHeader.Fat -ID10119=TImageCorILMethodSectHeader.Small -ID1012=CardinalSortProc -ID10120=TImageCorILMethodSectSmall -ID10121=TImageCorILMethodTiny -ID10122=TImageCorVTableFixup -ID10123=TImageCorVTableFixupArray -ID10124=TImageDataDirectory -ID10125=TImageDebugMisc -ID10126=TImageFileHeader -ID10127=TImageFunctionEntry -ID10128=TImageFunctionEntry64 -ID10129=TImageHlpLine -ID1013=Catalan -ID10130=TImageLineNumber -ID10131=TImageLoadConfigDirectory32 -ID10132=TImageLoadConfigDirectory64 -ID10133=TImageNtHeaders32 -ID10134=TImageNtHeaders64 -ID10135=TImageOptionalHeader32 -ID10136=TImageOptionalHeader64 -ID10137=TImageResourceDirectoryString -ID10138=TImageRomHeaders -ID10139=TImageRomOptionalHeader -ID1014=CATID_SafeForInitializing -ID10140=TImageSectionHeader -ID10141=TImageSeparateDebugHeader -ID10142=TImageThunkData32 -ID10143=TImageThunkData64 -ID10144=TImageTlsCallback -ID10145=TImageTlsDirectory32 -ID10146=TImageTlsDirectory64 -ID10147=TIMEQ_FOREVER -ID10148=TimeStampDOW@TTimeStamp -ID10149=TImgDelayDescrV1 -ID1015=CATID_SafeForScripting -ID10150=TImgDelayDescrV2 -ID10151=TImgLineNoType -ID10152=TImgLineNoType.SymbolTableIndex -ID10153=TImgLineNoType.VirtualAddress -ID10154=TImgSecHdrMisc -ID10155=TImgSecHdrMisc.PhysicalAddress -ID10156=TImgSecHdrMisc.VirtualSize -ID10157=TImportObjectHeader -ID10158=TImportObjectNameType -ID10159=TImportObjectType -ID1016=CBinMax -ID10160=TInt64ApplyFunction -ID10161=TInt64Compare -ID10162=TInt64EqualityCompare -ID10163=TInt64HashConvert -ID10164=TInt64IterateProcedure -ID10165=TInt64Setter -ID10166=TInt64SortProc -ID10167=TIntegerApplyFunction -ID10168=TIntegerCompare -ID10169=TIntegerEqualityCompare -ID1017=Cbrt10 -ID10170=TIntegerHashConvert -ID10171=TIntegerIterateProcedure -ID10172=TIntegerSet -ID10173=TIntegerSortProc -ID10174=TInternalFindStreamData -ID10175=TInternalFindStreamData.Context -ID10176=TInternalFindStreamData.FileHandle -ID10177=TInternalFindStreamData.StreamIds -ID10178=TIntfApplyFunction -ID10179=TIntfCompare -ID1018=Cbrt100 -ID10180=TIntfEqualityCompare -ID10181=TIntfHashConvert -ID10182=TIntfIterateProcedure -ID10183=TIntfSortProc -ID10184=TIterateProcedure -ID10185=TItrStart -ID10186=TJcl7zCompressArchive -ID10187=TJcl7zDecompressArchive -ID10188=TJcl7zUpdateArchive -ID10189=TJclAbstractContainer -ID1019=Cbrt2 -ID10190=TJclAbstractContainerBase -ID10191=TJclAbstractIterator -ID10192=TJclAbstractLockable -ID10193=TJclAddr -ID10194=TJclAddr32 -ID10195=TJclAddr64 -ID10196=TJclAllowedPowerOperation -ID10197=TJclAllowedPowerOperation.apoHibernate -ID10198=TJclAllowedPowerOperation.apoShutdown -ID10199=TJclAllowedPowerOperation.apoSuspend -ID102=!!OVERLOADED_InsertTable_TEDISEFSet -ID1020=Cbrt3 -ID10200=TJclAllowedPowerOperations -ID10201=TJclAnsiCaptureOffset -ID10202=TJclAnsiCaptureOffset.FirstPos -ID10203=TJclAnsiCaptureOffset.LastPos -ID10204=TJclAnsiCaptureRange -ID10205=TJclAnsiCaptureRange.FirstPos -ID10206=TJclAnsiCaptureRange.LastPos -ID10207=TJclAnsiMappedTextReader -ID10208=TJclAnsiRegEx -ID10209=TJclAnsiRegEx.CalloutHandler@pcre_callout_block -ID1021=CbrtPi -ID10210=TJclAnsiRegEx.CaptureCount -ID10211=TJclAnsiRegEx.CaptureNameCount -ID10212=TJclAnsiRegEx.CaptureNames -ID10213=TJclAnsiRegEx.CaptureOffset -ID10214=TJclAnsiRegEx.CaptureRanges -ID10215=TJclAnsiRegEx.Captures -ID10216=TJclAnsiRegEx.Compile@AnsiString@Boolean@Boolean -ID10217=TJclAnsiRegEx.Create -ID10218=TJclAnsiRegEx.Destroy -ID10219=TJclAnsiRegEx.DfaMode -ID1022=CCHBinName -ID10220=TJclAnsiRegEx.ErrorCode -ID10221=TJclAnsiRegEx.ErrorMessage -ID10222=TJclAnsiRegEx.ErrorOffset -ID10223=TJclAnsiRegEx.FCaptureCount -ID10224=TJclAnsiRegEx.FChangedCaptures -ID10225=TJclAnsiRegEx.FCode -ID10226=TJclAnsiRegEx.FDfaMode -ID10227=TJclAnsiRegEx.FErrorCode -ID10228=TJclAnsiRegEx.FErrorMessage -ID10229=TJclAnsiRegEx.FErrorOffset -ID1023=CCHPaperName -ID10230=TJclAnsiRegEx.FExtra -ID10231=TJclAnsiRegEx.FOnCallout -ID10232=TJclAnsiRegEx.FOptions -ID10233=TJclAnsiRegEx.FPattern -ID10234=TJclAnsiRegEx.FResultValues -ID10235=TJclAnsiRegEx.FSubject -ID10236=TJclAnsiRegEx.FVector -ID10237=TJclAnsiRegEx.FVectorSize -ID10238=TJclAnsiRegEx.FViewChanges -ID10239=TJclAnsiRegEx.GetAPIOptions@Boolean -ID1024=CelsiusAbsoluteZero -ID10240=TJclAnsiRegEx.GetCapture@Integer -ID10241=TJclAnsiRegEx.GetCaptureName@Integer -ID10242=TJclAnsiRegEx.GetCaptureNameCount -ID10243=TJclAnsiRegEx.GetCaptureRange@Integer -ID10244=TJclAnsiRegEx.GetNamedCapture@AnsiString -ID10245=TJclAnsiRegEx.GetResult -ID10246=TJclAnsiRegEx.IndexOfName@String -ID10247=TJclAnsiRegEx.IsNameValid@String -ID10248=TJclAnsiRegEx.Match@AnsiString@Cardinal -ID10249=TJclAnsiRegEx.NamedCaptures -ID1025=CelsiusBoilingPoint -ID10250=TJclAnsiRegEx.oncallout -ID10251=TJclAnsiRegEx.Options -ID10252=TJclAnsiRegEx.Pattern -ID10253=TJclAnsiRegEx.Result -ID10254=TJclAnsiRegEx.SetCapture@Integer@AnsiString -ID10255=TJclAnsiRegEx.SetNamedCapture@Ansistring@Ansistring -ID10256=TJclAnsiRegEx.Subject -ID10257=TJclAnsiRegEx.ViewChanges -ID10258=TJclAnsiRegExCallout -ID10259=TJclAnsiRegExOption -ID1026=CelsiusFreezingPoint -ID10260=TJclAnsiRegExOption.roAnchored -ID10261=TJclAnsiRegExOption.roAutoCallout -ID10262=TJclAnsiRegExOption.roDfaFirstLine -ID10263=TJclAnsiRegExOption.roDfaRestart -ID10264=TJclAnsiRegExOption.roDfaShortest -ID10265=TJclAnsiRegExOption.roDollarEndOnly -ID10266=TJclAnsiRegExOption.roDotAll -ID10267=TJclAnsiRegExOption.roDupNames -ID10268=TJclAnsiRegExOption.roExtended -ID10269=TJclAnsiRegExOption.roExtra -ID1027=CelsiusTo@TTemperatureType@Float -ID10270=TJclAnsiRegExOption.roIgnoreCase -ID10271=TJclAnsiRegExOption.roMultiLine -ID10272=TJclAnsiRegExOption.roNewLineAny -ID10273=TJclAnsiRegExOption.roNewLineCR -ID10274=TJclAnsiRegExOption.roNewLineCRLF -ID10275=TJclAnsiRegExOption.roNewLineLF -ID10276=TJclAnsiRegExOption.roNoAutoCapture -ID10277=TJclAnsiRegExOption.roNotBOL -ID10278=TJclAnsiRegExOption.roNotEmpty -ID10279=TJclAnsiRegExOption.roNotEOL -ID1028=CelsiusToRankine@Float -ID10280=TJclAnsiRegExOption.roNoUTF8Check -ID10281=TJclAnsiRegExOption.roPartial -ID10282=TJclAnsiRegExOption.roUnGreedy -ID10283=TJclAnsiRegExOption.roUTF8 -ID10284=TJclAnsiRegExOptions -ID10285=TJclAnsiStrAbstractCollection -ID10286=TJclAnsiStrAbstractContainer -ID10287=TJclAnsiStrAnsiStrBucket -ID10288=TJclAnsiStrAnsiStrHashEntry -ID10289=TJclAnsiStrAnsiStrHashMap -ID1029=CelsiusToReaumur@Float -ID10290=TJclAnsiStrAnsiStrSortedEntry -ID10291=TJclAnsiStrAnsiStrSortedMap -ID10292=TJclAnsiStrArrayIterator -ID10293=TJclAnsiStrArrayList -ID10294=TJclAnsiStrArraySet -ID10295=TJclAnsiStrBinaryNode -ID10296=TJclAnsiStrBinaryTree -ID10297=TJclAnsiStrBinaryTreeIterator -ID10298=TJclAnsiStrBucket -ID10299=TJclAnsiStream -ID103=!!OVERLOADED_IsConsole_TJclConsole -ID1030=CharEqualNoCase@Char@Char -ID10300=TJclAnsiStrEncoding -ID10301=TJclAnsiStrHashEntry -ID10302=TJclAnsiStrHashMap -ID10303=TJclAnsiStrHashSet -ID10304=TJclAnsiStringList -ID10305=TJclAnsiStringListSortCompare -ID10306=TJclAnsiStringObjectHolder -ID10307=TJclAnsiStrings -ID10308=TJclAnsiStrIntfBucket -ID10309=TJclAnsiStrIntfHashEntry -ID1031=CharFitsWithinDots@string@Integer -ID10310=TJclAnsiStrIntfHashMap -ID10311=TJclAnsiStrIntfSortedEntry -ID10312=TJclAnsiStrIntfSortedMap -ID10313=TJclAnsiStrLinkedList -ID10314=TJclAnsiStrLinkedListItem -ID10315=TJclAnsiStrLinkedListIterator -ID10316=TJclAnsiStrQueue -ID10317=TJclAnsiStrSortedEntry -ID10318=TJclAnsiStrSortedMap -ID10319=TJclAnsiStrStack -ID1032=CharHex@Char -ID10320=TJclAnsiStrTree -ID10321=TJclAnsiStrTreeIterator -ID10322=TJclAnsiStrTreeNode -ID10323=TJclAnsiStrVector -ID10324=TJclAnsiStrVectorIterator -ID10325=TJclAPMDecompressArchive -ID10326=TJclAppInstances -ID10327=TJclAppInstances.AppWnds -ID10328=TJclAppInstances.BringAppWindowToFront -ID10329=TJclAppInstances.CheckInstance -ID1033=CharIPos@string@Char@Integer -ID10330=TJclAppInstances.CheckMultipleInstances -ID10331=TJclAppInstances.CheckSingleInstance -ID10332=TJclAppInstances.Create -ID10333=TJclAppInstances.Destroy -ID10334=TJclAppInstances.FCPID -ID10335=TJclAppInstances.FMapping -ID10336=TJclAppInstances.FMappingView -ID10337=TJclAppInstances.FMessageID -ID10338=TJclAppInstances.FOptex -ID10339=TJclAppInstances.GetApplicationWnd -ID1034=CharIPos@string@Char@SizeInt -ID10340=TJclAppInstances.GetAppWnds@Integer -ID10341=TJclAppInstances.GetInstanceCount -ID10342=TJclAppInstances.GetInstanceIndex@DWORD -ID10343=TJclAppInstances.GetProcessIDs@Integer -ID10344=TJclAppInstances.InitData -ID10345=TJclAppInstances.InstanceCount -ID10346=TJclAppInstances.InstanceIndex -ID10347=TJclAppInstances.KillInstance -ID10348=TJclAppInstances.MessageID -ID10349=TJclAppInstances.NotifyInstances@Longint@Longint -ID1035=CharIsAlpha@Char -ID10350=TJclAppInstances.ProcessIDs -ID10351=TJclAppInstances.RemoveInstance -ID10352=TJclAppInstances.SendCmdLineParams@string@THandle -ID10353=TJclAppInstances.SendData -ID10354=TJclAppInstances.SendString -ID10355=TJclAppInstances.SendStrings -ID10356=TJclAppInstances.SetForegroundWindow98 -ID10357=TJclAppInstances.SwitchTo -ID10358=TJclAppInstances.UserNotify -ID10359=TJclAppInstDataKind -ID1036=CharIsAlphaNum@Char -ID10360=TJclArjDecompressArchive -ID10361=TJclArrayIterator -ID10362=TJclArraySet -ID10363=TJclArraySet.Add@TObject -ID10364=TJclArraySet.AddAll@IJclCollection -ID10365=TJclArraySet.BinarySearch@TObject -ID10366=TJclArraySet.Contains@TObject -ID10367=TJclArraySet.Insert@Integer@TObject -ID10368=TJclArraySet.Intersect@IJclCollection -ID10369=TJclArraySet.Subtract@IJclCollection -ID1037=CharIsBlank@Char -ID10370=TJclArraySet.Union@IJclCollection -ID10371=TJclASet -ID10372=TJclASet.Clear -ID10373=TJclASet.GetBit@Integer -ID10374=TJclASet.GetRange@Integer@Integer@Boolean -ID10375=TJclASet.Invert -ID10376=TJclASet.SetBit@Integer@Boolean -ID10377=TJclASet.SetRange@Integer@Integer@Boolean -ID10378=TJclAttributeMatch -ID10379=TJclAttributeMatch.amAny -ID1038=CharIsControl@Char -ID10380=TJclAttributeMatch.amCustom -ID10381=TJclAttributeMatch.amExact -ID10382=TJclAttributeMatch.amSubSetOf -ID10383=TJclAttributeMatch.amSuperSetOf -ID10384=TJclAudioSummaryInformation -ID10385=TJclAudioSummaryInformation.AverageDataRate -ID10386=TJclAudioSummaryInformation.ChannelCount -ID10387=TJclAudioSummaryInformation.Compression -ID10388=TJclAudioSummaryInformation.Format -ID10389=TJclAudioSummaryInformation.GetFMTID -ID1039=CharIsDelete@Char -ID10390=TJclAudioSummaryInformation.SampleRate -ID10391=TJclAudioSummaryInformation.SampleSize -ID10392=TJclAudioSummaryInformation.StreamName -ID10393=TJclAudioSummaryInformation.StreamNumber -ID10394=TJclAudioSummaryInformation.TimeLength -ID10395=TJclAutoGrowStrategy -ID10396=TJclAutoPackStrategy -ID10397=TJclAutoPtr -ID10398=TJclAutoStream -ID10399=TJclBaseListener -ID104=!!OVERLOADED_IsEqual_TJclRational -ID1040=CharIsDigit@Char -ID10400=TJclBaseNotificationMessage -ID10401=TJclBaseNotifier -ID10402=TJclBCBInstallation -ID10403=TJclBCBInstallation.ConfigFileName@string -ID10404=TJclBCBInstallation.Create@string -ID10405=TJclBCBInstallation.Destroy -ID10406=TJclBCBInstallation.GetEnvironmentVariables -ID10407=TJclBCBInstallation.GetLatestUpdatePackForVersion@Integer -ID10408=TJclBCBInstallation.PackageSourceFileExtension -ID10409=TJclBCBInstallation.ProjectSourceFileExtension -ID1041=CharIsDriveLetter@char -ID10410=TJclBCBInstallation.RadToolKind -ID10411=TJclBCBInstallation.RadToolName -ID10412=TJclBCC32 -ID10413=TJclBCC32.Create@TJclBorRADToolInstallation -ID10414=TJclBCC32.GetExeName -ID10415=TJclBCC32.SupportsLibSuffix -ID10416=TJclBDSInstallation -ID10417=TJclBDSInstallation.AddToCppBrowsingPath@string -ID10418=TJclBDSInstallation.AddToCppLibraryPath@string -ID10419=TJclBDSInstallation.AddToCppSearchPath@string -ID1042=CharIsFracDigit@AnsiChar -ID10420=TJclBDSInstallation.CleanPackageCache@string -ID10421=TJclBDSInstallation.CompileDelphiDotNetProject@string@string@TJclBorPlatform@string@string -ID10422=TJclBDSInstallation.CompileDelphiPackage@string@string@string@string -ID10423=TJclBDSInstallation.CompileDelphiProject@string@string@string -ID10424=TJclBDSInstallation.CppBrowsingPath -ID10425=TJclBDSInstallation.CppLibraryPath -ID10426=TJclBDSInstallation.CppSearchPath -ID10427=TJclBDSInstallation.Create@string -ID10428=TJclBDSInstallation.DCCIL -ID10429=TJclBDSInstallation.Destroy -ID1043=CharIsFracDigit@Char -ID10430=TJclBDSInstallation.DualPackageInstallation -ID10431=TJclBDSInstallation.FDCCIL -ID10432=TJclBDSInstallation.FDualPackageInstallation -ID10433=TJclBDSInstallation.FHelp2Manager -ID10434=TJclBDSInstallation.FPdbCreate -ID10435=TJclBDSInstallation.GetBPLOutputPath -ID10436=TJclBDSInstallation.GetCommonProjectsDir -ID10437=TJclBDSInstallation.GetCommonProjectsDirectory@string@Integer -ID10438=TJclBDSInstallation.GetCppBrowsingPath -ID10439=TJclBDSInstallation.GetCppLibraryPath -ID1044=CharIsHexDigit@AnsiChar -ID10440=TJclBDSInstallation.GetCppPathsKeyName -ID10441=TJclBDSInstallation.GetCppSearchPath -ID10442=TJclBDSInstallation.GetDCPOutputPath -ID10443=TJclBDSInstallation.GetDebugDCUPath -ID10444=TJclBDSInstallation.GetDefaultProjectsDir -ID10445=TJclBDSInstallation.GetDefaultProjectsDirectory@string@Integer -ID10446=TJclBDSInstallation.GetEnvironmentVariables -ID10447=TJclBDSInstallation.GetLatestUpdatePackForVersion@Integer -ID10448=TJclBDSInstallation.GetLibraryBrowsingPath -ID10449=TJclBDSInstallation.GetLibrarySearchPath -ID1045=CharIsHexDigit@Char -ID10450=TJclBDSInstallation.GetMaxDelphiCLRVersion -ID10451=TJclBDSInstallation.GetMsBuildEnvOption@string -ID10452=TJclBDSInstallation.GetMsBuildEnvOptionsFileName -ID10453=TJclBDSInstallation.GetName -ID10454=TJclBDSInstallation.GetValid -ID10455=TJclBDSInstallation.GetVclIncludeDir -ID10456=TJclBDSInstallation.Help2Manager -ID10457=TJclBDSInstallation.MaxDelphiCLRVersion -ID10458=TJclBDSInstallation.PackageSourceFileExtension -ID10459=TJclBDSInstallation.PdbCreate -ID1046=CharIsLower@Char -ID10460=TJclBDSInstallation.ProjectSourceFileExtension -ID10461=TJclBDSInstallation.RadToolKind -ID10462=TJclBDSInstallation.RadToolName -ID10463=TJclBDSInstallation.RegisterPackage@string@string -ID10464=TJclBDSInstallation.RemoveFromCppBrowsingPath@string -ID10465=TJclBDSInstallation.RemoveFromCppLibraryPath@string -ID10466=TJclBDSInstallation.RemoveFromCppSearchPath@string -ID10467=TJclBDSInstallation.SetCppBrowsingPath@TJclBorRADToolPath -ID10468=TJclBDSInstallation.SetCppLibraryPath@TJclBorRADToolPath -ID10469=TJclBDSInstallation.SetCppSearchPath@TJclBorRADToolPath -ID1047=CharIsNumber@AnsiChar -ID10470=TJclBDSInstallation.SetDebugDCUPath@TJclBorRADToolPath -ID10471=TJclBDSInstallation.SetDualPackageInstallation@Boolean -ID10472=TJclBDSInstallation.SetLibraryBrowsingPath@TJclBorRADToolPath -ID10473=TJclBDSInstallation.SetLibrarySearchPath@TJclBorRADToolPath -ID10474=TJclBDSInstallation.SetMsBuildEnvOption@string@string -ID10475=TJclBDSInstallation.SetOutputCallback@TTextHandler -ID10476=TJclBDSInstallation.UnregisterPackage@string -ID10477=TJclBinaryInstruction -ID10478=TJclBinaryNode -ID10479=TJclBinaryNode.Color -ID1048=CharIsNumber@Char -ID10480=TJclBinaryNode.Left -ID10481=TJclBinaryNode.Parent -ID10482=TJclBinaryNode.Right -ID10483=TJclBinaryNode.TJclBinaryNode=recordObj -ID10484=TJclBinaryTree -ID10485=TJclBinaryTree.Add@TObject -ID10486=TJclBinaryTree.AddAll@IJclCollection -ID10487=TJclBinaryTree.Clear -ID10488=TJclBinaryTree.Clone -ID10489=TJclBinaryTree.Contains@TObject -ID1049=CharIsNumberChar@Char -ID10490=TJclBinaryTree.ContainsAll@IJclCollection -ID10491=TJclBinaryTree.Create@TCompare -ID10492=TJclBinaryTree.Destroy -ID10493=TJclBinaryTree.Equals@IJclCollection -ID10494=TJclBinaryTree.FComparator -ID10495=TJclBinaryTree.FCount -ID10496=TJclBinaryTree.First -ID10497=TJclBinaryTree.FRoot -ID10498=TJclBinaryTree.FTraverseOrder -ID10499=TJclBinaryTree.GetTraverseOrder -ID105=!!OVERLOADED_IsWideIndex_TJclClrTable -ID1050=CharIsPrintable@Char -ID10500=TJclBinaryTree.IsEmpty -ID10501=TJclBinaryTree.Last -ID10502=TJclBinaryTree.Remove@TObject -ID10503=TJclBinaryTree.RemoveAll@IJclCollection -ID10504=TJclBinaryTree.RetainAll@IJclCollection -ID10505=TJclBinaryTree.RotateLeft@PJclBinaryNode -ID10506=TJclBinaryTree.RotateRight@PJclBinaryNode -ID10507=TJclBinaryTree.SetTraverseOrder@TJclTraverseOrder -ID10508=TJclBinaryTree.Size -ID10509=TJclBinaryTreeIterator -ID1051=CharIsPunctuation@Char -ID10510=TJclBinDbgNameCache -ID10511=TJclBinDbgNameCache.Addr -ID10512=TJclBinDbgNameCache.FirstWord -ID10513=TJclBinDbgNameCache.SecondWord -ID10514=TJclBooleanEvent -ID10515=TJclBooleanEventBroadcast -ID10516=TJclBooleanProcedureEvent -ID10517=TJclBooleanProcedureEventBroadcast -ID10518=TJclBorDesigner -ID10519=TJclBorDesigner.bdCLX -ID1052=CharIsReturn@Char -ID10520=TJclBorDesigner.bdVCL -ID10521=TJclBorDesigners -ID10522=TJclBorlandCommandLineTool -ID10523=TJclBorlandCommandLineTool.AddPathOption@string@string -ID10524=TJclBorlandCommandLineTool.CheckOutputValid -ID10525=TJclBorlandCommandLineTool.Create@TJclBorRADToolInstallation -ID10526=TJclBorlandCommandLineTool.Destroy -ID10527=TJclBorlandCommandLineTool.Execute@string -ID10528=TJclBorlandCommandLineTool.FileName -ID10529=TJclBorlandCommandLineTool.FOptions -ID1053=CharIsSpace@Char -ID10530=TJclBorlandCommandLineTool.FOutput -ID10531=TJclBorlandCommandLineTool.FOutputCallback -ID10532=TJclBorlandCommandLineTool.GetExeName -ID10533=TJclBorlandCommandLineTool.GetFileName -ID10534=TJclBorlandCommandLineTool.GetOptions -ID10535=TJclBorlandCommandLineTool.GetOutput -ID10536=TJclBorlandCommandLineTool.GetOutputCallback -ID10537=TJclBorlandCommandLineTool.Options -ID10538=TJclBorlandCommandLineTool.Output -ID10539=TJclBorlandCommandLineTool.OutputCallback -ID1054=CharIsUpper@Char -ID10540=TJclBorlandCommandLineTool.SetOutputCallback@TTextHandler -ID10541=TJclBorlandCommandLineToolEvent -ID10542=TJclBorlandMake -ID10543=TJclBorlandMake.GetExeName -ID10544=TJclBorlandOpenHelp -ID10545=TJclBorlandOpenHelp.AddHelpFile@string@string -ID10546=TJclBorlandOpenHelp.ContentFileName -ID10547=TJclBorlandOpenHelp.GetContentFileName -ID10548=TJclBorlandOpenHelp.GetGidFileName -ID10549=TJclBorlandOpenHelp.GetIndexFileName -ID1055=CharIsValidIdentifierLetter@AnsiChar -ID10550=TJclBorlandOpenHelp.GetLinkFileName -ID10551=TJclBorlandOpenHelp.GetProjectFileName -ID10552=TJclBorlandOpenHelp.GidFileName -ID10553=TJclBorlandOpenHelp.IndexFileName -ID10554=TJclBorlandOpenHelp.LinkFileName -ID10555=TJclBorlandOpenHelp.ProjectFileName -ID10556=TJclBorlandOpenHelp.ReadFileName@string -ID10557=TJclBorlandOpenHelp.RemoveHelpFile@string@string -ID10558=TJclBorPersonalities -ID10559=TJclBorPersonality -ID1056=CharIsValidIdentifierLetter@Char -ID10560=TJclBorPersonality.bpBCBuilder32 -ID10561=TJclBorPersonality.bpBCBuilder64 -ID10562=TJclBorPersonality.bpCSBuilder32 -ID10563=TJclBorPersonality.bpCSBuilder64 -ID10564=TJclBorPersonality.bpDelphi32 -ID10565=TJclBorPersonality.bpDelphi64 -ID10566=TJclBorPersonality.bpDelphiNet32 -ID10567=TJclBorPersonality.bpDelphiNet64 -ID10568=TJclBorPersonality.bpDesign -ID10569=TJclBorPersonality.bpUnknown -ID1057=CharIsWhiteSpace@Char -ID10570=TJclBorPersonality.bpVisualBasic32 -ID10571=TJclBorPersonality.bpVisualBasic64 -ID10572=TJclBorPlatform -ID10573=TJclBorPlatform.bp32bit -ID10574=TJclBorPlatform.bp64bit -ID10575=TJclBorRADToolEdition -ID10576=TJclBorRADToolEdition.deARC -ID10577=TJclBorRADToolEdition.deCSS -ID10578=TJclBorRADToolEdition.dePRO -ID10579=TJclBorRADToolEdition.deSTD -ID1058=CharIsWildcard@AnsiChar -ID10580=TJclBorRADToolIdePackages -ID10581=TJclBorRADToolIdePackages.AddExpert@string@string -ID10582=TJclBorRADToolIdePackages.AddIDEPackage@string@string -ID10583=TJclBorRADToolIdePackages.AddPackage@string@string -ID10584=TJclBorRADToolIdePackages.Count -ID10585=TJclBorRADToolIdePackages.Create@TJclBorRADToolInstallation -ID10586=TJclBorRADToolIdePackages.Destroy -ID10587=TJclBorRADToolIdePackages.ExpertCount -ID10588=TJclBorRADToolIdePackages.ExpertDescriptions -ID10589=TJclBorRADToolIdePackages.ExpertFileNames -ID1059=CharIsWildcard@Char -ID10590=TJclBorRADToolIdePackages.FDisabledPackages -ID10591=TJclBorRADToolIdePackages.FExperts -ID10592=TJclBorRADToolIdePackages.FKnownIDEPackages -ID10593=TJclBorRADToolIdePackages.FKnownPackages -ID10594=TJclBorRADToolIdePackages.GetCount -ID10595=TJclBorRADToolIdePackages.GetExpertCount -ID10596=TJclBorRADToolIdePackages.GetExpertDescriptions@Integer -ID10597=TJclBorRADToolIdePackages.GetExpertFileNames@Integer -ID10598=TJclBorRADToolIdePackages.GetIDECount -ID10599=TJclBorRADToolIdePackages.GetIDEPackageDescriptions@Integer -ID106=!!OVERLOADED_LineNumberFromAddr_TJclTD32InfoScanner -ID1060=CharLastPos@AnsiString@AnsiChar@Integer -ID10600=TJclBorRADToolIdePackages.GetIDEPackageFileNames@Integer -ID10601=TJclBorRADToolIdePackages.GetPackageDescriptions@Integer -ID10602=TJclBorRADToolIdePackages.GetPackageDisabled@Integer -ID10603=TJclBorRADToolIdePackages.GetPackageFileNames@Integer -ID10604=TJclBorRADToolIdePackages.IDECount -ID10605=TJclBorRADToolIdePackages.IDEPackageDescriptions -ID10606=TJclBorRADToolIdePackages.IDEPackageFileNames -ID10607=TJclBorRADToolIdePackages.PackageDescriptions -ID10608=TJclBorRADToolIdePackages.PackageDisabled -ID10609=TJclBorRADToolIdePackages.PackageEntryToFileName@string -ID1061=CharLastPos@AnsiString@AnsiChar@SizeInt -ID10610=TJclBorRADToolIdePackages.PackageFileNames -ID10611=TJclBorRADToolIdePackages.ReadPackages -ID10612=TJclBorRADToolIdePackages.RemoveDisabled@string -ID10613=TJclBorRADToolIdePackages.RemoveExpert@string -ID10614=TJclBorRADToolIdePackages.RemoveIDEPackage@string -ID10615=TJclBorRADToolIdePackages.RemovePackage@string -ID10616=TJclBorRADToolIdeTool -ID10617=TJclBorRADToolIdeTool.CheckIndex@Integer -ID10618=TJclBorRADToolIdeTool.Count -ID10619=TJclBorRADToolIdeTool.Create@TJclBorRADToolInstallation -ID1062=CharLastPos@string@Char@Integer -ID10620=TJclBorRADToolIdeTool.FKey -ID10621=TJclBorRADToolIdeTool.GetCount -ID10622=TJclBorRADToolIdeTool.GetParameters@Integer -ID10623=TJclBorRADToolIdeTool.GetPath@Integer -ID10624=TJclBorRADToolIdeTool.GetTitle@Integer -ID10625=TJclBorRADToolIdeTool.GetWorkingDir@Integer -ID10626=TJclBorRADToolIdeTool.IndexOfPath@string -ID10627=TJclBorRADToolIdeTool.IndexOfTitle@string -ID10628=TJclBorRADToolIdeTool.Key -ID10629=TJclBorRADToolIdeTool.Parameters -ID1063=CharLastPos@string@Char@SizeInt -ID10630=TJclBorRADToolIdeTool.Path -ID10631=TJclBorRADToolIdeTool.RemoveIndex@Integer -ID10632=TJclBorRADToolIdeTool.SetCount@Integer -ID10633=TJclBorRADToolIdeTool.SetParameters@Integer@string -ID10634=TJclBorRADToolIdeTool.SetPath@Integer@string -ID10635=TJclBorRADToolIdeTool.SetTitle@Integer@string -ID10636=TJclBorRADToolIdeTool.SetWorkingDir@Integer@string -ID10637=TJclBorRADToolIdeTool.Title -ID10638=TJclBorRADToolIdeTool.WorkingDir -ID10639=TJclBorRADToolInstallation -ID1064=CharLower@Char -ID10640=TJclBorRADToolInstallation.AddToDebugDCUPath@string -ID10641=TJclBorRADToolInstallation.AddToLibraryBrowsingPath@string -ID10642=TJclBorRADToolInstallation.AddToLibrarySearchPath@string -ID10643=TJclBorRADToolInstallation.AnyInstanceRunning -ID10644=TJclBorRADToolInstallation.BCC32 -ID10645=TJclBorRADToolInstallation.BinFolderName -ID10646=TJclBorRADToolInstallation.BPLOutputPath -ID10647=TJclBorRADToolInstallation.Bpr2Mak -ID10648=TJclBorRADToolInstallation.CommandLineTools -ID10649=TJclBorRADToolInstallation.CommonProjectsDir -ID1065=CharPos@string@Char@Integer -ID10650=TJclBorRADToolInstallation.CompileBCBPackage@string@string@string -ID10651=TJclBorRADToolInstallation.CompileBCBProject@string@string@string -ID10652=TJclBorRADToolInstallation.CompileDelphiPackage@string@string@string -ID10653=TJclBorRADToolInstallation.CompileDelphiPackage@string@string@string@string -ID10654=TJclBorRADToolInstallation.CompileDelphiProject@string@string@string -ID10655=TJclBorRADToolInstallation.CompilePackage@string@string@string -ID10656=TJclBorRADToolInstallation.CompileProject@string@string@string -ID10657=TJclBorRADToolInstallation.ConfigData -ID10658=TJclBorRADToolInstallation.ConfigDataLocation -ID10659=TJclBorRADToolInstallation.ConfigFileName@string -ID1066=CharPos@string@Char@SizeInt -ID10660=TJclBorRADToolInstallation.Create@string -ID10661=TJclBorRADToolInstallation.DCC -ID10662=TJclBorRADToolInstallation.DCC32 -ID10663=TJclBorRADToolInstallation.DCPOutputPath -ID10664=TJclBorRADToolInstallation.DebugDCUPath -ID10665=TJclBorRADToolInstallation.DefaultProjectsDir -ID10666=TJclBorRADToolInstallation.Description -ID10667=TJclBorRADToolInstallation.Destroy -ID10668=TJclBorRADToolInstallation.Edition -ID10669=TJclBorRADToolInstallation.EditionAsText -ID1067=CharReplace@string@Char@Char -ID10670=TJclBorRADToolInstallation.EnvironmentVariables -ID10671=TJclBorRADToolInstallation.ExtractPaths@TJclBorRADToolPath@TStrings -ID10672=TJclBorRADToolInstallation.FBCC32 -ID10673=TJclBorRADToolInstallation.FBinFolderName -ID10674=TJclBorRADToolInstallation.FBpr2Mak -ID10675=TJclBorRADToolInstallation.FCommandLineTools -ID10676=TJclBorRADToolInstallation.FConfigData -ID10677=TJclBorRADToolInstallation.FConfigDataLocation -ID10678=TJclBorRADToolInstallation.FDCC32 -ID10679=TJclBorRADToolInstallation.FEdition -ID1068=CharsetInfoFromCharsetName@string -ID10680=TJclBorRADToolInstallation.FEditionStr -ID10681=TJclBorRADToolInstallation.FEnvironmentVariables -ID10682=TJclBorRADToolInstallation.FGlobals -ID10683=TJclBorRADToolInstallation.FIdePackages -ID10684=TJclBorRADToolInstallation.FIdeTools -ID10685=TJclBorRADToolInstallation.FIDEVersionNumber -ID10686=TJclBorRADToolInstallation.FIDEVersionNumberStr -ID10687=TJclBorRADToolInstallation.FindFolderInPath@string@TStrings -ID10688=TJclBorRADToolInstallation.FInstalledUpdatePack -ID10689=TJclBorRADToolInstallation.FJdbgCreate -ID1069=CharsetNameFromCodePage@Word -ID10690=TJclBorRADToolInstallation.FJdbgInsert -ID10691=TJclBorRADToolInstallation.FMake -ID10692=TJclBorRADToolInstallation.FMapCreate -ID10693=TJclBorRADToolInstallation.FMapDelete -ID10694=TJclBorRADToolInstallation.FOpenHelp -ID10695=TJclBorRADToolInstallation.FOutputCallback -ID10696=TJclBorRADToolInstallation.FPalette -ID10697=TJclBorRADToolInstallation.FPersonalities -ID10698=TJclBorRADToolInstallation.FRepository -ID10699=TJclBorRADToolInstallation.FRootDir -ID107=!!OVERLOADED_Load_TJclClrAppDomain -ID1070=CharToggleCase@Char -ID10700=TJclBorRADToolInstallation.FVersionNumber -ID10701=TJclBorRADToolInstallation.FVersionNumberStr -ID10702=TJclBorRADToolInstallation.GetBCC32 -ID10703=TJclBorRADToolInstallation.GetBPLOutputPath -ID10704=TJclBorRADToolInstallation.GetBpr2Mak -ID10705=TJclBorRADToolInstallation.GetCommonProjectsDir -ID10706=TJclBorRADToolInstallation.GetDCC32 -ID10707=TJclBorRADToolInstallation.GetDCPOutputPath -ID10708=TJclBorRADToolInstallation.GetDebugDCUPath -ID10709=TJclBorRADToolInstallation.GetDefaultProjectsDir -ID1071=CharToUCS4@Char -ID10710=TJclBorRADToolInstallation.GetDescription -ID10711=TJclBorRADToolInstallation.GetEditionAsText -ID10712=TJclBorRADToolInstallation.GetEnvironmentVariables -ID10713=TJclBorRADToolInstallation.GetGlobals -ID10714=TJclBorRADToolInstallation.GetIdeExeBuildNumber -ID10715=TJclBorRADToolInstallation.GetIdeExeFileName -ID10716=TJclBorRADToolInstallation.GetIdePackages -ID10717=TJclBorRADToolInstallation.GetIsTurboExplorer -ID10718=TJclBorRADToolInstallation.GetLatestUpdatePack -ID10719=TJclBorRADToolInstallation.GetLatestUpdatePackForVersion@Integer -ID1072=CharToWideChar@AnsiChar -ID10720=TJclBorRADToolInstallation.GetLibraryBrowsingPath -ID10721=TJclBorRADToolInstallation.GetLibrarySearchPath -ID10722=TJclBorRADToolInstallation.GetMake -ID10723=TJclBorRADToolInstallation.GetName -ID10724=TJclBorRADToolInstallation.GetPalette -ID10725=TJclBorRADToolInstallation.GetRepository -ID10726=TJclBorRADToolInstallation.GetSupportsLibSuffix -ID10727=TJclBorRADToolInstallation.GetUpdateNeeded -ID10728=TJclBorRADToolInstallation.GetValid -ID10729=TJclBorRADToolInstallation.GetVclIncludeDir -ID1073=CharType@Char -ID10730=TJclBorRADToolInstallation.Globals -ID10731=TJclBorRADToolInstallation.IdeExeBuildNumber -ID10732=TJclBorRADToolInstallation.IdeExeFileName -ID10733=TJclBorRADToolInstallation.IdePackages -ID10734=TJclBorRADToolInstallation.IdeTools -ID10735=TJclBorRADToolInstallation.IDEVersionNumber -ID10736=TJclBorRADToolInstallation.IDEVersionNumberStr -ID10737=TJclBorRADToolInstallation.InstallBCBExpert@string@string@string -ID10738=TJclBorRADToolInstallation.InstallBCBIdePackage@string@string@string -ID10739=TJclBorRADToolInstallation.InstallBCBPackage@string@string@string -ID1074=CharUpper@Char -ID10740=TJclBorRADToolInstallation.InstallDelphiExpert@string@string@string -ID10741=TJclBorRADToolInstallation.InstallDelphiIdePackage@string@string@string -ID10742=TJclBorRADToolInstallation.InstallDelphiPackage@string@string@string -ID10743=TJclBorRADToolInstallation.InstalledUpdatePack -ID10744=TJclBorRADToolInstallation.InstallExpert@string@string@string -ID10745=TJclBorRADToolInstallation.InstallIDEPackage@string@string@string -ID10746=TJclBorRADToolInstallation.InstallPackage@string@string@string -ID10747=TJclBorRADToolInstallation.IsBDSPersonality -ID10748=TJclBorRADToolInstallation.IsTurboExplorer -ID10749=TJclBorRADToolInstallation.JdbgCreate -ID1075=CheckCrc16@array of Byte@Integer@Word -ID10750=TJclBorRADToolInstallation.JdbgInsert -ID10751=TJclBorRADToolInstallation.LatestUpdatePack -ID10752=TJclBorRADToolInstallation.LibFolderName -ID10753=TJclBorRADToolInstallation.LibraryBrowsingPath -ID10754=TJclBorRADToolInstallation.LibrarySearchPath -ID10755=TJclBorRADToolInstallation.Make -ID10756=TJclBorRADToolInstallation.MapCreate -ID10757=TJclBorRADToolInstallation.MapDelete -ID10758=TJclBorRADToolInstallation.Name -ID10759=TJclBorRADToolInstallation.OpenHelp -ID1076=CheckCrc16_A -ID10760=TJclBorRADToolInstallation.OutputCallback -ID10761=TJclBorRADToolInstallation.OutputFileDelete@string -ID10762=TJclBorRADToolInstallation.OutputString@string -ID10763=TJclBorRADToolInstallation.PackageSourceFileExtension -ID10764=TJclBorRADToolInstallation.Palette -ID10765=TJclBorRADToolInstallation.Personalities -ID10766=TJclBorRADToolInstallation.ProcessMapFile@string -ID10767=TJclBorRADToolInstallation.ProjectSourceFileExtension -ID10768=TJclBorRADToolInstallation.RadToolKind -ID10769=TJclBorRADToolInstallation.RadToolName -ID1077=CheckCrc16_A@array of Byte@Word -ID10770=TJclBorRADToolInstallation.ReadInformation -ID10771=TJclBorRADToolInstallation.RegisterExpert@string@string -ID10772=TJclBorRADToolInstallation.RegisterIDEPackage@string@string -ID10773=TJclBorRADToolInstallation.RegisterPackage@string@string -ID10774=TJclBorRADToolInstallation.RemoveFromDebugDCUPath@string -ID10775=TJclBorRADToolInstallation.RemoveFromLibraryBrowsingPath@string -ID10776=TJclBorRADToolInstallation.RemoveFromLibrarySearchPath@string -ID10777=TJclBorRADToolInstallation.RemoveFromPath@string@string -ID10778=TJclBorRADToolInstallation.Repository -ID10779=TJclBorRADToolInstallation.RootDir -ID1078=CheckCrc16_A@TCrc16Table@array of Byte@Word -ID10780=TJclBorRADToolInstallation.SetDebugDCUPath@TJclBorRADToolPath -ID10781=TJclBorRADToolInstallation.SetLibraryBrowsingPath@TJclBorRADToolPath -ID10782=TJclBorRADToolInstallation.SetLibrarySearchPath@TJclBorRADToolPath -ID10783=TJclBorRADToolInstallation.SetOutputCallback@TTextHandler -ID10784=TJclBorRADToolInstallation.SubstitutePath@string -ID10785=TJclBorRADToolInstallation.SupportsBCB -ID10786=TJclBorRADToolInstallation.SupportsLibSuffix -ID10787=TJclBorRADToolInstallation.SupportsVCL -ID10788=TJclBorRADToolInstallation.SupportsVisualCLX -ID10789=TJclBorRADToolInstallation.UninstallBCBExpert@string@string -ID1079=CheckCrc16_P -ID10790=TJclBorRADToolInstallation.UninstallBCBIdePackage@string@string@string -ID10791=TJclBorRADToolInstallation.UninstallBCBPackage@string@string@string -ID10792=TJclBorRADToolInstallation.UninstallDelphiExpert@string@string -ID10793=TJclBorRADToolInstallation.UninstallDelphiIdePackage@string@string@string -ID10794=TJclBorRADToolInstallation.UninstallDelphiPackage@string@string@string -ID10795=TJclBorRADToolInstallation.UninstallExpert@string@string -ID10796=TJclBorRADToolInstallation.UninstallIDEPackage@string@string@string -ID10797=TJclBorRADToolInstallation.UninstallPackage@string@string@string -ID10798=TJclBorRADToolInstallation.UnregisterExpert@string -ID10799=TJclBorRADToolInstallation.UnregisterIDEPackage@string -ID108=!!OVERLOADED_LoadFromFile_TEDISEFFile -ID1080=CheckCrc16_P@PJclByteArray@Integer@Word -ID10800=TJclBorRADToolInstallation.UnregisterPackage@string -ID10801=TJclBorRADToolInstallation.UpdateNeeded -ID10802=TJclBorRADToolInstallation.Valid -ID10803=TJclBorRADToolInstallation.VclIncludeDir -ID10804=TJclBorRADToolInstallation.VersionNumber -ID10805=TJclBorRADToolInstallation.VersionNumberStr -ID10806=TJclBorRADToolInstallationClass -ID10807=TJclBorRADToolInstallationObject -ID10808=TJclBorRADToolInstallationObject.Create@TJclBorRADToolInstallation -ID10809=TJclBorRADToolInstallationObject.FInstallation -ID1081=CheckCrc16_P@TCrc16Table@PJclByteArray@Integer@Word -ID10810=TJclBorRADToolInstallationObject.Installation -ID10811=TJclBorRADToolInstallations -ID10812=TJclBorRADToolInstallations.AnyInstanceRunning -ID10813=TJclBorRADToolInstallations.AnyUpdatePackNeeded@string -ID10814=TJclBorRADToolInstallations.BCBInstallationFromVersion -ID10815=TJclBorRADToolInstallations.BCBVersionInstalled -ID10816=TJclBorRADToolInstallations.BDSInstallationFromVersion -ID10817=TJclBorRADToolInstallations.BDSVersionInstalled -ID10818=TJclBorRADToolInstallations.Count -ID10819=TJclBorRADToolInstallations.Create -ID1082=CheckCrc32@array of Byte@Integer@Cardinal -ID10820=TJclBorRADToolInstallations.DelphiInstallationFromVersion -ID10821=TJclBorRADToolInstallations.DelphiVersionInstalled -ID10822=TJclBorRADToolInstallations.Destroy -ID10823=TJclBorRADToolInstallations.FList -ID10824=TJclBorRADToolInstallations.GetBCBInstallationFromVersion@Integer -ID10825=TJclBorRADToolInstallations.GetBCBVersionInstalled@Integer -ID10826=TJclBorRADToolInstallations.GetBDSInstallationFromVersion@Integer -ID10827=TJclBorRADToolInstallations.GetBDSVersionInstalled@Integer -ID10828=TJclBorRADToolInstallations.GetCount -ID10829=TJclBorRADToolInstallations.GetDelphiInstallationFromVersion@Integer -ID1083=CheckCrc32_A -ID10830=TJclBorRADToolInstallations.GetDelphiVersionInstalled@Integer -ID10831=TJclBorRADToolInstallations.GetInstallations@Integer -ID10832=TJclBorRADToolInstallations.Installations -ID10833=TJclBorRADToolInstallations.Iterate@TTraverseMethod -ID10834=TJclBorRADToolInstallations.ReadInstallations -ID10835=TJclBorRADToolKind -ID10836=TJclBorRADToolKind.brBorlandDevStudio -ID10837=TJclBorRADToolKind.brCppBuilder -ID10838=TJclBorRADToolKind.brDelphi -ID10839=TJclBorRADToolPalette -ID1084=CheckCrc32_A@array of Byte@Cardinal -ID10840=TJclBorRADToolPalette.ComponentsOnTab -ID10841=TJclBorRADToolPalette.ComponentsOnTabToStrings@Integer@TStrings@Boolean@Boolean -ID10842=TJclBorRADToolPalette.Create@TJclBorRADToolInstallation -ID10843=TJclBorRADToolPalette.DeleteTabName@string -ID10844=TJclBorRADToolPalette.Destroy -ID10845=TJclBorRADToolPalette.FKey -ID10846=TJclBorRADToolPalette.FTabNames -ID10847=TJclBorRADToolPalette.GetComponentsOnTab@Integer -ID10848=TJclBorRADToolPalette.GetHiddenComponentsOnTab@Integer -ID10849=TJclBorRADToolPalette.GetTabNameCount -ID1085=CheckCrc32_A@TCrc32Table@array of Byte@Cardinal -ID10850=TJclBorRADToolPalette.GetTabNames@Integer -ID10851=TJclBorRADToolPalette.HiddenComponentsOnTab -ID10852=TJclBorRADToolPalette.Key -ID10853=TJclBorRADToolPalette.ReadTabNames -ID10854=TJclBorRADToolPalette.TabNameCount -ID10855=TJclBorRADToolPalette.TabNameExists@string -ID10856=TJclBorRADToolPalette.TabNames -ID10857=TJclBorRADToolPath -ID10858=TJclBorRADToolRepository -ID10859=TJclBorRADToolRepository.AddObject@string@string@string@string@string@string@string@string@string -ID1086=CheckCrc32_P -ID10860=TJclBorRADToolRepository.CloseIniFile -ID10861=TJclBorRADToolRepository.Create@TJclBorRADToolInstallation -ID10862=TJclBorRADToolRepository.Destroy -ID10863=TJclBorRADToolRepository.FFileName -ID10864=TJclBorRADToolRepository.FileName -ID10865=TJclBorRADToolRepository.FindPage@string@Integer -ID10866=TJclBorRADToolRepository.FIniFile -ID10867=TJclBorRADToolRepository.FPages -ID10868=TJclBorRADToolRepository.GetIniFile -ID10869=TJclBorRADToolRepository.GetPages -ID1087=CheckCrc32_P@PJclByteArray@Integer@Cardinal -ID10870=TJclBorRADToolRepository.IniFile -ID10871=TJclBorRADToolRepository.Pages -ID10872=TJclBorRADToolRepository.RemoveObjects@string@string@string -ID10873=TJclBorUmSymbolModifiers -ID10874=TJclBpr2Mak -ID10875=TJclBpr2Mak.GetExeName -ID10876=TJclBriefCaseSummaryInformation -ID10877=TJclBriefCaseSummaryInformation.GetFMTID -ID10878=TJclBucket -ID10879=TJclBucket.Entries -ID1088=CheckCrc32_P@TCrc32Table@PJclByteArray@Integer@Cardinal -ID10880=TJclBucket.TJclBucket=recordCount -ID10881=TJclBucketArray -ID10882=TJclBufferedStream -ID10883=TJclBufferedStream.BufferHit -ID10884=TJclBufferedStream.BufferSize -ID10885=TJclBufferedStream.Create@TStream@Boolean -ID10886=TJclBufferedStream.Destroy -ID10887=TJclBufferedStream.DoAfterStreamChange -ID10888=TJclBufferedStream.DoBeforeStreamChange -ID10889=TJclBufferedStream.FBuffer -ID1089=CheckSumMappedFile@Pointer@DWORD@DWORD@DWORD -ID10890=TJclBufferedStream.FBufferCurrentSize -ID10891=TJclBufferedStream.FBufferMaxModifiedPos -ID10892=TJclBufferedStream.FBufferSize -ID10893=TJclBufferedStream.FBufferStart -ID10894=TJclBufferedStream.Flush -ID10895=TJclBufferedStream.FPosition -ID10896=TJclBufferedStream.GetCalcedSize -ID10897=TJclBufferedStream.LoadBuffer -ID10898=TJclBufferedStream.Read@@Longint -ID10899=TJclBufferedStream.ReadFromBuffer@@Longint@Longint -ID109=!!OVERLOADED_MoveBy_TJclScreenCursor -ID1090=CIELABToBGR@PByte@PByte@PByte@Pointer@Cardinal -ID10900=TJclBufferedStream.Seek@Int64@TSeekOrigin -ID10901=TJclBufferedStream.Write@@Longint -ID10902=TJclBufferedStream.WriteToBuffer@@Longint@Longint -ID10903=TJclByteArray -ID10904=TJclByteMap -ID10905=TJclByteMap.Assign -ID10906=TJclByteMap.AssignTo@TPersistent -ID10907=TJclByteMap.Bytes -ID10908=TJclByteMap.Clear -ID10909=TJclByteMap.Destroy -ID1091=CIELABToBGR@Pointer@Pointer@Cardinal -ID10910=TJclByteMap.Empty -ID10911=TJclByteMap.FBytes -ID10912=TJclByteMap.FHeight -ID10913=TJclByteMap.FWidth -ID10914=TJclByteMap.GetValPtr@Integer@Integer -ID10915=TJclByteMap.GetValue@Integer@Integer -ID10916=TJclByteMap.ReadFrom -ID10917=TJclByteMap.SetSize -ID10918=TJclByteMap.SetValue@Integer@Integer@Byte -ID10919=TJclByteMap.ValPtr -ID1092=clAqua32 -ID10920=TJclByteMap.Value -ID10921=TJclByteMap.WriteTo@TJclBitmap32@TConversionKind -ID10922=TJclByteMap.WriteTo@TJclBitmap32@TPalette32 -ID10923=TJclBytes -ID10924=TJclBZ2CompressArchive -ID10925=TJclBZ2DecompressArchive -ID10926=TJclBZ2UpdateArchive -ID10927=TJclBZIP2CompressionStream -ID10928=TJclBZIP2CompressionStream.BZLibRecord -ID10929=TJclBZIP2CompressionStream.CompressionLevel -ID1093=clBlack32 -ID10930=TJclBZIP2CompressionStream.Create@TStream@TJclCompressionLevel -ID10931=TJclBZIP2CompressionStream.Destroy -ID10932=TJclBZIP2CompressionStream.FCompressionLevel -ID10933=TJclBZIP2CompressionStream.FDeflateInitialized -ID10934=TJclBZIP2CompressionStream.Flush -ID10935=TJclBZIP2CompressionStream.Seek@Int64@TSeekOrigin -ID10936=TJclBZIP2CompressionStream.SetCompressionLevel@Integer -ID10937=TJclBZIP2CompressionStream.Write@@Longint -ID10938=TJclBZIP2DecompressionStream -ID10939=TJclBZIP2DecompressionStream.BZLibRecord -ID1094=clBlue32 -ID10940=TJclBZIP2DecompressionStream.Create@TStream -ID10941=TJclBZIP2DecompressionStream.Destroy -ID10942=TJclBZIP2DecompressionStream.FInflateInitialized -ID10943=TJclBZIP2DecompressionStream.Read@@Longint -ID10944=TJclBZIP2DecompressionStream.Seek@Int64@TSeekOrigin -ID10945=TJclCabDecompressArchive -ID10946=TJclCaptureRange -ID10947=TJclCardinalAbstractContainer -ID10948=TJclCardinalArrayIterator -ID10949=TJclCardinalArrayList -ID1095=clDimGray32 -ID10950=TJclCardinalArraySet -ID10951=TJclCardinalBinaryNode -ID10952=TJclCardinalBinaryTree -ID10953=TJclCardinalBinaryTreeIterator -ID10954=TJclCardinalBucket -ID10955=TJclCardinalCardinalBucket -ID10956=TJclCardinalCardinalHashEntry -ID10957=TJclCardinalCardinalHashMap -ID10958=TJclCardinalCardinalSortedEntry -ID10959=TJclCardinalCardinalSortedMap -ID1096=ClearBit@Cardinal@TBitRange -ID10960=TJclCardinalHashEntry -ID10961=TJclCardinalHashMap -ID10962=TJclCardinalHashSet -ID10963=TJclCardinalIntfBucket -ID10964=TJclCardinalIntfHashEntry -ID10965=TJclCardinalIntfHashMap -ID10966=TJclCardinalIntfSortedEntry -ID10967=TJclCardinalIntfSortedMap -ID10968=TJclCardinalLinkedList -ID10969=TJclCardinalLinkedListItem -ID1097=ClearBit@Int64@TBitRange -ID10970=TJclCardinalLinkedListIterator -ID10971=TJclCardinalQueue -ID10972=TJclCardinalSortedEntry -ID10973=TJclCardinalSortedMap -ID10974=TJclCardinalStack -ID10975=TJclCardinalTree -ID10976=TJclCardinalTreeIterator -ID10977=TJclCardinalTreeNode -ID10978=TJclCardinalVector -ID10979=TJclCardinalVectorIterator -ID1098=ClearBit@Integer@TBitRange -ID10980=TJclCdMediaInfo -ID10981=TJclCdMediaInfo.miIdentity -ID10982=TJclCdMediaInfo.miProduct -ID10983=TJclCdMediaInfo.miUPC -ID10984=TJclCdTrackInfo -ID10985=TJclCdTrackInfo.Minute -ID10986=TJclCdTrackInfo.Second -ID10987=TJclCdTrackInfo.TrackType -ID10988=TJclCdTrackInfoArray -ID10989=TJclCdTrackType -ID1099=ClearBit@Shortint@TBitRange -ID10990=TJclCdTrackType.ttAudio -ID10991=TJclCdTrackType.ttOther -ID10992=TJclCharsetInfo -ID10993=TJclChmDecompressArchive -ID10994=TJclClassTypeInfo -ID10995=TJclClrAppDomain -ID10996=TJclClrAppDomain.Create@TJclClrHost@IJclClrAppDomain -ID10997=TJclClrAppDomain.DefaultInterface -ID10998=TJclClrAppDomain.Execute@TFileName@IJclClrEvidence -ID10999=TJclClrAppDomain.Execute@TFileName@TJclClrAssemblyArguments@IJclClrEvidence -ID11=!!OVERLOADED_AssemblyFlags_TJclClrTableAssemblyRow -ID110=!!OVERLOADED_MoveTo_TJclScreenCursor -ID1100=ClearBit@Smallint@TBitRange -ID11000=TJclClrAppDomain.Execute@TFileName@TStrings@IJclClrEvidence -ID11001=TJclClrAppDomain.FDefaultInterface -ID11002=TJclClrAppDomain.FHost -ID11003=TJclClrAppDomain.Host -ID11004=TJclClrAppDomain.Load@TStream@TStream@IJclClrEvidence -ID11005=TJclClrAppDomain.Load@WideString@IJclClrEvidence -ID11006=TJclClrAppDomain.Unload -ID11007=TJclClrAppDomainSetup -ID11008=TJclClrAppDomainSetup.ApplicationBase -ID11009=TJclClrAppDomainSetup.ApplicationName -ID1101=ClearBit@Word@TBitRange -ID11010=TJclClrAppDomainSetup.CachePath -ID11011=TJclClrAppDomainSetup.ConfigurationFile -ID11012=TJclClrAppDomainSetup.Create@IAppDomainSetup -ID11013=TJclClrAppDomainSetup.DefaultInterface -ID11014=TJclClrAppDomainSetup.DynamicBase -ID11015=TJclClrAppDomainSetup.FDefaultInterface -ID11016=TJclClrAppDomainSetup.GetApplicationBase -ID11017=TJclClrAppDomainSetup.GetApplicationName -ID11018=TJclClrAppDomainSetup.GetCachePath -ID11019=TJclClrAppDomainSetup.GetConfigurationFile -ID1102=ClearBitBuffer@@Cardinal -ID11020=TJclClrAppDomainSetup.GetDynamicBase -ID11021=TJclClrAppDomainSetup.GetLicenseFile -ID11022=TJclClrAppDomainSetup.GetPrivateBinPath -ID11023=TJclClrAppDomainSetup.GetPrivateBinPathProbe -ID11024=TJclClrAppDomainSetup.GetShadowCopyDirectories -ID11025=TJclClrAppDomainSetup.GetShadowCopyFiles -ID11026=TJclClrAppDomainSetup.LicenseFile -ID11027=TJclClrAppDomainSetup.PrivateBinPath -ID11028=TJclClrAppDomainSetup.PrivateBinPathProbe -ID11029=TJclClrAppDomainSetup.SetApplicationBase@WideString -ID1103=ClearBitBuffer@@Int64 -ID11030=TJclClrAppDomainSetup.SetApplicationName@WideString -ID11031=TJclClrAppDomainSetup.SetCachePath@WideString -ID11032=TJclClrAppDomainSetup.SetConfigurationFile@WideString -ID11033=TJclClrAppDomainSetup.SetDynamicBase@WideString -ID11034=TJclClrAppDomainSetup.SetLicenseFile@WideString -ID11035=TJclClrAppDomainSetup.SetPrivateBinPath@WideString -ID11036=TJclClrAppDomainSetup.SetPrivateBinPathProbe@WideString -ID11037=TJclClrAppDomainSetup.SetShadowCopyDirectories@WideString -ID11038=TJclClrAppDomainSetup.SetShadowCopyFiles@WideString -ID11039=TJclClrAppDomainSetup.ShadowCopyDirectories -ID1104=CLFLSH_FLAG -ID11040=TJclClrAppDomainSetup.ShadowCopyFiles -ID11041=TJclClrArrayData -ID11042=TJclClrArrayData.adLowBound -ID11043=TJclClrArrayData.adSize -ID11044=TJclClrArraySign -ID11045=TJclClrArraySign.Create@TJclClrBlobRecord -ID11046=TJclClrArraySign.FBounds -ID11047=TJclClrArraySignBound -ID11048=TJclClrArraySignBounds -ID11049=TJclClrAssembly -ID1105=clFuchsia32 -ID11050=TJclClrAssembly.Create@IJclClrAssembly -ID11051=TJclClrAssembly.DefaultInterface -ID11052=TJclClrAssembly.FDefaultInterface -ID11053=TJclClrAssemblyArguments -ID11054=TJclClrAssemblyFlag -ID11055=TJclClrAssemblyFlag.cafCompatibilityMask -ID11056=TJclClrAssemblyFlag.cafDisableJITcompileOptimizer -ID11057=TJclClrAssemblyFlag.cafEnableJITcompileTracking -ID11058=TJclClrAssemblyFlag.cafNonSideBySideAppDomain -ID11059=TJclClrAssemblyFlag.cafNonSideBySideMachine -ID1106=clGray32 -ID11060=TJclClrAssemblyFlag.cafNonSideBySideProcess -ID11061=TJclClrAssemblyFlag.cafPublicKey -ID11062=TJclClrAssemblyFlag.cafSideBySideCompatible -ID11063=TJclClrAssemblyFlags -ID11064=TJclClrBase -ID11065=TJclClrBlobRecord -ID11066=TJclClrBlobRecord.Create@TJclClrStream@PJclByteArray -ID11067=TJclClrBlobRecord.Data -ID11068=TJclClrBlobRecord.Dump@string -ID11069=TJclClrBlobRecord.FOffset -ID1107=clGreen32 -ID11070=TJclClrBlobRecord.FPtr -ID11071=TJclClrBlobRecord.GetData -ID11072=TJclClrBlobRecord.Offset -ID11073=TJclClrBlobRecord.Ptr -ID11074=TJclClrBlobStream -ID11075=TJclClrBlobStream.At@DWORD -ID11076=TJclClrBlobStream.BlobCount -ID11077=TJclClrBlobStream.Blobs -ID11078=TJclClrBlobStream.Create@TJclPeMetadata@PClrStreamHeader -ID11079=TJclClrBlobStream.Destroy -ID1108=ClipCodes@Float@Float@Float@Float@Float@Float -ID11080=TJclClrBlobStream.FBlobs -ID11081=TJclClrBlobStream.GetBlob@Integer -ID11082=TJclClrBlobStream.GetBlobCount -ID11083=TJclClrClassLayout -ID11084=TJclClrClassLayout.clAuto -ID11085=TJclClrClassLayout.clExplicit -ID11086=TJclClrClassLayout.clSequential -ID11087=TJclClrClassSemantics -ID11088=TJclClrClassSemantics.csClass -ID11089=TJclClrClassSemantics.csInterface -ID1109=ClipCodes@Float@Float@TRect -ID11090=TJclClrCodeBlock -ID11091=TJclClrCodeBlock.Length -ID11092=TJclClrCodeBlock.Offset -ID11093=TJclClrComboIndex -ID11094=TJclClrComboIndex.ciResolutionScope -ID11095=TJclClrCustomModifierSign -ID11096=TJclClrCustomModifierSign.Create@TJclClrBlobRecord -ID11097=TJclClrCustomModifierSign.FRequired -ID11098=TJclClrCustomModifierSign.FToken -ID11099=TJclClrCustomModifierSign.Required -ID111=!!OVERLOADED_Multiply_TJclRational -ID1110=ClipLine@Integer@Integer@Integer@Integer@TRect -ID11100=TJclClrCustomModifierSign.Token -ID11101=TJclClrElementType -ID11102=TJclClrElementType.etArray -ID11103=TJclClrElementType.etBoolean -ID11104=TJclClrElementType.etByRef -ID11105=TJclClrElementType.etChar -ID11106=TJclClrElementType.etClass -ID11107=TJclClrElementType.etCModOpt -ID11108=TJclClrElementType.etCModReqd -ID11109=TJclClrElementType.etEnd -ID1111=clLightGray32 -ID11110=TJclClrElementType.etFnPtr -ID11111=TJclClrElementType.etI -ID11112=TJclClrElementType.etI1 -ID11113=TJclClrElementType.etI2 -ID11114=TJclClrElementType.etI4 -ID11115=TJclClrElementType.etI8 -ID11116=TJclClrElementType.etInternal -ID11117=TJclClrElementType.etMax -ID11118=TJclClrElementType.etModifier -ID11119=TJclClrElementType.etObject -ID1112=clLime32 -ID11120=TJclClrElementType.etPinned -ID11121=TJclClrElementType.etPtr -ID11122=TJclClrElementType.etR4 -ID11123=TJclClrElementType.etR8 -ID11124=TJclClrElementType.etSentinel -ID11125=TJclClrElementType.etString -ID11126=TJclClrElementType.etSzArray -ID11127=TJclClrElementType.etTypedByRef -ID11128=TJclClrElementType.etU -ID11129=TJclClrElementType.etU1 -ID1113=clMaroon32 -ID11130=TJclClrElementType.etU2 -ID11131=TJclClrElementType.etU4 -ID11132=TJclClrElementType.etU8 -ID11133=TJclClrElementType.etValueType -ID11134=TJclClrElementType.etVoid -ID11135=TJclClrExceptionClauseFlag -ID11136=TJclClrExceptionClauseFlag.cfException -ID11137=TJclClrExceptionClauseFlag.cfFault -ID11138=TJclClrExceptionClauseFlag.cfFilter -ID11139=TJclClrExceptionClauseFlag.cfFinally -ID1114=clNavy32 -ID11140=TJclClrExceptionClauseFlags -ID11141=TJclClrExceptionHandler -ID11142=TJclClrExceptionHandler.ClassToken -ID11143=TJclClrExceptionHandler.Create@TImageCorILMethodSectEHClauseFat -ID11144=TJclClrExceptionHandler.Create@TImageCorILMethodSectEHClauseSmall -ID11145=TJclClrExceptionHandler.EHFlags -ID11146=TJclClrExceptionHandler.FClassToken -ID11147=TJclClrExceptionHandler.FFilterOffset -ID11148=TJclClrExceptionHandler.FFlags -ID11149=TJclClrExceptionHandler.FHandlerBlock -ID1115=clOlive32 -ID11150=TJclClrExceptionHandler.FilterOffset -ID11151=TJclClrExceptionHandler.Flags -ID11152=TJclClrExceptionHandler.FTryBlock -ID11153=TJclClrExceptionHandler.GetFlags -ID11154=TJclClrExceptionHandler.HandlerBlock -ID11155=TJclClrExceptionHandler.TryBlock -ID11156=TJclClrField -ID11157=TJclClrGuidStream -ID11158=TJclClrGuidStream.Create@TJclPeMetadata@PClrStreamHeader -ID11159=TJclClrGuidStream.FGuids -ID1116=CloseCdMciDevice@TMCI_Open_Parms -ID11160=TJclClrGuidStream.GetGuid@Integer -ID11161=TJclClrGuidStream.GetGuidCount -ID11162=TJclClrGuidStream.GuidCount -ID11163=TJclClrGuidStream.Guids -ID11164=TJclClrHeaderEx -ID11165=TJclClrHeaderEx.ClrImageFlag@DWORD -ID11166=TJclClrHeaderEx.ClrImageFlag@TJclClrImageFlags -ID11167=TJclClrHeaderEx... [truncated message content] |
From: <ou...@us...> - 2011-01-03 10:49:30
|
Revision: 3456 http://jcl.svn.sourceforge.net/jcl/?rev=3456&view=rev Author: outchy Date: 2011-01-03 10:49:24 +0000 (Mon, 03 Jan 2011) Log Message: ----------- The HTML tag <c> is not valid, replaced by <code>. Modified Paths: -------------- trunk/help/Strings.dtx Modified: trunk/help/Strings.dtx =================================================================== --- trunk/help/Strings.dtx 2011-01-03 10:32:57 UTC (rev 3455) +++ trunk/help/Strings.dtx 2011-01-03 10:49:24 UTC (rev 3456) @@ -2820,7 +2820,7 @@ Example: <code>x := StrExpandTabs('Abc'#9'de'#9'fg');</code> The above call will result in <i>x</i> containing the string (\xB7 represents a - space character): <c>Abc\xB7\xB7\xB7\xB7\xB7de\xB7\xB7\xB7\xB7\xB7\xB7fg</c>. In this case the first tab + space character): <code>Abc\xB7\xB7\xB7\xB7\xB7de\xB7\xB7\xB7\xB7\xB7\xB7fg</code>. In this case the first tab character (ASCII code 9) was transformed into a single space and the second tab character into two spaces. See also: @@ -2856,7 +2856,7 @@ Example: <code>x := StrExpandTabs('Abc'#9'de'#9'fg', 8);</code> The above call will result in <i>x</i> containing the string (\xB7 represents a - space character): <c>Abc\xB7\xB7\xB7\xB7\xB7de\xB7\xB7\xB7\xB7\xB7\xB7fg</c>. In this case the first tab + space character): <code>Abc\xB7\xB7\xB7\xB7\xB7de\xB7\xB7\xB7\xB7\xB7\xB7fg</code>. In this case the first tab character (ASCII code 9) was transformed into five spaces and the second tab character into six spaces. See also: @@ -2901,7 +2901,7 @@ <b>end</b>; </code> The above snippet will result in <i>x</i> containing the string (\xB7 represents a - space character): <c>MyLabel:\xB7\xB7\xB7\xB7\xB7\xB7\xB7LD\xB7\xB7\xB7A,(HL)\xB7\xB7\xB7\xB7;\xB7Initialize\xB7A\xB7register</c>. + space character): <code>MyLabel:\xB7\xB7\xB7\xB7\xB7\xB7\xB7LD\xB7\xB7\xB7A,(HL)\xB7\xB7\xB7\xB7;\xB7Initialize\xB7A\xB7register</code>. In this case the first tab character (ASCII code 9) was transformed into seven spaces, the second tab character into three spaces and the third tab character into four spaces. @@ -3100,7 +3100,7 @@ <b>end;</b> </code> The above snippet will result in <i>x</i> containing the string (\xB7 represents a - space character): <c>MyLabel:\xB7\xB7\xB7\xB7\xB7\xB7\xB7LD\xB7\xB7\xB7A,(HL)\xB7\xB7\xB7\xB7;\xB7Initialize\xB7A\xB7register</c>. + space character): <code>MyLabel:\xB7\xB7\xB7\xB7\xB7\xB7\xB7LD\xB7\xB7\xB7A,(HL)\xB7\xB7\xB7\xB7;\xB7Initialize\xB7A\xB7register</code>. In this case the first tab character (ASCII code 9) was transformed into seven spaces, the second tab character into three spaces and the third tab character into four spaces. @@ -3274,14 +3274,14 @@ Description: Expand expands tab characters in the provided string into sequences of spaces while preserving the formatting. Expand will assume the string starts - at column 0 (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + at column 0 (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with each line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). The reverse operation (collapse sequences of spaces into tab characters) can be achieved by the <LINK TJclTabSet.Optimize@string, Optimize> method. @@ -3314,8 +3314,8 @@ Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with all but the first line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). The reverse operation (collapse sequences of spaces into tab characters) can be achieved by the <LINK TJclTabSet.Optimize@string@SizeInt, Optimize> method. @@ -3496,14 +3496,14 @@ Optimize reduces tab and space character sequences in the provided string into an optimized (shortest) sequences of tab and space characters while preserving the formatting. Optimize will assume the string starts at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with each line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). The reverse operation (expand sequences of tab characters into spaces) can be achieved by the <LINK TJclTabSet.Expand@string, Expand> method. @@ -3534,8 +3534,8 @@ Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with all but the first line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). The reverse operation (expand sequences of tab characters into spaces) can be achieved by the <LINK TJclTabSet.Expand@string@SizeInt, Expand> method. @@ -3562,10 +3562,10 @@ Description: StartColumn indicates which column is used as the start of a line. Returns: - <b>0</b> if ZeroBased is set to <c>True</c> or if this method is called on a + <b>0</b> if ZeroBased is set to <code>True</code> or if this method is called on a <b>nil</b>-reference \xA0<i>- or -</i><p> - <b>1</b> if ZeroBased is set to <c>False</c> + <b>1</b> if ZeroBased is set to <code>False</code> Donator: Marcel Bestebroer -------------------------------------------------------------------------------- @@ -3742,8 +3742,8 @@ Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with all but the first line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). Parameters: S - The string to expand tabs in. Result: @@ -3772,8 +3772,8 @@ Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with all but the first line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). Parameters: S - The string to expand tabs in. Column - The starting column to use when expanding the tabs. @@ -3804,8 +3804,8 @@ Multi-line strings, ie. strings containing one or more newline sequences (eg. CrLf, but also single Cr of Lf characters are treated as newlines), are handled properly, with all but the first line starting at column 0 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>True</c>) or 1 - (<LINK TJclTabSet.ZeroBased, zero-based> set to <c>False</c>). + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>True</code>) or 1 + (<LINK TJclTabSet.ZeroBased, zero-based> set to <code>False</code>). Parameters: S - The string to expand tabs in. Column - On entry: The starting column to use when expanding the tabs. @@ -3835,17 +3835,17 @@ <LINK TJclTabSet.TabStops, tabulation positions> and other column references are zero based. - If this property is set to <c>True</c>, all columns are considered to be + If this property is set to <code>True</code>, all columns are considered to be zero-based (the first column index is zero); otherwise columns references are one-based (the first column index is one). If this flag is toggled, any stored <LINK TJclTabSet.TabStops, tabulation positions> are automatically converted - to the new state (ie. values are incremented when setting to <c>False</c> or - decremented when setting to <c>True</c>). + to the new state (ie. values are incremented when setting to <code>False</code> or + decremented when setting to <code>True</code>). Notes: This property is <i><b>nil</b>-safe</i>. When read from on a - <b>nil</b>-reference, this property will return <c>True</c>. When written to + <b>nil</b>-reference, this property will return <code>True</code>. When written to on a <b>nil</b>-reference, a NullReferenceException will be raised. See also: TJclTabSet.Expand@string@SizeInt @@ -3893,11 +3893,11 @@ S1 - First string to compare. S2 - Second string to compare. Result: - <c>0</c> if S1 is identical to S2 + <code>0</code> if S1 is identical to S2 \xA0<i>- or -</i><p> - <c>a negative value</c> if S1 is less than S2 + <code>a negative value</code> if S1 is less than S2 \xA0<i>- or -</i><p> - <c>a positive value</c> if S1 is greater than S2 + <code>a positive value</code> if S1 is greater than S2 Donator: Marcel Bestebroer -------------------------------------------------------------------------------- @@ -3939,11 +3939,11 @@ S1 - First string to compare. S2 - Second string to compare. Result: - <c>0</c> if S1 is identical to S2 + <code>0</code> if S1 is identical to S2 \xA0<i>- or -</i><p> - <c>a negative value</c> if S1 is less than S2 + <code>a negative value</code> if S1 is less than S2 \xA0<i>- or -</i><p> - <c>a positive value</c> if S1 is greater than S2 + <code>a positive value</code> if S1 is greater than S2 Donator: Marcel Bestebroer -------------------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-03 10:33:03
|
Revision: 3455 http://jcl.svn.sourceforge.net/jcl/?rev=3455&view=rev Author: outchy Date: 2011-01-03 10:32:57 +0000 (Mon, 03 Jan 2011) Log Message: ----------- Mantis 5435: JclSysInfo.CPUID.HyperThreadingTechnology - wrong result. introduced a new field named "HardwareHyperThreadingTechnology" to represent the right value. Modified Paths: -------------- trunk/jcl/source/common/JclSysInfo.pas Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2011-01-03 10:26:39 UTC (rev 3454) +++ trunk/jcl/source/common/JclSysInfo.pas 2011-01-03 10:32:57 UTC (rev 3455) @@ -470,6 +470,7 @@ LogicalCore: Byte; PhysicalCore: Byte; HyperThreadingTechnology: Boolean; + HardwareHyperThreadingTechnology: Boolean; // todo: TLB case CpuType: Byte of CPU_TYPE_INTEL: (IntelSpecific: TIntelSpecific;); @@ -4573,6 +4574,7 @@ end; end; + CPUInfo.HardwareHyperThreadingTechnology := CPUInfo.LogicalCore <> CPUInfo.PhysicalCore; CPUInfo.AES := (CPUInfo.IntelSpecific.ExFeatures and EINTEL_AES) <> 0; CPUInfo.MMX := (CPUInfo.Features and MMX_FLAG) <> 0; CPUInfo.SSE := []; @@ -4729,6 +4731,7 @@ end; end; + CPUInfo.HardwareHyperThreadingTechnology := CPUInfo.LogicalCore <> CPUInfo.PhysicalCore; CPUInfo.AES := (CPUInfo.AMDSpecific.Features2 and AMD2_AES) <> 0; CPUInfo.MMX := (CPUInfo.Features and AMD_MMX) <> 0; CPUInfo.ExMMX := CPUInfo.HasExtendedInfo and ((CPUInfo.AMDSpecific.ExFeatures and EAMD_EXMMX) <> 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-03 10:26:45
|
Revision: 3454 http://jcl.svn.sourceforge.net/jcl/?rev=3454&view=rev Author: outchy Date: 2011-01-03 10:26:39 +0000 (Mon, 03 Jan 2011) Log Message: ----------- cleanup of revision 3453. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3453&view=rev Modified Paths: -------------- trunk/jcl/source/common/JclPreProcessorParser.pas Modified: trunk/jcl/source/common/JclPreProcessorParser.pas =================================================================== --- trunk/jcl/source/common/JclPreProcessorParser.pas 2010-12-30 17:34:45 UTC (rev 3453) +++ trunk/jcl/source/common/JclPreProcessorParser.pas 2011-01-03 10:26:39 UTC (rev 3454) @@ -1141,7 +1141,6 @@ AssociationByName: Boolean; Index, ParamIndex: Integer; AParamName, AParamText: string; -// Parser: TJppParser; begin SetLength(Result, Length(ParamValues)); AssociationByName := True; @@ -1167,17 +1166,6 @@ AParamText := StrParams.Values[ParamNames.Strings[Index]] else AParamText := StrParams.Strings[Index]; - Self.PushState; - try - (*Parser := TJppParser.Create(AParamText, Self); - try - AParamText := Parser.Parse; - finally - Parser.Free; - end;*) - finally - Self.PopState; - end; Result[Index] := WideString(AParamText); end; finally This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2010-12-30 17:34:54
|
Revision: 3453 http://jcl.svn.sourceforge.net/jcl/?rev=3453&view=rev Author: obones Date: 2010-12-30 17:34:45 +0000 (Thu, 30 Dec 2010) Log Message: ----------- Moved the content of JclPreProcessorState.pas back into JclPreProcessorParser.pas to make the following compilers happy: C6, BDS2006, RS2007 & RS2009 Modified Paths: -------------- trunk/jcl/devtools/jpp/JppMain.pas trunk/jcl/devtools/jpp/jpp.dpr trunk/jcl/devtools/pgEdit.xml trunk/jcl/install/JclInstall.pas trunk/jcl/packages/c6/JclDeveloperTools.bpk trunk/jcl/packages/c6/JclDeveloperTools.dpk trunk/jcl/packages/cs1/JclDeveloperTools.dpk trunk/jcl/packages/d10/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dproj trunk/jcl/packages/d12/JclDeveloperTools.dpk trunk/jcl/packages/d12/JclDeveloperTools.dproj trunk/jcl/packages/d14/JclDeveloperTools.dpk trunk/jcl/packages/d14/JclDeveloperTools.dproj trunk/jcl/packages/d15/JclDeveloperTools.dpk trunk/jcl/packages/d15/JclDeveloperTools.dproj trunk/jcl/packages/d6/JclDeveloperTools.dpk trunk/jcl/packages/d7/JclDeveloperTools.dpk trunk/jcl/packages/d8/JclDeveloperTools.dpk trunk/jcl/packages/d9/JclDeveloperTools.dpk trunk/jcl/packages/fpc/JclDeveloperTools.lpk trunk/jcl/packages/fpc/JclDeveloperTools.pas trunk/jcl/packages/xml/JclDeveloperTools-R.xml trunk/jcl/source/common/JclPreProcessorParser.pas trunk/jcl/source/common/JclPreProcessorTemplates.pas Removed Paths: ------------- trunk/jcl/source/common/JclPreProcessorState.pas Modified: trunk/jcl/devtools/jpp/JppMain.pas =================================================================== --- trunk/jcl/devtools/jpp/JppMain.pas 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/devtools/jpp/JppMain.pas 2010-12-30 17:34:45 UTC (rev 3453) @@ -52,7 +52,6 @@ JclStrings, JclStreams, JclSysUtils, - JclPreProcessorState, JclPreProcessorParser; procedure Syntax; Modified: trunk/jcl/devtools/jpp/jpp.dpr =================================================================== --- trunk/jcl/devtools/jpp/jpp.dpr 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/devtools/jpp/jpp.dpr 2010-12-30 17:34:45 UTC (rev 3453) @@ -45,7 +45,7 @@ uses SysUtils, - JclPreProcessorState, + JclPreProcessorParser, JppMain in 'JppMain.pas'; var Modified: trunk/jcl/devtools/pgEdit.xml =================================================================== --- trunk/jcl/devtools/pgEdit.xml 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/devtools/pgEdit.xml 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,7 +1,22 @@ <?xml version="1.0" encoding="iso-8859-1"?> <Configuration> <!-- These are the values stored by jaxStore --> - <pgEdit/> + <pgEdit> + <FormVersion>0</FormVersion> + <ShowCmd>1</ShowCmd> + <Flags>0</Flags> + <PixelsPerInch>96</PixelsPerInch> + <MinMaxPos_1680x1050_>-1,-1,-1,-1</MinMaxPos_1680x1050_> + <MinMaxPos>-1,-1,-1,-1</MinMaxPos> + <NormPos_1680x1050_>432,220,1247,829</NormPos_1680x1050_> + <NormPos>432,220,1247,829</NormPos> + <pnlList_Width>137</pnlList_Width> + <jsgDependencies_Height>165</jsgDependencies_Height> + <pnlEdit_Width>668</pnlEdit_Width> + <jsgFiles_Height>196</jsgFiles_Height> + <odlAddFiles_InitialDir>..\..\run</odlAddFiles_InitialDir> + <cmbModel_ItemIndex>-1</cmbModel_ItemIndex> + </pgEdit> <!-- The nodes below are read by the generation process. Packages are generated according to a model. The models are defined Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/install/JclInstall.pas 2010-12-30 17:34:45 UTC (rev 3453) @@ -331,7 +331,6 @@ JclFileUtils, JclStrings, JclCompilerUtils, JclContainerIntf, - JclPreProcessorState, JclPreProcessorParser, JediInstallResources, JclInstallResources; Modified: trunk/jcl/packages/c6/JclDeveloperTools.bpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.bpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/c6/JclDeveloperTools.bpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -36,7 +36,6 @@ ..\..\lib\c6\JclPreProcessorQueuesTemplates.obj ..\..\lib\c6\JclPreProcessorSortedMapsTemplates.obj ..\..\lib\c6\JclPreProcessorStacksTemplates.obj - ..\..\lib\c6\JclPreProcessorState.obj ..\..\lib\c6\JclPreProcessorTemplates.obj ..\..\lib\c6\JclPreProcessorTreesTemplates.obj ..\..\lib\c6\JclPreProcessorVectorsTemplates.obj @@ -121,7 +120,6 @@ <FILE FILENAME="..\..\source\common\JclPreProcessorQueuesTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorQueuesTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorSortedMapsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorStacksTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorStacksTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclPreProcessorState.pas" FORMNAME="" UNITNAME="JclPreProcessorState" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorTreesTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorTreesTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclPreProcessorVectorsTemplates.pas" FORMNAME="" UNITNAME="JclPreProcessorVectorsTemplates" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/c6/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -70,7 +70,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/cs1/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/cs1/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/cs1/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -69,7 +69,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d10/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d10/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d10/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -71,7 +71,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d11/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d11/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d11/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -72,7 +72,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d11/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d11/JclDeveloperTools.dproj 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d11/JclDeveloperTools.dproj 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,4 +1,4 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{2AE59B42-1430-423F-99D0-FB8F17DF798B}</ProjectGuid> <MainSource>JclDeveloperTools.dpk</MainSource> @@ -111,7 +111,6 @@ <DCCReference Include="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> - <DCCReference Include="..\..\source\common\JclPreProcessorState.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> Modified: trunk/jcl/packages/d12/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d12/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d12/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -71,7 +71,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d12/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d12/JclDeveloperTools.dproj 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d12/JclDeveloperTools.dproj 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{2AE59B42-1430-423F-99D0-FB8F17DF798B}</ProjectGuid> <MainSource>JclDeveloperTools.dpk</MainSource> @@ -86,7 +86,6 @@ <DCCReference Include="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> - <DCCReference Include="..\..\source\common\JclPreProcessorState.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> Modified: trunk/jcl/packages/d14/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d14/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d14/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -71,7 +71,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d14/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d14/JclDeveloperTools.dproj 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d14/JclDeveloperTools.dproj 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{2AE59B42-1430-423F-99D0-FB8F17DF798B}</ProjectGuid> <MainSource>JclDeveloperTools.dpk</MainSource> @@ -88,7 +88,6 @@ <DCCReference Include="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> - <DCCReference Include="..\..\source\common\JclPreProcessorState.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> Modified: trunk/jcl/packages/d15/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d15/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d15/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -70,7 +70,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d15/JclDeveloperTools.dproj =================================================================== --- trunk/jcl/packages/d15/JclDeveloperTools.dproj 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d15/JclDeveloperTools.dproj 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,4 +1,4 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{2AE59B42-1430-423F-99D0-FB8F17DF798B}</ProjectGuid> <MainSource>JclDeveloperTools.dpk</MainSource> @@ -95,7 +95,6 @@ <DCCReference Include="..\..\source\common\JclPreProcessorQueuesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> - <DCCReference Include="..\..\source\common\JclPreProcessorState.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorTreesTemplates.pas"/> <DCCReference Include="..\..\source\common\JclPreProcessorVectorsTemplates.pas"/> Modified: trunk/jcl/packages/d6/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d6/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d6/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -70,7 +70,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d7/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d7/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d7/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -70,7 +70,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d8/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d8/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d8/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -69,7 +69,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/d9/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/d9/JclDeveloperTools.dpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/d9/JclDeveloperTools.dpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -70,7 +70,6 @@ JclPreProcessorQueuesTemplates in '..\..\source\common\JclPreProcessorQueuesTemplates.pas' , JclPreProcessorSortedMapsTemplates in '..\..\source\common\JclPreProcessorSortedMapsTemplates.pas' , JclPreProcessorStacksTemplates in '..\..\source\common\JclPreProcessorStacksTemplates.pas' , - JclPreProcessorState in '..\..\source\common\JclPreProcessorState.pas' , JclPreProcessorTemplates in '..\..\source\common\JclPreProcessorTemplates.pas' , JclPreProcessorTreesTemplates in '..\..\source\common\JclPreProcessorTreesTemplates.pas' , JclPreProcessorVectorsTemplates in '..\..\source\common\JclPreProcessorVectorsTemplates.pas' , Modified: trunk/jcl/packages/fpc/JclDeveloperTools.lpk =================================================================== --- trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/fpc/JclDeveloperTools.lpk 2010-12-30 17:34:45 UTC (rev 3453) @@ -128,10 +128,6 @@ <Filename Value="..\..\source\common\JclPreProcessorStacksTemplates.pas"/> <UnitName Value="JclPreProcessorStacksTemplates"/> </Item22> - <Item23> - <Filename Value="..\..\source\common\JclPreProcessorState.pas"/> - <UnitName Value="JclPreProcessorState"/> - </Item23> <Item24> <Filename Value="..\..\source\common\JclPreProcessorTemplates.pas"/> <UnitName Value="JclPreProcessorTemplates"/> Modified: trunk/jcl/packages/fpc/JclDeveloperTools.pas =================================================================== --- trunk/jcl/packages/fpc/JclDeveloperTools.pas 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/fpc/JclDeveloperTools.pas 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,4 +1,4 @@ -{ +{ ----------------------------------------------------------------------------- DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) @@ -34,7 +34,6 @@ JclPreProcessorQueuesTemplates, JclPreProcessorSortedMapsTemplates, JclPreProcessorStacksTemplates, - JclPreProcessorState, JclPreProcessorTemplates, JclPreProcessorTreesTemplates, JclPreProcessorVectorsTemplates, Modified: trunk/jcl/packages/xml/JclDeveloperTools-R.xml =================================================================== --- trunk/jcl/packages/xml/JclDeveloperTools-R.xml 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/packages/xml/JclDeveloperTools-R.xml 2010-12-30 17:34:45 UTC (rev 3453) @@ -38,7 +38,6 @@ <File Name="..\..\source\common\JclPreProcessorQueuesTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorSortedMapsTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorStacksTemplates.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclPreProcessorState.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorTreesTemplates.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclPreProcessorVectorsTemplates.pas" Targets="all" Formname="" Condition=""/> Modified: trunk/jcl/source/common/JclPreProcessorParser.pas =================================================================== --- trunk/jcl/source/common/JclPreProcessorParser.pas 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/source/common/JclPreProcessorParser.pas 2010-12-30 17:34:45 UTC (rev 3453) @@ -55,9 +55,11 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - JclBase, JclPreProcessorState, JclPreProcessorLexer; + JclBase, JclContainerIntf, JclPreProcessorLexer; type + TPppState = class; + EPppParserError = class(EJclError); TJppParser = class @@ -102,6 +104,106 @@ property State: TPppState read FState; end; + EPppState = class(EJclError); + + TPppOption = (poProcessIncludes, poProcessDefines, poStripComments, + poProcessMacros, poProcessValues, poNoWarningHeader, poKeepTabAndSpaces, + poIgnoreUnterminatedStrings); + TPppOptions = set of TPppOption; + + TTriState = (ttUnknown, ttUndef, ttDefined); + + TPppStateItem = class + public + DefinedKeywords: IJclStrMap; + ExcludedFiles: IJclStrList; + Macros: IJclStrIntfMap; + SearchPath: IJclStrList; + TriState: TTriState; + end; + + TPppStateItemClass = class of TPppStateItem; + + TPppProvider = class(TPersistent) + protected + function GetBoolValue(const Name: string): Boolean; virtual; abstract; + function GetDefine(const ASymbol: string): TTriState; virtual; abstract; + function GetIntegerValue(const Name: string): Integer; virtual; abstract; + function GetStringValue(const Name: string): string; virtual; abstract; + procedure SetBoolValue(const Name: string; Value: Boolean); virtual; abstract; + procedure SetDefine(const ASymbol: string; const Value: TTriState); virtual; abstract; + procedure SetIntegerValue(const Name: string; Value: Integer); virtual; abstract; + procedure SetStringValue(const Name, Value: string); virtual; abstract; + public + property Defines[const ASymbol: string]: TTriState read GetDefine write SetDefine; + property BoolValues[const Name: string]: Boolean read GetBoolValue write SetBoolValue; + property StringValues[const Name: string]: string read GetStringValue write SetStringValue; + property IntegerValues[const Name: string]: Integer read GetIntegerValue write SetIntegerValue; + end; + + TPppState = class(TPppProvider) + private + FStateStack: IJclStack; + FOptions: TPppOptions; + function InternalPeekDefines: IJclStrMap; + function InternalPeekExcludedFiles: IJclStrList; + function InternalPeekMacros: IJclStrIntfMap; + function InternalPeekSearchPath: IJclStrList; + function InternalPeekTriState: TTriState; + procedure InternalSetTriState(Value: TTriState); + protected + class function StateItemClass: TPppStateItemClass; virtual; + procedure InternalPushState(FromStateItem, ToStateItem: TPppStateItem); virtual; + function PeekStateItem: TPppStateItem; + + function GetOptions: TPppOptions; + procedure SetOptions(AOptions: TPppOptions); + + function FindMacro(const AMacroName: string): IJclStrList; + function AssociateParameters(const ParamNames: IJclStrList; + const ParamValues: TDynStringArray): TDynWideStringArray; + + function GetBoolValue(const Name: string): Boolean; override; + function GetDefine(const ASymbol: string): TTriState; override; + function GetIntegerValue(const Name: string): Integer; override; + function GetStringValue(const Name: string): string; override; + procedure SetBoolValue(const Name: string; Value: Boolean); override; + procedure SetDefine(const ASymbol: string; const Value: TTriState); override; + procedure SetIntegerValue(const Name: string; Value: Integer); override; + procedure SetStringValue(const Name, Value: string); override; + public + constructor Create; + destructor Destroy; override; + + procedure AfterConstruction; override; + + { PushState is called at the start of every unit, and PopState at the + end. This means that any declarations like $DEFINE will be file-local + in scope. } + procedure PushState; + procedure PopState; + + property TriState: TTriState read InternalPeekTriState write InternalSetTriState; + + procedure Define(const ASymbol: string); + procedure Undef(const ASymbol: string); + + function FindFile(const AName: string): TStream; + procedure AddToSearchPath(const AName: string); + + procedure AddFileToExclusionList(const AName: string); + function IsFileExcluded(const AName: string): Boolean; + + function ExpandMacro(const AName: string; const ParamValues: TDynStringArray): string; virtual; + procedure DefineMacro(const AName: string; const ParamNames: TDynStringArray; + const Value: string); + procedure UndefMacro(const AName: string; const ParamNames: TDynStringArray); + + property Options: TPppOptions read GetOptions write SetOptions; + end; + + TPppStateClass = class of TPppState; + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -117,7 +219,8 @@ implementation uses - JclStrings, JclStreams, JclSysUtils; + TypInfo, + JclStrings, JclStreams, JclSysUtils, JclArrayLists, JclHashMaps, JclStacks; function AllWhiteSpace(P: PChar; KeepTabAndSpaces: Boolean): Boolean; var @@ -998,6 +1101,446 @@ end; end; +//=== { TPppState } ========================================================== + +constructor TPppState.Create; +begin + inherited Create; + FStateStack := TJclStack.Create(16, True); +end; + +destructor TPppState.Destroy; +begin + FStateStack := nil; + inherited Destroy; +end; + +procedure TPppState.AddFileToExclusionList(const AName: string); +begin + InternalPeekExcludedFiles.Add(AName); +end; + +procedure TPppState.AddToSearchPath(const AName: string); +begin + InternalPeekSearchPath.Add(AName); +end; + +procedure TPppState.AfterConstruction; +var + StateItem: TPppStateItem; +begin + StateItem := StateItemClass.Create; + InternalPushState(nil, StateItem); + FStateStack.Push(StateItem); +end; + +function TPppState.AssociateParameters(const ParamNames: IJclStrList; + const ParamValues: TDynStringArray): TDynWideStringArray; +var + StrParams: TStrings; + AssociationByName: Boolean; + Index, ParamIndex: Integer; + AParamName, AParamText: string; +// Parser: TJppParser; +begin + SetLength(Result, Length(ParamValues)); + AssociationByName := True; + StrParams := TStringList.Create; + try + for Index := Low(ParamValues) to High(ParamValues) do + begin + StrParams.Add(ParamValues[Index]); + AParamName := StrParams.Names[Index]; + if Assigned(ParamNames) and (AParamName <> '') then + begin + // verify parameter names + ParamIndex := ParamNames.IndexOf(AParamName); + if ParamIndex < 0 then + AssociationByName := False; + end + else + AssociationByName := False; + end; + for Index := Low(ParamValues) to High(ParamValues) do + begin + if AssociationByName then + AParamText := StrParams.Values[ParamNames.Strings[Index]] + else + AParamText := StrParams.Strings[Index]; + Self.PushState; + try + (*Parser := TJppParser.Create(AParamText, Self); + try + AParamText := Parser.Parse; + finally + Parser.Free; + end;*) + finally + Self.PopState; + end; + Result[Index] := WideString(AParamText); + end; + finally + StrParams.Free; + end; +end; + +function TPppState.ExpandMacro(const AName: string; + const ParamValues: TDynStringArray): string; +var + AMacro: IJclStrList; + AMacroName, AMacroText: string; + Index: Integer; + Params: array of TVarRec; + AMacroParams: TDynWideStringArray; +begin + AMacroName := Format('%s`%d', [AName, Length(ParamValues)]); + AMacro := FindMacro(AMacroName); + // the macro text is the last item, previous items are the macro parameter names + AMacroText := AMacro.Strings[AMacro.Size - 1]; + AMacroParams := AssociateParameters(AMacro.SubList(0, AMacro.Size - 1), ParamValues); + + SetLength(Params, Length(ParamValues)); + for Index := Low(ParamValues) to High(ParamValues) do + begin + Params[Index].VType := vtPWideChar; + Params[Index].VPWideChar := PWideChar(AMacroParams[Index]); + end; + Result := Format(AMacroText, Params); +end; + +procedure TPppState.Define(const ASymbol: string); +begin + Defines[ASymbol] := ttDefined; +end; + +procedure TPppState.DefineMacro(const AName: string; + const ParamNames: TDynStringArray; const Value: string); +var + AMacro: IJclStrList; + AMacros: IJclStrIntfMap; + AMacroNames: IJclStrIterator; + AMacroName, AMacroFormat: string; + Index: Integer; +begin + AMacros := InternalPeekMacros; + AMacroName := Format('%s`%d', [AName, Length(ParamNames)]); + AMacroNames := AMacros.KeySet.First; + while AMacroNames.HasNext do + if JclStrings.StrSame(AMacroNames.Next, AMacroName) then + raise EPppState.CreateFmt('macro "%s" is already defined', [AName]); + AMacroFormat := Value; + AMacro := TJclStrArrayList.Create(16); + for Index := Low(ParamNames) to High(ParamNames) do + begin + StrReplace(AMacroFormat, ParamNames[Index], '%' + IntToStr(Index) + ':s', [rfReplaceAll, rfIgnoreCase]); + // the first elements in the list are the macro parameter names + AMacro.Add(ParamNames[Index]); + end; + // the macro text is the last element in the list + AMacro.Add(AMacroFormat); + AMacros.Items[AMacroName] := AMacro; +end; + +function TPppState.FindFile(const AName: string): TStream; +var + i: Integer; + fn: string; + Found: Boolean; + ASearchPath: IJclStrList; +begin + ASearchPath := InternalPeekSearchPath; + fn := AName; + Found := FileExists(fn); + if not Found then + for i := 0 to ASearchPath.Size - 1 do + begin + fn := ASearchPath.Strings[i] + PathDelim + AName; + if FileExists(fn) then + begin + Found := True; + Break; + end; + end; + if not Found then + raise EPppState.CreateFmt('File not found: %s', [AName]); + Result := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite); +end; + +function TPppState.FindMacro(const AMacroName: string): IJclStrList; +var + AMacros: IJclStrIntfMap; + AMacroNames: IJclStrIterator; +begin + AMacros := InternalPeekMacros; + AMacroNames := AMacros.KeySet.First; + while AMacroNames.HasNext do + begin + if JclStrings.StrSame(AMacroNames.Next, AMacroName) then + begin + Result := AMacros.Items[AMacroNames.GetString] as IJclStrList; + Exit; + end; + end; + raise EPppState.CreateFmt('unknown macro "%s"', [AMacroName]); +end; + +function TPppState.GetBoolValue(const Name: string): Boolean; +var + VariantValue: Variant; +begin + VariantValue := GetPropValue(Self, Name); + Result := Boolean(VariantValue); +end; + +function TPppState.GetIntegerValue(const Name: string): Integer; +var + VariantValue: Variant; +begin + VariantValue := GetPropValue(Self, Name); + Result := Integer(VariantValue); +end; + +function TPppState.GetStringValue(const Name: string): string; +var + VariantValue: Variant; +begin + VariantValue := GetPropValue(Self, Name, True); + Result := string(VariantValue); +end; + +function TPppState.GetOptions: TPppOptions; +begin + Result := FOptions; +end; + +function TPppState.GetDefine(const ASymbol: string): TTriState; +var + ADefines: IJclStrMap; + ASymbolNames: IJclStrIterator; + PI: PPropInfo; + PV: Variant; +begin + Result := ttUnknown; + ADefines := InternalPeekDefines; + ASymbolNames := ADefines.KeySet.First; + while ASymbolNames.HasNext do + begin + if JclStrings.StrSame(ASymbolNames.Next, ASymbol) then + begin + Result := TTriState(ADefines.Items[ASymbolNames.GetString]); + Break; + end; + end; + if Result = ttUnknown then + begin + PI := GetPropInfo(Self, ASymbol); + if Assigned(PI) then + begin + {$IFDEF COMPILER8_UP} + PV := GetPropValue(Self, PI); + {$ELSE ~COMPILER8_UP} + PV := GetPropValue(Self, PI^.Name); + {$ENDIF ~COMPILER8_UP} + if Boolean(PV) then + Result := ttDefined + else + Result := ttUndef; + end; + end; +end; + +function TPppState.InternalPeekDefines: IJclStrMap; +begin + Result := PeekStateItem.DefinedKeywords; +end; + +function TPppState.InternalPeekExcludedFiles: IJclStrList; +begin + Result := PeekStateItem.ExcludedFiles; +end; + +function TPppState.InternalPeekMacros: IJclStrIntfMap; +begin + Result := PeekStateItem.Macros; +end; + +function TPppState.InternalPeekSearchPath: IJclStrList; +begin + Result := PeekStateItem.SearchPath; +end; + +function TPppState.InternalPeekTriState: TTriState; +begin + Result := PeekStateItem.TriState; +end; + +procedure TPppState.InternalPushState(FromStateItem, ToStateItem: TPppStateItem); +begin + if Assigned(FromStateItem) then + begin + // clone + ToStateItem.DefinedKeywords := (FromStateItem.DefinedKeywords as IJclIntfCloneable).IntfClone as IJclStrMap; + ToStateItem.ExcludedFiles := (FromStateItem.ExcludedFiles as IJclIntfCloneable).IntfClone as IJclStrList; + ToStateItem.Macros := (FromStateItem.Macros as IJclIntfCloneable).IntfClone as IJclStrIntfMap; + ToStateItem.SearchPath := (FromStateItem.SearchPath as IJclIntfCloneable).IntfClone as IJclStrList; + ToStateItem.TriState := FromStateItem.TriState; + end + else + begin + // create the first item + ToStateItem.DefinedKeywords := TJclStrHashMap.Create(16, False); + ToStateItem.ExcludedFiles := TJclStrArrayList.Create(16); + ToStateItem.Macros := TJclStrIntfHashMap.Create(16); + ToStateItem.SearchPath := TJclStrArrayList.Create(16); + ToStateItem.TriState := ttDefined; + end; +end; + +procedure TPppState.InternalSetTriState(Value: TTriState); +var + APppStateItem: TPppStateItem; +begin + APppStateItem := PeekStateItem; + if APppStateItem.TriState <> ttUndef then + APppStateItem.TriState := Value; +end; + +function TPppState.IsFileExcluded(const AName: string): Boolean; +var + AExcludedFiles: IJclStrList; + AFileNames: IJclStrIterator; +begin + AExcludedFiles := InternalPeekExcludedFiles; + AFileNames := AExcludedFiles.First; + Result := False; + while AFileNames.HasNext do + begin + if JclStrings.StrSame(AFileNames.Next, AName) then + begin + Result := True; + Break; + end; + end; +end; + +function TPppState.PeekStateItem: TPppStateItem; +begin + if FStateStack.Empty then + raise EPppState.Create('Internal error: PPP State stack is empty'); + Result := FStateStack.Peek as TPppStateItem; +end; + +procedure TPppState.PopState; +begin + if FStateStack.Size <= 1 then + raise EPppState.Create('Internal error: PPP State stack underflow'); + FStateStack.Pop.Free; +end; + +procedure TPppState.PushState; +var + FromStateItem, ToStateItem: TPppStateItem; +begin + FromStateItem := PeekStateItem; + ToStateItem := StateItemClass.Create; + InternalPushState(FromStateItem, ToStateItem); + FStateStack.Push(ToStateItem); +end; + +procedure TPppState.SetOptions(AOptions: TPppOptions); +begin + FOptions := AOptions; +end; + +procedure TPppState.SetBoolValue(const Name: string; Value: Boolean); +var + VariantValue: Variant; +begin + VariantValue := Value; + SetPropValue(Self, Name, VariantValue); +end; + +procedure TPppState.SetDefine(const ASymbol: string; + const Value: TTriState); +var + ADefines: IJclStrMap; + ASymbolNames: IJclStrIterator; + PI: PPropInfo; +begin + ADefines := InternalPeekDefines; + ASymbolNames := ADefines.KeySet.First; + while ASymbolNames.HasNext do + begin + if JclStrings.StrSame(ASymbolNames.Next, ASymbol) then + begin + ADefines.Items[ASymbolNames.GetString] := TObject(Value); + Exit; + end; + end; + if Value <> ttUnknown then + begin + PI := GetPropInfo(Self, ASymbol); + if Assigned(PI) then + begin + if Value = ttDefined then + {$IFDEF COMPILER8_UP} + SetPropValue(Self, PI, True) + {$ELSE ~COMPILER8_UP} + SetPropValue(Self, PI^.Name, True) + {$ENDIF ~COMPILER8_UP} + else + {$IFDEF COMPILER8_UP} + SetPropValue(Self, PI, False); + {$ELSE ~COMPILER8_UP} + SetPropValue(Self, PI^.Name, False); + {$ENDIF ~COMPILER8_UP} + Exit; + end; + end; + ADefines.Items[ASymbol] := TObject(Value); +end; + +procedure TPppState.SetIntegerValue(const Name: string; Value: Integer); +var + VariantValue: Variant; +begin + VariantValue := Value; + SetPropValue(Self, Name, VariantValue); +end; + +procedure TPppState.SetStringValue(const Name, Value: string); +var + VariantValue: Variant; +begin + VariantValue := Value; + SetPropValue(Self, Name, VariantValue); +end; + +class function TPppState.StateItemClass: TPppStateItemClass; +begin + Result := TPppStateItem; +end; + +procedure TPppState.Undef(const ASymbol: string); +begin + Defines[ASymbol] := ttUndef; +end; + +procedure TPppState.UndefMacro(const AName: string; const ParamNames: TDynStringArray); +var + AMacros: IJclStrIntfMap; + AMacroNames: IJclStrIterator; + AMacroName: string; +begin + AMacros := InternalPeekMacros; + AMacroName := Format('%s`%d', [AName, Length(ParamNames)]); + AMacroNames := AMacros.KeySet.First; + while AMacroNames.HasNext do + if JclStrings.StrSame(AMacroNames.Next, AMacroName) then + AMacros.Remove(AMacroNames.GetString); +end; + {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); Deleted: trunk/jcl/source/common/JclPreProcessorState.pas =================================================================== --- trunk/jcl/source/common/JclPreProcessorState.pas 2010-12-29 20:12:51 UTC (rev 3452) +++ trunk/jcl/source/common/JclPreProcessorState.pas 2010-12-30 17:34:45 UTC (rev 3453) @@ -1,630 +0,0 @@ -{ **************************************************************************** } -{ } -{ PppState - Pascal PreProcessor State } -{ Copyright (c) 2001 Barry Kelly. } -{ bar...@ho... } -{ } -{ The contents of this file are subject to the Mozilla Public License } -{ Version 1.1 (the "License"); you may not use this file except in } -{ compliance with the License. You may obtain a copy of the License at } -{ http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" } -{ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the } -{ License for the specific language governing rights and limitations } -{ under the License. } -{ } -{ The Original Code is PppState.pas } -{ } -{ The Initial Developer of the Original Code is Barry Kelly. } -{ Portions created by Barry Kelly are Copyright (C) 2001 } -{ Barry Kelly. All Rights Reserved. } -{ } -{ Contributors: } -{ Florent Ouchet } -{ } -{ Alternatively, the contents of this file may be used under the terms } -{ of the Lesser GNU Public License (the "LGPL License"), in which case } -{ the provisions of LGPL License are applicable instead of those } -{ above. If you wish to allow use of your version of this file only } -{ under the terms of the LPGL License and not to allow others to use } -{ your version of this file under the MPL, indicate your decision by } -{ deleting the provisions above and replace them with the notice and } -{ other provisions required by the LGPL License. If you do not delete } -{ the provisions above, a recipient may use your version of this file } -{ under either the MPL or the LPGL License. } -{ } -{ **************************************************************************** } -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{ **************************************************************************** } - -{ Brief: The state of the preprocessor; options (e.g. remove comments), - defines, include search path, etc. } - -// Modifications by Robert Rossmair: Addition of TTriState type, TriState methods -unit JclPreProcessorState; - -{$I jcl.inc} - -interface - -uses - SysUtils, Classes, - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - JclBase, JclContainerIntf; - -type - EPppState = class(EJclError); - - TPppOption = (poProcessIncludes, poProcessDefines, poStripComments, - poProcessMacros, poProcessValues, poNoWarningHeader, poKeepTabAndSpaces, - poIgnoreUnterminatedStrings); - TPppOptions = set of TPppOption; - - TTriState = (ttUnknown, ttUndef, ttDefined); - - TPppStateItem = class - public - DefinedKeywords: IJclStrMap; - ExcludedFiles: IJclStrList; - Macros: IJclStrIntfMap; - SearchPath: IJclStrList; - TriState: TTriState; - end; - - TPppStateItemClass = class of TPppStateItem; - - TPppProvider = class(TPersistent) - protected - function GetBoolValue(const Name: string): Boolean; virtual; abstract; - function GetDefine(const ASymbol: string): TTriState; virtual; abstract; - function GetIntegerValue(const Name: string): Integer; virtual; abstract; - function GetStringValue(const Name: string): string; virtual; abstract; - procedure SetBoolValue(const Name: string; Value: Boolean); virtual; abstract; - procedure SetDefine(const ASymbol: string; const Value: TTriState); virtual; abstract; - procedure SetIntegerValue(const Name: string; Value: Integer); virtual; abstract; - procedure SetStringValue(const Name, Value: string); virtual; abstract; - public - property Defines[const ASymbol: string]: TTriState read GetDefine write SetDefine; - property BoolValues[const Name: string]: Boolean read GetBoolValue write SetBoolValue; - property StringValues[const Name: string]: string read GetStringValue write SetStringValue; - property IntegerValues[const Name: string]: Integer read GetIntegerValue write SetIntegerValue; - end; - - TPppState = class(TPppProvider) - private - FStateStack: IJclStack; - FOptions: TPppOptions; - function InternalPeekDefines: IJclStrMap; - function InternalPeekExcludedFiles: IJclStrList; - function InternalPeekMacros: IJclStrIntfMap; - function InternalPeekSearchPath: IJclStrList; - function InternalPeekTriState: TTriState; - procedure InternalSetTriState(Value: TTriState); - protected - class function StateItemClass: TPppStateItemClass; virtual; - procedure InternalPushState(FromStateItem, ToStateItem: TPppStateItem); virtual; - function PeekStateItem: TPppStateItem; - - function GetOptions: TPppOptions; - procedure SetOptions(AOptions: TPppOptions); - - function FindMacro(const AMacroName: string): IJclStrList; - function AssociateParameters(const ParamNames: IJclStrList; - const ParamValues: TDynStringArray): TDynWideStringArray; - - function GetBoolValue(const Name: string): Boolean; override; - function GetDefine(const ASymbol: string): TTriState; override; - function GetIntegerValue(const Name: string): Integer; override; - function GetStringValue(const Name: string): string; override; - procedure SetBoolValue(const Name: string; Value: Boolean); override; - procedure SetDefine(const ASymbol: string; const Value: TTriState); override; - procedure SetIntegerValue(const Name: string; Value: Integer); override; - procedure SetStringValue(const Name, Value: string); override; - public - constructor Create; - destructor Destroy; override; - - procedure AfterConstruction; override; - - { PushState is called at the start of every unit, and PopState at the - end. This means that any declarations like $DEFINE will be file-local - in scope. } - procedure PushState; - procedure PopState; - - property TriState: TTriState read InternalPeekTriState write InternalSetTriState; - - procedure Define(const ASymbol: string); - procedure Undef(const ASymbol: string); - - function FindFile(const AName: string): TStream; - procedure AddToSearchPath(const AName: string); - - procedure AddFileToExclusionList(const AName: string); - function IsFileExcluded(const AName: string): Boolean; - - function ExpandMacro(const AName: string; const ParamValues: TDynStringArray): string; virtual; - procedure DefineMacro(const AName: string; const ParamNames: TDynStringArray; - const Value: string); - procedure UndefMacro(const AName: string; const ParamNames: TDynStringArray); - - property Options: TPppOptions read GetOptions write SetOptions; - end; - - TPppStateClass = class of TPppState; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\source\common'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - TypInfo, - JclStrings, JclArrayLists, JclHashMaps, JclStacks, - JclPreProcessorParser; - -//=== { TPppState } ========================================================== - -constructor TPppState.Create; -begin - inherited Create; - FStateStack := TJclStack.Create(16, True); -end; - -destructor TPppState.Destroy; -begin - FStateStack := nil; - inherited Destroy; -end; - -procedure TPppState.AddFileToExclusionList(const AName: string); -begin - InternalPeekExcludedFiles.Add(AName); -end; - -procedure TPppState.AddToSearchPath(const AName: string); -begin - InternalPeekSearchPath.Add(AName); -end; - -procedure TPppState.AfterConstruction; -var - StateItem: TPppStateItem; -begin - StateItem := StateItemClass.Create; - InternalPushState(nil, StateItem); - FStateStack.Push(StateItem); -end; - -function TPppState.AssociateParameters(const ParamNames: IJclStrList; - const ParamValues: TDynStringArray): TDynWideStringArray; -var - StrParams: TStrings; - AssociationByName: Boolean; - Index, ParamIndex: Integer; - AParamName, AParamText: string; - Parser: TJppParser; -begin - SetLength(Result, Length(ParamValues)); - AssociationByName := True; - StrParams := TStringList.Create; - try - for Index := Low(ParamValues) to High(ParamValues) do - begin - StrParams.Add(ParamValues[Index]); - AParamName := StrParams.Names[Index]; - if Assigned(ParamNames) and (AParamName <> '') then - begin - // verify parameter names - ParamIndex := ParamNames.IndexOf(AParamName); - if ParamIndex < 0 then - AssociationByName := False; - end - else - AssociationByName := False; - end; - for Index := Low(ParamValues) to High(ParamValues) do - begin - if AssociationByName then - AParamText := StrParams.Values[ParamNames.Strings[Index]] - else - AParamText := StrParams.Strings[Index]; - Self.PushState; - try - Parser := TJppParser.Create(AParamText, Self); - try - AParamText := Parser.Parse; - finally - Parser.Free; - end; - finally - Self.PopState; - end; - Result[Index] := WideString(AParamText); - end; - finally - StrParams.Free; - end; -end; - -function TPppState.ExpandMacro(const AName: string; - const ParamValues: TDynStringArray): string; -var - AMacro: IJclStrList; - AMacroName, AMacroText: string; - Index: Integer; - Params: array of TVarRec; - AMacroParams: TDynWideStringArray; -begin - AMacroName := Format('%s`%d', [AName, Length(ParamValues)]); - AMacro := FindMacro(AMacroName); - // the macro text is the last item, previous items are the macro parameter names - AMacroText := AMacro.Strings[AMacro.Size - 1]; - AMacroParams := AssociateParameters(AMacro.SubList(0, AMacro.Size - 1), ParamValues); - - SetLength(Params, Length(ParamValues)); - for Index := Low(ParamValues) to High(ParamValues) do - begin - Params[Index].VType := vtPWideChar; - Params[Index].VPWideChar := PWideChar(AMacroParams[Index]); - end; - Result := Format(AMacroText, Params); -end; - -procedure TPppState.Define(const ASymbol: string); -begin - Defines[ASymbol] := ttDefined; -end; - -procedure TPppState.DefineMacro(const AName: string; - const ParamNames: TDynStringArray; const Value: string); -var - AMacro: IJclStrList; - AMacros: IJclStrIntfMap; - AMacroNames: IJclStrIterator; - AMacroName, AMacroFormat: string; - Index: Integer; -begin - AMacros := InternalPeekMacros; - AMacroName := Format('%s`%d', [AName, Length(ParamNames)]); - AMacroNames := AMacros.KeySet.First; - while AMacroNames.HasNext do - if JclStrings.StrSame(AMacroNames.Next, AMacroName) then - raise EPppState.CreateFmt('macro "%s" is already defined', [AName]); - AMacroFormat := Value; - AMacro := TJclStrArrayList.Create(16); - for Index := Low(ParamNames) to High(ParamNames) do - begin - StrReplace(AMacroFormat, ParamNames[Index], '%' + IntToStr(Index) + ':s', [rfReplaceAll, rfIgnoreCase]); - // the first elements in the list are the macro parameter names - AMacro.Add(ParamNames[Index]); - end; - // the macro text is the last element in the list - AMacro.Add(AMacroFormat); - AMacros.Items[AMacroName] := AMacro; -end; - -function TPppState.FindFile(const AName: string): TStream; -var - i: Integer; - fn: string; - Found: Boolean; - ASearchPath: IJclStrList; -begin - ASearchPath := InternalPeekSearchPath; - fn := AName; - Found := FileExists(fn); - if not Found then - for i := 0 to ASearchPath.Size - 1 do - begin - fn := ASearchPath.Strings[i] + PathDelim + AName; - if FileExists(fn) then - begin - Found := True; - Break; - end; - end; - if not Found then - raise EPppState.CreateFmt('File not found: %s', [AName]); - Result := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite); -end; - -function TPppState.FindMacro(const AMacroName: string): IJclStrList; -var - AMacros: IJclStrIntfMap; - AMacroNames: IJclStrIterator; -begin - AMacros := InternalPeekMacros; - AMacroNames := AMacros.KeySet.First; - while AMacroNames.HasNext do - begin - if JclStrings.StrSame(AMacroNames.Next, AMacroName) then - begin - Result := AMacros.Items[AMacroNames.GetString] as IJclStrList; - Exit; - end; - end; - raise EPppState.CreateFmt('unknown macro "%s"', [AMacroName]); -end; - -function TPppState.GetBoolValue(const Name: string): Boolean; -var - VariantValue: Variant; -begin - VariantValue := GetPropValue(Self, Name); - Result := Boolean(VariantValue); -end; - -function TPppState.GetIntegerValue(const Name: string): Integer; -var - VariantValue: Variant; -begin - VariantValue := GetPropValue(Self, Name); - Result := Integer(VariantValue); -end; - -function TPppState.GetStringValue(const Name: string): string; -var - VariantValue: Variant; -begin - VariantValue := GetPropValue(Self, Name, True); - Result := string(VariantValue); -end; - -function TPppState.GetOptions: TPppOptions; -begin - Result := FOptions; -end; - -function TPppState.GetDefine(const ASymbol: string): TTriState; -var - ADefines: IJclStrMap; - ASymbolNames: IJclStrIterator; - PI: PPropInfo; - PV: Variant; -begin - Result := ttUnknown; - ADefines := InternalPeekDefines; - ASymbolNames := ADefines.KeySet.First; - while ASymbolNames.HasNext do - begin - if JclStrings.StrSame(ASymbolNames.Next, ASymbol) then - begin - Result := TTriState(ADefines.Items[ASymbolNames.GetString]); - Break; - end; - end; - if Result = ttUnknown then - begin - PI := GetPropInfo(Self, ASymbol); - if Assigned(PI) then - begin - {$IFDEF COMPILER8_UP} - PV := GetPropValue(Self, PI); - {$ELSE ~COMPILER8_UP} - PV := GetPropValue(Self, PI^.Name); - {$ENDIF ~COMPILER8_UP} - if Boolean(PV) then - Result := ttDefined - else - Result := ttUndef; - end; - end; -end; - -function TPppState.InternalPeekDefines: IJclStrMap; -begin - Result := PeekStateItem.DefinedKeywords; -end; - -function TPppState.InternalPeekExcludedFiles: IJclStrList; -begin - Result := PeekStateItem.ExcludedFiles; -end; - -function TPppState.InternalPeekMacros: IJclStrIntfMap; -begin - Result := PeekStateItem.Macros; -end; - -function TPppState.InternalPeekSearchPath: IJclStrList; -begin - Result := PeekStateItem.SearchPath; -end; - -function TPppState.InternalPeekTriState: TTriState; -begin - Result := PeekStateItem.TriState; -end; - -procedure TPppState.InternalPushState(FromStateItem, ToStateItem: TPppStateItem); -begin - if Assigned(FromStateItem) then - begin - // clone - ToStateItem.DefinedKeywords := (FromStateItem.DefinedKeywords as IJclIntfCloneable).IntfClone as IJclStrMap; - ToStateItem.ExcludedFiles := (FromStateItem.ExcludedFiles as IJclIntfCloneable).IntfClone as IJclStrList; - ToStateItem.Macros := (FromStateItem.Macros as IJclIntfCloneable).IntfClone as IJclStrIntfMap; - ToStateItem.SearchPath := (FromStateItem.SearchPath as IJclIntfCloneable).IntfClone as IJclStrList; - ToStateItem.TriState := FromStateItem.TriState; - end - else - begin - // create the first item - ToStateItem.DefinedKeywords := TJclStrHashMap.Create(16, False); - ToStateItem.ExcludedFiles := TJclStrArrayList.Create(16); - ToStateItem.Macros := TJclStrIntfHashMap.Create(16); - ToStateItem.SearchPath := TJclStrArrayList.Create(16); - ToStateItem.TriState := ttDefined; - end; -end; - -procedure TPppState.InternalSetTriState(Value: TTriState); -var - APppStateItem: TPppStateItem; -begin - APppStateItem := PeekStateItem; - if APppStateItem.TriState <> ttUndef then - APppStateItem.TriState := Value; -end; - -function TPppState.IsFileExcluded(const AName: string): Boolean; -var - AExcludedFiles: IJclStrList; - AFileNames: IJclStrIterator; -begin - AExcludedFiles := InternalPeekExcludedFiles; - AFileNames := AExcludedFiles.First; - Result := False; - while AFileNames.HasNext do - begin - if JclStrings.StrSame(AFileNames.Next, AName) then - begin - Result := True; - Break; - end; - end; -end; - -function TPppState.PeekStateItem: TPppStateItem; -begin - if FStateStack.Empty then - raise EPppState.Create('Internal error: PPP State stack is empty'); - Result := FStateStack.Peek as TPppStateItem; -end; - -procedure TPppState.PopState; -begin - if FStateStack.Size <= 1 then - raise EPppState.Create('Internal error: PPP State stack underflow'); - FStateStack.Pop.Free; -end; - -procedure TPppState.PushState; -var - FromStateItem, ToStateItem: TPppStateItem; -begin - FromStateItem := PeekStateItem; - ToStateItem := StateItemClass.Create; - InternalPushState(FromStateItem, ToStateItem); - FStateStack.Push(ToStateItem); -end; - -procedure TPppState.SetOptions(AOptions: TPppOptions); -begin - FOptions := AOptions; -end; - -procedure TPppState.SetBoolValue(const Name: string; Value: Boolean); -var - VariantValue: Variant; -begin - VariantValue := Value; - SetPropValue(Self, Name, VariantValue); -end; - -procedure TPppState.SetDefine(const ASymbol: string; - const Value: TTriState); -var - ADefines: IJclStrMap; - ASymbolNames: IJclStrIterator; - PI: PPropInfo; -b... [truncated message content] |
From: <jfu...@us...> - 2010-12-29 20:12:58
|
Revision: 3452 http://jcl.svn.sourceforge.net/jcl/?rev=3452&view=rev Author: jfudickar Date: 2010-12-29 20:12:51 +0000 (Wed, 29 Dec 2010) Log Message: ----------- TJclFormatSettings to prevent {$IFDEF RTL220_UP}FormatSettings.{$ENDIF} - Switched to {$IFDEF SUPPORTS_INLINE} Modified Paths: -------------- trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2010-12-29 12:19:53 UTC (rev 3451) +++ trunk/jcl/source/common/JclSysUtils.pas 2010-12-29 20:12:51 UTC (rev 3452) @@ -663,46 +663,46 @@ type TJclFormatSettings = class private - function GetCurrencyDecimals: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetCurrencyFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetCurrencyString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetDateSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetDayNamesHighIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetDayNamesLowIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetDecimalSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetListSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetLongDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetLongDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetLongMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetLongTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetMonthNamesHighIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetMonthNamesLowIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetNegCurrFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetThousandSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetTimeAMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetTimePMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetTimeSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetTwoDigitYearCenturyWindow: Word; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetCurrencyDecimals(AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetCurrencyFormat(const AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetCurrencyString(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetDateSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetDecimalSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetListSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetLongDateFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetLongTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetNegCurrFormat(const AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetShortDateFormat(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetShortTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetThousandSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetTimeAMString(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetTimePMString(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetTimeSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetTwoDigitYearCenturyWindow(const AValue: Word); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetCurrencyDecimals: Byte; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetCurrencyFormat: Byte; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetCurrencyString: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetDateSeparator: Char; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetDayNamesHighIndex: Integer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetDayNamesLowIndex: Integer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetDecimalSeparator: Char; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetListSeparator: Char; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetLongDateFormat: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetLongDayNames(AIndex: Integer): string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetLongMonthNames(AIndex: Integer): string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetLongTimeFormat: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetMonthNamesHighIndex: Integer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetMonthNamesLowIndex: Integer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetNegCurrFormat: Byte; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetShortDateFormat: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetShortDayNames(AIndex: Integer): string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetShortMonthNames(AIndex: Integer): string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetShortTimeFormat: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetThousandSeparator: Char; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetTimeAMString: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetTimePMString: string; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetTimeSeparator: Char; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetTwoDigitYearCenturyWindow: Word; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetCurrencyDecimals(AValue: Byte); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetCurrencyFormat(const AValue: Byte); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetCurrencyString(AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetDateSeparator(const AValue: Char); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetDecimalSeparator(AValue: Char); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetListSeparator(const AValue: Char); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetLongDateFormat(const AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetLongTimeFormat(const AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetNegCurrFormat(const AValue: Byte); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetShortDateFormat(AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetShortTimeFormat(const AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetThousandSeparator(AValue: Char); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetTimeAMString(const AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetTimePMString(const AValue: string); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetTimeSeparator(const AValue: Char); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + procedure SetTwoDigitYearCenturyWindow(const AValue: Word); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} public property CurrencyDecimals: Byte read GetCurrencyDecimals write SetCurrencyDecimals; property CurrencyFormat: Byte read GetCurrencyFormat write SetCurrencyFormat; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-12-29 12:20:00
|
Revision: 3451 http://jcl.svn.sourceforge.net/jcl/?rev=3451&view=rev Author: jfudickar Date: 2010-12-29 12:19:53 +0000 (Wed, 29 Dec 2010) Log Message: ----------- TJclFormatSettings to prevent {$IFDEF RTL220_UP}FormatSettings.{$ENDIF} - Updated Modified Paths: -------------- trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2010-12-29 11:24:04 UTC (rev 3450) +++ trunk/jcl/source/common/JclSysUtils.pas 2010-12-29 12:19:53 UTC (rev 3451) @@ -663,55 +663,70 @@ type TJclFormatSettings = class private - function GetLongDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetLongMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - function GetShortMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetCurrencyDecimals: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetCurrencyFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetCurrencyString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetDateSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetDayNamesHighIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetDayNamesLowIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetDecimalSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetListSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetLongDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetLongDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetLongMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetLongTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetMonthNamesHighIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetMonthNamesLowIndex: Integer; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetNegCurrFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetShortDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetShortTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetThousandSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetTimeAMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetTimePMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetTimeSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} function GetTwoDigitYearCenturyWindow: Word; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetThousandSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetDecimalSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetCurrencyDecimals(AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetCurrencyFormat(const AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetCurrencyString(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetDateSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetDecimalSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetListSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetLongDateFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetLongTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetNegCurrFormat(const AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetShortDateFormat(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} procedure SetShortTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} - procedure SetTwoDigitYearCenturyWindow(const AValue: Word); + procedure SetThousandSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetTimeAMString(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetTimePMString(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetTimeSeparator(const AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetTwoDigitYearCenturyWindow(const AValue: Word); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} public - property CurrencyFormat: Byte read GetCurrencyFormat; - property NegCurrFormat: Byte read GetNegCurrFormat; - property ThousandSeparator: Char read GetThousandSeparator write SetThousandSeparator; - property DecimalSeparator: Char read GetDecimalSeparator write SetDecimalSeparator; property CurrencyDecimals: Byte read GetCurrencyDecimals write SetCurrencyDecimals; - property DateSeparator: Char read GetDateSeparator; - property TimeSeparator: Char read GetTimeSeparator; - property ListSeparator: Char read GetListSeparator; + property CurrencyFormat: Byte read GetCurrencyFormat write SetCurrencyFormat; property CurrencyString: string read GetCurrencyString write SetCurrencyString; - property ShortDateFormat: string read GetShortDateFormat write SetShortDateFormat; + property DateSeparator: Char read GetDateSeparator write SetDateSeparator; + property DayNamesHighIndex: Integer read GetDayNamesHighIndex; + property DayNamesLowIndex: Integer read GetDayNamesLowIndex; + property DecimalSeparator: Char read GetDecimalSeparator write SetDecimalSeparator; + property ListSeparator: Char read GetListSeparator write SetListSeparator; property LongDateFormat: string read GetLongDateFormat write SetLongDateFormat; - property TimeAMString: string read GetTimeAMString; - property TimePMString: string read GetTimePMString; - property ShortTimeFormat: string read GetShortTimeFormat write SetShortTimeFormat; + property LongDayNames[AIndex: Integer]: string read GetLongDayNames; + property LongMonthNames[AIndex: Integer]: string read GetLongMonthNames; property LongTimeFormat: string read GetLongTimeFormat write SetLongTimeFormat; + property MonthNamesHighIndex: Integer read GetMonthNamesHighIndex; + property MonthNamesLowIndex: Integer read GetMonthNamesLowIndex; + property NegCurrFormat: Byte read GetNegCurrFormat write SetNegCurrFormat; + property ShortDateFormat: string read GetShortDateFormat write SetShortDateFormat; + property ShortDayNames[AIndex: Integer]: string read GetShortDayNames; property ShortMonthNames[AIndex: Integer]: string read GetShortMonthNames; - property LongMonthNames[AIndex: Integer]: string read GetLongMonthNames; - property ShortDayNames[AIndex: Integer]: string read GetShortDayNames; - property LongDayNames[AIndex: Integer]: string read GetLongDayNames; + property ShortTimeFormat: string read GetShortTimeFormat write SetShortTimeFormat; + property ThousandSeparator: Char read GetThousandSeparator write SetThousandSeparator; + property TimeAMString: string read GetTimeAMString write SetTimeAMString; + property TimePMString: string read GetTimePMString write SetTimePMString; + property TimeSeparator: Char read GetTimeSeparator write SetTimeSeparator; property TwoDigitYearCenturyWindow: Word read GetTwoDigitYearCenturyWindow write SetTwoDigitYearCenturyWindow; end; @@ -3553,104 +3568,104 @@ SimpleLog.OpenLog; end; -{ TJclFormatSettings } - -function TJclFormatSettings.GetLongDayNames(AIndex: Integer): string; +function TJclFormatSettings.GetCurrencyDecimals: Byte; begin {$IFDEF RTL220_UP} - Result := FormatSettings.LongDayNames[AIndex]; + Result := FormatSettings.CurrencyDecimals; {$ELSE} - Result := SysUtils.LongDayNames[AIndex]; + Result := SysUtils.CurrencyDecimals; {$ENDIF} end; -function TJclFormatSettings.GetLongMonthNames(AIndex: Integer): string; +function TJclFormatSettings.GetCurrencyFormat: Byte; begin {$IFDEF RTL220_UP} - Result := FormatSettings.LongMonthNames[AIndex]; + Result := FormatSettings.CurrencyFormat; {$ELSE} - Result := SysUtils.LongMonthNames[AIndex]; + Result := SysUtils.CurrencyFormat; {$ENDIF} end; -function TJclFormatSettings.GetShortDayNames(AIndex: Integer): string; +function TJclFormatSettings.GetCurrencyString: string; begin {$IFDEF RTL220_UP} - Result := FormatSettings.ShortDayNames[AIndex]; + Result := FormatSettings.CurrencyString; {$ELSE} - Result := SysUtils.ShortDayNames[AIndex]; + Result := SysUtils.CurrencyString; {$ENDIF} end; -function TJclFormatSettings.GetShortMonthNames(AIndex: Integer): string; +function TJclFormatSettings.GetDateSeparator: Char; begin {$IFDEF RTL220_UP} - Result := FormatSettings.ShortMonthNames[AIndex]; + Result := FormatSettings.DateSeparator; {$ELSE} - Result := SysUtils.ShortMonthNames[AIndex]; + Result := SysUtils.DateSeparator; {$ENDIF} end; -function TJclFormatSettings.GetCurrencyDecimals: Byte; +function TJclFormatSettings.GetDayNamesHighIndex: Integer; begin {$IFDEF RTL220_UP} - Result := FormatSettings.CurrencyDecimals; + Result := High(FormatSettings.LongDayNames); {$ELSE} - Result := SysUtils.CurrencyDecimals; + Result := High(SysUtils.LongDayNames); {$ENDIF} end; -function TJclFormatSettings.GetCurrencyFormat: Byte; +function TJclFormatSettings.GetDayNamesLowIndex: Integer; begin {$IFDEF RTL220_UP} - Result := FormatSettings.CurrencyFormat; + Result := Low(FormatSettings.LongDayNames); {$ELSE} - Result := SysUtils.CurrencyFormat; + Result := Low(SysUtils.LongDayNames); {$ENDIF} end; -function TJclFormatSettings.GetCurrencyString: string; +function TJclFormatSettings.GetDecimalSeparator: Char; begin {$IFDEF RTL220_UP} - Result := FormatSettings.CurrencyString; + Result := FormatSettings.DecimalSeparator; {$ELSE} - Result := SysUtils.CurrencyString; + Result := SysUtils.DecimalSeparator; {$ENDIF} end; -function TJclFormatSettings.GetDateSeparator: Char; +function TJclFormatSettings.GetListSeparator: Char; begin {$IFDEF RTL220_UP} - Result := FormatSettings.DateSeparator; + Result := FormatSettings.ListSeparator; {$ELSE} - Result := SysUtils.DateSeparator; + Result := SysUtils.ListSeparator; {$ENDIF} end; -function TJclFormatSettings.GetDecimalSeparator: Char; +function TJclFormatSettings.GetLongDateFormat: string; begin {$IFDEF RTL220_UP} - Result := FormatSettings.DecimalSeparator; + Result := FormatSettings.LongDateFormat; {$ELSE} - Result := SysUtils.DecimalSeparator; + Result := SysUtils.LongDateFormat; {$ENDIF} end; -function TJclFormatSettings.GetListSeparator: Char; +{ TJclFormatSettings } + +function TJclFormatSettings.GetLongDayNames(AIndex: Integer): string; begin {$IFDEF RTL220_UP} - Result := FormatSettings.ListSeparator; + Result := FormatSettings.LongDayNames[AIndex]; {$ELSE} - Result := SysUtils.ListSeparator; + Result := SysUtils.LongDayNames[AIndex]; {$ENDIF} end; -function TJclFormatSettings.GetLongDateFormat: string; +function TJclFormatSettings.GetLongMonthNames(AIndex: Integer): string; begin {$IFDEF RTL220_UP} - Result := FormatSettings.LongDateFormat; + Result := FormatSettings.LongMonthNames[AIndex]; {$ELSE} - Result := SysUtils.LongDateFormat; + Result := SysUtils.LongMonthNames[AIndex]; {$ENDIF} end; @@ -3663,6 +3678,24 @@ {$ENDIF} end; +function TJclFormatSettings.GetMonthNamesHighIndex: Integer; +begin +{$IFDEF RTL220_UP} + Result := High(FormatSettings.LongMonthNames); +{$ELSE} + Result := High(SysUtils.LongMonthNames); +{$ENDIF} +end; + +function TJclFormatSettings.GetMonthNamesLowIndex: Integer; +begin +{$IFDEF RTL220_UP} + Result := Low(FormatSettings.LongMonthNames); +{$ELSE} + Result := Low(SysUtils.LongMonthNames); +{$ENDIF} +end; + function TJclFormatSettings.GetNegCurrFormat: Byte; begin {$IFDEF RTL220_UP} @@ -3681,6 +3714,24 @@ {$ENDIF} end; +function TJclFormatSettings.GetShortDayNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortDayNames[AIndex]; +{$ELSE} + Result := SysUtils.ShortDayNames[AIndex]; +{$ENDIF} +end; + +function TJclFormatSettings.GetShortMonthNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortMonthNames[AIndex]; +{$ELSE} + Result := SysUtils.ShortMonthNames[AIndex]; +{$ENDIF} +end; + function TJclFormatSettings.GetShortTimeFormat: string; begin {$IFDEF RTL220_UP} @@ -3735,42 +3786,60 @@ {$ENDIF} end; -procedure TJclFormatSettings.SetThousandSeparator(AValue: Char); +procedure TJclFormatSettings.SetCurrencyDecimals(AValue: Byte); begin {$IFDEF RTL220_UP} - FormatSettings.TimeSeparator := AValue; + FormatSettings.CurrencyDecimals := AValue; {$ELSE} - SysUtils.TimeSeparator := AValue; + SysUtils.CurrencyDecimals := AValue; {$ENDIF} end; -procedure TJclFormatSettings.SetDecimalSeparator(AValue: Char); +procedure TJclFormatSettings.SetCurrencyFormat(const AValue: Byte); begin {$IFDEF RTL220_UP} - FormatSettings.DecimalSeparator := AValue; + FormatSettings.CurrencyFormat := AValue; {$ELSE} - SysUtils.DecimalSeparator := AValue; + SysUtils.CurrencyFormat := AValue; {$ENDIF} end; -procedure TJclFormatSettings.SetCurrencyDecimals(AValue: Byte); +procedure TJclFormatSettings.SetCurrencyString(AValue: string); begin {$IFDEF RTL220_UP} - FormatSettings.CurrencyDecimals := AValue; + FormatSettings.CurrencyString := AValue; {$ELSE} - SysUtils.CurrencyDecimals := AValue; + SysUtils.CurrencyString := AValue; {$ENDIF} end; -procedure TJclFormatSettings.SetCurrencyString(AValue: string); +procedure TJclFormatSettings.SetDateSeparator(const AValue: Char); begin {$IFDEF RTL220_UP} - FormatSettings.CurrencyString := AValue; + FormatSettings.DateSeparator := AValue; {$ELSE} - SysUtils.CurrencyString := AValue; + SysUtils.DateSeparator := AValue; {$ENDIF} end; +procedure TJclFormatSettings.SetDecimalSeparator(AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.DecimalSeparator := AValue; +{$ELSE} + SysUtils.DecimalSeparator := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetListSeparator(const AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.ListSeparator := AValue; +{$ELSE} + SysUtils.ListSeparator := AValue; +{$ENDIF} +end; + procedure TJclFormatSettings.SetLongDateFormat(const AValue: string); begin {$IFDEF RTL220_UP} @@ -3789,6 +3858,15 @@ {$ENDIF} end; +procedure TJclFormatSettings.SetNegCurrFormat(const AValue: Byte); +begin +{$IFDEF RTL220_UP} + FormatSettings.NegCurrFormat := AValue; +{$ELSE} + SysUtils.NegCurrFormat := AValue; +{$ENDIF} +end; + procedure TJclFormatSettings.SetShortDateFormat(AValue: string); begin {$IFDEF RTL220_UP} @@ -3807,6 +3885,42 @@ {$ENDIF} end; +procedure TJclFormatSettings.SetThousandSeparator(AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.TimeSeparator := AValue; +{$ELSE} + SysUtils.TimeSeparator := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetTimeAMString(const AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.TimeAMString := AValue; +{$ELSE} + SysUtils.TimeAMString := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetTimePMString(const AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.TimePMString := AValue; +{$ELSE} + SysUtils.TimePMString := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetTimeSeparator(const AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.TimeSeparator := AValue; +{$ELSE} + SysUtils.TimeSeparator := AValue; +{$ENDIF} +end; + procedure TJclFormatSettings.SetTwoDigitYearCenturyWindow(const AValue: Word); begin {$IFDEF RTL220_UP} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-12-29 11:24:10
|
Revision: 3450 http://jcl.svn.sourceforge.net/jcl/?rev=3450&view=rev Author: jfudickar Date: 2010-12-29 11:24:04 +0000 (Wed, 29 Dec 2010) Log Message: ----------- TJclFormatSettings to prevent {$IFDEF RTL220_UP}FormatSettings.{$ENDIF} - Fixed Modified Paths: -------------- trunk/jcl/source/common/JclAnsiStrings.pas trunk/jcl/source/common/JclStrings.pas Modified: trunk/jcl/source/common/JclAnsiStrings.pas =================================================================== --- trunk/jcl/source/common/JclAnsiStrings.pas 2010-12-29 11:17:39 UTC (rev 3449) +++ trunk/jcl/source/common/JclAnsiStrings.pas 2010-12-29 11:24:04 UTC (rev 3450) @@ -527,7 +527,7 @@ {$IFDEF SUPPORTS_UNICODE} RtlConsts, {$ENDIF SUPPORTS_UNICODE} - JclLogic, JclResources, JclStreams, JclSynch; + JclLogic, JclResources, JclStreams, JclSynch, JclSysUtils; //=== Internal =============================================================== Modified: trunk/jcl/source/common/JclStrings.pas =================================================================== --- trunk/jcl/source/common/JclStrings.pas 2010-12-29 11:17:39 UTC (rev 3449) +++ trunk/jcl/source/common/JclStrings.pas 2010-12-29 11:24:04 UTC (rev 3450) @@ -615,7 +615,7 @@ {$IFDEF SUPPORTS_UNICODE} StrUtils, {$ENDIF SUPPORTS_UNICODE} - JclLogic, JclResources, JclStreams, JclSynch; + JclLogic, JclResources, JclStreams, JclSynch, JclSysUtils; //=== Internal =============================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-12-29 11:17:45
|
Revision: 3449 http://jcl.svn.sourceforge.net/jcl/?rev=3449&view=rev Author: jfudickar Date: 2010-12-29 11:17:39 +0000 (Wed, 29 Dec 2010) Log Message: ----------- TJclFormatSettings to prevent {$IFDEF RTL220_UP}FormatSettings.{$ENDIF} Modified Paths: -------------- trunk/jcl/source/common/JclAnsiStrings.pas trunk/jcl/source/common/JclExprEval.pas trunk/jcl/source/common/JclStrings.pas trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclAnsiStrings.pas =================================================================== --- trunk/jcl/source/common/JclAnsiStrings.pas 2010-12-28 10:51:45 UTC (rev 3448) +++ trunk/jcl/source/common/JclAnsiStrings.pas 2010-12-29 11:17:39 UTC (rev 3449) @@ -2995,13 +2995,12 @@ function CharIsNumberChar(const C: AnsiChar): Boolean; begin Result := ((AnsiCharTypes[C] and C1_DIGIT) <> 0) or (C = AnsiSignMinus) or (C = AnsiSignPlus) or - (Char(C) = {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator); + (Char(C) = JclFormatSettings.DecimalSeparator); end; function CharIsNumber(const C: AnsiChar): Boolean; begin - Result := ((AnsiCharTypes[C] and C1_DIGIT) <> 0) or - (Char(C) = {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator); + Result := ((AnsiCharTypes[C] and C1_DIGIT) <> 0) or (Char(C) = JclFormatSettings.DecimalSeparator); end; function CharIsPrintable(const C: AnsiChar): Boolean; @@ -3741,8 +3740,8 @@ DecSep: AnsiChar; ThouSep: AnsiChar; begin - DecSep := AnsiChar({$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator); - ThouSep := AnsiChar({$IFDEF RTL220_UP}FormatSettings.{$ENDIF}ThousandSeparator); + DecSep := AnsiChar(JclFormatSettings.DecimalSeparator); + ThouSep := AnsiChar(JclFormatSettings.ThousandSeparator); Temp := S; SwapSeparators := False; Modified: trunk/jcl/source/common/JclExprEval.pas =================================================================== --- trunk/jcl/source/common/JclExprEval.pas 2010-12-28 10:51:45 UTC (rev 3448) +++ trunk/jcl/source/common/JclExprEval.pas 2010-12-29 11:17:39 UTC (rev 3449) @@ -1636,7 +1636,7 @@ Inc(cp); { check for and read in fraction part of mantissa } - if (cp^ = '.') or (cp^ = {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator) then + if (cp^ = '.') or (cp^ = JclFormatSettings.DecimalSeparator) then begin Inc(cp); while CharIsDigit(cp^) do Modified: trunk/jcl/source/common/JclStrings.pas =================================================================== --- trunk/jcl/source/common/JclStrings.pas 2010-12-28 10:51:45 UTC (rev 3448) +++ trunk/jcl/source/common/JclStrings.pas 2010-12-29 11:17:39 UTC (rev 3449) @@ -2784,14 +2784,12 @@ function CharIsNumberChar(const C: Char): Boolean; begin - Result := CharIsDigit(C) or (C = '+') or (C = '-') or - (C = {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator); + Result := CharIsDigit(C) or (C = '+') or (C = '-') or (C = JclFormatSettings.DecimalSeparator); end; function CharIsNumber(const C: Char): Boolean; begin - Result := CharIsDigit(C) or - (C = {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator); + Result := CharIsDigit(C) or (C = JclFormatSettings.DecimalSeparator); end; function CharIsPrintable(const C: Char): Boolean; Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2010-12-28 10:51:45 UTC (rev 3448) +++ trunk/jcl/source/common/JclSysUtils.pas 2010-12-29 11:17:39 UTC (rev 3449) @@ -22,6 +22,7 @@ { Bernhard Berger } { Heri Bender } { Jean-Fabien Connault (cycocrew) } +{ Jens Fudickar } { Jeroen Speldekamp } { Marcel van Brakel } { Peter Friese } @@ -659,6 +660,64 @@ property LogOpen: Boolean read GetLogOpen; end; +type + TJclFormatSettings = class + private + function GetLongDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetLongMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortDayNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortMonthNames(AIndex: Integer): string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetCurrencyDecimals: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetCurrencyFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetCurrencyString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetDateSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetDecimalSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetListSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetLongDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetLongTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetNegCurrFormat: Byte; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortDateFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetShortTimeFormat: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetThousandSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetTimeAMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetTimePMString: string; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetTimeSeparator: Char; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + function GetTwoDigitYearCenturyWindow: Word; {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetThousandSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetDecimalSeparator(AValue: Char); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetCurrencyDecimals(AValue: Byte); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetCurrencyString(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetLongDateFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetLongTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetShortDateFormat(AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetShortTimeFormat(const AValue: string); {$IFDEF DELPHI2005_UP} inline; {$ENDIF} + procedure SetTwoDigitYearCenturyWindow(const AValue: Word); + public + property CurrencyFormat: Byte read GetCurrencyFormat; + property NegCurrFormat: Byte read GetNegCurrFormat; + property ThousandSeparator: Char read GetThousandSeparator write SetThousandSeparator; + property DecimalSeparator: Char read GetDecimalSeparator write SetDecimalSeparator; + property CurrencyDecimals: Byte read GetCurrencyDecimals write SetCurrencyDecimals; + property DateSeparator: Char read GetDateSeparator; + property TimeSeparator: Char read GetTimeSeparator; + property ListSeparator: Char read GetListSeparator; + property CurrencyString: string read GetCurrencyString write SetCurrencyString; + property ShortDateFormat: string read GetShortDateFormat write SetShortDateFormat; + property LongDateFormat: string read GetLongDateFormat write SetLongDateFormat; + property TimeAMString: string read GetTimeAMString; + property TimePMString: string read GetTimePMString; + property ShortTimeFormat: string read GetShortTimeFormat write SetShortTimeFormat; + property LongTimeFormat: string read GetLongTimeFormat write SetLongTimeFormat; + property ShortMonthNames[AIndex: Integer]: string read GetShortMonthNames; + property LongMonthNames[AIndex: Integer]: string read GetLongMonthNames; + property ShortDayNames[AIndex: Integer]: string read GetShortDayNames; + property LongDayNames[AIndex: Integer]: string read GetLongDayNames; + property TwoDigitYearCenturyWindow: Word read GetTwoDigitYearCenturyWindow write SetTwoDigitYearCenturyWindow; + end; + +var + JclFormatSettings: TJclFormatSettings; + // Procedure to initialize the SimpleLog Variable procedure InitSimpleLog(const ALogFileName: string = ''; AOpenLog: Boolean = true); @@ -2172,8 +2231,8 @@ FSignChars[True] := '+'; FPaddingChar := ' '; FMultiplier := '\xD7'; - FFractionalPartSeparator := {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}DecimalSeparator; - FDigitBlockSeparator := {$IFDEF RTL220_UP}FormatSettings.{$ENDIF}ThousandSeparator; + FFractionalPartSeparator := JclFormatSettings.DecimalSeparator; + FDigitBlockSeparator := JclFormatSettings.ThousandSeparator; end; procedure TJclNumericFormat.InvalidDigit(Digit: Char); @@ -3494,6 +3553,269 @@ SimpleLog.OpenLog; end; +{ TJclFormatSettings } + +function TJclFormatSettings.GetLongDayNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.LongDayNames[AIndex]; +{$ELSE} + Result := SysUtils.LongDayNames[AIndex]; +{$ENDIF} +end; + +function TJclFormatSettings.GetLongMonthNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.LongMonthNames[AIndex]; +{$ELSE} + Result := SysUtils.LongMonthNames[AIndex]; +{$ENDIF} +end; + +function TJclFormatSettings.GetShortDayNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortDayNames[AIndex]; +{$ELSE} + Result := SysUtils.ShortDayNames[AIndex]; +{$ENDIF} +end; + +function TJclFormatSettings.GetShortMonthNames(AIndex: Integer): string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortMonthNames[AIndex]; +{$ELSE} + Result := SysUtils.ShortMonthNames[AIndex]; +{$ENDIF} +end; + +function TJclFormatSettings.GetCurrencyDecimals: Byte; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.CurrencyDecimals; +{$ELSE} + Result := SysUtils.CurrencyDecimals; +{$ENDIF} +end; + +function TJclFormatSettings.GetCurrencyFormat: Byte; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.CurrencyFormat; +{$ELSE} + Result := SysUtils.CurrencyFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetCurrencyString: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.CurrencyString; +{$ELSE} + Result := SysUtils.CurrencyString; +{$ENDIF} +end; + +function TJclFormatSettings.GetDateSeparator: Char; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.DateSeparator; +{$ELSE} + Result := SysUtils.DateSeparator; +{$ENDIF} +end; + +function TJclFormatSettings.GetDecimalSeparator: Char; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.DecimalSeparator; +{$ELSE} + Result := SysUtils.DecimalSeparator; +{$ENDIF} +end; + +function TJclFormatSettings.GetListSeparator: Char; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ListSeparator; +{$ELSE} + Result := SysUtils.ListSeparator; +{$ENDIF} +end; + +function TJclFormatSettings.GetLongDateFormat: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.LongDateFormat; +{$ELSE} + Result := SysUtils.LongDateFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetLongTimeFormat: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.LongTimeFormat; +{$ELSE} + Result := SysUtils.LongTimeFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetNegCurrFormat: Byte; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.NegCurrFormat; +{$ELSE} + Result := SysUtils.NegCurrFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetShortDateFormat: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortDateFormat; +{$ELSE} + Result := SysUtils.ShortDateFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetShortTimeFormat: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ShortTimeFormat; +{$ELSE} + Result := SysUtils.ShortTimeFormat; +{$ENDIF} +end; + +function TJclFormatSettings.GetThousandSeparator: Char; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.ThousandSeparator; +{$ELSE} + Result := SysUtils.ThousandSeparator; +{$ENDIF} +end; + +function TJclFormatSettings.GetTimeAMString: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.TimeAMString; +{$ELSE} + Result := SysUtils.TimeAMString; +{$ENDIF} +end; + +function TJclFormatSettings.GetTimePMString: string; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.TimePMString; +{$ELSE} + Result := SysUtils.TimePMString; +{$ENDIF} +end; + +function TJclFormatSettings.GetTimeSeparator: Char; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.TimeSeparator; +{$ELSE} + Result := SysUtils.TimeSeparator; +{$ENDIF} +end; + +function TJclFormatSettings.GetTwoDigitYearCenturyWindow: Word; +begin +{$IFDEF RTL220_UP} + Result := FormatSettings.TwoDigitYearCenturyWindow; +{$ELSE} + Result := SysUtils.TwoDigitYearCenturyWindow; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetThousandSeparator(AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.TimeSeparator := AValue; +{$ELSE} + SysUtils.TimeSeparator := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetDecimalSeparator(AValue: Char); +begin +{$IFDEF RTL220_UP} + FormatSettings.DecimalSeparator := AValue; +{$ELSE} + SysUtils.DecimalSeparator := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetCurrencyDecimals(AValue: Byte); +begin +{$IFDEF RTL220_UP} + FormatSettings.CurrencyDecimals := AValue; +{$ELSE} + SysUtils.CurrencyDecimals := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetCurrencyString(AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.CurrencyString := AValue; +{$ELSE} + SysUtils.CurrencyString := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetLongDateFormat(const AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.LongDateFormat := AValue; +{$ELSE} + SysUtils.LongDateFormat := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetLongTimeFormat(const AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.LongTimeFormat := AValue; +{$ELSE} + SysUtils.LongTimeFormat := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetShortDateFormat(AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.ShortDateFormat := AValue; +{$ELSE} + SysUtils.ShortDateFormat := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetShortTimeFormat(const AValue: string); +begin +{$IFDEF RTL220_UP} + FormatSettings.ShortTimeFormat := AValue; +{$ELSE} + SysUtils.ShortTimeFormat := AValue; +{$ENDIF} +end; + +procedure TJclFormatSettings.SetTwoDigitYearCenturyWindow(const AValue: Word); +begin +{$IFDEF RTL220_UP} + FormatSettings.TwoDigitYearCenturyWindow:= AValue; +{$ELSE} + SysUtils.TwoDigitYearCenturyWindow:= AValue; +{$ENDIF} +end; + initialization SimpleLog := nil; {$IFDEF UNITVERSIONING} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-12-28 10:51:51
|
Revision: 3448 http://jcl.svn.sourceforge.net/jcl/?rev=3448&view=rev Author: ahuser Date: 2010-12-28 10:51:45 +0000 (Tue, 28 Dec 2010) Log Message: ----------- Remove unused constants Modified Paths: -------------- trunk/jcl/source/common/JclPreProcessorParser.pas Modified: trunk/jcl/source/common/JclPreProcessorParser.pas =================================================================== --- trunk/jcl/source/common/JclPreProcessorParser.pas 2010-12-23 13:00:37 UTC (rev 3447) +++ trunk/jcl/source/common/JclPreProcessorParser.pas 2010-12-28 10:51:45 UTC (rev 3448) @@ -119,29 +119,12 @@ uses JclStrings, JclStreams, JclSysUtils; -{$IFDEF MSWINDOWS} -const - LineBreak = #13#10; - -type - T2Char = array[0..1] of Char; - PLineBreak = ^T2Char; -{$ENDIF MSWINDOWS} - -{$IFDEF UNIX} -const - LineBreak = #10; - -type - PLineBreak = PChar; -{$ENDIF UNIX} - function AllWhiteSpace(P: PChar; KeepTabAndSpaces: Boolean): Boolean; var I: Integer; begin Result := True; - for I := 1 to Length(P) do + for I := 1 to StrLen(P) do case P^ of NativeTab, NativeSpace: if KeepTabAndSpaces then @@ -165,18 +148,20 @@ I, J: Integer; Comment: Boolean; ParenthesisCount: Integer; + MacroTextLen: Integer; begin + MacroTextLen := Length(MacroText); I := 1; - while (I <= Length(MacroText)) and not CharIsSpace(MacroText[I]) do + while (I <= MacroTextLen) and not CharIsSpace(MacroText[I]) do Inc(I); - while (I <= Length(MacroText)) and CharIsSpace(MacroText[I]) do + while (I <= MacroTextLen) and CharIsSpace(MacroText[I]) do Inc(I); J := I; - while (J <= Length(MacroText)) and CharIsValidIdentifierLetter(MacroText[J]) do + while (J <= MacroTextLen) and CharIsValidIdentifierLetter(MacroText[J]) do Inc(J); MacroName := Copy(MacroText, I, J - I); - if J <= Length(MacroText) then + if J <= MacroTextLen then begin SetLength(ParamNames, 0); if MacroText[J] = '(' then @@ -185,16 +170,16 @@ if ParamDeclaration then begin repeat - while (J <= Length(MacroText)) and CharIsSpace(MacroText[J]) do + while (J <= MacroTextLen) and CharIsSpace(MacroText[J]) do Inc(J); I := J; - while (I <= Length(MacroText)) and CharIsValidIdentifierLetter(MacroText[I]) do + while (I <= MacroTextLen) and CharIsValidIdentifierLetter(MacroText[I]) do Inc(I); SetLength(ParamNames, Length(ParamNames) + 1); ParamNames[High(ParamNames)] := Copy(MacroText, J, I - J); - while (I <= Length(MacroText)) and CharIsSpace(MacroText[I]) do + while (I <= MacroTextLen) and CharIsSpace(MacroText[I]) do Inc(I); - if (I <= Length(MacroText)) then + if (I <= MacroTextLen) then case MacroText[I] of ',': Inc(I); @@ -203,7 +188,7 @@ raise EPppParserError.CreateFmt('invalid parameter declaration in macro "%s"', [MacroText]); end; J := I; - until (J > Length(MacroText)) or (MacroText[J] = ')'); + until (J > MacroTextLen) or (MacroText[J] = ')'); end else begin @@ -212,7 +197,7 @@ Comment := False; ParenthesisCount := 0; - while I <= Length(MacroText) do + while I <= MacroTextLen do begin case MacroText[I] of NativeSingleQuote: @@ -228,7 +213,7 @@ Dec(ParenthesisCount); end; NativeBackslash: - if (not Comment) and (ParenthesisCount = 0) and (I < Length(MacroText)) and (MacroText[i + 1] = NativeComma) then + if (not Comment) and (ParenthesisCount = 0) and (I < MacroTextLen) and (MacroText[i + 1] = NativeComma) then Inc(I); NativeComma: if (not Comment) and (ParenthesisCount = 0) then @@ -239,17 +224,17 @@ SetLength(ParamNames, Length(ParamNames) + 1); ParamNames[High(ParamNames)] := Copy(MacroText, J, I - J); StrReplace(ParamNames[High(ParamNames)], '\,', ',', [rfReplaceAll]); - if (I < Length(MacroText)) and (MacroText[I] = ')') then + if (I < MacroTextLen) and (MacroText[I] = ')') then begin J := I; Break; end; - if (I < Length(MacroText)) and (MacroText[I] = ',') then + if (I < MacroTextLen) and (MacroText[I] = ',') then Inc(I); J := I; - until J > Length(MacroText); + until J > MacroTextLen; end; - if J <= Length(MacroText) then + if J <= MacroTextLen then begin if MacroText[J] = ')' then Inc(J) // skip ) @@ -259,7 +244,7 @@ end else begin - while (J <= Length(MacroText)) and CharIsSpace(MacroText[J]) do + while (J <= MacroTextLen) and CharIsSpace(MacroText[J]) do Inc(J); end; end; @@ -281,7 +266,7 @@ destructor TJppParser.Destroy; begin FLexer.Free; - inherited; + inherited Destroy; end; procedure TJppParser.AddResult(const S: string; FixIndent, ForceRecurseTest: Boolean); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-12-23 13:00:43
|
Revision: 3447 http://jcl.svn.sourceforge.net/jcl/?rev=3447&view=rev Author: outchy Date: 2010-12-23 13:00:37 +0000 (Thu, 23 Dec 2010) Log Message: ----------- typo in PInt64 help topic. Modified Paths: -------------- trunk/help/Base.dtx Modified: trunk/help/Base.dtx =================================================================== --- trunk/help/Base.dtx 2010-12-23 12:59:04 UTC (rev 3446) +++ trunk/help/Base.dtx 2010-12-23 13:00:37 UTC (rev 3447) @@ -966,9 +966,8 @@ Addr64ToAddr32@TJclAddr64 @@PInt64 -\ \ Summary -Type for pointers to signed 6'-bit integers +Type for pointers to signed 64-bit integers @@TDynWideCharArray \ \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-12-23 12:59:11
|
Revision: 3446 http://jcl.svn.sourceforge.net/jcl/?rev=3446&view=rev Author: outchy Date: 2010-12-23 12:59:04 +0000 (Thu, 23 Dec 2010) Log Message: ----------- The define-related installer options are loaded from jcl/source/include/jclXXX.inc if the file exists (thanks to JPP). Modified Paths: -------------- trunk/jcl/install/JclInstall.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2010-12-23 12:19:17 UTC (rev 3445) +++ trunk/jcl/install/JclInstall.pas 2010-12-23 12:59:04 UTC (rev 3446) @@ -123,6 +123,22 @@ joJCLHelpHxSPlugin, joJCLMakeDemos); +const + JclDefineNames: array [joJCLDefThreadSafe..joJCLDef7zLinkOnRequest] of string = + ( 'THREADSAFE', 'DROP_OBSOLETE_CODE', 'UNITVERSIONING', + 'MATH_SINGLE_PRECISION', 'MATH_DOUBLE_PRECISION', 'MATH_EXTENDED_PRECISION', + 'MATH_EXT_EXTREMEVALUES', 'HOOK_DLL_EXCEPTIONS', + 'DEBUG_NO_BINARY', 'DEBUG_NO_TD32', 'DEBUG_NO_MAP', 'DEBUG_NO_EXPORTS', + 'DEBUG_NO_SYMBOLS', 'PCRE_STATICLINK', + 'PCRE_LINKDLL', 'PCRE_LINKONREQUEST', 'BZIP2_STATICLINK', + 'BZIP2_LINKDLL', 'BZIP2_LINKONREQUEST', 'ZLIB_STATICLINK', + 'ZLIB_LINKDLL', 'ZLIB_LINKONREQUEST', 'UNICODE_RTL_DATABASE', 'UNICODE_SILENT_FAILURE', + 'UNICODE_RAW_DATA', 'UNICODE_ZLIB_DATA', 'UNICODE_BZIP2_DATA', + 'CONTAINER_ANSISTR', 'CONTAINER_WIDESTR', 'CONTAINER_UNICODESTR', + 'CONTAINER_NOSTR', {'7ZIP_STATICLINK',} '7ZIP_LINKDLL', + '7ZIP_LINKONREQUEST' ); + +type TJclDistribution = class; TJclInstallation = class @@ -132,6 +148,7 @@ FTarget: TJclBorRADToolInstallation; FTargetName: string; FTargetPlatform: TJclBorPlatform; + FIncludeFileName: string; FGUIPage: IJediInstallPage; FGUI: IJediInstallGUI; FGUIBPLPathIndex: Integer; @@ -186,6 +203,7 @@ property Distribution: TJclDistribution read FDistribution; property Target: TJclBorRADToolInstallation read FTarget; property TargetName: string read FTargetName; + property IncludeFileName: string read FIncludeFileName; property GUIPage: IJediInstallPage read FGUIPage; property GUI: IJediInstallGUI read FGUI; property TargetPlatform: TJclBorPlatform read FTargetPlatform; @@ -207,6 +225,7 @@ FLibReleaseDirMask: string; FLibDebugDirMask: string; FJclIncludeDir: string; + FJclIncludeTemplate: string; FJclSourcePath: string; FJclOldSourcePath: string; FJclExamplesDir: string; @@ -268,6 +287,7 @@ property LibReleaseDirMask: string read FLibReleaseDirMask; property LibDebugDirMask: string read FLibDebugDirMask; property JclIncludeDir: string read FJclIncludeDir; + property JclIncludeTemplate: string read FJclIncludeTemplate; property JclSourcePath: string read FJclSourcePath; property JclOldSourcePath: string read FJclOldSourcePath; property JclExamplesDir: string read FJclExamplesDir; @@ -310,6 +330,9 @@ {$ENDIF MSWINDOWS} JclFileUtils, JclStrings, JclCompilerUtils, + JclContainerIntf, + JclPreProcessorState, + JclPreProcessorParser, JediInstallResources, JclInstallResources; @@ -462,6 +485,9 @@ {$ENDIF UNIX} JclOldSrcPaths: array[0..2] of string = (JclOldIncludeDir, JclOldJppDir, JclOldJppDirTemplates); + JclIncludeTemplateFileName = 'jcl.template.inc'; + JclIncludeMask = 'jcl%s.inc'; + ExceptDlgPath = 'experts' + DirDelimiter + 'repository' + DirDelimiter + 'ExceptionDialog' + DirDelimiter + 'StandardDialogs' + DirDelimiter; ExceptDlgVclFileName = 'ExceptDlg.pas'; ExceptDlgVclSndFileName = 'ExceptDlgMail.pas'; @@ -559,6 +585,8 @@ FTargetPlatform := ATargetPlatform; FTargetName := Target.Name; + FIncludeFileName := PathAddSeparator(Distribution.JclIncludeDir) + Format(JclIncludeMask, [Target.IDEVersionNumberStr]); + // exclude C#Builder 1 and Delphi 8 targets FRunTimeInstallation := (Target.RadToolKind <> brBorlandDevStudio) or ((Target.VersionNumber >= 3) and (bpDelphi32 in Target.Personalities)); @@ -975,6 +1003,38 @@ end; end; + procedure LoadStaticValues(AConfiguration: IJediConfiguration); + var + IncludeContent: AnsiString; + DefineName: string; + JppState: TPppState; + JppParser: TJppParser; + Option: TInstallerOption; + begin + if FileExists(IncludeFileName) then + begin + IncludeContent := FileToString(IncludeFileName); + JppState := TPppState.Create; + try + JppState.Options := [poProcessDefines]; + JppParser := TJppParser.Create(string(IncludeContent), JppState); + try + JppParser.Parse; + finally + JppParser.Free; + end; + for Option := Low(JclDefineNames) to High(JclDefineNames) do + begin + DefineName := JclDefineNames[Option]; + if DefineName <> '' then + AConfiguration.OptionAsBool[TargetName, OptionData[Option].Id] := JppState.Defines[DefineName] = ttDefined; + end; + finally + JppState.Free; + end; + end; + end; + procedure LoadValues; var AConfiguration: IJediConfiguration; @@ -987,6 +1047,8 @@ AConfiguration := InstallCore.Configuration; if not Assigned(AConfiguration) then Exit; + // options in included files jcl/source/include/jclXX.inc overrides stored settings + LoadStaticValues(AConfiguration); if AConfiguration.SectionExists(TargetName) then begin ResetDefaultValue := not AConfiguration.OptionAsBool[TargetName, OptionData[joJediCodeLibrary].Id]; @@ -1161,7 +1223,7 @@ function SaveDefines(Defines: TStrings): Boolean; var - TemplateFileName, IncludeFileName, IncludeLine, Symbol: string; + IncludeLine, Symbol: string; IncludeFile: TStrings; IndexLine, DefinePos, SymbolEnd: Integer; Defined, NotDefined: Boolean; @@ -1171,13 +1233,11 @@ begin WriteLog(LoadResString(@RsLogConditionalDefines)); Result := True; - TemplateFileName := PathAddSeparator(Distribution.JclIncludeDir) + 'jcl.template.inc'; - IncludeFileName := Format('%sjcl%s.inc', [PathAddSeparator(Distribution.JclIncludeDir), Target.IDEVersionNumberStr]); try IncludeFile := TStringList.Create; try - IncludeFile.LoadFromFile(TemplateFileName); - WriteLog(Format(LoadResString(@RsLogLoadTemplate), [TemplateFileName])); + IncludeFile.LoadFromFile(Distribution.JclIncludeTemplate); + WriteLog(Format(LoadResString(@RsLogLoadTemplate), [Distribution.JclIncludeTemplate])); for IndexLine := 0 to IncludeFile.Count - 1 do begin @@ -1217,20 +1277,6 @@ end; end; - const - DefineNames: array [joJCLDefThreadSafe..joJCLDef7zLinkOnRequest] of string = - ( 'THREADSAFE', 'DROP_OBSOLETE_CODE', 'UNITVERSIONING', - 'MATH_SINGLE_PRECISION', 'MATH_DOUBLE_PRECISION', 'MATH_EXTENDED_PRECISION', - 'MATH_EXT_EXTREMEVALUES', 'HOOK_DLL_EXCEPTIONS', - 'DEBUG_NO_BINARY', 'DEBUG_NO_TD32', 'DEBUG_NO_MAP', 'DEBUG_NO_EXPORTS', - 'DEBUG_NO_SYMBOLS', 'PCRE_STATICLINK', - 'PCRE_LINKDLL', 'PCRE_LINKONREQUEST', 'BZIP2_STATICLINK', - 'BZIP2_LINKDLL', 'BZIP2_LINKONREQUEST', 'ZLIB_STATICLINK', - 'ZLIB_LINKDLL', 'ZLIB_LINKONREQUEST', 'UNICODE_RTL_DATABASE', 'UNICODE_SILENT_FAILURE', - 'UNICODE_RAW_DATA', 'UNICODE_ZLIB_DATA', 'UNICODE_BZIP2_DATA', - 'CONTAINER_ANSISTR', 'CONTAINER_WIDESTR', 'CONTAINER_UNICODESTR', - 'CONTAINER_NOSTR', {'7ZIP_STATICLINK',} '7ZIP_LINKDLL', - '7ZIP_LINKONREQUEST' ); var Option: TInstallerOption; Defines: TStrings; @@ -1240,11 +1286,11 @@ if OptionChecked[joJCLDef] then begin MarkOptionBegin(joJCLDef); - for Option := Low(DefineNames) to High(DefineNames) do + for Option := Low(JclDefineNames) to High(JclDefineNames) do if OptionChecked[Option] then begin MarkOptionBegin(Option); - Defines.Add(DefineNames[Option]); + Defines.Add(JclDefineNames[Option]); MarkOptionEnd(Option, True); end; MarkOptionEnd(joJCLDef, True); @@ -3030,6 +3076,7 @@ FLibDebugDirMask := FLibReleaseDirMask + DirDelimiter + 'debug'; FJclBinDir := JclPath + 'bin'; FJclIncludeDir := PathAddSeparator(JclPath + 'source') + 'include'; + FJclIncludeTemplate := PathAddSeparator(FJclIncludeDir) + JclIncludeTemplateFileName; FJclExamplesDir := JclPath + 'examples'; FJclSourcePath := ''; for Index := Low(JclSrcPaths) to High(JclSrcPaths) do This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-12-23 12:19:27
|
Revision: 3445 http://jcl.svn.sourceforge.net/jcl/?rev=3445&view=rev Author: outchy Date: 2010-12-23 12:19:17 +0000 (Thu, 23 Dec 2010) Log Message: ----------- moved and renamed jcl/devtools/jpp/JppLexer.pas, jcl/devtools/jpp/JppParser.pas and jcl/devtools/jpp/JppState.pas to jcl/source/common/. moved and renamed jcl/devtools/jpp/Templates/*.pas to jcl/source/common/. Modified Paths: -------------- trunk/jcl/devtools/jpp/JppMain.pas trunk/jcl/devtools/jpp/jpp.dpr trunk/jcl/devtools/jpp/jppContainers.dpr trunk/jcl/devtools/jpp/jppExceptionDialogs.dpr trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFileFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgFormFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgIgnoreFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgLogFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgRepository.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgSystemFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgThreadFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgTraceFrame.pas trunk/jcl/experts/repository/ExceptionDialog/JclOtaExcDlgWizard.pas trunk/jcl/experts/repository/JclOtaRepositoryReg.pas trunk/jcl/experts/repository/JclOtaRepositoryUtils.pas trunk/jcl/install/JclInstall.pas trunk/jcl/packages/c6/JclDeveloperTools.bpk trunk/jcl/packages/c6/JclDeveloperTools.dpk trunk/jcl/packages/cs1/JclDeveloperTools.dpk trunk/jcl/packages/d10/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dproj trunk/jcl/packages/d12/JclDeveloperTools.dpk trunk/jcl/packages/d12/JclDeveloperTools.dproj trunk/jcl/packages/d14/JclDeveloperTools.dpk trunk/jcl/packages/d14/JclDeveloperTools.dproj trunk/jcl/packages/d15/JclDeveloperTools.dpk trunk/jcl/packages/d15/JclDeveloperTools.dproj trunk/jcl/packages/d6/JclDeveloperTools.dpk trunk/jcl/packages/d7/JclDeveloperTools.dpk trunk/jcl/packages/d8/JclDeveloperTools.dpk trunk/jcl/packages/d9/JclDeveloperTools.dpk trunk/jcl/packages/fpc/JclDeveloperTools.lpk trunk/jcl/packages/fpc/JclDeveloperTools.pas trunk/jcl/packages/xml/JclDeveloperTools-R.xml Added Paths: ----------- trunk/jcl/source/common/JclPreProcessorAlgorithmsTemplates.pas trunk/jcl/source/common/JclPreProcessorArrayListsTemplates.pas trunk/jcl/source/common/JclPreProcessorArraySetsTemplates.pas trunk/jcl/source/common/JclPreProcessorBinaryTreesTemplates.pas trunk/jcl/source/common/JclPreProcessorContainer1DTemplates.pas trunk/jcl/source/common/JclPreProcessorContainer2DTemplates.pas trunk/jcl/source/common/JclPreProcessorContainerIntfTemplates.pas trunk/jcl/source/common/JclPreProcessorContainerKnownMaps.pas trunk/jcl/source/common/JclPreProcessorContainerKnownTypes.pas trunk/jcl/source/common/JclPreProcessorContainerTemplates.pas trunk/jcl/source/common/JclPreProcessorContainerTypes.pas trunk/jcl/source/common/JclPreProcessorExcDlgTemplates.pas trunk/jcl/source/common/JclPreProcessorHashMapsTemplates.pas trunk/jcl/source/common/JclPreProcessorLexer.pas trunk/jcl/source/common/JclPreProcessorLinkedListsTemplates.pas trunk/jcl/source/common/JclPreProcessorParser.pas trunk/jcl/source/common/JclPreProcessorQueuesTemplates.pas trunk/jcl/source/common/JclPreProcessorSortedMapsTemplates.pas trunk/jcl/source/common/JclPreProcessorStacksTemplates.pas trunk/jcl/source/common/JclPreProcessorState.pas trunk/jcl/source/common/JclPreProcessorTemplates.pas trunk/jcl/source/common/JclPreProcessorTreesTemplates.pas trunk/jcl/source/common/JclPreProcessorVectorsTemplates.pas Removed Paths: ------------- trunk/jcl/devtools/jpp/JppLexer.pas trunk/jcl/devtools/jpp/JppParser.pas trunk/jcl/devtools/jpp/JppState.pas trunk/jcl/devtools/jpp/Templates/ Deleted: trunk/jcl/devtools/jpp/JppLexer.pas =================================================================== --- trunk/jcl/devtools/jpp/JppLexer.pas 2010-12-23 11:18:32 UTC (rev 3444) +++ trunk/jcl/devtools/jpp/JppLexer.pas 2010-12-23 12:19:17 UTC (rev 3445) @@ -1,441 +0,0 @@ -{ **************************************************************************** } -{ } -{ Pascal PreProcessor Lexer } -{ Copyright (c) 2001 Barry Kelly. } -{ bar...@ho... } -{ } -{ The contents of this file are subject to the Mozilla Public License } -{ Version 1.1 (the "License"); you may not use this file except in } -{ compliance with the License. You may obtain a copy of the License at } -{ http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" } -{ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the } -{ License for the specific language governing rights and limitations } -{ under the License. } -{ } -{ The Original Code is PppLexer.pas } -{ } -{ The Initial Developer of the Original Code is Barry Kelly. } -{ Portions created by Barry Kelly are Copyright (C) 2001 } -{ Barry Kelly. All Rights Reserved. } -{ } -{ Contributors: } -{ Robert Rossmair (rrossmair) } -{ Florent Ouchet } -{ } -{ Alternatively, the contents of this file may be used under the terms } -{ of the Lesser GNU Public License (the "LGPL License"), in which case } -{ the provisions of LGPL License are applicable instead of those } -{ above. If you wish to allow use of your version of this file only } -{ under the terms of the LPGL License and not to allow others to use } -{ your version of this file under the MPL, indicate your decision by } -{ deleting the provisions above and replace them with the notice and } -{ other provisions required by the LGPL License. If you do not delete } -{ the provisions above, a recipient may use your version of this file } -{ under either the MPL or the LPGL License. } -{ } -{ **************************************************************************** } -{ } -{ JppLexer differs from the original unit in that it provides a separate } -{ token for line breaks, ptEol. That makes it much easier to remove } -{ orphaned line breaks after conditional compilation symbol resolution, } -{ see unit JppParser. } -{ } -{ **************************************************************************** } - -// Last modified: $Date$ - -unit JppLexer; - -{$I jcl.inc} - -interface - -uses - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - SysUtils, Classes, - JclBase, JclStrHashMap, JclStrings; - -type - TJppToken = (ptEof, ptComment, ptText, ptEol, - ptDefine, ptUndef, ptIfdef, ptIfndef, ptIfopt, ptElse, ptEndif, - ptInclude, ptJppDefineMacro, ptJppExpandMacro, ptJppUndefMacro, - ptJppGetStrValue, ptJppGetIntValue, ptJppGetBoolValue, - ptJppSetStrValue, ptJppSetIntValue, ptJppSetBoolValue, ptJppLoop, - // same as $DEFINE and $UNDEF but they will not be written to the final file - ptJppDefine, ptJppUndef); - - EJppLexerError = class(EJclError); - - TJppLexer = class - private - FBuf: string; - FTokenHash: TStringHashMap; - FCurrPos: PChar; - FCurrLine: Integer; - FCurrTok: TJppToken; - FTokenAsString: string; - FRawComment: string; - FIgnoreUnterminatedStrings: Boolean; - public - constructor Create(const ABuffer: string; AIgnoreUnterminatedStrings: Boolean = False); - destructor Destroy; override; - - procedure Error(const AMsg: string); - procedure NextTok; - procedure Reset; - property CurrTok: TJppToken read FCurrTok; - { TokenAsString is the preprocessor symbol for $IFDEF & $IFNDEF, - and the file name for $I and $INCLUDE, and is the actual text - for ptComment and ptText. } - property TokenAsString: string read FTokenAsString; - { The raw comment for $IFDEF, etc. when TokenAsString becomes the - file name / preprocessor symbol. } - property RawComment: string read FRawComment; - { Do not raise exceptions when strings are not terminated } - property IgnoreUnterminatedStrings: Boolean read FIgnoreUnterminatedStrings write FIgnoreUnterminatedStrings; - end; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\devtools\jpp'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -{ TJppLexer } - -constructor TJppLexer.Create(const ABuffer: string; AIgnoreUnterminatedStrings: Boolean); - - procedure AddToken(const AIdent: string; AValue: TJppToken); - var - x: Integer; - begin - x := Ord(AValue); - FTokenHash.Add(AIdent, x); - end; - -begin - inherited Create; - FIgnoreUnterminatedStrings := AIgnoreUnterminatedStrings; - - FTokenHash := TStringHashMap.Create(CaseInsensitiveTraits, 19); - - AddToken('i', ptInclude); - AddToken('include', ptInclude); - AddToken('ifdef', ptIfdef); - AddToken('ifndef', ptIfndef); - AddToken('ifopt', ptIfopt); - AddToken('else', ptElse); - AddToken('endif', ptEndif); - AddToken('define', ptDefine); - AddToken('undef', ptUndef); - AddToken('jppdefinemacro', ptjppDefineMacro); - AddToken('jppexpandmacro', ptJppExpandMacro); - AddToken('jppundefmacro', ptJppUndefMacro); - AddToken('jppstrvalue', ptJppGetStrValue); // backward compatibility - AddToken('jppintvalue', ptJppGetIntValue); // backward compatibility - AddToken('jppboolvalue', ptJppGetBoolValue); // backward compatibility - AddToken('jppgetstrvalue', ptJppGetStrValue); - AddToken('jppgetintvalue', ptJppGetIntValue); - AddToken('jppgetboolvalue', ptJppGetBoolValue); - AddToken('jppsetstrvalue', ptJppSetStrValue); - AddToken('jppsetintvalue', ptJppSetIntValue); - AddToken('jppsetboolvalue', ptJppSetBoolValue); - AddToken('jpploop', ptJppLoop); - AddToken('jppdefine', ptJppDefine); - AddToken('jppundef', ptJppUndef); - - FBuf := ABuffer; - Reset; -end; - -destructor TJppLexer.Destroy; -begin - FTokenHash.Free; - inherited; -end; - -procedure TJppLexer.Error(const AMsg: string); -begin - if not IgnoreUnterminatedStrings then - raise EJppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); -end; - -procedure TJppLexer.NextTok; - - procedure HandleDirective(APos: PChar); - - { needs to be special, because it checks for not * or } - function ReadString(cp: PChar; var ident: string): PChar; - var - start: PChar; - begin - if cp^ = '"' then - begin - Inc(cp); - start := cp; - while (cp^ <> #0) and (cp^ <> #10) and (cp^ <> #13) and (cp^ <> '"') do - Inc(cp); - if (cp^ = #0) or (cp^ = #10) or (cp^ = #13) then - Error('Unterminated string'); - SetString(ident, start, cp - start); - Result := cp + 1; - end - else - begin - start := cp; - while (not CharIsSpace(cp^)) and (cp^ <> '*') and (cp^ <> '}') do - Inc(cp); - if cp^ = #0 then - Error('Unterminated string'); - SetString(ident, start, cp - start); - Result := cp; - end; - end; - - var - BPos, start: PChar; - ident: string; - tokInt: Integer; - begin - Assert(APos^ = '$'); - Inc(APos); - start := APos; - - { read identifier } - while CharIsValidIdentifierLetter(APos^) do - Inc(APos); - SetString(ident, start, APos - start); - - { find identifier in hash map } - if FTokenHash.Find(ident, tokInt) then - begin - FCurrTok := TJppToken(tokInt); - - case FCurrTok of - ptDefine, - ptUndef, - ptIfdef, - ptIfndef, - ptJppDefine, - ptJppUndef, - ptJppGetStrValue, - ptJppGetIntValue, - ptJppGetBoolValue, - ptJppSetStrValue, - ptJppSetIntValue, - ptJppSetBoolValue: - begin - BPos := APos; - StrSkipChars(BPos, CharIsWhiteSpace); - StrIdent(BPos, FTokenAsString); - end; - ptInclude: - begin - BPos := APos; - StrSkipChars(BPos, CharIsWhiteSpace); - ReadString(BPos, FTokenAsString); - end; - end; - end - else - { other directives must pass through; therefore call them text } - FCurrTok := ptText; - end; - -var - cp, start: PChar; - cl: Integer; - Eol: Boolean; -label - Label_NormalText; -begin - { register variables optimization } - cp := FCurrPos; - cl := FCurrLine; - - { determine token type } - case cp^ of - - { the buck stops here } - #0: - begin - FCurrTok := ptEof; - Exit; - end; - - { possible Standard Pascal comment } - '(': - begin - if (cp + 1)^ <> '*' then - goto Label_NormalText; - start := cp; - Inc(cp, 2); - while True do - begin - case cp^ of - #0: - Break; - #10: - Inc(cl); - '*': - if (cp + 1)^ = ')' then - Break; - end; - Inc(cp); - end; - if cp^ = '*' then - Inc(cp, 2); // get whole of comment, including trailing '*)' - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - - { possible line comment } - '/': - begin - if (cp + 1)^ <> '/' then - goto Label_NormalText; - start := cp; - Inc(cp, 2); - while True do - case cp^ of - #0, #13, #10: - Break; - else - Inc(cp); - end; - { if cp^ is #10, we leave it in, to avoid formatting cock-ups } - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - - { pascal comment } - '{': - begin - start := cp; - while True do - begin - case cp^ of - #0, '}': - Break; - #10: - Inc(cl); - end; - Inc(cp); - end; - if cp^ = '}' then - Inc(cp); - SetString(FTokenAsString, start, cp - start); - FCurrTok := ptComment; - end; - else -Label_NormalText: - { process normal text; passes straight through until next comment or eof } - start := cp; - - Eol := False; - if cp^ = #13 then - begin - Eol := True; - Inc(cp); - end; - if cp^ = #10 then - begin - Eol := True; - Inc(cp); - end; - - if Eol then - Inc(cl) - else - while True do - begin - case cp^ of - #0, #10, #13: - Break; - '{': - Break; - '/': - if (cp + 1)^ = '/' then - Break; - '(': - if (cp + 1)^ = '*' then - Break; - - { must handle strings seperately; there can be no comments in strings } - '''': - begin - Inc(cp); - while True do - case cp^ of - #0, #10: - begin - FCurrLine := cl; - Error('String not terminated'); - Break; - end; - '''': - Break; - else - Inc(cp); - end; { of '''' case } - end; - end; - Inc(cp); - end; - SetString(FTokenAsString, start, cp - start); - if Eol then - FCurrTok := ptEol - else - FCurrTok := ptText; - end; - - { find out if we have a special directive } - if FCurrTok = ptComment then - begin - FRawComment := FTokenAsString; - case (start + 1)^ of - '$': // {$ - HandleDirective(start + 1); - - '*': // (*$ - if (start + 2)^ = '$' then - HandleDirective(start + 2); - '/': // do nothing - ; - end; - end; - - { restore register variables } - FCurrPos := cp; - FCurrLine := cl; -end; - -procedure TJppLexer.Reset; -begin - FCurrPos := PChar(FBuf); - FCurrLine := 1; - NextTok; -end; - -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} - -end. - Modified: trunk/jcl/devtools/jpp/JppMain.pas =================================================================== --- trunk/jcl/devtools/jpp/JppMain.pas 2010-12-23 11:18:32 UTC (rev 3444) +++ trunk/jcl/devtools/jpp/JppMain.pas 2010-12-23 12:19:17 UTC (rev 3445) @@ -52,8 +52,8 @@ JclStrings, JclStreams, JclSysUtils, - JppState, - JppParser; + JclPreProcessorState, + JclPreProcessorParser; procedure Syntax; procedure Params(State: TPppState; ACommandLine: PChar); Deleted: trunk/jcl/devtools/jpp/JppParser.pas =================================================================== --- trunk/jcl/devtools/jpp/JppParser.pas 2010-12-23 11:18:32 UTC (rev 3444) +++ trunk/jcl/devtools/jpp/JppParser.pas 2010-12-23 12:19:17 UTC (rev 3445) @@ -1,1020 +0,0 @@ -{ **************************************************************************** } -{ } -{ Pascal PreProcessor Parser } -{ Copyright (c) 2001 Barry Kelly. } -{ bar...@ho... } -{ } -{ The contents of this file are subject to the Mozilla Public License } -{ Version 1.1 (the "License"); you may not use this file except in } -{ compliance with the License. You may obtain a copy of the License at } -{ http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" } -{ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the } -{ License for the specific language governing rights and limitations } -{ under the License. } -{ } -{ The Original Code is PppParser.pas } -{ } -{ The Initial Developer of the Original Code is Barry Kelly. } -{ Portions created by Barry Kelly are Copyright (C) 2001 } -{ Barry Kelly. All Rights Reserved. } -{ } -{ Contributors: } -{ Robert Rossmair, } -{ Peter Th\xF6rnqvist, } -{ Florent Ouchet } -{ } -{ Alternatively, the contents of this file may be used under the terms } -{ of the Lesser GNU Public License (the "LGPL License"), in which case } -{ the provisions of LGPL License are applicable instead of those } -{ above. If you wish to allow use of your version of this file only } -{ under the terms of the LPGL License and not to allow others to use } -{ your version of this file under the MPL, indicate your decision by } -{ deleting the provisions above and replace them with the notice and } -{ other provisions required by the LGPL License. If you do not delete } -{ the provisions above, a recipient may use your version of this file } -{ under either the MPL or the LPGL License. } -{ } -{ **************************************************************************** } - -// Last modified: $Date$ - -unit JppParser; - -{$I jcl.inc} - -interface - -uses - SysUtils, Classes, - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - JclBase, JppState, JppLexer; - -type - EPppParserError = class(EJclError); - - TJppParser = class - private - FLexer: TJppLexer; - FState: TPppState; - FResult: string; - FResultLen: Integer; - FLineBreakPos: Integer; - FAllWhiteSpaceIn: Boolean; - FAllWhiteSpaceOut: Boolean; - protected - procedure AddResult(const S: string; FixIndent: Boolean = False; ForceRecurseTest: Boolean = False); - function IsExcludedInclude(const FileName: string): Boolean; - - procedure NextToken; - - procedure ParseText; - procedure ParseCondition(Token: TJppToken); - function ParseInclude: string; - - procedure ParseDefine(Skip: Boolean); - procedure ParseUndef(Skip: Boolean); - - procedure ParseDefineMacro; - procedure ParseExpandMacro; - procedure ParseUndefMacro; - - procedure ParseGetBoolValue; - procedure ParseGetIntValue; - procedure ParseGetStrValue; - procedure ParseLoop; - procedure ParseSetBoolValue; - procedure ParseSetIntValue; - procedure ParseSetStrValue; - public - constructor Create(const ABuffer: string; APppState: TPppState); - destructor Destroy; override; - function Parse: string; - - property Lexer: TJppLexer read FLexer; - property State: TPppState read FState; - end; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\devtools\jpp'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - JclStrings, JclStreams, JclSysUtils; - -{$IFDEF MSWINDOWS} -const - LineBreak = #13#10; - -type - T2Char = array[0..1] of Char; - PLineBreak = ^T2Char; -{$ENDIF MSWINDOWS} - -{$IFDEF UNIX} -const - LineBreak = #10; - -type - PLineBreak = PChar; -{$ENDIF UNIX} - -function AllWhiteSpace(P: PChar; KeepTabAndSpaces: Boolean): Boolean; -var - I: Integer; -begin - Result := True; - for I := 1 to Length(P) do - case P^ of - NativeTab, NativeSpace: - if KeepTabAndSpaces then - begin - Result := False; - Break; - end - else - Inc(P); - NativeLineFeed, NativeCarriageReturn: - Inc(P); - else - Result := False; - Break; - end; -end; - -function ParseMacro(const MacroText: string; var MacroName: string; var ParamNames: TDynStringArray; - ParamDeclaration: Boolean): Integer; -var - I, J: Integer; - Comment: Boolean; - ParenthesisCount: Integer; -begin - I := 1; - while (I <= Length(MacroText)) and not CharIsSpace(MacroText[I]) do - Inc(I); - while (I <= Length(MacroText)) and CharIsSpace(MacroText[I]) do - Inc(I); - J := I; - while (J <= Length(MacroText)) and CharIsValidIdentifierLetter(MacroText[J]) do - Inc(J); - MacroName := Copy(MacroText, I, J - I); - - if J <= Length(MacroText) then - begin - SetLength(ParamNames, 0); - if MacroText[J] = '(' then - begin - Inc(J); - if ParamDeclaration then - begin - repeat - while (J <= Length(MacroText)) and CharIsSpace(MacroText[J]) do - Inc(J); - I := J; - while (I <= Length(MacroText)) and CharIsValidIdentifierLetter(MacroText[I]) do - Inc(I); - SetLength(ParamNames, Length(ParamNames) + 1); - ParamNames[High(ParamNames)] := Copy(MacroText, J, I - J); - while (I <= Length(MacroText)) and CharIsSpace(MacroText[I]) do - Inc(I); - if (I <= Length(MacroText)) then - case MacroText[I] of - ',': - Inc(I); - ')': ; - else - raise EPppParserError.CreateFmt('invalid parameter declaration in macro "%s"', [MacroText]); - end; - J := I; - until (J > Length(MacroText)) or (MacroText[J] = ')'); - end - else - begin - repeat - I := J; - Comment := False; - ParenthesisCount := 0; - - while I <= Length(MacroText) do - begin - case MacroText[I] of - NativeSingleQuote: - Comment := not Comment; - '(': - if not Comment then - Inc(ParenthesisCount); - ')': - begin - if (not Comment) and (ParenthesisCount = 0) then - Break; - if not Comment then - Dec(ParenthesisCount); - end; - NativeBackslash: - if (not Comment) and (ParenthesisCount = 0) and (I < Length(MacroText)) and (MacroText[i + 1] = NativeComma) then - Inc(I); - NativeComma: - if (not Comment) and (ParenthesisCount = 0) then - Break; - end; - Inc(I); - end; - SetLength(ParamNames, Length(ParamNames) + 1); - ParamNames[High(ParamNames)] := Copy(MacroText, J, I - J); - StrReplace(ParamNames[High(ParamNames)], '\,', ',', [rfReplaceAll]); - if (I < Length(MacroText)) and (MacroText[I] = ')') then - begin - J := I; - Break; - end; - if (I < Length(MacroText)) and (MacroText[I] = ',') then - Inc(I); - J := I; - until J > Length(MacroText); - end; - if J <= Length(MacroText) then - begin - if MacroText[J] = ')' then - Inc(J) // skip ) - else - raise EPppParserError.CreateFmt('Unterminated list of arguments for macro "%s"', [MacroText]); - end; - end - else - begin - while (J <= Length(MacroText)) and CharIsSpace(MacroText[J]) do - Inc(J); - end; - end; - Result := J; -end; - -{ TJppParser } - -constructor TJppParser.Create(const ABuffer: string; APppState: TPppState); -begin - inherited Create; - Assert(APppState <> nil); - - FLexer := TJppLexer.Create(ABuffer, poIgnoreUnterminatedStrings in APppState.Options); - FState := APppState; - FState.Undef('PROTOTYPE'); -end; - -destructor TJppParser.Destroy; -begin - FLexer.Free; - inherited; -end; - -procedure TJppParser.AddResult(const S: string; FixIndent, ForceRecurseTest: Boolean); -var - I, J: Integer; - LinePrefix, AResult, Line: string; - TempMemoryStream: TMemoryStream; - TempStringStream: TJclAutoStream; - TempLexer: TJppLexer; - TempParser: TJppParser; - Lines: TStrings; - Recurse: Boolean; -begin - if State.TriState = ttUndef then - Exit; - - AResult := S; - // recurse macro expanding - if (AResult <> '') and (ForceRecurseTest or (StrIPos('$JPP', AResult) > 0)) then - begin - try - Recurse := False; - TempLexer := TJppLexer.Create(AResult, poIgnoreUnterminatedStrings in State.Options); - try - State.PushState; - while True do - begin - case TempLexer.CurrTok of - ptEof: - Break; - ptDefine, - ptJppDefine, - ptUndef, - ptJppUndef: - if poProcessDefines in State.Options then - begin - Recurse := True; - Break; - end; - ptIfdef, ptIfndef: - if (poProcessDefines in State.Options) and (State.Defines[TempLexer.TokenAsString] in [ttDefined, ttUndef]) then - begin - Recurse := True; - Break; - end; - ptJppDefineMacro, - ptJppExpandMacro, - ptJppUndefMacro: - if poProcessMacros in State.Options then - begin - Recurse := True; - Break; - end; - ptJppGetStrValue, - ptJppGetIntValue, - ptJppGetBoolValue, - ptJppSetStrValue, - ptJppSetIntValue, - ptJppSetBoolValue, - ptJppLoop: - if poProcessValues in State.Options then - begin - Recurse := True; - Break; - end; - end; - TempLexer.NextTok; - end; - finally - State.PopState; - TempLexer.Free; - end; - if Recurse then - begin - TempMemoryStream := TMemoryStream.Create; - try - TempStringStream := TJclAutoStream.Create(TempMemoryStream); - try - TempStringStream.WriteString(AResult, 1, Length(AResult)); - TempStringStream.Seek(0, soBeginning); - TempParser := TJppParser.Create(TempStringStream.ReadString, State); - try - AResult := TempParser.Parse; - finally - TempParser.Free; - end; - finally - TempStringStream.Free; - end; - finally - TempMemoryStream.Free; - end; - end; - except - // The text might not be well-formed Pascal source and - // thus exceptions might be raised, in such case, just add the text without recursion - AResult := S; - end; - end; - if FixIndent and (AResult <> '') then - begin - // find the number of white space at the beginning of the current line (indentation level) - I := FResultLen + 1; - while (I > 1) and not CharIsReturn(FResult[I - 1]) do - Dec(I); - J := I; - while (J <= FResultLen) and CharIsWhiteSpace(FResult[J]) do - Inc(J); - LinePrefix := StrRepeat(NativeSpace, J - I); - - Lines := TStringList.Create; - try - StrToStrings(AResult, NativeLineBreak, Lines); - if not (poKeepTabAndSpaces in State.Options) then - begin - // remove first empty lines - while Lines.Count > 0 do - begin - if Lines.Strings[0] = '' then - Lines.Delete(0) - else - Break; - end; - // remove last empty lines - for I := Lines.Count - 1 downto 0 do - begin - if Lines.Strings[I] = '' then - Lines.Delete(I) - else - Break; - end; - end; - // fix line offsets - if LinePrefix <> '' then - for I := 1 to Lines.Count - 1 do - begin - Line := Lines.Strings[I]; - if Line <> '' then - Lines.Strings[I] := LinePrefix + Line; - end; - AResult := StringsToStr(Lines, NativeLineBreak); - finally - Lines.Free; - end; - end; - if AResult <> '' then - begin - while FResultLen + Length(AResult) > Length(FResult) do - SetLength(FResult, Length(FResult) * 2); - Move(AResult[1], FResult[FResultLen + 1], Length(AResult) * SizeOf(Char)); - FAllWhiteSpaceOut := FAllWhiteSpaceOut and AllWhiteSpace(PChar(AResult), poKeepTabAndSpaces in State.Options); - Inc(FResultLen, Length(AResult)); - end; -end; - -function TJppParser.IsExcludedInclude(const FileName: string): Boolean; -begin - Result := State.IsFileExcluded(FileName); -end; - -procedure TJppParser.NextToken; -begin - Lexer.NextTok; - - if State.TriState = ttUndef then - Exit; - - case Lexer.CurrTok of - ptEof, ptEol: - // do not change FAllWhiteSpaceIn - ; - ptComment: - FAllWhiteSpaceIn := False; - ptText: - FAllWhiteSpaceIn := FAllWhiteSpaceIn and AllWhiteSpace(PChar(Lexer.TokenAsString), poKeepTabAndSpaces in State.Options); - ptDefine, - ptUndef, - ptIfdef, - ptIfndef, - ptIfopt, - ptElse, - ptEndif, - ptJppDefine, - ptJppUndef, - ptJppDefineMacro, - ptJppExpandMacro, - ptJppUndefMacro, - ptJppGetStrValue, - ptJppGetIntValue, - ptJppGetBoolValue, - ptJppSetStrValue, - ptJppSetIntValue, - ptJppSetBoolValue, - ptJppLoop: - FAllWhiteSpaceIn := False; - ptInclude: - FAllWhiteSpaceIn := IsExcludedInclude(Lexer.TokenAsString); - else - // Error - end; -end; - -function TJppParser.Parse: string; -begin - FLexer.Reset; - SetLength(FResult, 64 * 1024); - FillChar(FResult[1], Length(FResult) * SizeOf(Char), 0); - FResultLen := 0; - FLineBreakPos := 1; - FAllWhiteSpaceOut := True; - - ParseText; - SetLength(FResult, FResultLen); - Result := FResult; -end; - -procedure TJppParser.ParseCondition(Token: TJppToken); - procedure PushAndExecute(NewTriState: TTriState); - var - NeedPush: Boolean; - begin - NeedPush := State.TriState <> NewTriState; - if NeedPush then - State.PushState; - try - State.TriState := NewTriState; - NextToken; - ParseText; - finally - if NeedPush then - State.PopState; - end; - end; -var - Condition: string; - ConditionTriState: TTriState; -begin - Condition := Lexer.TokenAsString; - ConditionTriState := State.Defines[Condition]; - // parse the first part of the $IFDEF or $IFNDEF - case ConditionTriState of - ttUnknown: - begin - State.PushState; - try - // preserve the $IFDEF or $IFNDEF - AddResult(Lexer.RawComment); - // assume that the symbol is defined in the $IFDEF - if Token = ptIfdef then - State.Define(Condition) - else - // assume that the symbol is not defined in the $IFNDEF - if Token = ptIfndef then - State.Undef(Condition); - NextToken; - ParseText; - finally - State.PopState; - end; - end; - ttUndef: - if Token = ptIfdef then - PushAndExecute(ttUndef) - else - if Token = ptIfndef then - PushAndExecute(ttDefined); - ttDefined: - if Token = ptIfdef then - PushAndExecute(ttDefined) - else - if Token = ptIfndef then - PushAndExecute(ttUndef); - end; - // part the second part of the $IFDEF or $IFNDEF if any - if Lexer.CurrTok = ptElse then - begin - case ConditionTriState of - ttUnknown: - begin - State.PushState; - try - // preserve the $ELSE - AddResult(Lexer.RawComment); - // assume that the symbol is not defined after the $IFDEF - if Token = ptIfdef then - State.Undef(Condition) - else - // assume that the symbol is defined after the $IFNDEF - if Token = ptIfndef then - State.Define(Condition); - NextToken; - ParseText; - finally - State.PopState; - end; - end; - ttUndef: - begin - if Token = ptIfdef then - PushAndExecute(ttDefined) - else - if Token = ptIfndef then - PushAndExecute(ttUndef); - //State.Defines[Condition] := ttDefined; - end; - ttDefined: - begin - if Token = ptIfdef then - PushAndExecute(ttUndef) - else - if Token = ptIfndef then - PushAndExecute(ttDefined); - //State.Defines[Condition] := ttUndef; - end; - end; - end; - if Lexer.CurrTok <> ptEndif then - Lexer.Error('$ENDIF expected'); - case ConditionTriState of - ttUnknown: - // preserve the $ENDIF - AddResult(Lexer.RawComment); - ttUndef: ; - ttDefined: ; - end; - NextToken; -end; - -procedure TJppParser.ParseDefine(Skip: Boolean); -var - Condition: string; -begin - Condition := Lexer.TokenAsString; - case State.Defines[Condition] of - // the symbol is not defined - ttUnknown, - ttUndef: - begin - State.Defines[Lexer.TokenAsString] := ttDefined; - if not Skip then - AddResult(Lexer.RawComment); - end; - // the symbol is already defined, always skip it - ttDefined: ; - end; - NextToken; -end; - -procedure TJppParser.ParseDefineMacro; -var - I, J: Integer; - MacroText, MacroName, MacroValue: string; - ParamNames: TDynStringArray; -begin - MacroText := Lexer.TokenAsString; - I := ParseMacro(MacroText, MacroName, ParamNames, True); - if I <= Length(MacroText) then - begin - if Copy(MacroText, I, Length(NativeLineBreak)) = NativeLineBreak then - Inc(I, Length(NativeLineBreak)); - J := Length(MacroText); - if MacroText[J] = ')' then - Dec(J); - MacroValue := Copy(MacroText, I, J - I); - State.DefineMacro(MacroName, ParamNames, MacroValue); - end; - NextToken; -end; - -procedure TJppParser.ParseExpandMacro; -var - MacroText, MacroName, AResult: string; - ParamNames: TDynStringArray; -begin - MacroText := Lexer.TokenAsString; - ParseMacro(MacroText, MacroName, ParamNames, False); - // macros are expanded in a sub-state - State.PushState; - try - AResult := State.ExpandMacro(MacroName, ParamNames); - // add result to buffer - AddResult(AResult, True, True); - finally - State.PopState; - end; - NextToken; -end; - -procedure TJppParser.ParseUndef(Skip: Boolean); -var - Condition: string; -begin - Condition := Lexer.TokenAsString; - case State.Defines[Condition] of - // the symbol is not defined - ttUnknown, - ttDefined: - begin - State.Defines[Lexer.TokenAsString] := ttUndef; - if not Skip then - AddResult(Lexer.RawComment); - end; - // the symbol is already defined, skip it - ttUndef: ; - end; - NextToken; -end; - -procedure TJppParser.ParseUndefMacro; -var - MacroText, MacroName: string; - ParamNames: TDynStringArray; -begin - MacroText := Lexer.TokenAsString; - ParseMacro(MacroText, MacroName, ParamNames, True); - State.UndefMacro(MacroName, ParamNames); - NextToken; -end; - -function TJppParser.ParseInclude: string; -var - oldLexer, newLexer: TJppLexer; - fsIn: TStream; - ssIn: TJclAutoStream; -begin - Result := ''; - Assert(Lexer.TokenAsString <> ''); - { we must prevent case of $I- & $I+ becoming file names } - if (Lexer.TokenAsString[1] = '-') - or (Lexer.TokenAsString[1] = '+') - or IsExcludedInclude(Lexer.TokenAsString) then - Result := Lexer.RawComment - else - begin - fsIn := nil; - ssIn := nil; - newLexer := nil; - - oldLexer := Lexer; - try - try - fsIn := FState.FindFile(Lexer.TokenAsString); - except - on e: Exception do - Lexer.Error(e.Message); - end; - ssIn := TJclAutoStream.Create(fsIn); - newLexer := TJppLexer.Create(ssIn.ReadString, poIgnoreUnterminatedStrings in State.Options); - FLexer := newLexer; - ParseText; - finally - FLexer := oldLexer; - ssIn.Free; - fsIn.Free; - newLexer.Free; - end; - end; - NextToken; -end; - -procedure TJppParser.ParseGetStrValue; -var - Name: string; -begin - Name := Lexer.TokenAsString; - AddResult(State.StringValues[Name]); - NextToken; -end; - -procedure TJppParser.ParseGetIntValue; -var - Name: string; -begin - Name := Lexer.TokenAsString; - AddResult(IntToStr(State.IntegerValues[Name])); - NextToken; -end; - -procedure TJppParser.ParseGetBoolValue; -var - Name: string; -begin - Name := Lexer.TokenAsString; - AddResult(BoolToStr(State.BoolValues[Name], True)); - NextToken; -end; - -procedure TJppParser.ParseLoop; -var - I, J, RepeatIndex, RepeatCount: Integer; - RepeatText, IndexName, CountName: string; -begin - I := 1; - RepeatText := Lexer.RawComment; - while (I <= Length(RepeatText)) and not CharIsWhiteSpace(RepeatText[I]) do - Inc(I); - while (I <= Length(RepeatText)) and CharIsWhiteSpace(RepeatText[I]) do - Inc(I); - J := I; - while (J <= Length(RepeatText)) and CharIsValidIdentifierLetter(RepeatText[J]) do - Inc(J); - IndexName := Copy(RepeatText, I, J - I); - while (J <= Length(RepeatText)) and CharIsWhiteSpace(RepeatText[J]) do - Inc(J); - I := J; - while (J <= Length(RepeatText)) and CharIsValidIdentifierLetter(RepeatText[I]) do - Inc(I); - CountName := Copy(RepeatText, J, I - J); - - J := Length(RepeatText); - if RepeatText[J] = ')' then - Dec(J); - RepeatText := Copy(RepeatText, I, J - I); - RepeatCount := State.IntegerValues[CountName]; - for RepeatIndex := 0 to RepeatCount - 1 do - begin - State.IntegerValues[IndexName] := RepeatIndex; - AddResult(RepeatText); - end; - State.IntegerValues[IndexName] := -1; - NextToken; -end; - -procedure TJppParser.ParseSetStrValue; -var - I, J: Integer; - Text, Name, Value: string; -begin - I := 1; - Text := Lexer.RawComment; - while (I <= Length(Text)) and not CharIsWhiteSpace(Text[I]) do - Inc(I); - while (I <= Length(Text)) and CharIsWhiteSpace(Text[I]) do - Inc(I); - J := I; - while (J <= Length(Text)) and CharIsValidIdentifierLetter(Text[J]) do - Inc(J); - Name := Copy(Text, I, J - I); - while (J <= Length(Text)) and CharIsWhiteSpace(Text[J]) do - Inc(J); - I := Length(Text); - if Text[I] = ')' then - Dec(I); - Value := Copy(Text, J, I - J); - State.StringValues[Name] := Value; - NextToken; -end; - -procedure TJppParser.ParseSetIntValue; -var - I, J: Integer; - Text, Name, Value: string; -begin - I := 1; - Text := Lexer.RawComment; - while (I <= Length(Text)) and not CharIsWhiteSpace(Text[I]) do - Inc(I); - while (I <= Length(Text)) and CharIsWhiteSpace(Text[I]) do - Inc(I); - J := I; - while (J <= Length(Text)) and CharIsValidIdentifierLetter(Text[J]) do - Inc(J); - Name := Copy(Text, I, J - I); - while (J <= Length(Text)) and CharIsWhiteSpace(Text[J]) do - Inc(J); - I := Length(Text); - if Text[I] = ')' then - Dec(I); - Value := Copy(Text, J, I - J); - State.IntegerValues[Name] := StrToInt(Value); - NextToken; -end; - -procedure TJppParser.ParseSetBoolValue; -var - I, J: Integer; - Text, Name, Value: string; -begin - I := 1; - Text := Lexer.RawComment; - while (I <= Length(Text)) and not CharIsWhiteSpace(Text[I]) do - Inc(I); - while (I <= Length(Text)) and CharIsWhiteSpace(Text[I]) do - Inc(I); - J := I; - while (J <= Length(Text)) and CharIsValidIdentifierLetter(Text[J]) do - Inc(J); - Name := Copy(Text, I, J - I); - while (J <= Length(Text)) and CharIsWhiteSpace(Text[J]) do - Inc(J); - I := Length(Text); - if Text[I] = ')' then - Dec(I); - Value := Copy(Text, J, I - J); - State.BoolValues[Name] := StrToBoolean(Value); - NextToken; -end; - -procedure TJppParser.ParseText; - - procedure AddRawComment; - begin - AddResult(Lexer.RawComment); - NextToken; - end; - - procedure DeleteCurrentLineIfOrphaned; - begin - if not FAllWhiteSpaceIn and FAllWhiteSpaceOut then - if FLineBreakPos <= FResultLen then - begin - FResultLen := FLineBreakPos - 1; - FResult[FResultLen + 1] := #0; - end; - end; - -begin - while True do - case Lexer.CurrTok of - ptComment: - begin - if not (poStripComments in State.Options) then - AddResult(Lexer.TokenAsString); - NextToken; - end; - - ptEof: - begin - DeleteCurrentLineIfOrphaned; - Break; - end; - - ptEol: - begin - AddResult(Lexer.TokenAsString); - DeleteCurrentLineIfOrphaned; - FLineBreakPos := FResultLen + 1; - FAllWhiteSpaceIn := True; - FAllWhiteSpaceOut := True; - NextToken; - end; - - ptText: - begin - AddResult(Lexer.TokenAsString); - NextToken; - end; - - ptDefine, ptJppDefine, ptUndef, ptJppUndef, ptIfdef, ptIfndef, ptIfopt: - if poProcessDefines in State.Options then - case Lexer.CurrTok of - ptDefine: - ParseDefine(False); - ptJppDefine: - ParseDefine(True); - ptUndef: - ParseUndef(False); - ptJppUndef: - ParseUndef(True); - ptIfdef: - ParseCondition(ptIfdef); - ptIfndef: - ParseCondition(ptIfndef); - ptIfopt: - ParseCondition(ptIfopt); - end - else - AddRawComment; - - ptElse, ptEndif: - if poProcessDefines in State.Options then - Break - else - AddRawComment; - - ptInclude: - if poProcessIncludes in State.Options then - AddResult(ParseInclude) - else - AddRawComment; - - ptJppDefineMacro, ptJppExpandMacro, ptJppUndefMacro: - if State.TriState = ttUndef then - NextToken - else - if poProcessMacros in State.Options then - case Lexer.CurrTok of - ptJppDefineMacro: - ParseDefineMacro; - ptJppExpandMacro: - ParseExpandMacro; - ptJppUndefMacro: - ParseUndefMacro; - end - else - AddRawComment; - - ptJppGetStrValue, - ptJppGetIntValue, - ptJppGetBoolValue, - ptJppSetStrValue, - ptJppSetIntValue, - ptJppSetBoolValue, - ptJppLoop: - if State.TriState = ttUndef then - NextToken - else - if poProcessValues in State.Options then - case Lexer.CurrTok of - ptJppGetStrValue: - ParseGetStrValue; - ptJppGetIntValue: - ParseGetIntValue; - ptJppGetBoolValue: - ParseGetBoolValue; - ptJppSetStrValue: - ParseSetStrValue; - ptJppSetIntValue: - ParseSetIntValue; - ptJppSetBoolValue: - ParseSetBoolValue; - ptJppLoop: - ParseLoop; - end - else - AddRawComment; - else - Break; - end; -end; - -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} - -end. Deleted: trunk/jcl/devtools/jpp/JppState.pas =================================================================== --- trunk/jcl/devtools/jpp/JppState.pas 2010-12-23 11:18:32 UTC (rev 3444) +++ trunk/jcl/devtools/jpp/JppState.pas 2010-12-23 12:19:17 UTC (rev 3445) @@ -1,625 +0,0 @@ -{ **************************************************************************** } -{ } -{ PppState - Pascal PreProcessor State } -{ Copyright (c) 2001 Barry Kelly. } -{ bar...@ho... } -{ } -{ The contents of this file are subject to the Mozilla Public License } -{ Version 1.1 (the "License"); you may not use this file except in } -{ compliance with the License. You may obtain a copy of the License at } -{ http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" } -{ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the } -{ License for the specific language governing rights and limitations } -{ under the License. } -{ } -{ The Original Code is PppState.pas } -{ } -{ The Initial Developer of the Original Code is Barry Kelly. } -{ Portions created by Barry Kelly are Copyright (C) 2001 } -{ Barry Kelly. All Rights Reserved. } -{ } -{ Contributors: } -{ Florent Ouchet } -{ } -{ Alternatively, the contents of this file may be used under the terms } -{ of the Lesser GNU Public License (the "LGPL License"), in which case } -{ the provisions of LGPL License are applicable instead of those } -{ above. If you wish to allow use of your version of this file only } -{ under the terms of the LPGL License and not to allow others to use } -{ your version of this file under the MPL, indicate your decision by } -{ deleting the provisions above and replace them with the notice and } -{ other provisions required by the LGPL License. If you do not delete } -{ the provisions above, a recipient may use your version of this file } -{ under either the MPL or the LPGL License. } -{ } -{ **************************************************************************** } -{ $Id$ } - -{ Brief: The state of the preprocessor; options (e.g. remove comments), - defines, include search path, etc. } - -// Modifications by Robert Rossmair: Addition of TTriState type, TriState methods -unit JppState; - -{$I jcl.inc} - -interface - -uses - SysUtils, Classes, - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - JclBase, JclContainerIntf; - -type - EPppState = class(EJclError); - - TPppOption = (poProcessIncludes, poProcessDefines, poStripComments, - poProcessMacros, poProcessValues, poNoWarningHeader, poKeepTabAndSpaces, - poIgnoreUnterminatedStrings); - TPppOptions = set of TPppOption; - - TTriState = (ttUnknown, ttUndef, ttDefined); - - TPppStateItem = class - public - DefinedKeywords: IJclStrMap; - ExcludedFiles: IJclStrList; - Macros: IJclStrIntfMap; - SearchPath: IJclStrList; - TriState: TTriState; - end; - - TPppStateItemClass = class of TPppStateItem; - - TPppProvider = class(TPersistent) - protected - function GetBoolValue(const Name: string): Boolean; virtual; abstract; - function GetDefine(const ASymbol: string): TTriState; virtual; abstract; - function GetIntegerValue(const Name: string): Integer; virtual; abstract; - function GetStringValue(const Name: string): string; virtual; abstract; - procedure SetBoolValue(const Name: string; Value: Boolean); virtual; abstract; - procedure SetDefine(const ASymbol: string; const Value: TTriState); virtual; abstract; - procedure SetIntegerValue(const Name: string; Value: Integer); virtual; abstract; - procedure SetStringValue(const Name, Value: string); virtual; abstract; - public - property Defines[const ASymbol: string]: TTriState read GetDefine write SetDefine; - property BoolValues[const Name: string]: Boolean read GetBoolValue write SetBoolValue; - property StringValues[const Name: string]: string read GetStringValue write SetStringValue; - property IntegerValues[const Name: string]: Integer read GetIntegerValue write SetIntegerValue; - end; - - TPppState = class(TPppProvider) - private - FStateStack: IJclStack; - FOptions: TPppOptions; - function InternalPeekDefines: IJclStrMap; - function InternalPeekExcludedFiles: IJclStrList; - function InternalPeekMacros: IJclStrIntfMap; - function InternalPeekSearchPath: IJclStrList; - function InternalPeekTriState: TTriState; - procedure InternalSetTriState(Value: TTriState); - protected - class function StateItemClass: TPppStateItemClass; virtual; - procedure InternalPushState(FromStateItem, ToStateItem: TPppStateItem); virtual; - function PeekStateItem: TPppStateItem; - - function GetOptions: TPppOptions; - procedure SetOptions(AOptions: TPppOptions); - - function FindMacro(const AMacroName: string): IJclStrList; - function AssociateParameters(const ParamNames: IJclStrList; - const ParamValues: TDynStringArray): TDynWideStringArray; - - function GetBoolValue(const Name: string): Boolean; override; - function GetDefine(const ASymbol: string): TTriState; override; - function GetIntegerValue(const Name: string): Integer; override; - function GetStringValue(const Name: string): string; override; - procedure SetBoolValue(const Name: string; Value: Boolean); override; - procedure SetDefine(const ASymbol: string; const Value: TTriState); override; - procedure SetIntegerValue(const Name: string; Value: Integer); override; - procedure SetStringValue(const Name, Value: string); override; - public - constructor Create; - destructor Destroy; override; - - procedure AfterConstruction; override; - - { PushState is called at the start of every unit, and PopState at the - end. This means that any declarations like $DEFINE will be file-local - in scope. } - procedure PushState; - procedure PopState; - - property TriState: TTriState read InternalPeekTriState write InternalSetTriState; - - procedure Define(const ASymbol: string); - procedure Undef(const ASymbol: string); - - function FindFile(const AName: string): TStream; - procedure AddToSearchPath(const AName: string); - - procedure AddFileToExclusionList(const AName: string); - function IsFileExcluded(const AName: string): Boolean; - - function ExpandMacro(const AName: string; const ParamValues: TDynStringArray): string; virtual; - procedure DefineMacro(const AName: string; const ParamNames: TDynStringArray; - const Value: string); - procedure UndefMacro(const AName: string; const ParamNames: TDynStringArray); - - property Options: TPppOptions read GetOptions write SetOptions; - end; - - TPppStateClass = class of TPppState; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\devtools\jpp'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - TypInfo, - JclStrings, JclArrayLists, JclHashMaps, JclStacks, - JppParser; - -//=== { TPppState } ========================================================== - -constructor TPppState.Create; -begin - inherited Create; - FStateStack := TJclStack.Create(16, True); -end; - -destructor TPppState.Destroy; -begin - FStateStack := nil; - inherited Destroy; -end; - -procedure TPppState.AddFileToExclusionList(const AName: string); -begin - InternalPeekExcludedFiles.Add(AName); -end; - -procedure TPppState.AddToSearchPath(const AName: string); -begin - InternalPeekSearchPath.Add(AName); -end; - -procedure TPppState.AfterConstruction; -var - StateItem: TPppStateItem; -begin - StateItem := StateItemClass.Create; - InternalPushState(nil, StateItem); - FStateStack.Push(StateItem); -end; - -function TPppState.AssociateParameters(const ParamNames: IJclStrList; - const ParamValues: TDynStringArray): TDynWideStringArray; -var - StrParams: TStrings; - AssociationByName: Boolean; - Index, ParamIndex: Integer; - AParamName, AParamText: string; - Parser: TJppParser; -begin - SetLength(Result, Length(ParamValues)); - AssociationByName := True; - StrParams := TStringList.Create; - try - for Index := Low(ParamValues) to High(ParamValues) do - begin - StrParams.Add(ParamValues[Index]); - AParamName := StrParams.Names[Index]; - if Assigned(ParamNames) and (AParamName <> '') then - begin - // verify parameter names - ParamIndex := ParamNames.IndexOf(AParamName); - if ParamIndex < 0 then - AssociationByName := False; - end - else - AssociationByName := False; - end; - for Index := Low(ParamValues) to High(ParamValues) do - begin - if AssociationByName then - AParamText := StrParams.Values[ParamNames.Strings[Index]] - else - AParamText := StrParams.Strings[Index]; - Self.PushState; - try - Parser := TJppParser.Create(AParamText, Self); - try - AParamText := Parser.Parse; - finally - Parser.Free; - end; - finally - Self.PopState; - end; - Result[Index] := WideString(AParamText); - end; - finally - StrParams.Free; - end; -end; - -function TPppState.ExpandMacro(const AName: string; - const ParamValues: TDynStringArray): string; -var - AMacro: IJclStrList; - AMacroName, AMacroText: string; - Index: Integer; - Params: array of TVarRec; - AMacroParams: TDynWideStringArray; -begin - AMacroName := Format('%s`%d', [AName, Length(ParamValues)]); - AMacro := FindMacro(AMacroName); - // the macro text is the last item, previous items are the macro parameter names - AMacroText := AMacro.Strings[AMacro.Size - 1]; - AMacroParams := AssociateParameters(AMacro.SubList(0, AMacro.Size - 1), ParamValues); - - SetLength(Params, Length(ParamValues)); - for Index := Low(ParamValues) to High(ParamValues) do - begin - Params[Index].VType := vtPWideChar; - Params[Index].VPWideChar := PWideChar(AMacroParams[Index]); - end; - Result := Format(AMacroText, Params); -end; - -procedure TPppState.Define(const ASymbol: string); -begin - Defines[ASymbol] := ttDefined; -end; - -procedure TPppState.DefineMacro(const AName: string; - const ParamNames: TDynStringArray; const Value: string); -var - AMacro: IJclStrList; - AMacros: IJclStrIntfMap; - AMacroNames: IJclStrIterator; - AMacroName, AMacroFormat: string; - Index: Integer; -begin - AMacros := InternalPeekMacros; - AMacroName := Format('%s`%d', [AName, Length(ParamNames)]); - AMacroNames := AMacros.KeySet.First; - while AMacroNames.HasNext do - if JclStrings.StrSame(AMacroNames.Next, AMacroName) then - raise EPppState.CreateFmt('macro "%s" is already defined', [AName]); - AMacroFormat := Value; - AMacro := TJclStrArrayList.Create(16); - for Index := Low(ParamNames) to High(ParamNames) do - begin - StrReplace(AMacroFormat, ParamNames[Index], '%' + IntToStr(Index) + ':s', [rfReplaceAll, rfIgnoreCase]); - // the first elements in the list are the macro parameter names - AMacro.Add(ParamNames[Index]); - end; - // the macro text is the last element in the list - AMacro.Add(AMacroFormat); - AMacros.Items[AMacroName] := AMacro; -end; - -function TPppState.FindFile(const AName: string): TStream; -var - i: Integer; - fn: string; - Found: Boolean; - ASearchPath: IJclStrList; -begin - ASearchPath := InternalPeekSearchPath; - fn := AName; - Found := FileExists(fn); - if not Found then - for i := 0 to ASearchPath.Size - 1 do - begin - fn := ASearchPath.Strings[i] + PathDelim + AName; - if FileExists(fn) then - begin - Found := True; - Break; - end; - end; - if not Found then - raise EPppState.CreateFmt('File n... [truncated message content] |
From: <ou...@us...> - 2010-12-23 11:18:38
|
Revision: 3444 http://jcl.svn.sourceforge.net/jcl/?rev=3444&view=rev Author: outchy Date: 2010-12-23 11:18:32 +0000 (Thu, 23 Dec 2010) Log Message: ----------- regenerated with latest JPP. Modified Paths: -------------- trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.dfm trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.pas trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.dfm trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.pas Modified: trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.dfm =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.dfm 2010-12-23 11:16:32 UTC (rev 3443) +++ trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.dfm 2010-12-23 11:18:32 UTC (rev 3444) @@ -3,7 +3,6 @@ Top = 255 AutoScroll = False BorderIcons = [biSystemMenu] - Caption = 'ExceptionDialog' ClientHeight = 283 ClientWidth = 483 @@ -35,7 +34,6 @@ Shape = bsTopLine end - object SaveBtn: TButton Left = 403 Top = 60 Modified: trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.pas 2010-12-23 11:16:32 UTC (rev 3443) +++ trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlg.pas 2010-12-23 11:18:32 UTC (rev 3444) @@ -248,6 +248,7 @@ end; + //---------------------------------------------------------------------------- procedure TExceptionDialog.SaveBtnClick(Sender: TObject); @@ -341,6 +342,7 @@ StackList.AddToStrings(DetailsMemo.Lines, True, True, True, True); NextDetailBlock; end; + // All threads ThreadList := JclDebugThreadList; ThreadList.Lock.Enter; // avoid modifications Modified: trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.dfm =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.dfm 2010-12-23 11:16:32 UTC (rev 3443) +++ trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.dfm 2010-12-23 11:18:32 UTC (rev 3444) @@ -3,7 +3,6 @@ Top = 255 AutoScroll = False BorderIcons = [biSystemMenu] - Caption = 'ExceptionDialogMail' ClientHeight = 283 ClientWidth = 483 @@ -34,7 +33,6 @@ Anchors = [akLeft, akTop, akRight] Shape = bsTopLine end - object SendBtn: TButton Left = 403 Top = 32 @@ -46,7 +44,6 @@ TabOrder = 0 OnClick = SendBtnClick end - object SaveBtn: TButton Left = 403 Top = 60 Modified: trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.pas =================================================================== --- trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.pas 2010-12-23 11:16:32 UTC (rev 3443) +++ trunk/jcl/experts/repository/ExceptionDialog/StandardDialogs/ExceptDlgMail.pas 2010-12-23 11:18:32 UTC (rev 3444) @@ -365,6 +365,7 @@ StackList.AddToStrings(DetailsMemo.Lines, True, True, True, True); NextDetailBlock; end; + // All threads ThreadList := JclDebugThreadList; ThreadList.Lock.Enter; // avoid modifications This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-12-23 11:16:38
|
Revision: 3443 http://jcl.svn.sourceforge.net/jcl/?rev=3443&view=rev Author: outchy Date: 2010-12-23 11:16:32 +0000 (Thu, 23 Dec 2010) Log Message: ----------- new preprocessor option to ignore unterminated strings. Modified Paths: -------------- trunk/jcl/devtools/jpp/JppLexer.pas trunk/jcl/devtools/jpp/JppParser.pas trunk/jcl/devtools/jpp/JppState.pas Modified: trunk/jcl/devtools/jpp/JppLexer.pas =================================================================== --- trunk/jcl/devtools/jpp/JppLexer.pas 2010-12-23 11:13:46 UTC (rev 3442) +++ trunk/jcl/devtools/jpp/JppLexer.pas 2010-12-23 11:16:32 UTC (rev 3443) @@ -79,8 +79,9 @@ FCurrTok: TJppToken; FTokenAsString: string; FRawComment: string; + FIgnoreUnterminatedStrings: Boolean; public - constructor Create(const ABuffer: string); + constructor Create(const ABuffer: string; AIgnoreUnterminatedStrings: Boolean = False); destructor Destroy; override; procedure Error(const AMsg: string); @@ -94,6 +95,8 @@ { The raw comment for $IFDEF, etc. when TokenAsString becomes the file name / preprocessor symbol. } property RawComment: string read FRawComment; + { Do not raise exceptions when strings are not terminated } + property IgnoreUnterminatedStrings: Boolean read FIgnoreUnterminatedStrings write FIgnoreUnterminatedStrings; end; {$IFDEF UNITVERSIONING} @@ -112,7 +115,7 @@ { TJppLexer } -constructor TJppLexer.Create(const ABuffer: string); +constructor TJppLexer.Create(const ABuffer: string; AIgnoreUnterminatedStrings: Boolean); procedure AddToken(const AIdent: string; AValue: TJppToken); var @@ -123,6 +126,9 @@ end; begin + inherited Create; + FIgnoreUnterminatedStrings := AIgnoreUnterminatedStrings; + FTokenHash := TStringHashMap.Create(CaseInsensitiveTraits, 19); AddToken('i', ptInclude); @@ -162,7 +168,8 @@ procedure TJppLexer.Error(const AMsg: string); begin - raise EJppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); + if not IgnoreUnterminatedStrings then + raise EJppLexerError.CreateFmt('(%d): %s', [FCurrLine, AMsg]); end; procedure TJppLexer.NextTok; @@ -376,6 +383,7 @@ begin FCurrLine := cl; Error('String not terminated'); + Break; end; '''': Break; Modified: trunk/jcl/devtools/jpp/JppParser.pas =================================================================== --- trunk/jcl/devtools/jpp/JppParser.pas 2010-12-23 11:13:46 UTC (rev 3442) +++ trunk/jcl/devtools/jpp/JppParser.pas 2010-12-23 11:16:32 UTC (rev 3443) @@ -269,7 +269,7 @@ inherited Create; Assert(APppState <> nil); - FLexer := TJppLexer.Create(ABuffer); + FLexer := TJppLexer.Create(ABuffer, poIgnoreUnterminatedStrings in APppState.Options); FState := APppState; FState.Undef('PROTOTYPE'); end; @@ -300,7 +300,7 @@ begin try Recurse := False; - TempLexer := TJppLexer.Create(AResult); + TempLexer := TJppLexer.Create(AResult, poIgnoreUnterminatedStrings in State.Options); try State.PushState; while True do @@ -725,7 +725,7 @@ Lexer.Error(e.Message); end; ssIn := TJclAutoStream.Create(fsIn); - newLexer := TJppLexer.Create(ssIn.ReadString); + newLexer := TJppLexer.Create(ssIn.ReadString, poIgnoreUnterminatedStrings in State.Options); FLexer := newLexer; ParseText; finally Modified: trunk/jcl/devtools/jpp/JppState.pas =================================================================== --- trunk/jcl/devtools/jpp/JppState.pas 2010-12-23 11:13:46 UTC (rev 3442) +++ trunk/jcl/devtools/jpp/JppState.pas 2010-12-23 11:16:32 UTC (rev 3443) @@ -58,7 +58,8 @@ EPppState = class(EJclError); TPppOption = (poProcessIncludes, poProcessDefines, poStripComments, - poProcessMacros, poProcessValues, poNoWarningHeader, poKeepTabAndSpaces); + poProcessMacros, poProcessValues, poNoWarningHeader, poKeepTabAndSpaces, + poIgnoreUnterminatedStrings); TPppOptions = set of TPppOption; TTriState = (ttUnknown, ttUndef, ttDefined); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |