|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 41308 (0xa15c)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
with Access_List;
with Ada;
with Command;
with Common;
with Compilation;
with Cmvc;
with Daemon;
with Debug;
with Editor;
with File_Utilities;
with Job;
with Library;
with Operator;
with Queue;
with Text;
with Visible_Key_Names;
with What;
procedure Rt_Commands is
-- Release D_9_0_0, last updated 2/3/87
use Visible_Key_Names;
type Intent is (Prompt, Execute, Interrupt);
Action : Intent;
Key_1 : Rational_Key_Names;
Key_2 : Rational_Key_Names;
-- Interrupt and Prompt are first because they are shorter and can be moved
-- around very easily. Each of the keys is replicated in comments in the
-- main Execute case statement.
begin
case Action is
when Interrupt =>
case Key_1 is
when C_G | Cs_G =>
Job.Interrupt;
when M_G | Ms_G =>
Job.Kill (0);
when Cm_F6 =>
Debug.Stop (Name => "");
when F19 =>
Job.Disable (0);
when C_F19 =>
Job.Kill (0);
when others =>
null;
end case;
when Prompt =>
case Key_1 is
when Cm_F9 =>
Debug.Modify (New_Value => "",
Variable => "<SELECTION>",
Stack_Frame => 0);
when M_F15 =>
Library.Create_Directory (Name => "");
when Cm_F15 =>
Text.Create (Image_Name => "");
when Cs_F15 =>
Library.Create_World (Name => "");
when Object =>
case Key_2 is
when 'l' | 'L' =>
Common.Revert;
when others =>
null;
end case;
when others =>
null;
end case;
when Execute =>
case Key_1 is
when Promot =>
Common.Promote;
when C_Promot =>
Command.Spawn;
when M_Promot =>
Command.Debug;
when Complt =>
Common.Complete;
when Format =>
Common.Format;
when C_A | Cs_A =>
Editor.Line.Beginning_Of;
when C_B | Cs_B =>
Editor.Cursor.Backward;
when C_C | Cs_C =>
Editor.Hold_Stack.Push;
when C_D | Cs_D =>
Editor.Char.Delete_Forward;
when C_E | Cs_E =>
Editor.Line.End_Of;
when C_F | Cs_F =>
Editor.Cursor.Forward;
-- -- when C_G | Cs_G => Job.Interrupt; -- Interrupt
when C_H | Cs_H =>
Editor.Cursor.Left;
when C_I | Cs_I =>
Editor.Line.Insert (-1);
when C_J | Cs_J =>
Editor.Cursor.Right;
when C_K | Cs_K =>
Editor.Line.Delete_Forward;
when C_L | Cs_L =>
Editor.Screen.Redraw;
when C_M | Cs_M =>
Editor.Mark.Push;
when C_N | Cs_N =>
Editor.Cursor.Down;
when C_O | Cs_O =>
Editor.Line.Open;
when C_Q | Cs_Q =>
Editor.Key.Name;
when C_R =>
Editor.Search.Previous;
when Cs_R =>
Editor.Search.Previous (Wildcard => True);
when C_S =>
Editor.Search.Next;
when Cs_S =>
Editor.Search.Next (Wildcard => True);
when C_T | Cs_T =>
Editor.Char.Transpose;
when C_U | Cs_U =>
Editor.Cursor.Up;
when C_V | Cs_V =>
Editor.Image.Down;
when C_X | Cs_X =>
Editor.Set.Designation_Off;
when C_Y | Cs_Y =>
Editor.Hold_Stack.Top;
when C_Z | Cs_Z =>
Editor.Image.Up;
when C_Left_Bracket | C_Left_Brace =>
Editor.Region.Start;
when C_Right_Bracket | C_Right_Brace =>
Editor.Region.Finish;
when C_Exclam | C_1 =>
Common.Expand;
when C_Query | C_Slash =>
Common.Explain;
when C_Quote | C_Tick | Cs_Tick =>
Editor.Char.Quote;
when C_Left_Paren | C_9 =>
Editor.Char.Insert_String ("(""");
when C_Right_Paren | C_0 =>
Editor.Char.Insert_String (""")");
when C_Colon | C_Semicolon =>
Editor.Char.Insert_String (":=");
when C_Plus | C_Equal =>
Editor.Char.Insert_String ("=>");
when C_Circumflex | C_6 =>
Editor.Char.Capitalize;
when C_Greater_Than | C_Period =>
Editor.Char.Upper_Case;
when C_Less_Than | C_Comma =>
Editor.Char.Lower_Case;
when M_A | Ms_A | M_B | Ms_B =>
Editor.Word.Beginning_Of;
when M_C | Ms_C =>
Editor.Hold_Stack.Next;
when M_D | Ms_D =>
Editor.Word.Delete;
when M_E | Ms_E =>
Editor.Word.End_Of;
-- -- when M_G | Ms_G => Job,Kill (0); -- Interrupt
when M_H | Ms_H =>
Editor.Word.Previous;
when M_J | Ms_J =>
Editor.Word.Next;
when M_K | Ms_K =>
Editor.Word.Delete_Forward;
when M_L | Ms_L =>
Editor.Screen.Clear;
when M_M | Ms_M =>
Editor.Mark.Next;
when M_N | Ms_N =>
Editor.Cursor.Next (Prompt => True, Underline => True);
when M_O | Ms_O =>
Editor.Line.Join;
when M_Q | Ms_Q =>
Editor.Key.Prompt;
-- -- For search, Meta => Search/Replace,
-- -- Shift => Wildcard
-- -- Control_Meta => Global Replace
when M_R =>
Editor.Search.Replace_Previous;
when Ms_R =>
Editor.Search.Replace_Previous (Wildcard => True);
when M_S =>
Editor.Search.Replace_Next;
when Ms_S =>
Editor.Search.Replace_Next (Wildcard => True);
when Cm_R =>
Editor.Search.Replace_Previous (Repeat => -1);
when Cms_R =>
Editor.Search.Replace_Previous
(Wildcard => True, Repeat => -1);
when Cm_S =>
Editor.Search.Replace_Next (Repeat => -1);
when Cms_S =>
Editor.Search.Replace_Next (Wildcard => True, Repeat => -1);
when M_T | Ms_T =>
Editor.Word.Transpose;
when M_U | Ms_U =>
Editor.Cursor.Previous;
when M_V | Ms_V =>
Editor.Window.Next;
when M_X | Ms_X =>
Editor.Macro.Execute;
when M_Y | Ms_Y =>
Editor.Hold_Stack.Next;
when M_Z | Ms_Z =>
Editor.Window.Previous;
when M_Circumflex | M_6 =>
Editor.Word.Capitalize;
when M_Greater_Than | M_Period =>
Editor.Word.Upper_Case;
when M_Less_Than | M_Comma =>
Editor.Word.Lower_Case;
when M_Left_Bracket | M_Left_Brace =>
Editor.Macro.Start;
when M_Right_Bracket | M_Right_Brace =>
Editor.Macro.Finish;
when Cm_A | Cms_A | Cm_B | Cms_B =>
Editor.Line.Beginning_Of;
when Cm_C | Cms_C =>
Editor.Line.Copy;
when Cm_D | Cms_D =>
Editor.Line.Delete;
when Cm_E | Cms_E =>
Editor.Line.End_Of;
when Cm_F | Cms_F =>
Editor.Cursor.Right (8);
when Cm_H | Cms_H =>
Editor.Cursor.Left (8);
when Cm_I | Cms_I =>
Ada.Insert_Blank_Line;
when Cm_J | Cms_J =>
Editor.Cursor.Right (8);
when Cm_K | Cms_K =>
Ada.Delete_Blank_Line;
when Cm_N | Cms_N =>
Editor.Cursor.Down (8);
when Cm_O | Cms_O =>
Editor.Line.Join;
when Cm_T | Cms_T =>
Editor.Line.Transpose;
when Cm_U | Cms_U =>
Editor.Cursor.Up (8);
when Cm_Circumflex | Cm_6 =>
Editor.Line.Capitalize;
when Cm_Greater_Than | Cm_Period =>
Editor.Line.Upper_Case;
when Cm_Less_Than | Cm_Comma =>
Editor.Line.Lower_Case;
when Delete =>
Editor.Char.Delete_Backward;
when C_Delete | Cs_Delete =>
Editor.Char.Delete_Spaces;
when M_Delete | Ms_Delete =>
Editor.Word.Delete_Backward;
when Cm_Delete | Cms_Delete =>
Editor.Line.Delete_Backward;
when Tab | S_Tab =>
Editor.Char.Tab_Forward;
when C_Tab | Cs_Tab =>
Editor.Char.Tab_Backward;
when M_Tab | Ms_Tab =>
Editor.Char.Tab_To_Comment;
when Cm_Tab | Cms_Tab =>
What.Tabs;
when S_Space | C_Space | M_Space | Cm_Space |
Cs_Space | Ms_Space | Cms_Space =>
Editor.Char.Insert_Character (1, ' ');
when Carriage_Return =>
Editor.Line.Indent;
when S_Carriage_Return =>
Editor.Line.Insert;
when C_Carriage_Return | Cs_Carriage_Return | Enter | S_Enter =>
Common.Commit;
when M_Carriage_Return | Ms_Carriage_Return |
M_Enter | Ms_Enter =>
Command.Debug;
-- -- F1 - F5 intentionally left unused
-- -- F6 - F9 Debugger keys
-- -- F6 -- Debugger execution control
when F6 =>
Debug.Run;
when S_F6 =>
Debug.Execute;
when C_F6 =>
Debug.Run (Stop_At => Debug.Local_Statement);
when M_F6 =>
Debug.Run (Debug.Returned);
-- -- when Cm_F6 => Debug.Stop; -- Interrupts
when Cms_F6 =>
Debug.Task_Display;
-- -- F7 -- Debugger source and breakpoints
when F7 =>
Debug.Source (Location => "", Stack_Frame => 0);
when S_F7 =>
Debug.Break (Default_Lifetime => False);
when C_F7 =>
Debug.Break;
when M_F7 =>
Debug.Activate (Breakpoint => 0);
when Cm_F7 =>
Debug.Remove (Breakpoint => 0);
when Cms_F7 =>
Debug.Show;
-- -- F8 -- Debugger stack and exceptions
when F8 =>
Debug.Stack;
when S_F8 =>
Debug.Forget;
when C_F8 =>
Debug.Catch;
when M_F8 =>
Debug.Propagate;
when Cm_F8 =>
Debug.Show (Debug.Exceptions);
when Cms_F8 =>
Debug.Information (Debug.Rendezvous);
-- -- F9 -- Debugger put/modify and detail control
when F9 =>
Debug.Put;
when C_F9 =>
Debug.Set_Value
(Variable => Debug.Element_Count, To_Value => 5);
when S_F9 =>
Debug.Set_Value
(Variable => Debug.First_Element, To_Value => 0);
when M_F9 =>
Debug.Set_Value
(Variable => Debug.Pointer_Level, To_Value => 5);
-- -- when Cm_F9 => Debug.Modify; -- Prompt
when Cms_F9 =>
Debug.Current_Debugger ("");
-- -- F10 -- Traversal - Definition, Enclosing, Other part, etc.
-- -- Shift => In_Place
when F10 =>
Common.Definition
(Name => "<CURSOR>", In_Place => False, Visible => True);
when S_F10 =>
Common.Definition
(Name => "<CURSOR>", In_Place => True, Visible => True);
when C_F10 =>
Ada.Other_Part (Name => "<IMAGE>", In_Place => False);
when Cs_F10 =>
Ada.Other_Part (Name => "<IMAGE>", In_Place => True);
when M_F10 =>
Common.Enclosing;
when Ms_F10 =>
Common.Enclosing (In_Place => True, Library => False);
when Cms_F10 =>
Common.Enclosing (In_Place => True, Library => True);
when Cm_F10 =>
What.Home_Library;
-- -- F11 -- Help and Print
when F11 =>
What.Does ("");
when S_F11 =>
What.Does ("Help_on_Help");
when M_F11 =>
Editor.Key.Name;
when C_F11 =>
Editor.Image.Find ("Help Window");
when Cm_F11 =>
Queue.Print (Options => "width => 132");
-- -- F12 -- Prompt
when F12 =>
Editor.Key.Prompt (Key_Code => "");
when C_F12 =>
Cmvc.Check_Out (What_Object => "<CURSOR>",
Comments => "",
Allow_Demotion => False,
Allow_Implicit_Accept_Changes => True,
Expected_Check_In_Time => "<TOMORROW>",
Work_Order => "<DEFAULT>",
Response => "<PROFILE>");
when M_F12 =>
Cmvc.Check_In (What_Object => "<CURSOR>",
Comments => "",
Work_Order => "<DEFAULT>",
Response => "<PROFILE>");
when Cm_F12 =>
Cmvc.Accept_Changes (Destination => "<CURSOR>",
Source => "<LATEST>",
Allow_Demotion => False,
Comments => "",
Work_Order => "<DEFAULT>",
Response => "<PROFILE>");
when Cs_F12 =>
Cmvc.Show (Objects => "<CURSOR>", Response => "<PROFILE>");
when Cms_F12 =>
Cmvc.Show_Checked_Out_In_View
(In_View => "<CURSOR>", Response => "<PROFILE>");
when Ms_F12 =>
Cmvc.Show_Checked_Out_By_User
(In_View => "<CURSOR>", Response => "<PROFILE>");
when S_F12 =>
Cmvc.Show_Out_Of_Date_Objects
(In_View => "<CURSOR>", Response => "<PROFILE>");
-- -- F13 -- Ada promotion
-- -- Control => Coded
-- -- Meta => Closure, i.e. Compilation
when F13 =>
Ada.Install_Unit;
when S_F13 =>
Ada.Install_Stub;
when C_F13 =>
Ada.Code_Unit;
when M_F13 =>
Compilation.Promote (Unit => "<Image>",
Scope => Compilation.All_Parts,
Goal => Compilation.Installed,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cm_F13 =>
Compilation.Make (Unit => "<IMAGE>",
Scope => Compilation.All_Parts,
Goal => Compilation.Coded,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Ms_F13 =>
Compilation.Promote (Unit => "<IMAGE>",
Scope => Compilation.All_Parts,
Goal => Compilation.Installed,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cms_F13 =>
Compilation.Make (Unit => "<IMAGE>",
Scope => Compilation.Load_Views,
Goal => Compilation.Coded,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
-- -- F14 -- Ada edit/demotion
when F14 =>
Common.Edit;
when S_F14 =>
Common.Demote;
when C_F14 =>
Ada.Source_Unit;
when M_F14 =>
Ada.Withdraw;
when Cm_F14 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Source,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cms_F14 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Source,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cs_F14 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Installed,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Ms_F14 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Installed,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
-- -- F15 -- Create and Ada construction
when F15 =>
Common.Create_Command;
when S_F15 =>
Ada.Create_Body;
when C_F15 =>
Common.Object.Insert;
-- -- when M_F15 => Library.Create_Directory; -- Prompt
-- -- when CM_F15 => Library.Create_World; -- Prompt
-- -- when CS_F15 => Text.Create_File; -- Prompt
when Cms_F15 =>
Ada.Create_Private;
-- -- F16 -- Ada semantic information
-- -- Meta is Show_Usage; for Show_Usage,
-- -- Control => Global
-- -- Shift => Closure
when F16 =>
Common.Semanticize;
when S_F16 =>
Ada.Get_Errors;
when C_F16 =>
Common.Clear_Underlining;
when M_F16 =>
Ada.Show_Usage (Name => "<CURSOR>",
Global => False,
Limit => "<WORLDS>",
Closure => False);
when Cm_F16 =>
Ada.Show_Usage (Name => "<CURSOR>",
Global => True,
Limit => "<ALL_WORLDS>",
Closure => False);
when Cms_F16 =>
Ada.Show_Usage (Name => "<CURSOR>",
Global => True,
Limit => "<ALL_WORLDS>",
Closure => True);
-- -- F17 -- Explain, Item Off and Show_Unused
when F17 =>
Common.Explain;
when C_F17 =>
Editor.Set.Designation_Off;
when M_F17 =>
Ada.Show_Unused (In_Unit => "<IMAGE>",
Check_Other_Units => False);
when Cm_F17 =>
Ada.Show_Unused (In_Unit => "<IMAGE>",
Check_Other_Units => True);
when Cms_F17 =>
Ada.Make_Inline;
-- -- F18 -- Next underline/prompt
-- -- This set of assignments assumes that next underline is the
-- -- most common operation and is faster (for the user) than
-- -- stepping through prompts.
-- --
-- -- Control changes Next to Previous
-- -- Shift turns off Prompt, i.e. Underline only
-- -- Meta turns off Underline, i.e. Prompt only
-- --
when F18 =>
Editor.Cursor.Next (Prompt => True, Underline => True);
when C_F18 =>
Editor.Cursor.Previous (Prompt => True, Underline => True);
when M_F18 =>
Editor.Cursor.Next (Prompt => True, Underline => False);
when Cm_F18 =>
Editor.Cursor.Previous (Prompt => True, Underline => False);
when S_F18 =>
Editor.Cursor.Next (Prompt => False, Underline => True);
when Cs_F18 =>
Editor.Cursor.Previous (Prompt => False, Underline => True);
when Cms_F18 =>
Ada.Make_Separate;
-- -- F19 -- Jobs; End of Input
-- -- when F19 => Job.Disable (0); -- Interrupt
-- -- when C_F19 => Job.Kill (0);
when M_F19 =>
Job.Connect (0);
when S_F19 =>
Job.Enable (0);
when Cm_F19 | Dot =>
Text.End_Of_Input;
-- -- F20 -- Information keys
when F20 =>
What.Time;
when S_F20 =>
What.Load (Verbose => True);
when C_F20 =>
What.Users (All_Users => True);
when M_F20 =>
What.Locks (Name => "<IMAGE>");
when Cm_F20 =>
What.Object;
when Cms_F20 =>
Access_List.Display (For_Object => "<CURSOR>");
-- -- Arrow keys:
-- -- M => Word
-- -- S => Image
-- -- C => Object
-- -- CM => Traversal/Window
-- -- CS => Screen
-- -- CMS => Screen Stack
-- -- Horizontal scrolling would logically be S_Left/Right
-- -- User feedback indicates that this is too easy to hit, so
-- -- S_Left/Right are In_Place versions of C_Left/Right and
-- -- MS_Left/Right are horizontal scrolling
when Up =>
Editor.Cursor.Up;
when S_Up =>
Editor.Image.Up;
when C_Up =>
Common.Object.Previous;
when M_Up =>
Editor.Cursor.Previous;
when Cs_Up =>
Editor.Screen.Up;
when Cm_Up =>
Editor.Window.Previous;
when Cms_Up =>
Editor.Screen.Top;
when Down =>
Editor.Cursor.Down;
when S_Down =>
Editor.Image.Down;
when C_Down =>
Common.Object.Next;
when M_Down =>
Editor.Cursor.Next;
when Cs_Down =>
Editor.Screen.Down;
when Cm_Down =>
Editor.Window.Next;
when Cms_Down =>
Editor.Screen.Push;
when Right =>
Editor.Cursor.Right;
when S_Right =>
Common.Definition (In_Place => True);
when C_Right =>
Common.Object.Child;
when M_Right =>
Editor.Word.Next;
when Cs_Right =>
Editor.Screen.Right;
when Ms_Right =>
Editor.Image.Right;
when Cm_Right =>
Common.Definition;
when Cms_Right =>
Editor.Screen.Next;
when Left =>
Editor.Cursor.Left;
when S_Left =>
Common.Enclosing (In_Place => True);
when C_Left =>
Common.Object.Parent;
when M_Left =>
Editor.Word.Previous;
when Cs_Left =>
Editor.Screen.Left;
when Ms_Left =>
Editor.Image.Left;
when Cm_Left =>
Common.Enclosing;
when Cms_Left =>
Editor.Screen.Previous;
when Begin_Of =>
Editor.Line.Beginning_Of;
when S_Begin_Of =>
Editor.Image.Beginning_Of;
when C_Begin_Of =>
Common.Object.First_Child;
when M_Begin_Of =>
Editor.Word.Beginning_Of;
when Cm_Begin_Of =>
Editor.Window.Beginning_Of;
when Cms_Begin_Of =>
Editor.Screen.Top;
when End_Of =>
Editor.Line.End_Of;
when S_End_Of =>
Editor.Image.End_Of;
when C_End_Of =>
Common.Object.Last_Child;
when M_End_Of =>
Editor.Word.End_Of;
when Cm_End_Of =>
Editor.Window.End_Of;
when Numeric_0 | S_Numeric_0 | C_Numeric_0 | M_Numeric_0 =>
Editor.Set.Argument_Digit (0);
when Numeric_1 | S_Numeric_1 | C_Numeric_1 | M_Numeric_1 =>
Editor.Set.Argument_Digit (1);
when Numeric_2 | S_Numeric_2 | C_Numeric_2 | M_Numeric_2 =>
Editor.Set.Argument_Digit (2);
when Numeric_3 | S_Numeric_3 | C_Numeric_3 | M_Numeric_3 =>
Editor.Set.Argument_Digit (3);
when Numeric_4 | S_Numeric_4 | C_Numeric_4 | M_Numeric_4 =>
Editor.Set.Argument_Digit (4);
when Numeric_5 | S_Numeric_5 | C_Numeric_5 | M_Numeric_5 =>
Editor.Set.Argument_Digit (5);
when Numeric_6 | S_Numeric_6 | C_Numeric_6 | M_Numeric_6 =>
Editor.Set.Argument_Digit (6);
when Numeric_7 | S_Numeric_7 | C_Numeric_7 | M_Numeric_7 =>
Editor.Set.Argument_Digit (7);
when Numeric_8 | S_Numeric_8 | C_Numeric_8 | M_Numeric_8 =>
Editor.Set.Argument_Digit (8);
when Numeric_9 | S_Numeric_9 | C_Numeric_9 | M_Numeric_9 =>
Editor.Set.Argument_Digit (9);
when Numeric_Comma | S_Numeric_Comma |
C_Numeric_Comma | M_Numeric_Comma =>
Editor.Set.Argument_Prefix;
when Dash | C_Dash | M_Dash | S_Dash =>
Editor.Set.Argument_Minus;
-- -- Prefix keys above keypad in Left-Right order
-- -- Object, Region, Window, Image, Line, Word, Mark
when Object =>
case Key_2 is
when '1' | '!' =>
Common.Expand;
when '.' | '>' =>
Common.Elide;
when '/' | '?' =>
Common.Explain;
when 'c' | 'C' =>
Common.Object.Copy;
when 'd' | 'D' | 'k' | 'K' =>
Common.Object.Delete;
when 'g' | 'G' =>
Common.Abandon;
when 'i' | 'I' =>
Common.Object.Insert;
when 'm' | 'M' =>
Common.Object.Move;
when 'x' | 'X' =>
Common.Release;
when 'r' | 'R' =>
Common.Redo;
when 's' | 'S' =>
Common.Sort_Image;
when 'u' | 'U' =>
Common.Undo;
when Down =>
Common.Object.Next;
when Left =>
Common.Object.Parent;
when Right =>
Common.Object.Child;
when Up =>
Common.Object.Previous;
when Begin_Of =>
Common.Object.First_Child;
when End_Of =>
Common.Object.Last_Child;
when F10 =>
Common.Definition;
when Tab =>
Editor.Char.Tab_To_Comment;
when others =>
null;
end case;
when Region =>
case Key_2 is
when '-' | '_' =>
Editor.Region.Comment;
when '=' | '+' =>
Editor.Region.Uncomment;
when 'r' | 'R' =>
Editor.Hold_Stack.Rotate;
when 't' | 'T' =>
Editor.Hold_Stack.Swap;
when 'X' | 'x' =>
Editor.Region.Off;
when '<' | ',' =>
Editor.Region.Lower_Case;
when '>' | '.' =>
Editor.Region.Upper_Case;
when 'c' | 'C' =>
Editor.Region.Copy;
when 'd' | 'D' | 'k' | 'K' =>
Editor.Region.Delete;
when 'm' | 'M' =>
Editor.Region.Move;
when '[' | '{' =>
Editor.Region.Start;
when ']' | '}' =>
Editor.Region.Finish;
when '^' | '6' =>
Editor.Region.Capitalize;
when End_Of =>
Editor.Region.End_Of;
when Begin_Of =>
Editor.Region.Beginning_Of;
when Left =>
Editor.Hold_Stack.Previous;
when Right =>
Editor.Hold_Stack.Next;
when Up =>
Editor.Hold_Stack.Top;
when Down =>
Editor.Hold_Stack.Push;
when Format =>
Editor.Region.Fill;
when Complt =>
Editor.Region.Justify;
when 'p' | 'P' =>
Editor.Hold_Stack.Copy_Top;
when Delete =>
Editor.Hold_Stack.Delete_Top;
when others =>
null;
end case;
when Window =>
case Key_2 is
when '!' | '1' =>
Editor.Window.Expand;
when '.' | '>' =>
Editor.Window.Expand (-4);
when '?' | '/' | F10 =>
Editor.Window.Directory;
when 'c' | 'C' =>
Editor.Window.Copy;
when 'd' | 'D' | 'k' | 'K' =>
Editor.Window.Delete;
when 'j' | 'J' =>
Editor.Window.Join (1);
when 't' | 'T' =>
Editor.Window.Transpose;
when 'x' | 'X' =>
Editor.Window.Delete;
when Delete =>
Editor.Window.Join (-1);
when End_Of =>
Editor.Window.End_Of;
when Down =>
Editor.Window.Next;
when Format =>
Editor.Window.Focus;
when Promot =>
Editor.Window.Promote;
when F14 | S_F14 =>
Editor.Window.Demote;
when Begin_Of =>
Editor.Window.Beginning_Of;
when Left =>
Editor.Window.Parent;
when Right =>
Editor.Window.Child;
when Up =>
Editor.Window.Previous;
when others =>
null;
end case;
when Image =>
case Key_2 is
when End_Of =>
Editor.Image.End_Of;
when Down =>
Editor.Image.Down;
when Begin_Of =>
Editor.Image.Beginning_Of;
when Left =>
Editor.Image.Left;
when Right =>
Editor.Image.Right;
when Up =>
Editor.Image.Up;
when 'I' | 'i' =>
Editor.Set.Insert_Mode (True);
when 'O' | 'o' =>
Editor.Set.Insert_Mode (False);
when 'F' | 'f' =>
Editor.Set.Fill_Mode (True);
when 'X' | 'x' =>
Editor.Set.Fill_Mode (False);
when '?' | '/' =>
Editor.Image.Find ("");
when others =>
null;
end case;
when Line =>
case Key_2 is
when '<' | ',' =>
Editor.Line.Lower_Case;
when '>' | '.' =>
Editor.Line.Upper_Case;
when '?' | '/' =>
What.Line;
when Begin_Of =>
Editor.Line.Beginning_Of;
when 'c' | 'C' =>
Editor.Line.Copy;
when 'd' | 'D' =>
Editor.Line.Delete;
when End_Of =>
Editor.Line.End_Of;
when 'i' | 'I' =>
Editor.Line.Insert;
when 'j' | 'J' =>
Editor.Line.Join;
when 'k' | 'K' =>
Editor.Line.Delete_Forward;
when 'o' | 'O' =>
Editor.Line.Open;
when 't' | 'T' =>
Editor.Line.Transpose;
when '^' | '6' =>
Editor.Line.Capitalize;
when Delete =>
Editor.Line.Delete_Backward;
when '$' | '4' =>
Editor.Line.Center;
when Up =>
Editor.Cursor.Up;
when Down =>
Editor.Cursor.Down;
when others =>
null;
end case;
when Word =>
case Key_2 is
when '<' | ',' =>
Editor.Word.Lower_Case;
when '>' | '.' =>
Editor.Word.Upper_Case;
when 'd' | 'D' =>
Editor.Word.Delete;
when 'K' | 'k' =>
Editor.Word.Delete_Forward;
when 't' | 'T' =>
Editor.Word.Transpose;
when '^' | '6' =>
Editor.Word.Capitalize;
when Delete =>
Editor.Word.Delete_Backward;
when End_Of =>
Editor.Word.End_Of;
when Begin_Of =>
Editor.Word.Beginning_Of;
when Left =>
Editor.Word.Previous;
when Right =>
Editor.Word.Next;
when others =>
null;
end case;
when Mark =>
case Key_2 is
when 'r' | 'R' =>
Editor.Mark.Rotate;
when 't' | 'T' =>
Editor.Mark.Swap;
when 'p' | 'P' =>
Editor.Mark.Copy_Top;
when Delete =>
Editor.Mark.Delete_Top;
when Down =>
Editor.Mark.Push;
when Right =>
Editor.Mark.Next;
when Left =>
Editor.Mark.Previous;
when Up =>
Editor.Mark.Top;
when Begin_Of | '[' | '{' =>
Editor.Macro.Start;
when End_Of | ']' | '}' =>
Editor.Macro.Finish;
when Promot | Enter | Carriage_Return =>
Editor.Macro.Execute;
when F10 =>
Editor.Macro.Bind;
when others =>
null;
end case;
when others =>
null;
end case;
end case;
end Rt_Commands;