mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-28 12:02:15 -05:00
LoadDLL is now LoadLib (and it can also be used as a compiler directive {$loadlib libsmart}). Fixed a bug in PS-Script. Also fixed a segfault which would occur if you would do Ctrl + Space before it was done filling the corebuffer..
This commit is contained in:
parent
a4c7c30e77
commit
e3d359b088
@ -46,7 +46,7 @@ uses
|
|||||||
CastaliaSimplePasPar, v_AutoCompleteForm, PSDump;
|
CastaliaSimplePasPar, v_AutoCompleteForm, PSDump;
|
||||||
|
|
||||||
const
|
const
|
||||||
SimbaVersion = 670;
|
SimbaVersion = 675;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -539,7 +539,12 @@ var
|
|||||||
b: TStringList;
|
b: TStringList;
|
||||||
ms: TMemoryStream;
|
ms: TMemoryStream;
|
||||||
begin
|
begin
|
||||||
Index := PluginsGlob.LoadPlugin(LibName);
|
try
|
||||||
|
Index := PluginsGlob.LoadPlugin(LibName);
|
||||||
|
except
|
||||||
|
Result := false;
|
||||||
|
Index := -1;
|
||||||
|
end;
|
||||||
if (Index < 0) then
|
if (Index < 0) then
|
||||||
Exit(False)
|
Exit(False)
|
||||||
else
|
else
|
||||||
@ -2022,6 +2027,7 @@ var
|
|||||||
a: TPSScriptExtension;
|
a: TPSScriptExtension;
|
||||||
b: TStringList;
|
b: TStringList;
|
||||||
ms: TMemoryStream;
|
ms: TMemoryStream;
|
||||||
|
buf : TCodeInsight;
|
||||||
begin
|
begin
|
||||||
if SimbaForm.UpdatingFonts then
|
if SimbaForm.UpdatingFonts then
|
||||||
begin
|
begin
|
||||||
@ -2053,15 +2059,16 @@ begin
|
|||||||
|
|
||||||
CoreDefines.AddStrings(a.Defines);
|
CoreDefines.AddStrings(a.Defines);
|
||||||
|
|
||||||
SetLength(CoreBuffer, 1);
|
buf := TCodeInsight.Create;
|
||||||
CoreBuffer[0] := TCodeInsight.Create;
|
with buf do
|
||||||
with CoreBuffer[0] do
|
|
||||||
begin
|
begin
|
||||||
OnMessage := @SimbaForm.OnCCMessage;
|
OnMessage := @SimbaForm.OnCCMessage;
|
||||||
b.SaveToStream(ms);
|
b.SaveToStream(ms);
|
||||||
Run(ms, nil, -1, True);
|
Run(ms, nil, -1, True);
|
||||||
FileName := '"PSCORE"';
|
FileName := '"PSCORE"';
|
||||||
end;
|
end;
|
||||||
|
SetLength(CoreBuffer, 1);
|
||||||
|
CoreBuffer[0] := buf;
|
||||||
finally
|
finally
|
||||||
b.Free;
|
b.Free;
|
||||||
a.Free;
|
a.Free;
|
||||||
@ -2517,7 +2524,7 @@ begin
|
|||||||
if (NewPos <> OldPos) and (NewPos <> -1) then
|
if (NewPos <> OldPos) and (NewPos <> -1) then
|
||||||
begin;
|
begin;
|
||||||
Tabs.Move(OldPos,NewPos);
|
Tabs.Move(OldPos,NewPos);
|
||||||
PageControl1.Pages[OldPos].TabIndex:= NewPos;
|
PageControl1.Pages[OldPos].PageIndex := NewPos;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ var
|
|||||||
path : string;
|
path : string;
|
||||||
begin
|
begin
|
||||||
result := false;
|
result := false;
|
||||||
if CompareText(DirectiveName,'LOADDLL') = 0 then
|
if CompareText(DirectiveName,'LOADLIB') = 0 then
|
||||||
begin
|
begin
|
||||||
if DirectiveArgs <> '' then
|
if DirectiveArgs <> '' then
|
||||||
begin;
|
begin;
|
||||||
@ -436,7 +436,7 @@ begin
|
|||||||
result:= True;
|
result:= True;
|
||||||
end;
|
end;
|
||||||
end else
|
end else
|
||||||
psWriteln('Your LoadDLL directive has no params, thus cannot find the plugin');
|
psWriteln('Your LoadLib directive has no params, thus cannot find the plugin');
|
||||||
end else
|
end else
|
||||||
if CompareText(DirectiveName,'INCLUDE_ONCE') = 0 then
|
if CompareText(DirectiveName,'INCLUDE_ONCE') = 0 then
|
||||||
begin
|
begin
|
||||||
@ -598,7 +598,7 @@ procedure TPSThread.PSScriptProcessUnknowDirective(Sender: TPSPreProcessor;
|
|||||||
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
||||||
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
||||||
begin
|
begin
|
||||||
Continue:= ProcessDirective(DirectiveName, DirectiveParam);
|
Continue:=not ProcessDirective(DirectiveName, DirectiveParam);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Muf_Conv_to_PS_Conv( conv : integer) : TDelphiCallingConvention;
|
function Muf_Conv_to_PS_Conv( conv : integer) : TDelphiCallingConvention;
|
||||||
|
@ -133,7 +133,7 @@ implementation
|
|||||||
ii := i;
|
ii := i;
|
||||||
end;
|
end;
|
||||||
if ii = -1 then
|
if ii = -1 then
|
||||||
raise Exception.CreateFMT('Plugins(%s) has not been found',[PluginName]);
|
raise Exception.CreateFMT('Plugin(%s) has not been found',[PluginName]);
|
||||||
for i := 0 to PluginLen - 1 do
|
for i := 0 to PluginLen - 1 do
|
||||||
if Loaded[i].filename = (PluginDirs.Strings[ii] + PluginName + PlugExt) then
|
if Loaded[i].filename = (PluginDirs.Strings[ii] + PluginName + PlugExt) then
|
||||||
Exit(i);
|
Exit(i);
|
||||||
|
@ -1546,7 +1546,7 @@ begin
|
|||||||
FDirectiveParamOrigin := FOrigin + FTokenPos;
|
FDirectiveParamOrigin := FOrigin + FTokenPos;
|
||||||
FTokenPos := Run;
|
FTokenPos := Run;
|
||||||
case KeyHash of
|
case KeyHash of
|
||||||
60: if KeyComp('LOADDLL') then
|
55: if KeyComp('LOADLIB') then
|
||||||
fTokenID := tokIncludeDirect
|
fTokenID := tokIncludeDirect
|
||||||
else
|
else
|
||||||
fTokenID := tokBorComment;
|
fTokenID := tokBorComment;
|
||||||
@ -2388,6 +2388,10 @@ begin
|
|||||||
if KeyComp('UNDEF') then
|
if KeyComp('UNDEF') then
|
||||||
Result := tokUndefDirect else
|
Result := tokUndefDirect else
|
||||||
Result := tokCompDirect;
|
Result := tokCompDirect;
|
||||||
|
55:
|
||||||
|
if KeyComp('LOADLIB') then
|
||||||
|
result := tokIncludeDirect else
|
||||||
|
result := tokCompDirect;
|
||||||
56:
|
56:
|
||||||
if KeyComp('ELSEIF') then
|
if KeyComp('ELSEIF') then
|
||||||
Result := tokElseIfDirect else
|
Result := tokElseIfDirect else
|
||||||
|
@ -292,7 +292,7 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
if (not Sender.IsJunk) and (Param <> '') then
|
if (not Sender.IsJunk) and (Param <> '') then
|
||||||
begin
|
begin
|
||||||
p := Pos('loaddll', LowerCase(Sender.Token));
|
p := Pos('loadlib', LowerCase(Sender.Token));
|
||||||
if (p > 0) and (p <= 3) then
|
if (p > 0) and (p <= 3) then
|
||||||
begin
|
begin
|
||||||
if LoadLibrary(Param) then
|
if LoadLibrary(Param) then
|
||||||
@ -1322,6 +1322,8 @@ procedure TCodeInsight.FillSynCompletionProposal(ItemList, InsertList: TStrings;
|
|||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
if item = nil then
|
||||||
|
exit;
|
||||||
if (not Item.Proposal_Filled) then
|
if (not Item.Proposal_Filled) then
|
||||||
Item.FillProposal;
|
Item.FillProposal;
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ procedure callObjectOnProcessDirective (
|
|||||||
const DirectiveName, DirectiveParam: tbtstring;
|
const DirectiveName, DirectiveParam: tbtstring;
|
||||||
Var Continue: Boolean);
|
Var Continue: Boolean);
|
||||||
begin
|
begin
|
||||||
TPSScript (Sender.ID).DoOnProcessUnknowDirective(Sender, Parser, Active, DirectiveName, DirectiveParam, Continue);
|
TPSScript (Sender.ID).DoOnProcessDirective(Sender, Parser, Active, DirectiveName, DirectiveParam, Continue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure callObjectOnProcessUnknowDirective (
|
procedure callObjectOnProcessUnknowDirective (
|
||||||
@ -457,7 +457,7 @@ procedure callObjectOnProcessUnknowDirective (
|
|||||||
const DirectiveName, DirectiveParam: tbtstring;
|
const DirectiveName, DirectiveParam: tbtstring;
|
||||||
Var Continue: Boolean);
|
Var Continue: Boolean);
|
||||||
begin
|
begin
|
||||||
TPSScript (Sender.ID).DoOnProcessDirective(Sender, Parser, Active, DirectiveName, DirectiveParam, Continue);
|
TPSScript (Sender.ID).DoOnProcessUnknowDirective(Sender, Parser, Active, DirectiveName, DirectiveParam, Continue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ begin
|
|||||||
with CL.AddClassN(CL.FindClass('TPage'),'TTabSheet') do
|
with CL.AddClassN(CL.FindClass('TPage'),'TTabSheet') do
|
||||||
begin
|
begin
|
||||||
RegisterProperty('PageControl', 'TPageControl', iptrw);
|
RegisterProperty('PageControl', 'TPageControl', iptrw);
|
||||||
RegisterProperty('TabIndex', 'Integer', iptrw);
|
RegisterProperty('TabIndex', 'Integer', iptr);
|
||||||
RegisterProperty('OnMouseDown','TMouseEvent',iptrw);
|
RegisterProperty('OnMouseDown','TMouseEvent',iptrw);
|
||||||
RegisterProperty('OnMouseMove','TMouseMoveEvent',iptrw);
|
RegisterProperty('OnMouseMove','TMouseMoveEvent',iptrw);
|
||||||
RegisterProperty('OnMouseUp','TMouseEvent',iptrw);
|
RegisterProperty('OnMouseUp','TMouseEvent',iptrw);
|
||||||
@ -434,8 +434,10 @@ procedure TPageControlActivePageIndex_R(Self: TPageControl; var T: Integer);
|
|||||||
begin T := Self.ActivePageIndex; end;
|
begin T := Self.ActivePageIndex; end;
|
||||||
|
|
||||||
(*----------------------------------------------------------------------------*)
|
(*----------------------------------------------------------------------------*)
|
||||||
|
{$IFNDEF FPC}
|
||||||
procedure TTabSheetTabIndex_W(Self: TTabSheet; const T: Integer);
|
procedure TTabSheetTabIndex_W(Self: TTabSheet; const T: Integer);
|
||||||
begin Self.TabIndex := T; end;
|
begin Self.TabIndex := T; end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
(*----------------------------------------------------------------------------*)
|
(*----------------------------------------------------------------------------*)
|
||||||
procedure TTabSheetTabIndex_R(Self: TTabSheet; var T: Integer);
|
procedure TTabSheetTabIndex_R(Self: TTabSheet; var T: Integer);
|
||||||
@ -671,7 +673,7 @@ begin
|
|||||||
with CL.Add(TTabSheet) do
|
with CL.Add(TTabSheet) do
|
||||||
begin
|
begin
|
||||||
RegisterPropertyHelper(@TTabSheetPageControl_R,@TTabSheetPageControl_W,'PageControl');
|
RegisterPropertyHelper(@TTabSheetPageControl_R,@TTabSheetPageControl_W,'PageControl');
|
||||||
RegisterPropertyHelper(@TTabSheetTabIndex_R,@TTabSheetTabIndex_W,'TabIndex');
|
RegisterPropertyHelper(@TTabSheetTabIndex_R,nil,'TabIndex');
|
||||||
RegisterEventPropertyHelper(@TControlOnMouseDown_R,@TControlOnMouseDown_W,'OnMouseDown');
|
RegisterEventPropertyHelper(@TControlOnMouseDown_R,@TControlOnMouseDown_W,'OnMouseDown');
|
||||||
RegisterEventPropertyHelper(@TControlOnMouseMove_R,@TControlOnMouseMove_W,'OnMouseMove');
|
RegisterEventPropertyHelper(@TControlOnMouseMove_R,@TControlOnMouseMove_W,'OnMouseMove');
|
||||||
RegisterEventPropertyHelper(@TControlOnMouseUp_R,@TControlOnMouseUp_W,'OnMouseUp');
|
RegisterEventPropertyHelper(@TControlOnMouseUp_R,@TControlOnMouseUp_W,'OnMouseUp');
|
||||||
|
Loading…
Reference in New Issue
Block a user