lazres: unicode file names

git-svn-id: trunk@46802 -
This commit is contained in:
mattias 2014-11-12 18:34:43 +00:00
parent 6e411be053
commit 7340162085

View File

@ -36,7 +36,7 @@ program LazRes;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
uses uses
Classes, SysUtils, FileUtil, LCLProc, LResources, Classes, SysUtils, FileUtil, LazUTF8Classes, LCLProc, LResources,
resource, reswriter, bitmapresource, groupresource, groupiconresource, resource, reswriter, bitmapresource, groupresource, groupiconresource,
groupcursorresource; groupcursorresource;
@ -71,12 +71,12 @@ end;
procedure OutputLRSFile(BinFilename, ResourceName: String; ResMemStream: TMemoryStream); procedure OutputLRSFile(BinFilename, ResourceName: String; ResMemStream: TMemoryStream);
var var
BinExt,ResourceType: String; BinExt,ResourceType: String;
BinFileStream: TFileStream; BinFileStream: TFileStreamUTF8;
BinMemStream: TMemoryStream; BinMemStream: TMemoryStream;
begin begin
dbgout(BinFilename); dbgout(BinFilename);
try try
BinFileStream:=TFileStream.Create(UTF8ToSys(BinFilename),fmOpenRead); BinFileStream:=TFileStreamUTF8.Create(BinFilename,fmOpenRead);
BinMemStream:=TMemoryStream.Create; BinMemStream:=TMemoryStream.Create;
try try
BinMemStream.CopyFrom(BinFileStream,BinFileStream.Size); BinMemStream.CopyFrom(BinFileStream,BinFileStream.Size);
@ -160,9 +160,9 @@ var
function GetResourceStream: TMemoryStream; function GetResourceStream: TMemoryStream;
var var
FS: TFileStream; FS: TFileStreamUTF8;
begin begin
FS := TFileStream.Create(UTF8ToSys(FileName), fmOpenRead); FS := TFileStreamUTF8.Create(FileName, fmOpenRead);
Result := TMemoryStream.Create; Result := TMemoryStream.Create;
try try
Result.CopyFrom(FS, FS.Size); Result.CopyFrom(FS, FS.Size);
@ -292,7 +292,7 @@ end;
var var
a: Integer; a: Integer;
ResourceFilename,FullResourceFilename:String; ResourceFilename,FullResourceFilename:String;
ResFileStream:TFileStream; ResFileStream:TFileStreamUTF8;
ResMemStream:TMemoryStream; ResMemStream:TMemoryStream;
FileList:TStringList; FileList:TStringList;
S: String; S: String;
@ -305,7 +305,7 @@ begin
,' resourcefilename @filelist'); ,' resourcefilename @filelist');
exit; exit;
end; end;
FileList:=TStringList.Create; FileList:=TStringListUTF8.Create;
try try
if ParamStrUTF8(2)[1] = '@' then if ParamStrUTF8(2)[1] = '@' then
begin begin
@ -317,7 +317,7 @@ begin
debugln('ERROR: file list not found: ',S); debugln('ERROR: file list not found: ',S);
exit; exit;
end; end;
FileList.LoadFromFile(UTF8ToSys(S)); FileList.LoadFromFile(S);
for a:=FileList.Count-1 downto 0 do for a:=FileList.Count-1 downto 0 do
if FileList[a]='' then if FileList[a]='' then
FileList.Delete(a); FileList.Delete(a);
@ -352,7 +352,7 @@ begin
end; end;
try try
ResFileStream:=TFileStream.Create(UTF8ToSys(ResourceFilename),fmCreate); ResFileStream:=TFileStreamUTF8.Create(ResourceFilename,fmCreate);
except except
debugln('ERROR: unable to create file ''', ResourceFilename, ''''); debugln('ERROR: unable to create file ''', ResourceFilename, '''');
halt(1); halt(1);