|
@@ -38,6 +38,7 @@ type
|
|
char : byte;
|
|
char : byte;
|
|
ScanValue : byte;
|
|
ScanValue : byte;
|
|
CharValue : byte;
|
|
CharValue : byte;
|
|
|
|
+ ShiftValue : TEnhancedShiftState;
|
|
SpecialHandler : Tprocedure;
|
|
SpecialHandler : Tprocedure;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -733,7 +734,7 @@ begin
|
|
Pa^.Child:=newPtree;
|
|
Pa^.Child:=newPtree;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function DoAddSequence(const St : String; AChar,AScan :byte) : PTreeElement;
|
|
|
|
|
|
+function DoAddSequence(const St : String; AChar,AScan :byte; const AShift: TEnhancedShiftState) : PTreeElement;
|
|
var
|
|
var
|
|
CurPTree,NPT : PTreeElement;
|
|
CurPTree,NPT : PTreeElement;
|
|
c : byte;
|
|
c : byte;
|
|
@@ -797,6 +798,7 @@ begin
|
|
{$endif DEBUG}
|
|
{$endif DEBUG}
|
|
ScanValue:=AScan;
|
|
ScanValue:=AScan;
|
|
CharValue:=AChar;
|
|
CharValue:=AChar;
|
|
|
|
+ ShiftValue:=AShift;
|
|
end;
|
|
end;
|
|
end
|
|
end
|
|
else with CurPTree^ do
|
|
else with CurPTree^ do
|
|
@@ -804,6 +806,7 @@ begin
|
|
CanBeTerminal:=True;
|
|
CanBeTerminal:=True;
|
|
ScanValue:=AScan;
|
|
ScanValue:=AScan;
|
|
CharValue:=AChar;
|
|
CharValue:=AChar;
|
|
|
|
+ ShiftValue:=AShift;
|
|
end;
|
|
end;
|
|
DoAddSequence:=CurPTree;
|
|
DoAddSequence:=CurPTree;
|
|
end;
|
|
end;
|
|
@@ -811,7 +814,7 @@ end;
|
|
|
|
|
|
procedure AddSequence(const St : String; AChar,AScan :byte);inline;
|
|
procedure AddSequence(const St : String; AChar,AScan :byte);inline;
|
|
begin
|
|
begin
|
|
- DoAddSequence(St,AChar,AScan);
|
|
|
|
|
|
+ DoAddSequence(St,AChar,AScan,[]);
|
|
end;
|
|
end;
|
|
|
|
|
|
{ Returns the Child that as c as char if it exists }
|
|
{ Returns the Child that as c as char if it exists }
|
|
@@ -832,7 +835,7 @@ function AddSpecialSequence(const St : string;Proc : Tprocedure) : PTreeElement;
|
|
var
|
|
var
|
|
NPT : PTreeElement;
|
|
NPT : PTreeElement;
|
|
begin
|
|
begin
|
|
- NPT:=DoAddSequence(St,0,0);
|
|
|
|
|
|
+ NPT:=DoAddSequence(St,0,0,[]);
|
|
NPT^.SpecialHandler:=Proc;
|
|
NPT^.SpecialHandler:=Proc;
|
|
AddSpecialSequence:=NPT;
|
|
AddSpecialSequence:=NPT;
|
|
end;
|
|
end;
|
|
@@ -1235,18 +1238,18 @@ begin
|
|
if copy(fpgetenv('TERM'),1,4)='cons' then
|
|
if copy(fpgetenv('TERM'),1,4)='cons' then
|
|
begin
|
|
begin
|
|
{FreeBSD is until now only terminal that uses it for delete.}
|
|
{FreeBSD is until now only terminal that uses it for delete.}
|
|
- DoAddSequence(#127,0,kbDel); {Delete}
|
|
|
|
- DoAddSequence(#27#127,0,kbAltDel); {Alt+delete}
|
|
|
|
|
|
+ DoAddSequence(#127,0,kbDel,[]); {Delete}
|
|
|
|
+ DoAddSequence(#27#127,0,kbAltDel,[essAlt]); {Alt+delete}
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- DoAddSequence(#127,8,0); {Backspace}
|
|
|
|
- DoAddSequence(#27#127,0,kbAltBack); {Alt+backspace}
|
|
|
|
|
|
+ DoAddSequence(#127,8,0,[]); {Backspace}
|
|
|
|
+ DoAddSequence(#27#127,0,kbAltBack,[essAlt]); {Alt+backspace}
|
|
end;
|
|
end;
|
|
{ all Esc letter }
|
|
{ all Esc letter }
|
|
for i:=low(key_sequences) to high(key_sequences) do
|
|
for i:=low(key_sequences) to high(key_sequences) do
|
|
with key_sequences[i] do
|
|
with key_sequences[i] do
|
|
- DoAddSequence(st,char,scan);
|
|
|
|
|
|
+ DoAddSequence(st,char,scan,shift);
|
|
end;
|
|
end;
|
|
|
|
|
|
function RawReadKey:char;
|
|
function RawReadKey:char;
|