mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 19:09:31 +02:00
LazUtils: New units for encoding data tables. Can be used by external code. Issue #36078, patch from CudaText man.
git-svn-id: trunk@63642 -
This commit is contained in:
parent
5fa1cdcfb0
commit
1cd6dc6dd4
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -3407,6 +3407,8 @@ components/lazutils/amigalazfileutils.inc svneol=native#text/plain
|
||||
components/lazutils/asiancodepagefunctions.inc svneol=native#text/pascal
|
||||
components/lazutils/asiancodepages.inc svneol=native#text/pascal
|
||||
components/lazutils/avglvltree.pas svneol=native#text/pascal
|
||||
components/lazutils/codepagesasian.pas svneol=native#text/pascal
|
||||
components/lazutils/codepagescommon.pas svneol=native#text/pascal
|
||||
components/lazutils/commoncodepages.inc svneol=native#text/pascal
|
||||
components/lazutils/compwriterpas.pas svneol=native#text/plain
|
||||
components/lazutils/dynamicarray.pas svneol=native#text/pascal
|
||||
|
@ -1,4 +1,4 @@
|
||||
{%MainUnit ../lconvencoding.pp}
|
||||
{%MainUnit codepagesasian.pas}
|
||||
|
||||
{
|
||||
*****************************************************************************
|
||||
@ -18778,39 +18778,4 @@ $FF97,$FF98,$FF99,$FF9A,$FF9B,$FF9C,$FF9D,$FF9E,$FF9F,$FFE0,$FFE1,$FFE2,$FFE2,
|
||||
$FFE2,$FFE3,$FFE4,$FFE4,$FFE5);
|
||||
{$endif}
|
||||
|
||||
function SearchTable(CodePageArr: array of word; id: cardinal): word;
|
||||
var
|
||||
idMid: integer;
|
||||
idLow, idHigh: integer;
|
||||
begin
|
||||
idLow := 0;
|
||||
idHigh := High(CodePageArr);
|
||||
while (idLow <= idHigh) do
|
||||
begin
|
||||
if idLow = idHigh then
|
||||
begin
|
||||
if CodePageArr[idLow] = id then
|
||||
begin
|
||||
Result := idLow;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Result := 0;
|
||||
end;
|
||||
Exit;
|
||||
end;
|
||||
idMid := (idLow + idHigh) div 2;
|
||||
if CodePageArr[idMid] = id then
|
||||
begin
|
||||
Result := idMid;
|
||||
Exit;
|
||||
end;
|
||||
if CodePageArr[idMid] > id then
|
||||
idHigh := idMid - 1;
|
||||
if CodePageArr[idMid] < id then
|
||||
idLow := idMid + 1;
|
||||
end;
|
||||
Result := 0;
|
||||
end;
|
||||
|
||||
|
||||
|
19
components/lazutils/codepagesasian.pas
Normal file
19
components/lazutils/codepagesasian.pas
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
*****************************************************************************
|
||||
This file is part of LazUtils.
|
||||
|
||||
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
||||
for details about the license.
|
||||
*****************************************************************************
|
||||
}
|
||||
unit CodepagesAsian;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
{$I asiancodepages.inc}
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
19
components/lazutils/codepagescommon.pas
Normal file
19
components/lazutils/codepagescommon.pas
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
*****************************************************************************
|
||||
This file is part of LazUtils.
|
||||
|
||||
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
||||
for details about the license.
|
||||
*****************************************************************************
|
||||
}
|
||||
unit CodepagesCommon;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
{$I commoncodepages.inc}
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
@ -1,4 +1,4 @@
|
||||
{%MainUnit ../lconvencoding.pp}
|
||||
{%MainUnit codepagescommon.pas}
|
||||
|
||||
{
|
||||
*****************************************************************************
|
||||
@ -11,6 +11,9 @@
|
||||
Common Unicode Conversion Tables
|
||||
}
|
||||
|
||||
type
|
||||
TCharToUTF8Table = array[char] of PChar;
|
||||
|
||||
const
|
||||
ArrayISO_8859_1ToUTF8: TCharToUTF8Table = (
|
||||
#0, // #0
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
File generated automatically by Lazarus Package Manager
|
||||
Created with the Fppkgpackagemanager package installed
|
||||
|
||||
fpmake.pp for LazUtils 1.0
|
||||
|
||||
This file was generated on 22-05-20
|
||||
This file was generated on 24.07.2020
|
||||
}
|
||||
|
||||
{$ifndef ALLPACKAGES}
|
||||
@ -46,188 +45,133 @@ begin
|
||||
P.Options.Add('-vewnhibq');
|
||||
P.UnitPath.Add('.');
|
||||
T:=P.Targets.AddUnit('lazutils.pas');
|
||||
D := T.Dependencies.AddInclude('LazLoggerImpl.inc');
|
||||
D := T.Dependencies.AddInclude('LazLoggerIntf.inc');
|
||||
D := T.Dependencies.AddInclude('asiancodepagefunctions.inc');
|
||||
D := T.Dependencies.AddInclude('asiancodepages.inc');
|
||||
D := T.Dependencies.AddUnit('AvgLvlTree');
|
||||
D := T.Dependencies.AddUnit('DynamicArray');
|
||||
D := T.Dependencies.AddUnit('DynHashArray');
|
||||
D := T.Dependencies.AddUnit('DynQueue');
|
||||
D := T.Dependencies.AddUnit('EasyLazFreeType');
|
||||
D := T.Dependencies.AddUnit('ExtendedStrings');
|
||||
D := T.Dependencies.AddUnit('FileUtil');
|
||||
D := T.Dependencies.AddInclude('fileutil.inc');
|
||||
D := T.Dependencies.AddUnit('FPCAdds');
|
||||
D := T.Dependencies.AddUnit('Laz2_DOM');
|
||||
D := T.Dependencies.AddInclude('laz2_names.inc');
|
||||
D := T.Dependencies.AddUnit('Laz2_XMLCfg');
|
||||
D := T.Dependencies.AddUnit('laz2_XMLRead');
|
||||
D := T.Dependencies.AddUnit('laz2_xmlutils');
|
||||
D := T.Dependencies.AddUnit('laz2_XMLWrite');
|
||||
D := T.Dependencies.AddUnit('laz2_xpath');
|
||||
D := T.Dependencies.AddUnit('Laz_DOM');
|
||||
D := T.Dependencies.AddUnit('Laz_XMLCfg');
|
||||
D := T.Dependencies.AddUnit('Laz_XMLRead');
|
||||
D := T.Dependencies.AddUnit('Laz_XMLStreaming');
|
||||
D := T.Dependencies.AddUnit('Laz_XMLWrite');
|
||||
D := T.Dependencies.AddUnit('LazClasses');
|
||||
D := T.Dependencies.AddUnit('lazCollections');
|
||||
D := T.Dependencies.AddUnit('LazConfigStorage');
|
||||
D := T.Dependencies.AddUnit('LazDbgLog');
|
||||
D := T.Dependencies.AddUnit('lazfglhash');
|
||||
D := T.Dependencies.AddUnit('LazFileCache');
|
||||
D := T.Dependencies.AddUnit('LazFileUtils');
|
||||
D := T.Dependencies.AddInclude('lazfileutils.inc');
|
||||
D := T.Dependencies.AddUnit('LazFreeType');
|
||||
D := T.Dependencies.AddUnit('LazFreeTypeFontCollection');
|
||||
D := T.Dependencies.AddUnit('LazFreeTypeFPImageDrawer');
|
||||
D := T.Dependencies.AddUnit('LazLinkedList');
|
||||
D := T.Dependencies.AddUnit('LazListClasses');
|
||||
D := T.Dependencies.AddUnit('LazLogger');
|
||||
D := T.Dependencies.AddUnit('LazLoggerBase');
|
||||
D := T.Dependencies.AddUnit('LazLoggerDummy');
|
||||
D := T.Dependencies.AddUnit('LazLoggerProfiling');
|
||||
D := T.Dependencies.AddUnit('LazMethodList');
|
||||
D := T.Dependencies.AddUnit('LazUnicode');
|
||||
D := T.Dependencies.AddUnit('LazUTF16');
|
||||
D := T.Dependencies.AddUnit('LazUTF8');
|
||||
D := T.Dependencies.AddUnit('LazUTF8Classes');
|
||||
D := T.Dependencies.AddUnit('LazSysUtils');
|
||||
D := T.Dependencies.AddUnit('LazUtilities');
|
||||
D := T.Dependencies.AddInclude('lazutils_defines.inc');
|
||||
D := T.Dependencies.AddUnit('LazUtilsStrConsts');
|
||||
D := T.Dependencies.AddUnit('LConvEncoding');
|
||||
D := T.Dependencies.AddUnit('lcsvutils');
|
||||
D := T.Dependencies.AddUnit('LookupStringList');
|
||||
D := T.Dependencies.AddUnit('Maps');
|
||||
D := T.Dependencies.AddUnit('Masks');
|
||||
D := T.Dependencies.AddUnit('PasWString');
|
||||
D := T.Dependencies.AddUnit('StringHashList');
|
||||
D := T.Dependencies.AddUnit('TextStrings');
|
||||
D := T.Dependencies.AddUnit('Translations');
|
||||
D := T.Dependencies.AddUnit('TTCache');
|
||||
D := T.Dependencies.AddUnit('TTCalc');
|
||||
D := T.Dependencies.AddInclude('ttcalc1.inc');
|
||||
D := T.Dependencies.AddInclude('ttcalc2.inc');
|
||||
D := T.Dependencies.AddInclude('ttcalc3.inc');
|
||||
D := T.Dependencies.AddInclude('ttcalc4.inc');
|
||||
D := T.Dependencies.AddUnit('TTCMap');
|
||||
D := T.Dependencies.AddInclude('ttconfig.inc');
|
||||
D := T.Dependencies.AddUnit('TTDebug');
|
||||
D := T.Dependencies.AddUnit('TTError');
|
||||
D := T.Dependencies.AddUnit('TTFile');
|
||||
D := T.Dependencies.AddUnit('TTGLoad');
|
||||
D := T.Dependencies.AddUnit('TTInterp');
|
||||
D := T.Dependencies.AddUnit('TTLoad');
|
||||
D := T.Dependencies.AddUnit('TTMemory');
|
||||
D := T.Dependencies.AddUnit('TTObjs');
|
||||
D := T.Dependencies.AddUnit('TTProfile');
|
||||
D := T.Dependencies.AddUnit('TTRASTER');
|
||||
D := T.Dependencies.AddInclude('ttraster_sweep.inc');
|
||||
D := T.Dependencies.AddUnit('TTTables');
|
||||
D := T.Dependencies.AddUnit('TTTypes');
|
||||
D := T.Dependencies.AddInclude('unixfileutil.inc');
|
||||
D := T.Dependencies.AddInclude('unixlazfileutils.inc');
|
||||
D := T.Dependencies.AddInclude('unixlazutf8.inc');
|
||||
D := T.Dependencies.AddUnit('UTF8Process');
|
||||
D := T.Dependencies.AddInclude('winfileutil.inc');
|
||||
D := T.Dependencies.AddInclude('winlazfileutils.inc');
|
||||
D := T.Dependencies.AddInclude('winlazutf8.inc');
|
||||
D := T.Dependencies.AddUnit('HTML2TextRender');
|
||||
D := T.Dependencies.AddUnit('Laz_AVL_Tree');
|
||||
D := T.Dependencies.AddUnit('CompWriterPas');
|
||||
D := T.Dependencies.AddUnit('LazPasReadUtil');
|
||||
D := T.Dependencies.AddUnit('IntegerList');
|
||||
D := T.Dependencies.AddUnit('LazVersion');
|
||||
D := T.Dependencies.AddUnit('UITypes');
|
||||
D := T.Dependencies.AddUnit('GraphType');
|
||||
D := T.Dependencies.AddUnit('LazTracer');
|
||||
D := T.Dependencies.AddUnit('LazStringUtils');
|
||||
D := T.Dependencies.AddUnit('LazUTF8SysUtils');
|
||||
D := T.Dependencies.AddUnit('ObjectLists');
|
||||
D := T.Dependencies.AddUnit('TTKern');
|
||||
T := P.Targets.AddImplicitUnit('avglvltree.pas');
|
||||
T := P.Targets.AddImplicitUnit('dynamicarray.pas');
|
||||
T := P.Targets.AddImplicitUnit('dynhasharray.pp');
|
||||
T := P.Targets.AddImplicitUnit('dynqueue.pas');
|
||||
T := P.Targets.AddImplicitUnit('easylazfreetype.pas');
|
||||
T := P.Targets.AddImplicitUnit('extendedstrings.pas');
|
||||
T := P.Targets.AddImplicitUnit('fileutil.pas');
|
||||
T := P.Targets.AddImplicitUnit('fpcadds.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_dom.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_xmlcfg.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_xmlread.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_xmlutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_xmlwrite.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz2_xpath.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_dom.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_xmlcfg.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_xmlread.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_xmlstreaming.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_xmlwrite.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazclasses.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazcollections.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazconfigstorage.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazdbglog.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfglhash.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfilecache.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfileutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfreetype.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfreetypefontcollection.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazfreetypefpimagedrawer.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazlinkedlist.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazlistclasses.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazlogger.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazloggerbase.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazloggerdummy.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazloggerprofiling.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazmethodlist.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazunicode.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutf16.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutf8.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutf8classes.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazsysutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutilities.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutilsstrconsts.pas');
|
||||
T := P.Targets.AddImplicitUnit('lconvencoding.pas');
|
||||
T := P.Targets.AddImplicitUnit('lcsvutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('lookupstringlist.pas');
|
||||
T := P.Targets.AddImplicitUnit('maps.pp');
|
||||
T := P.Targets.AddImplicitUnit('masks.pas');
|
||||
T := P.Targets.AddImplicitUnit('paswstring.pas');
|
||||
T := P.Targets.AddImplicitUnit('stringhashlist.pas');
|
||||
T := P.Targets.AddImplicitUnit('textstrings.pas');
|
||||
T := P.Targets.AddImplicitUnit('translations.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttcache.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttcalc.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttcmap.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttdebug.pas');
|
||||
T := P.Targets.AddImplicitUnit('tterror.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttfile.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttgload.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttinterp.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttload.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttmemory.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttobjs.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttprofile.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttraster.pas');
|
||||
T := P.Targets.AddImplicitUnit('tttables.pas');
|
||||
T := P.Targets.AddImplicitUnit('tttypes.pas');
|
||||
T := P.Targets.AddImplicitUnit('utf8process.pp');
|
||||
T := P.Targets.AddImplicitUnit('html2textrender.pas');
|
||||
T := P.Targets.AddImplicitUnit('laz_avl_tree.pp');
|
||||
T := P.Targets.AddImplicitUnit('compwriterpas.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazpasreadutil.pas');
|
||||
T := P.Targets.AddImplicitUnit('integerlist.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazversion.pas');
|
||||
T := P.Targets.AddImplicitUnit('uitypes.pas');
|
||||
T := P.Targets.AddImplicitUnit('graphtype.pp');
|
||||
T := P.Targets.AddImplicitUnit('laztracer.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazstringutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('lazutf8sysutils.pas');
|
||||
T := P.Targets.AddImplicitUnit('objectlists.pas');
|
||||
T := P.Targets.AddImplicitUnit('ttkern.pas');
|
||||
t.Dependencies.AddUnit('avglvltree');
|
||||
t.Dependencies.AddUnit('dynamicarray');
|
||||
t.Dependencies.AddUnit('dynhasharray');
|
||||
t.Dependencies.AddUnit('dynqueue');
|
||||
t.Dependencies.AddUnit('extendedstrings');
|
||||
t.Dependencies.AddUnit('fileutil');
|
||||
t.Dependencies.AddUnit('fpcadds');
|
||||
t.Dependencies.AddUnit('laz2_dom');
|
||||
t.Dependencies.AddUnit('laz2_xmlcfg');
|
||||
t.Dependencies.AddUnit('laz2_xmlread');
|
||||
t.Dependencies.AddUnit('laz2_xmlutils');
|
||||
t.Dependencies.AddUnit('laz2_xmlwrite');
|
||||
t.Dependencies.AddUnit('laz2_xpath');
|
||||
t.Dependencies.AddUnit('laz_dom');
|
||||
t.Dependencies.AddUnit('laz_xmlcfg');
|
||||
t.Dependencies.AddUnit('laz_xmlread');
|
||||
t.Dependencies.AddUnit('laz_xmlstreaming');
|
||||
t.Dependencies.AddUnit('laz_xmlwrite');
|
||||
t.Dependencies.AddUnit('lazclasses');
|
||||
t.Dependencies.AddUnit('lazcollections');
|
||||
t.Dependencies.AddUnit('lazconfigstorage');
|
||||
t.Dependencies.AddUnit('lazdbglog');
|
||||
t.Dependencies.AddUnit('lazfglhash');
|
||||
t.Dependencies.AddUnit('lazfilecache');
|
||||
t.Dependencies.AddUnit('lazfileutils');
|
||||
t.Dependencies.AddUnit('lazlinkedlist');
|
||||
t.Dependencies.AddUnit('lazlistclasses');
|
||||
t.Dependencies.AddUnit('lazlogger');
|
||||
t.Dependencies.AddUnit('lazloggerbase');
|
||||
t.Dependencies.AddUnit('lazloggerdummy');
|
||||
t.Dependencies.AddUnit('lazloggerprofiling');
|
||||
t.Dependencies.AddUnit('lazmethodlist');
|
||||
t.Dependencies.AddUnit('lazunicode');
|
||||
t.Dependencies.AddUnit('lazutf16');
|
||||
t.Dependencies.AddUnit('lazutf8');
|
||||
t.Dependencies.AddUnit('lazutf8classes');
|
||||
t.Dependencies.AddUnit('lazsysutils');
|
||||
t.Dependencies.AddUnit('lazutilities');
|
||||
t.Dependencies.AddUnit('lazutilsstrconsts');
|
||||
t.Dependencies.AddUnit('lconvencoding');
|
||||
t.Dependencies.AddUnit('lcsvutils');
|
||||
t.Dependencies.AddUnit('lookupstringlist');
|
||||
t.Dependencies.AddUnit('maps');
|
||||
t.Dependencies.AddUnit('masks');
|
||||
t.Dependencies.AddUnit('paswstring');
|
||||
t.Dependencies.AddUnit('stringhashlist');
|
||||
t.Dependencies.AddUnit('textstrings');
|
||||
t.Dependencies.AddUnit('translations');
|
||||
t.Dependencies.AddUnit('utf8process');
|
||||
t.Dependencies.AddUnit('html2textrender');
|
||||
t.Dependencies.AddUnit('laz_avl_tree');
|
||||
t.Dependencies.AddUnit('compwriterpas');
|
||||
t.Dependencies.AddUnit('lazpasreadutil');
|
||||
t.Dependencies.AddUnit('integerlist');
|
||||
t.Dependencies.AddUnit('lazversion');
|
||||
t.Dependencies.AddUnit('uitypes');
|
||||
t.Dependencies.AddUnit('graphtype');
|
||||
t.Dependencies.AddUnit('laztracer');
|
||||
t.Dependencies.AddUnit('lazstringutils');
|
||||
t.Dependencies.AddUnit('lazutf8sysutils');
|
||||
t.Dependencies.AddUnit('objectlists');
|
||||
t.Dependencies.AddUnit('codepagesasian');
|
||||
t.Dependencies.AddUnit('codepagescommon');
|
||||
|
||||
T:=P.Targets.AddUnit('avglvltree.pas');
|
||||
T:=P.Targets.AddUnit('dynamicarray.pas');
|
||||
T:=P.Targets.AddUnit('dynhasharray.pp');
|
||||
T:=P.Targets.AddUnit('dynqueue.pas');
|
||||
T:=P.Targets.AddUnit('extendedstrings.pas');
|
||||
T:=P.Targets.AddUnit('fileutil.pas');
|
||||
T:=P.Targets.AddUnit('fpcadds.pas');
|
||||
T:=P.Targets.AddUnit('laz2_dom.pas');
|
||||
T:=P.Targets.AddUnit('laz2_xmlcfg.pas');
|
||||
T:=P.Targets.AddUnit('laz2_xmlread.pas');
|
||||
T:=P.Targets.AddUnit('laz2_xmlutils.pas');
|
||||
T:=P.Targets.AddUnit('laz2_xmlwrite.pas');
|
||||
T:=P.Targets.AddUnit('laz2_xpath.pas');
|
||||
T:=P.Targets.AddUnit('laz_dom.pas');
|
||||
T:=P.Targets.AddUnit('laz_xmlcfg.pas');
|
||||
T:=P.Targets.AddUnit('laz_xmlread.pas');
|
||||
T:=P.Targets.AddUnit('laz_xmlstreaming.pas');
|
||||
T:=P.Targets.AddUnit('laz_xmlwrite.pas');
|
||||
T:=P.Targets.AddUnit('lazclasses.pas');
|
||||
T:=P.Targets.AddUnit('lazcollections.pas');
|
||||
T:=P.Targets.AddUnit('lazconfigstorage.pas');
|
||||
T:=P.Targets.AddUnit('lazdbglog.pas');
|
||||
T:=P.Targets.AddUnit('lazfglhash.pas');
|
||||
T:=P.Targets.AddUnit('lazfilecache.pas');
|
||||
T:=P.Targets.AddUnit('lazfileutils.pas');
|
||||
T:=P.Targets.AddUnit('lazlinkedlist.pas');
|
||||
T:=P.Targets.AddUnit('lazlistclasses.pas');
|
||||
T:=P.Targets.AddUnit('lazlogger.pas');
|
||||
T:=P.Targets.AddUnit('lazloggerbase.pas');
|
||||
T:=P.Targets.AddUnit('lazloggerdummy.pas');
|
||||
T:=P.Targets.AddUnit('lazloggerprofiling.pas');
|
||||
T:=P.Targets.AddUnit('lazmethodlist.pas');
|
||||
T:=P.Targets.AddUnit('lazunicode.pas');
|
||||
T:=P.Targets.AddUnit('lazutf16.pas');
|
||||
T:=P.Targets.AddUnit('lazutf8.pas');
|
||||
T:=P.Targets.AddUnit('lazutf8classes.pas');
|
||||
T:=P.Targets.AddUnit('lazsysutils.pas');
|
||||
T:=P.Targets.AddUnit('lazutilities.pas');
|
||||
T:=P.Targets.AddUnit('lazutilsstrconsts.pas');
|
||||
T:=P.Targets.AddUnit('lconvencoding.pas');
|
||||
T:=P.Targets.AddUnit('lcsvutils.pas');
|
||||
T:=P.Targets.AddUnit('lookupstringlist.pas');
|
||||
T:=P.Targets.AddUnit('maps.pp');
|
||||
T:=P.Targets.AddUnit('masks.pas');
|
||||
T:=P.Targets.AddUnit('paswstring.pas');
|
||||
T:=P.Targets.AddUnit('stringhashlist.pas');
|
||||
T:=P.Targets.AddUnit('textstrings.pas');
|
||||
T:=P.Targets.AddUnit('translations.pas');
|
||||
T:=P.Targets.AddUnit('utf8process.pp');
|
||||
T:=P.Targets.AddUnit('html2textrender.pas');
|
||||
T:=P.Targets.AddUnit('laz_avl_tree.pp');
|
||||
T:=P.Targets.AddUnit('compwriterpas.pas');
|
||||
T:=P.Targets.AddUnit('lazpasreadutil.pas');
|
||||
T:=P.Targets.AddUnit('integerlist.pas');
|
||||
T:=P.Targets.AddUnit('lazversion.pas');
|
||||
T:=P.Targets.AddUnit('uitypes.pas');
|
||||
T:=P.Targets.AddUnit('graphtype.pp');
|
||||
T:=P.Targets.AddUnit('laztracer.pas');
|
||||
T:=P.Targets.AddUnit('lazstringutils.pas');
|
||||
T:=P.Targets.AddUnit('lazutf8sysutils.pas');
|
||||
T:=P.Targets.AddUnit('objectlists.pas');
|
||||
T:=P.Targets.AddUnit('codepagesasian.pas');
|
||||
T:=P.Targets.AddUnit('codepagescommon.pas');
|
||||
|
||||
// copy the compiled file, so the IDE knows how the package was compiled
|
||||
P.Sources.AddSrc('LazUtils.compiled');
|
||||
|
@ -42,10 +42,6 @@
|
||||
<Filename Value="asiancodepagefunctions.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Filename Value="asiancodepages.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Filename Value="avglvltree.pas"/>
|
||||
<UnitName Value="AvgLvlTree"/>
|
||||
@ -330,6 +326,14 @@
|
||||
<Filename Value="objectlists.pas"/>
|
||||
<UnitName Value="ObjectLists"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Filename Value="codepagesasian.pas"/>
|
||||
<UnitName Value="CodepagesAsian"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Filename Value="codepagescommon.pas"/>
|
||||
<UnitName Value="CodepagesCommon"/>
|
||||
</Item>
|
||||
</Files>
|
||||
<LazDoc Paths="../../docs/xml/lazutils"/>
|
||||
<i18n>
|
||||
|
@ -19,7 +19,7 @@ uses
|
||||
PasWString, StringHashList, TextStrings, Translations, UTF8Process,
|
||||
HTML2TextRender, Laz_AVL_Tree, CompWriterPas, LazPasReadUtil, IntegerList,
|
||||
LazVersion, UITypes, GraphType, LazTracer, LazStringUtils, LazUTF8SysUtils,
|
||||
ObjectLists, LazarusPackageIntf;
|
||||
ObjectLists, CodepagesAsian, CodepagesCommon, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -28,7 +28,8 @@ interface
|
||||
{$ifdef UseLCPConv}{$undef UseSystemCPConv}{$endif}
|
||||
|
||||
uses
|
||||
SysUtils, Classes, dos, LazUTF8
|
||||
SysUtils, Classes, dos, LazUTF8, CodepagesCommon
|
||||
{$IFnDEF DisableAsianCodePages},CodepagesAsian{$ENDIF}
|
||||
{$IFDEF EnableIconvEnc},iconvenc{$ENDIF};
|
||||
|
||||
type
|
||||
@ -114,7 +115,7 @@ type
|
||||
{$else}
|
||||
TConvertUTF8ToEncodingFunc = function(const s: string): string;
|
||||
{$endif}
|
||||
TCharToUTF8Table = array[char] of PChar;
|
||||
TCharToUTF8Table = CodepagesCommon.TCharToUTF8Table;
|
||||
TUnicodeToCharID = function(Unicode: cardinal): integer;
|
||||
var
|
||||
ConvertAnsiToUTF8: TConvertEncodingFunction = nil;
|
||||
@ -230,13 +231,45 @@ var
|
||||
EncodingValid: boolean = false;
|
||||
DefaultTextEncoding: string = EncodingAnsi;
|
||||
|
||||
function SearchTable(CodePageArr: array of word; id: cardinal): word;
|
||||
var
|
||||
idMid: integer;
|
||||
idLow, idHigh: integer;
|
||||
begin
|
||||
idLow := 0;
|
||||
idHigh := High(CodePageArr);
|
||||
while (idLow <= idHigh) do
|
||||
begin
|
||||
if idLow = idHigh then
|
||||
begin
|
||||
if CodePageArr[idLow] = id then
|
||||
begin
|
||||
Result := idLow;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Result := 0;
|
||||
end;
|
||||
Exit;
|
||||
end;
|
||||
idMid := (idLow + idHigh) div 2;
|
||||
if CodePageArr[idMid] = id then
|
||||
begin
|
||||
Result := idMid;
|
||||
Exit;
|
||||
end;
|
||||
if CodePageArr[idMid] > id then
|
||||
idHigh := idMid - 1;
|
||||
if CodePageArr[idMid] < id then
|
||||
idLow := idMid + 1;
|
||||
end;
|
||||
Result := 0;
|
||||
end;
|
||||
|
||||
{$IFnDEF DisableAsianCodePages}
|
||||
{$include asiancodepages.inc}
|
||||
{$include asiancodepagefunctions.inc}
|
||||
{$ENDIF}
|
||||
|
||||
{$include commoncodepages.inc}
|
||||
|
||||
{$IFDEF Windows}
|
||||
// AConsole - If false, it is the general system encoding,
|
||||
// if true, it is the console encoding
|
||||
|
Loading…
Reference in New Issue
Block a user