mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-23 22:52:13 +02:00
* fixes from gabor
This commit is contained in:
parent
cb52b0ac0a
commit
f58e010de1
@ -315,10 +315,14 @@ end;
|
||||
|
||||
procedure TDebugController.Continue;
|
||||
begin
|
||||
{$ifdef NODEBUG}
|
||||
NoDebugger;
|
||||
{$else}
|
||||
if not debuggee_started then
|
||||
Run
|
||||
else
|
||||
inherited Continue;
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
procedure TDebugController.UntilReturn;
|
||||
@ -1948,7 +1952,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.22 1999-07-12 13:14:15 pierre
|
||||
Revision 1.23 1999-07-28 23:11:17 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.22 1999/07/12 13:14:15 pierre
|
||||
* LineEnd bug corrected, now goes end of text even if selected
|
||||
+ Until Return for debugger
|
||||
+ Code for Quit inside GDB Window
|
||||
|
@ -90,7 +90,7 @@ begin
|
||||
{$ifndef DEV}Exit;{$endif}
|
||||
|
||||
F^.CreateResource(resDesktopFlags,rcBinary,0);
|
||||
F^.AddResourceEntry(resDesktopFlags,langDefault,0,@DesktopFileFlags,
|
||||
F^.AddResourceEntry(resDesktopFlags,langDefault,0,DesktopFileFlags,
|
||||
SizeOf(DesktopFileFlags));
|
||||
end;
|
||||
|
||||
@ -137,7 +137,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 1999-06-30 23:58:13 pierre
|
||||
Revision 1.6 1999-07-28 23:11:18 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.5 1999/06/30 23:58:13 pierre
|
||||
+ BreakpointsList Window implemented
|
||||
with Edit/New/Delete functions
|
||||
+ Individual breakpoint dialog with support for all types
|
||||
|
@ -48,6 +48,9 @@ end;
|
||||
|
||||
procedure TIDEApp.DoShowBreakpointList;
|
||||
begin
|
||||
{$ifdef NODEBUG}
|
||||
NoDebugger;
|
||||
{$else}
|
||||
If assigned(BreakpointsWindow) then
|
||||
begin
|
||||
BreakpointsWindow^.Update;
|
||||
@ -59,10 +62,14 @@ begin
|
||||
New(BreakpointsWindow,Init);
|
||||
Desktop^.Insert(BreakpointsWindow);
|
||||
end;
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
procedure TIDEApp.DoShowWatches;
|
||||
begin
|
||||
{$ifdef NODEBUG}
|
||||
NoDebugger;
|
||||
{$else}
|
||||
If assigned(WatchesWindow) then
|
||||
begin
|
||||
WatchesWindow^.Update;
|
||||
@ -73,9 +80,15 @@ begin
|
||||
New(WatchesWindow,Init);
|
||||
Desktop^.Insert(WatchesWindow);
|
||||
end;
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
procedure TIDEApp.DoAddWatch;
|
||||
{$ifdef NODEBUG}
|
||||
begin
|
||||
NoDebugger;
|
||||
end;
|
||||
{$else}
|
||||
var
|
||||
P: PWatch;
|
||||
EditorWindow : PSourceWindow;
|
||||
@ -95,10 +108,14 @@ begin
|
||||
else
|
||||
dispose(P,Done);
|
||||
end;
|
||||
{$endif NODEBUG}
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.6 1999-07-10 01:24:19 pierre
|
||||
Revision 1.7 1999-07-28 23:11:19 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.6 1999/07/10 01:24:19 pierre
|
||||
+ First implementation of watches window
|
||||
|
||||
Revision 1.5 1999/06/30 23:58:17 pierre
|
||||
|
@ -98,7 +98,6 @@ begin
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
|
||||
procedure TIDEApp.DoRun;
|
||||
begin
|
||||
if (not ExistsFile(ExeFile)) or (CompilationPhase<>cpDone) then
|
||||
@ -239,7 +238,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.16 1999-07-12 13:14:19 pierre
|
||||
Revision 1.17 1999-07-28 23:11:20 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.16 1999/07/12 13:14:19 pierre
|
||||
* LineEnd bug corrected, now goes end of text even if selected
|
||||
+ Until Return for debugger
|
||||
+ Code for Quit inside GDB Window
|
||||
|
@ -95,7 +95,7 @@ begin
|
||||
OpenSymbolBrowser(0,0,'Units','Global scope',nil,S,nil,nil,nil);
|
||||
end;
|
||||
|
||||
function SymbolDialog(const S : string) : PDialog;
|
||||
function SymbolDialog(S : string) : PDialog;
|
||||
var D: PDialog;
|
||||
R,R1,R2: TRect;
|
||||
IL: PInputLine;
|
||||
@ -137,7 +137,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 1999-06-29 12:49:55 pierre
|
||||
Revision 1.11 1999-07-28 23:11:21 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.10 1999/06/29 12:49:55 pierre
|
||||
* SearchSymbol works
|
||||
|
||||
Revision 1.9 1999/06/28 19:32:22 peter
|
||||
|
@ -1160,7 +1160,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.17 1999-06-28 12:35:05 pierre
|
||||
Revision 1.18 1999-07-28 23:11:22 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.17 1999/06/28 12:35:05 pierre
|
||||
+ CloseAllBrowsers needed before compilation to avoid problems
|
||||
+ ModulesCollection and GlobalsCollection to avoid memory leaks
|
||||
|
||||
|
@ -1505,7 +1505,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.11 1999-07-12 13:14:21 pierre
|
||||
Revision 1.12 1999-07-28 23:11:24 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.11 1999/07/12 13:14:21 pierre
|
||||
* LineEnd bug corrected, now goes end of text even if selected
|
||||
+ Until Return for debugger
|
||||
+ Code for Quit inside GDB Window
|
||||
|
@ -33,19 +33,19 @@ type
|
||||
const ClipboardWindow : PClipboardWindow = nil;
|
||||
CalcWindow : PCalculator = nil;
|
||||
RecentFileCount : integer = 0;
|
||||
OpenExts : string[80] = '*.pas;*.pp;*.inc';
|
||||
HighlightExts : string[80] = '*.pas;*.pp;*.inc';
|
||||
OpenExts : string{$ifdef GABOR}[24]{$endif} = '*.pas;*.pp;*.inc';
|
||||
HighlightExts : string{$ifdef GABOR}[24]{$endif} = '*.pas;*.pp;*.inc';
|
||||
TabsPattern : string{$ifdef GABOR}[30]{$endif} = 'make*;make*.*';
|
||||
SourceDirs : string{$ifdef GABOR}[30]{$endif} = '';
|
||||
PrimaryFile : string{$ifdef GABOR}[80]{$endif} = '';
|
||||
PrimaryFileMain : string{$ifdef GABOR}[80]{$endif} = '';
|
||||
PrimaryFile : string{$ifdef GABOR}[60]{$endif} = '';
|
||||
PrimaryFileMain : string{$ifdef GABOR}[60]{$endif} = '';
|
||||
PrimaryFileSwitches : string{$ifdef GABOR}[30]{$endif} = '';
|
||||
PrimaryFilePara : string = '';
|
||||
PrimaryFilePara : string{$ifdef GABOR}[40]{$endif} = '';
|
||||
GDBOutputFile : string{$ifdef GABOR}[30]{$endif} = 'gdb$$$.txt';
|
||||
IsEXECompiled : boolean = false;
|
||||
LinkAfter : boolean = true;
|
||||
MainFile : string{$ifdef GABOR}[80]{$endif} = '';
|
||||
EXEFile : string{$ifdef GABOR}[80]{$endif} = '';
|
||||
MainFile : string{$ifdef GABOR}[60]{$endif} = '';
|
||||
EXEFile : string{$ifdef GABOR}[60]{$endif} = '';
|
||||
CompilationPhase : TCompPhase = cpNothing;
|
||||
ProgramInfoWindow: PProgramInfoWindow = nil;
|
||||
GDBWindow : PGDBWindow = nil;
|
||||
@ -55,16 +55,16 @@ const ClipboardWindow : PClipboardWindow = nil;
|
||||
HeapView : PFPHeapView = nil;
|
||||
HelpFiles : WUtils.PUnsortedStringCollection = nil;
|
||||
ShowStatusOnError: boolean = true;
|
||||
StartupDir : string = '.'+DirSep;
|
||||
IDEDir : string = '.'+DirSep;
|
||||
INIPath : string = ININame;
|
||||
SwitchesPath : string = SwitchesName;
|
||||
StartupDir : string{$ifdef GABOR}[50]{$endif} = '.'+DirSep;
|
||||
IDEDir : string{$ifdef GABOR}[50]{$endif} = '.'+DirSep;
|
||||
INIPath : string{$ifdef GABOR}[50]{$endif} = ININame;
|
||||
SwitchesPath : string{$ifdef GABOR}[50]{$endif} = SwitchesName;
|
||||
CtrlMouseAction : integer = acTopicSearch;
|
||||
AltMouseAction : integer = acBrowseSymbol;
|
||||
StartupOptions : longint = 0;
|
||||
LastExitCode : integer = 0;
|
||||
ASCIIChart : PFPASCIIChart = nil;
|
||||
DesktopPath : string = DesktopName;
|
||||
DesktopPath : string{$ifdef GABOR}[50]{$endif} = DesktopName;
|
||||
DesktopFileFlags : longint = dfHistoryLists+dfOpenWindows;
|
||||
DesktopLocation : byte = dlConfigFileDir;
|
||||
AutoSaveOptions : longint = asEnvironment+asDesktop;
|
||||
@ -83,7 +83,10 @@ implementation
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.19 1999-07-10 01:24:21 pierre
|
||||
Revision 1.20 1999-07-28 23:11:25 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.19 1999/07/10 01:24:21 pierre
|
||||
+ First implementation of watches window
|
||||
|
||||
Revision 1.18 1999/06/30 23:58:19 pierre
|
||||
|
@ -2047,7 +2047,7 @@ end;
|
||||
procedure TCodeEditor.JumpSelStart;
|
||||
begin
|
||||
if ValidBlock then
|
||||
SetCurPtr(SelStart.X,SelEnd.X);
|
||||
SetCurPtr(SelStart.X,SelStart.Y);
|
||||
end;
|
||||
|
||||
procedure TCodeEditor.JumpSelEnd;
|
||||
@ -2514,7 +2514,7 @@ begin
|
||||
S:=GetLineText(CurPos.Y);
|
||||
if CharIdxToLinePos(CurPos.Y,length(S))<CurPos.X then
|
||||
begin
|
||||
S:=S+CharStr(' ',CurPos.X-CharIdxToLinePos(CurPos.Y,length(S))-1);
|
||||
S:=S+CharStr(' ',CurPos.X-CharIdxToLinePos(CurPos.Y,length(S)){-1});
|
||||
SetLineText(CurPos.Y,S);
|
||||
end;
|
||||
CI:=LinePosToCharIdx(CurPos.Y,CurPos.X);
|
||||
@ -2734,7 +2734,7 @@ var S: string;
|
||||
((AreaStart.Y<Y) and (Y<AreaEnd.Y)) or
|
||||
((AreaEnd.Y=Y) and (X<=AreaEnd.X));
|
||||
end;
|
||||
|
||||
var CurDY: sw_integer;
|
||||
begin
|
||||
Inc(SearchRunCount);
|
||||
|
||||
@ -2800,6 +2800,7 @@ begin
|
||||
Owner^.Lock;
|
||||
if InArea(X,Y) then
|
||||
repeat
|
||||
CurDY:=DY;
|
||||
S:=GetDisplayText(Y);
|
||||
P:=ContainsText(FindStr,S,X+1);
|
||||
Found:=P<>0;
|
||||
@ -2817,6 +2818,11 @@ begin
|
||||
LeftOK:=(A.X<=0) or (not( (S[A.X] in AlphaChars) or (S[A.X] in NumberChars) ));
|
||||
RightOK:=(B.X>=length(S)) or (not( (S[B.X+1] in AlphaChars) or (S[B.X+1] in NumberChars) ));
|
||||
Found:=LeftOK and RightOK;
|
||||
if Found=false then
|
||||
begin
|
||||
CurDY:=0;
|
||||
X:=B.X+1;
|
||||
end;
|
||||
end;
|
||||
|
||||
if Found then
|
||||
@ -2862,9 +2868,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
if CanExit=false then
|
||||
if (CanExit=false) and (CurDY<>0) then
|
||||
begin
|
||||
inc(Y,DY);
|
||||
inc(Y,CurDY);
|
||||
if SForward then
|
||||
X:=0
|
||||
else
|
||||
@ -2982,17 +2988,21 @@ var
|
||||
|
||||
var MatchedSymbol: boolean;
|
||||
MatchingSymbol: string;
|
||||
function MatchesAnySpecSymbol(const What: string; SClass: TSpecSymbolClass; PartialMatch: boolean): boolean;
|
||||
function MatchesAnySpecSymbol(What: string; SClass: TSpecSymbolClass; PartialMatch, CaseInsensitive: boolean): boolean;
|
||||
var S: string;
|
||||
I: Sw_integer;
|
||||
Match,Found: boolean;
|
||||
begin
|
||||
Found:=false;
|
||||
if CaseInsensitive then
|
||||
What:=UpcaseStr(What);
|
||||
if What<>'' then
|
||||
for I:=1 to GetSpecSymbolCount(SClass) do
|
||||
begin
|
||||
SymbolIndex:=I;
|
||||
S:=GetSpecSymbol(SClass,I-1);
|
||||
if CaseInsensitive then
|
||||
S:=UpcaseStr(S);
|
||||
if PartialMatch then Match:=MatchSymbol(What,S)
|
||||
else Match:=What=S;
|
||||
if Match then
|
||||
@ -3004,48 +3014,48 @@ var
|
||||
|
||||
function IsCommentPrefix: boolean;
|
||||
begin
|
||||
IsCommentPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssCommentPrefix,true);
|
||||
IsCommentPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssCommentPrefix,true,false);
|
||||
end;
|
||||
|
||||
function IsSingleLineCommentPrefix: boolean;
|
||||
begin
|
||||
IsSingleLineCommentPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssCommentSingleLinePrefix,true);
|
||||
IsSingleLineCommentPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssCommentSingleLinePrefix,true,false);
|
||||
end;
|
||||
|
||||
function IsCommentSuffix: boolean;
|
||||
begin
|
||||
IsCommentSuffix:=(MatchesAnySpecSymbol(SymbolConcat,ssCommentSuffix,true))
|
||||
IsCommentSuffix:=(MatchesAnySpecSymbol(SymbolConcat,ssCommentSuffix,true,false))
|
||||
and (CurrentCommentType=SymbolIndex);
|
||||
end;
|
||||
|
||||
function IsStringPrefix: boolean;
|
||||
begin
|
||||
IsStringPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssStringPrefix,true);
|
||||
IsStringPrefix:=MatchesAnySpecSymbol(SymbolConcat,ssStringPrefix,true,false);
|
||||
end;
|
||||
|
||||
function IsStringSuffix: boolean;
|
||||
begin
|
||||
IsStringSuffix:=MatchesAnySpecSymbol(SymbolConcat,ssStringSuffix,true);
|
||||
IsStringSuffix:=MatchesAnySpecSymbol(SymbolConcat,ssStringSuffix,true,false);
|
||||
end;
|
||||
|
||||
function IsDirectivePrefix: boolean;
|
||||
begin
|
||||
IsDirectivePrefix:=MatchesAnySpecSymbol(SymbolConcat,ssDirectivePrefix,true);
|
||||
IsDirectivePrefix:=MatchesAnySpecSymbol(SymbolConcat,ssDirectivePrefix,true,false);
|
||||
end;
|
||||
|
||||
function IsDirectiveSuffix: boolean;
|
||||
begin
|
||||
IsDirectiveSuffix:=MatchesAnySpecSymbol(SymbolConcat,ssDirectiveSuffix,true);
|
||||
IsDirectiveSuffix:=MatchesAnySpecSymbol(SymbolConcat,ssDirectiveSuffix,true,false);
|
||||
end;
|
||||
|
||||
function IsAsmPrefix(const WordS: string): boolean;
|
||||
begin
|
||||
IsAsmPrefix:=MatchesAnySpecSymbol(WordS,ssAsmPrefix,false);
|
||||
IsAsmPrefix:=MatchesAnySpecSymbol(WordS,ssAsmPrefix,false,true);
|
||||
end;
|
||||
|
||||
function IsAsmSuffix(const WordS: string): boolean;
|
||||
begin
|
||||
IsAsmSuffix:=MatchesAnySpecSymbol(WordS,ssAsmSuffix,false);
|
||||
IsAsmSuffix:=MatchesAnySpecSymbol(WordS,ssAsmSuffix,false,true);
|
||||
end;
|
||||
|
||||
function GetCharClass(C: char): TCharClass;
|
||||
@ -3949,7 +3959,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.38 1999-07-12 13:14:24 pierre
|
||||
Revision 1.39 1999-07-28 23:11:26 peter
|
||||
* fixes from gabor
|
||||
|
||||
Revision 1.38 1999/07/12 13:14:24 pierre
|
||||
* LineEnd bug corrected, now goes end of text even if selected
|
||||
+ Until Return for debugger
|
||||
+ Code for Quit inside GDB Window
|
||||
|
Loading…
Reference in New Issue
Block a user