mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-27 19:50:26 +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};
|
P : PDirectoryCache; ADirPath: PAnsiChar): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
||||||
TUnitAliasCallBack = Function (Data: Pointer;
|
TUnitAliasCallBack = Function (Data: Pointer;
|
||||||
AUnitName: PAnsiChar; AUnitNameMaxLen: Integer): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
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 }
|
{ TLibraryPas2JSCompiler }
|
||||||
|
|
||||||
@ -67,6 +68,8 @@ Type
|
|||||||
FOnWriteJSCallBack: TWriteJSCallBack;
|
FOnWriteJSCallBack: TWriteJSCallBack;
|
||||||
FOnWriteJSData: Pointer;
|
FOnWriteJSData: Pointer;
|
||||||
FReadBufferLen: Cardinal;
|
FReadBufferLen: Cardinal;
|
||||||
|
FOnGetFileSrcAttr: TGetFileSrcAttrCallBack;
|
||||||
|
FOnGetFileSrcAttrData: Pointer;
|
||||||
function GetLogEncoding: String;
|
function GetLogEncoding: String;
|
||||||
procedure SetLogEncoding(AValue: String);
|
procedure SetLogEncoding(AValue: String);
|
||||||
Protected
|
Protected
|
||||||
@ -75,6 +78,7 @@ Type
|
|||||||
AErrorClass : PAnsiChar; Var AErrorClassLength : Longint);
|
AErrorClass : PAnsiChar; Var AErrorClassLength : Longint);
|
||||||
Function ReadFile(aFilename: string; var aSource: string): boolean; virtual;
|
Function ReadFile(aFilename: string; var aSource: string): boolean; virtual;
|
||||||
Function ReadDirectory(Dir: TPas2jsCachedDirectory): boolean; virtual;
|
Function ReadDirectory(Dir: TPas2jsCachedDirectory): boolean; virtual;
|
||||||
|
procedure GetFileSrcAttr(AFilename: string; var AAttr: TPas2jsFileSrcAttr);
|
||||||
Public
|
Public
|
||||||
Constructor Create; override;
|
Constructor Create; override;
|
||||||
procedure CheckUnitAlias(var UseUnitName: string); override;
|
procedure CheckUnitAlias(var UseUnitName: string); override;
|
||||||
@ -94,6 +98,8 @@ Type
|
|||||||
Property OnReadDirData: Pointer read FOnReadDirData write FOnReadDirData;
|
Property OnReadDirData: Pointer read FOnReadDirData write FOnReadDirData;
|
||||||
Property OnUnitAlias: TUnitAliasCallBack read FOnUnitAlias write FOnUnitAlias;
|
Property OnUnitAlias: TUnitAliasCallBack read FOnUnitAlias write FOnUnitAlias;
|
||||||
Property OnUnitAliasData: Pointer read FOnUnitAliasData write FOnUnitAliasData;
|
Property OnUnitAliasData: Pointer read FOnUnitAliasData write FOnUnitAliasData;
|
||||||
|
property OnGetFileSrcAttr: TGetFileSrcAttrCallBack read FOnGetFileSrcAttr write FOnGetFileSrcAttr;
|
||||||
|
property OnGetFileSrcAttrData: Pointer read FOnGetFileSrcAttrData write FOnGetFileSrcAttrData;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
@ -111,6 +117,7 @@ Procedure FreePas2JSCompiler(P : PPas2JSCompiler); {$IFDEF UseCDecl}cdecl{$ELSE}
|
|||||||
Function GetPas2JSCompiler : PPas2JSCompiler; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
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 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 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
|
implementation
|
||||||
|
|
||||||
@ -124,6 +131,13 @@ begin
|
|||||||
Result:=OnReadDir(FOnReadDirData,Dir,PAnsiChar(Dir.Path));
|
Result:=OnReadDir(FOnReadDirData,Dir,PAnsiChar(Dir.Path));
|
||||||
end;
|
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;
|
function TLibraryPas2JSCompiler.GetLogEncoding: String;
|
||||||
begin
|
begin
|
||||||
Result := Log.Encoding;
|
Result := Log.Encoding;
|
||||||
@ -222,6 +236,7 @@ begin
|
|||||||
FileCache.OnReadDirectory:=@ReadDirectory;
|
FileCache.OnReadDirectory:=@ReadDirectory;
|
||||||
ConfigSupport:=TPas2JSFileConfigSupport.Create(Self);
|
ConfigSupport:=TPas2JSFileConfigSupport.Create(Self);
|
||||||
PostProcessorSupport:=TPas2JSFSPostProcessorSupport.Create(Self);
|
PostProcessorSupport:=TPas2JSFSPostProcessorSupport.Create(Self);
|
||||||
|
FileCache.OnGetFileSrcAttr:=@GetFileSrcAttr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLibraryPas2JSCompiler.CheckUnitAlias(var UseUnitName: string);
|
procedure TLibraryPas2JSCompiler.CheckUnitAlias(var UseUnitName: string);
|
||||||
@ -373,5 +388,11 @@ begin
|
|||||||
TLibraryPas2JSCompiler(P).LogEncoding := Enconding;
|
TLibraryPas2JSCompiler(P).LogEncoding := Enconding;
|
||||||
end;
|
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.
|
end.
|
||||||
|
|
||||||
|
@ -18,7 +18,8 @@ exports
|
|||||||
SetPas2JSUnitAliasCallBack,
|
SetPas2JSUnitAliasCallBack,
|
||||||
SetPas2JSCompilerLogCallBack,
|
SetPas2JSCompilerLogCallBack,
|
||||||
GetPas2JSCompilerLastError,
|
GetPas2JSCompilerLastError,
|
||||||
SetPas2JSLogEncoding;
|
SetPas2JSLogEncoding,
|
||||||
|
SetPas2JSGetFileSrcAttrCallBack;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user