mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 20:28:13 +02:00
pas2js: added SetPas2JSGetFileSrcAttrCallBack
This commit is contained in:
parent
6c4198fdf3
commit
ffc3e1780d
@ -49,6 +49,7 @@ Type
|
||||
P : PDirectoryCache; ADirPath: PAnsiChar): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
TUnitAliasCallBack = Function (Data: Pointer;
|
||||
AUnitName: PAnsiChar; AUnitNameMaxLen: Integer): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
TGetFileSrcAttrCallBack = procedure(AData: Pointer; AFileName: PAnsiChar; AFileNameLen: Integer; AFileInfo: PPas2jsFileSrcAttr); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
|
||||
{ TLibraryPas2JSCompiler }
|
||||
|
||||
@ -67,6 +68,8 @@ Type
|
||||
FOnWriteJSCallBack: TWriteJSCallBack;
|
||||
FOnWriteJSData: Pointer;
|
||||
FReadBufferLen: Cardinal;
|
||||
FOnGetFileSrcAttr: TGetFileSrcAttrCallBack;
|
||||
FOnGetFileSrcAttrData: Pointer;
|
||||
function GetLogEncoding: String;
|
||||
procedure SetLogEncoding(AValue: String);
|
||||
Protected
|
||||
@ -75,6 +78,7 @@ Type
|
||||
AErrorClass : PAnsiChar; Var AErrorClassLength : Longint);
|
||||
Function ReadFile(aFilename: string; var aSource: string): boolean; virtual;
|
||||
Function ReadDirectory(Dir: TPas2jsCachedDirectory): boolean; virtual;
|
||||
procedure GetFileSrcAttr(AFilename: string; var AAttr: TPas2jsFileSrcAttr);
|
||||
Public
|
||||
Constructor Create; override;
|
||||
procedure CheckUnitAlias(var UseUnitName: string); override;
|
||||
@ -94,6 +98,8 @@ Type
|
||||
Property OnReadDirData: Pointer read FOnReadDirData write FOnReadDirData;
|
||||
Property OnUnitAlias: TUnitAliasCallBack read FOnUnitAlias write FOnUnitAlias;
|
||||
Property OnUnitAliasData: Pointer read FOnUnitAliasData write FOnUnitAliasData;
|
||||
property OnGetFileSrcAttr: TGetFileSrcAttrCallBack read FOnGetFileSrcAttr write FOnGetFileSrcAttr;
|
||||
property OnGetFileSrcAttrData: Pointer read FOnGetFileSrcAttrData write FOnGetFileSrcAttrData;
|
||||
end;
|
||||
|
||||
Type
|
||||
@ -111,6 +117,7 @@ Procedure FreePas2JSCompiler(P : PPas2JSCompiler); {$IFDEF UseCDecl}cdecl{$ELSE}
|
||||
Function GetPas2JSCompiler : PPas2JSCompiler; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
Procedure GetPas2JSCompilerLastError(P : PPas2JSCompiler; AError : PAnsiChar; Var AErrorLength : Longint; AErrorClass : PAnsiChar; Var AErrorClassLength : Longint); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
procedure SetPas2JSLogEncoding(P : PPas2JSCompiler; Enconding: PAnsiChar); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
procedure SetPas2JSGetFileSrcAttrCallBack(P: PPas2JSCompiler; ACallBack: TGetFileSrcAttrCallBack; ACallBackData: Pointer); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
|
||||
implementation
|
||||
|
||||
@ -124,6 +131,13 @@ begin
|
||||
Result:=OnReadDir(FOnReadDirData,Dir,PAnsiChar(Dir.Path));
|
||||
end;
|
||||
|
||||
procedure TLibraryPas2JSCompiler.GetFileSrcAttr(AFilename: string; var AAttr: TPas2jsFileSrcAttr);
|
||||
begin
|
||||
AAttr.AllowSrcMap := True;
|
||||
if Assigned(OnGetFileSrcAttr) then
|
||||
OnGetFileSrcAttr(FOnGetFileSrcAttrData, PAnsiChar(AFilename), Length(AFileName), @AAttr);
|
||||
end;
|
||||
|
||||
function TLibraryPas2JSCompiler.GetLogEncoding: String;
|
||||
begin
|
||||
Result := Log.Encoding;
|
||||
@ -222,6 +236,7 @@ begin
|
||||
FileCache.OnReadDirectory:=@ReadDirectory;
|
||||
ConfigSupport:=TPas2JSFileConfigSupport.Create(Self);
|
||||
PostProcessorSupport:=TPas2JSFSPostProcessorSupport.Create(Self);
|
||||
FileCache.OnGetFileSrcAttr:=@GetFileSrcAttr;
|
||||
end;
|
||||
|
||||
procedure TLibraryPas2JSCompiler.CheckUnitAlias(var UseUnitName: string);
|
||||
@ -373,5 +388,11 @@ begin
|
||||
TLibraryPas2JSCompiler(P).LogEncoding := Enconding;
|
||||
end;
|
||||
|
||||
procedure SetPas2JSGetFileSrcAttrCallBack(P: PPas2JSCompiler; ACallBack: TGetFileSrcAttrCallBack; ACallBackData: Pointer); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||
begin
|
||||
TLibraryPas2JSCompiler(P).OnGetFileSrcAttr := ACallBack;
|
||||
TLibraryPas2JSCompiler(P).OnGetFileSrcAttrData := ACallBackData;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -18,7 +18,8 @@ exports
|
||||
SetPas2JSUnitAliasCallBack,
|
||||
SetPas2JSCompilerLogCallBack,
|
||||
GetPas2JSCompilerLastError,
|
||||
SetPas2JSLogEncoding;
|
||||
SetPas2JSLogEncoding,
|
||||
SetPas2JSGetFileSrcAttrCallBack;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user