mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-21 19:21:37 +02:00

+ added TBreakpoint and TBreakpointCollection + added cmResetDebugger,cmGrep,CmToggleBreakpoint + Breakpoint list in INIFile * Select items now also depend of SwitchMode * Reading of option '-g' was not possible ! + added search for -Fu args pathes in TryToOpen + added code for automatic opening of FileDialog if source not found
147 lines
4.2 KiB
PHP
147 lines
4.2 KiB
PHP
{
|
|
$Id$
|
|
This file is part of the Free Pascal Integrated Development Environment
|
|
Copyright (c) 1998 by Berczi Gabor
|
|
|
|
Tools menu entries
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
procedure TIDEApp.Calculator;
|
|
begin
|
|
with CalcWindow^ do
|
|
begin
|
|
if GetState(sfVisible)=false then Show;
|
|
MakeFirst;
|
|
end;
|
|
end;
|
|
|
|
procedure TIDEApp.ExecuteTool(Idx: integer);
|
|
var Title,ProgramPath,Params: string;
|
|
W: word;
|
|
Err: integer;
|
|
begin
|
|
if (Idx<1) or (Idx>GetToolCount) then Exit;
|
|
GetToolParams(Idx-1,Title,ProgramPath,Params,W);
|
|
Err:=ParseToolParams(Params,false);
|
|
if Err=-1 then Exit;
|
|
if Err<>0 then
|
|
begin ErrorBox(^C'Error parsing tool params.',nil); Exit; end;
|
|
DoExecute(ProgramPath,Params,false);
|
|
if (DosError<>0) then
|
|
ErrorBox('Error executing tool '+KillTilde(GetToolName(Idx-1)),nil) else
|
|
if DosExitCode<>0 then
|
|
ErrorBox('Execution successful. Exit code '+IntToStr(DosExitCode),nil);
|
|
end;
|
|
|
|
procedure TIDEApp.Grep;
|
|
|
|
var PGrepDialog : PCenterDialog;
|
|
R,R2 : TRect;
|
|
IL : PInputLine;
|
|
p,lineNb : longint;
|
|
error : word;
|
|
GrepArgs,Line,ModuleName : String;
|
|
GrepOut : text;
|
|
Params : Array[0..4] of longint;
|
|
|
|
Const GrepOutName = 'grep$$.out';
|
|
{$ifdef linux}
|
|
GrepExeName = 'grep';
|
|
{$else linux}
|
|
GrepExeName = 'c:\djgpp\bin\grep.exe';
|
|
{$endif linux}
|
|
begin
|
|
R.Assign(0,0,45,6);
|
|
new(PGrepDialog,Init(R,'Grep arguments'));
|
|
with PGrepDialog^ do
|
|
begin
|
|
R2.A.Y:=R.A.Y+3;
|
|
R2.B.Y:=R2.A.Y+1;
|
|
R2.A.X:=R.A.X+3;
|
|
R2.B.X:=R.B.X-3;
|
|
New(IL, Init(R2, 128));
|
|
If Assigned(DeskTop^.First) and
|
|
(DeskTop^.First^.HelpCtx=hcSourceWindow) then
|
|
GrepArgs:=PSourceWindow(DeskTop^.First)^.Editor^.GetCurrentWord
|
|
else
|
|
GrepArgs:='';
|
|
GrepArgs:='-n -i '+GrepArgs+' *.pas *.pp *.inc';
|
|
IL^.Data^:=GrepArgs;
|
|
Insert(IL);
|
|
R2.Move(0,-1);
|
|
Insert(New(PLabel, Init(R2, '~G~rep arguments', IL)));
|
|
end;
|
|
|
|
InsertButtons(PGrepDialog);
|
|
if Desktop^.ExecView(PGrepDialog)=cmOK then
|
|
begin
|
|
GrepArgs:=IL^.Data^;
|
|
{ Linux ? }
|
|
if not ExecuteRedir(GrepExeName,GrepArgs,GrepOutName,'grep$$.err') then
|
|
Begin
|
|
{ 2 as exit code just means that
|
|
some file vwere not found ! }
|
|
if (IOStatus<>0) or (ExecuteResult<>2) then
|
|
begin
|
|
Params[0]:=IOStatus;
|
|
Params[1]:=ExecuteResult;
|
|
WarningBox(#3'Error running Grep'#13#3'DosError = %d'#13#3'Exit code = %d',@Params);
|
|
end;
|
|
End;
|
|
Assign(GrepOut,GrepOutName);
|
|
Reset(GrepOut);
|
|
While not eof(GrepOut) do
|
|
begin
|
|
readln(GrepOut,Line);
|
|
p:=pos(':',line);
|
|
if p>0 then
|
|
begin
|
|
ModuleName:=copy(Line,1,p-1);
|
|
Line:=Copy(Line,p+1,255);
|
|
p:=pos(':',Line);
|
|
val(copy(Line,1,p-1),lineNb,error);
|
|
if error=0 then
|
|
ProgramInfoWindow^.AddMessage(V_Normal,Copy(Line,p+1,255),
|
|
ModuleName,LineNb);
|
|
end;
|
|
ProgramInfoWindow^.Show;
|
|
ProgramInfoWindow^.MakeFirst;
|
|
end;
|
|
end;
|
|
Dispose(PGrepDialog, Done);
|
|
end;
|
|
{
|
|
$Log$
|
|
Revision 1.3 1999-02-04 13:32:09 pierre
|
|
* Several things added (I cannot commit them independently !)
|
|
+ added TBreakpoint and TBreakpointCollection
|
|
+ added cmResetDebugger,cmGrep,CmToggleBreakpoint
|
|
+ Breakpoint list in INIFile
|
|
* Select items now also depend of SwitchMode
|
|
* Reading of option '-g' was not possible !
|
|
+ added search for -Fu args pathes in TryToOpen
|
|
+ added code for automatic opening of FileDialog
|
|
if source not found
|
|
|
|
Revision 1.2 1999/01/21 11:54:21 peter
|
|
+ tools menu
|
|
+ speedsearch in symbolbrowser
|
|
* working run command
|
|
|
|
Revision 1.1 1998/12/22 14:27:54 peter
|
|
* moved
|
|
|
|
Revision 1.2 1998/12/22 10:39:49 peter
|
|
+ options are now written/read
|
|
+ find and replace routines
|
|
|
|
}
|