DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d2df5ea57⟧ TextFile

    Length: 129574 (0x1fa26)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦3c826d579⟧ 
            └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦d22445d0b⟧ 
            └─⟦this⟧ 

TextFile

procedure Rational_Access_Commands;-- Rational_Access universal keymap
-- Keymap Version 1_0_2 1/20/93
--
-- Do not move these comments.

with Access_List;
with Activity;
with Ada;
with Cmvc;
with Command;
with Common;
with Compilation;
with Debug;
with Design_Implementation;
with Editor;
with Io;
with Job;
with Library;
with Mail;
with Menu_Operations;
with Operator;
with Queue;
with Speller;
with System_Utilities;
with Text;
with What;

with Rational_Access_Key_Names;
procedure Rational_Access_Commands is
    use Rational_Access_Key_Names;

    type Intent is (Interrupt, Prompt, Execute);

    Action : Intent;

    Key1, Key2, Key3, Key4, Key5, Key6 : Key_Names;

begin

    case Action is

        when Interrupt =>

            case Key1 is
                when C_G | Cs_G =>
                    Job.Interrupt;
                when M_G | Ms_G =>
                    Job.Kill (0);
                when others =>
                    null;
            end case;

        when Prompt =>

            case Key1 is
                when M_H | Ms_H =>
                    case Key2 is
                        when 'c' | 'C' =>
                            What.Does (Name => "<CURSOR>");
                        when others =>
                            null;
                    end case;
                when M_O | Ms_O =>
                    case Key2 is  
                        when 'f' | 'F' =>
                            Editor.Image.Find (Name => "");
                        when others =>
                            null;
                    end case;
                when F1 | Help =>
                    What.Does (Name => "<CURSOR>");
                when others =>
                    null;
            end case;

        when Execute =>

            case Key1 is
                when S_F1 | S_Help =>
                    Editor.Key.Prompt (Key_Code => "");
                when F2 =>
                    Menu_Operations.File.Open;
                when S_F2 =>
                    Common.Edit;
                when F3 =>
                    Common.Explain;
                when S_F3 =>
                    Common.Clear_Underlining;
                when F4 =>
                    Menu_Operations.Cm.Check_Out;
                when S_F4 =>
                    Menu_Operations.Cm.Check_In;
                when F5 =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => False, Visible => True);
                when S_F5 =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => True);
                when F6 =>
                    Common.Create_Command;
                when S_F6 =>
                    Common.Complete;
                when F7 =>
                    Common.Enclosing (In_Place => False, Library => False);
                when S_F7 =>
                    Common.Enclosing (In_Place => True, Library => False);
                when F8 =>
                    Menu_Operations.Compile.Promote;
                when S_F8 =>
                    Menu_Operations.Compile.Demote;
                when F9 =>
                    Common.Format;
                when S_F9 =>
                    Common.Semanticize;
                    --when F10 =>
                    --    Reserved for Motif Menu bar
                when S_F10 =>
                    What.Home_Library;
                when F11 =>
                    Menu_Operations.File.New_File;  
                when S_F11 =>
                    Common.Object.Insert;
                when F12 =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);  
                when S_F12 =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);


-- Item/Operation keys for compatibility with the old way
                when Object | C_Help => -- C_Help is alternative to C_F1
                    case Key2 is
                        when '!' | '1' =>
                            Common.Expand;
                        when '.' | '>' =>
                            Common.Elide;
                        when '/' | '?' =>
                            Common.Explain;
                        when 'A' | 'a' =>
                            Common.Object.First_Child;
                        when 'B' | 'b' =>
                            Common.Object.First_Child;
                        when 'C' | 'c' =>
                            Common.Object.Copy;
                        when 'D' | 'K' | 'd' | 'k' =>
                            Common.Object.Delete;
                        when 'E' | 'e' =>
                            Common.Object.Last_Child;
                        when 'G' | 'g' =>
                            Common.Abandon;
                        when 'H' | 'h' =>
                            Common.Object.Parent;
                        when 'I' | 'i' =>
                            Common.Object.Insert;
                        when 'J' | 'j' =>
                            Common.Object.Child;
                        when 'M' | 'm' =>
                            Common.Object.Move;
                        when 'N' | 'n' =>
                            Common.Object.Next;
                        when 'R' | 'r' =>
                            Common.Redo;
                        when 'S' | 's' =>
                            Common.Sort_Image;
                        when 'U' | 'u' =>
                            Common.Undo;
                        when 'V' | 'v' =>
                            Common.Redo;
                        when 'X' | 'x' =>
                            Common.Release;
                        when Tab =>
                            Editor.Char.Tab_To_Comment;
                        when Carriage_Return | S_Carriage_Return =>
                            Common.Commit;
                        when Up | S_Up =>
                            Common.Object.Previous;
                        when Down | S_Down =>
                            Common.Object.Next;
                        when Left | S_Left =>
                            Common.Object.Parent;
                        when Right | S_Right =>
                            Common.Object.Child;
                        when others =>
                            null;
                    end case;

                when Region =>
                    case Key2 is
                        when '"' | ''' | '6' | '^' =>
                            Editor.Region.Capitalize;
                        when '(' | '9' | '[' | '{' =>
                            Editor.Region.Start;
                        when ')' | '0' | ']' | '}' =>
                            Editor.Region.Finish;
                        when '+' | '=' =>
                            Editor.Region.Uncomment;
                        when ',' | '<' =>
                            Editor.Region.Lower_Case;
                        when '-' | '_' =>
                            Editor.Region.Comment;
                        when '.' | '>' =>
                            Editor.Region.Upper_Case;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Region.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Region.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Region.Copy;
                        when 'D' | 'K' | 'd' | 'k' =>
                            Editor.Region.Delete;
                        when 'E' | 'e' | End_Key =>
                            Editor.Region.End_Of;
                        when 'F' | 'f' =>
                            Editor.Region.Fill;
                        when 'H' | 'h' =>
                            Editor.Hold_Stack.Previous;
                        when 'J' | 'j' =>
                            Editor.Hold_Stack.Next;
                        when 'M' | 'm' =>
                            Editor.Region.Move;
                        when 'N' | 'n' =>
                            Editor.Hold_Stack.Push;
                        when 'P' | 'p' =>
                            Editor.Hold_Stack.Copy_Top;
                        when 'Q' | 'q' =>
                            Editor.Region.Justify;
                        when 'R' | 'r' =>
                            Editor.Hold_Stack.Rotate;
                        when 'T' | 't' =>
                            Editor.Hold_Stack.Swap;
                        when 'U' | 'u' =>
                            Editor.Hold_Stack.Top;
                        when 'X' | 'x' =>
                            Editor.Region.Off;
                        when Delete | S_Delete =>
                            Editor.Hold_Stack.Delete_Top;
                        when Up | S_Up =>
                            Editor.Hold_Stack.Top;
                        when Down | S_Down =>
                            Editor.Hold_Stack.Push;
                        when Left | S_Left =>
                            Editor.Hold_Stack.Previous;
                        when Right | S_Right =>
                            Editor.Hold_Stack.Next;
                        when others =>
                            null;
                    end case;

                when Window =>
                    case Key2 is
                        when '!' | '1' =>
                            Editor.Window.Expand;
                        when '.' | '>' =>
                            Editor.Window.Expand (-4);
                        when '/' | '?' =>
                            Editor.Window.Directory;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Window.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Window.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Window.Copy;
                        when 'D' | 'K' | 'W' | 'X' | 'd' | 'k' | 'w' | 'x' =>
                            Editor.Window.Delete;
                        when 'E' | 'e' | End_Key =>
                            Editor.Window.End_Of;
                        when 'F' | 'f' =>
                            Editor.Window.Focus;
                        when 'H' | 'h' =>
                            Common.Enclosing (In_Place => False,
                                              Library => False);
                        when 'J' | 'j' =>
                            Editor.Window.Join (1);
                        when 'M' | 'Z' | 'm' | 'z' |
                             Carriage_Return | S_Carriage_Return =>
                            Editor.Window.Promote;
                        when 'N' | 'n' =>
                            Editor.Window.Next;
                        when 'O' | 'o' =>
                            Editor.Window.Join (1);
                        when 'T' | 't' =>
                            Editor.Window.Transpose;
                        when 'U' | 'u' =>
                            Editor.Window.Previous;
                        when 'V' | 'v' =>
                            Editor.Window.Child;
                        when 'Y' | 'y' =>
                            Editor.Window.Demote;
                        when Delete | S_Delete =>
                            Editor.Window.Join (-1);
                        when Up | S_Up =>
                            Editor.Window.Previous;
                        when Down | S_Down =>
                            Editor.Window.Next;
                        when Left | S_Left =>
                            Editor.Window.Parent;
                        when Right | S_Right =>
                            Editor.Window.Child;
                        when others =>
                            null;
                    end case;

                when Image =>
                    case Key2 is
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Image.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Image.Beginning_Of;
                        when 'E' | 'e' | End_Key =>
                            Editor.Image.End_Of;
                        when 'F' | 'f' =>
                            Editor.Set.Fill_Mode (True);
                        when 'H' | 'h' =>
                            Editor.Image.Left;
                        when 'I' | 'i' =>
                            Editor.Set.Insert_Mode (True);
                        when 'J' | 'j' =>
                            Editor.Image.Right;
                        when 'N' | 'n' =>
                            Editor.Image.Down;
                        when 'O' | 'o' =>
                            Editor.Set.Insert_Mode (False);
                        when 'U' | 'u' =>
                            Editor.Image.Up;
                        when 'X' | 'x' =>
                            Editor.Set.Fill_Mode (False);
                        when Up | S_Up =>
                            Editor.Image.Up;
                        when Down | S_Down =>
                            Editor.Image.Down;
                        when Left | S_Left =>
                            Editor.Image.Left;
                        when Right | S_Right =>
                            Editor.Image.Right;
                        when others =>
                            null;
                    end case;

                when Line =>
                    case Key2 is
                        when '$' | '4' =>
                            Editor.Line.Center;
                        when ',' | '<' =>
                            Editor.Line.Lower_Case;
                        when '.' | '>' =>
                            Editor.Line.Upper_Case;
                        when '/' | '?' =>
                            What.Line;
                        when '6' | '^' =>
                            Editor.Line.Capitalize;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Line.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Line.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Line.Copy;
                        when 'D' | 'd' =>
                            Editor.Line.Delete;
                        when 'E' | 'e' | End_Key =>
                            Editor.Line.End_Of;
                        when 'I' | 'i' =>
                            Editor.Line.Insert (1);
                        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 Delete | S_Delete =>
                            Editor.Line.Delete_Backward;
                        when others =>
                            null;
                    end case;

                when Word =>
                    case Key2 is
                        when ',' | '<' =>
                            Editor.Word.Lower_Case;
                        when '.' | '>' =>
                            Editor.Word.Upper_Case;
                        when '/' | '?' =>
                            Speller.Check_Text (Data => "<TEXT>");
                        when '6' | '^' =>
                            Editor.Word.Capitalize;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Word.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Word.Beginning_Of;
                        when 'D' | 'd' =>
                            Editor.Word.Delete;
                        when 'E' | 'e' | End_Key =>
                            Editor.Word.End_Of;
                        when 'I' | 'i' =>
                            Speller.Learn_Word
                               (The_Word => "", Dictionary => 0);
                        when 'J' | 'j' =>
                            Editor.Word.Next;
                        when 'K' | 'k' =>
                            Editor.Word.Delete_Forward;
                        when 'M' | 'm' =>
                            Speller.Check_Image;
                        when 'N' | 'n' =>
                            Speller.Explain_Next;
                        when 'R' | 'r' =>
                            Speller.Learn_Replacement
                               (The_Word => "", Choice => 1, Dictionary => 0);
                        when 'T' | 't' =>
                            Editor.Word.Transpose;
                        when 'W' =>
                            Speller.Speller_Window (In_Place => True);
                        when 'X' | 'x' =>
                            Speller.Exchange_Word (Choice => 1);
                        when 'w' =>
                            Speller.Speller_Window (In_Place => False);
                        when Delete | S_Delete =>
                            Editor.Word.Delete_Forward;
                        when C_0 =>
                            Speller.Exchange_Word (Choice => 10);
                        when C_1 =>
                            Speller.Exchange_Word (Choice => 1);
                        when C_2 =>
                            Speller.Exchange_Word (Choice => 2);
                        when C_3 =>
                            Speller.Exchange_Word (Choice => 3);
                        when C_4 =>
                            Speller.Exchange_Word (Choice => 4);
                        when C_5 =>
                            Speller.Exchange_Word (Choice => 5);
                        when C_6 =>
                            Speller.Exchange_Word (Choice => 6);
                        when C_7 =>
                            Speller.Exchange_Word (Choice => 7);
                        when C_8 =>
                            Speller.Exchange_Word (Choice => 8);
                        when C_9 =>
                            Speller.Exchange_Word (Choice => 9);
                        when Down | S_Down =>
                            Speller.Explain_Next;
                        when Left | S_Left =>
                            Editor.Word.Previous;
                        when Right | S_Right =>
                            Editor.Word.Next;
                        when C_W | Cs_W =>
                            Speller.Speller_Window (In_Place => False);
                        when others =>
                            null;
                    end case;

                when Mark =>
                    case Key2 is
                        when '(' | '9' | 'A' | '[' | 'a' | '{' | Begin_Of =>
                            Editor.Macro.Start;
                        when ')' | '0' | 'E' | ']' | 'e' | '}' | End_Key =>
                            Editor.Macro.Finish;
                        when 'B' | 'b' =>
                            Editor.Macro.Start;
                        when 'F' | 'f' =>
                            Editor.Macro.Bind;
                        when 'H' | 'h' =>
                            Editor.Mark.Previous;
                        when 'J' | 'j' =>
                            Editor.Mark.Next;
                        when 'M' | 'X' | 'm' | 'x' |
                             Carriage_Return | S_Carriage_Return =>
                            Editor.Macro.Execute;
                        when 'N' | 'n' =>
                            Editor.Mark.Push;
                        when 'P' | 'p' =>
                            Editor.Mark.Copy_Top;
                        when 'R' | 'r' =>
                            Editor.Mark.Rotate;
                        when 'T' | 't' =>
                            Editor.Mark.Swap;
                        when 'U' | 'u' =>
                            Editor.Mark.Top;
                        when Delete | S_Delete | Backspace | S_Backspace =>
                            Editor.Mark.Delete_Top;
                        when Up | S_Up =>
                            Editor.Mark.Top;
                        when Down | S_Down =>
                            Editor.Mark.Push;
                        when Left | S_Left =>
                            Editor.Mark.Previous;
                        when Right | S_Right =>
                            Editor.Mark.Next;
                        when others =>
                            null;
                    end case;

--  misc characters.
                when ' ' | S_Space =>
                    Editor.Char.Insert_Character (1, ' ');
                when C_0 =>
                    Editor.Set.Argument_Digit (0);
                when C_1 =>
                    Editor.Set.Argument_Digit (1);
                when C_2 =>
                    Editor.Set.Argument_Digit (2);
                when C_3 =>
                    Editor.Set.Argument_Digit (3);
                when C_4 =>
                    Editor.Set.Argument_Digit (4);
                when C_5 =>
                    Editor.Set.Argument_Digit (5);
                when C_6 =>
                    Editor.Set.Argument_Digit (6);
                when C_7 =>
                    Editor.Set.Argument_Digit (7);
                when C_8 =>
                    Editor.Set.Argument_Digit (8);
                when C_9 =>
                    Editor.Set.Argument_Digit (9);
                when C_Minus | C_Underline =>
                    Editor.Set.Argument_Minus;
                when M_Minus | M_Underline =>
                    Editor.Cursor.Previous (Prompt => False, Underline => True);
                    -- when Cm_Minus | Cm_Underline =>
                    --     Editor.Cursor.Previous (Prompt => True, Underline => True);
                when Carriage_Return | S_Carriage_Return =>
                    Editor.Line.Indent;
                when C_Carriage_Return =>
                    Common.Commit;
                when M_Carriage_Return =>
                    Command.Debug;
                when Up =>
                    Editor.Cursor.Up;
                when S_Up =>
                    Editor.Image.Up;
                when C_Up =>
                    Common.Object.Previous;
                when M_Up =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);
                when Cm_Up =>
                    Editor.Window.Previous;
                when Down =>
                    Editor.Cursor.Down;
                when S_Down =>
                    Editor.Image.Down;
                when C_Down =>
                    Common.Object.Next;
                when M_Down =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);
                when Cm_Down =>
                    Editor.Window.Next;
                when Left =>
                    Editor.Cursor.Left;
                when S_Left =>
                    Editor.Image.Left;
                when C_Left =>
                    Common.Object.Parent;
                when M_Left =>
                    Editor.Word.Previous;
                when Cm_Left =>
                    Common.Enclosing (In_Place => True, Library => False);
                when Right =>
                    Editor.Cursor.Right;
                when S_Right =>
                    Editor.Image.Right;
                when C_Right =>
                    Common.Object.Child;
                when M_Right =>
                    Editor.Word.Next;
                when Cm_Right =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => False);
                when Tab | S_Tab =>
                    Editor.Char.Tab_Forward;
                    -- when M_Tab =>   -- Motif defined
                    --Editor.Char.Tab_To_Comment;
                when Cm_Tab =>
                    What.Tabs;
                when Begin_Of =>
                    Editor.Line.Beginning_Of;
                when S_Begin_Of =>
                    Editor.Image.Beginning_Of;
                when C_Begin_Of =>
                    -- what line info
                    Menu_Operations.Dispatch (26);
                when Cm_Begin_Of =>
                    Editor.Window.Beginning_Of;
                when End_Key =>
                    Editor.Line.End_Of;
                when S_End_Key =>
                    Editor.Image.End_Of;
                when C_End_Key =>
                    Text.End_Of_Input;
                when Cm_End_Key =>
                    Editor.Window.End_Of;
                when Page_Down =>
                    Editor.Image.Down;
                when S_Page_Down =>
                    Editor.Image.End_Of;
                when Page_Up =>
                    Editor.Image.Up;
                when S_Page_Up =>
                    Editor.Image.Beginning_Of;
                when Delete =>
                    Editor.Char.Delete_Backward;
                when Backspace =>  
                    Editor.Char.Delete_Backward;
                when S_Delete | S_Backspace =>
                    Editor.Region.Delete;
                when C_Backspace | C_Delete =>
                    Editor.Line.Delete_Forward (Repeat => 1);
                when M_Backspace | M_Delete =>
                    Editor.Word.Delete_Backward;
                when Cm_Delete | Cm_Backspace =>
                    Editor.Char.Delete_Spaces;

                    -- Non-Alpha
                when C_Less_Than | C_Comma =>
                    Editor.Window.Expand (Lines => -4);
                when M_Less_Than | M_Comma =>
                    Editor.Word.Lower_Case;
                when Cm_Less_Than | Cm_Comma =>
                    Common.Undo;
                when C_Greater_Than | C_Period =>
                    Editor.Window.Expand (Lines => 4);
                when M_Greater_Than | M_Period =>
                    Editor.Word.Upper_Case;
                when Cm_Greater_Than | Cm_Period =>
                    Common.Redo;
                when C_Left_Bracket =>
                    Editor.Region.Start;
                when M_Left_Bracket =>
                    Editor.Macro.Start;
                when C_Right_Bracket =>
                    Editor.Region.Finish;
                when M_Right_Bracket =>
                    Editor.Macro.Finish;
                when M_Exclam | M_1 =>
                    Common.Expand;
                when C_Colon | C_Semicolon =>
                    Editor.Char.Insert_String (Value => ":=");
                when Cm_Exclam =>
                    Editor.Window.Expand (Lines => 4);
                when C_At_Sign =>
                    Editor.Mark.Push;
                when C_Left_Paren =>
                    Editor.Char.Insert_String (Value => "(" & Ascii.Quotation);
                when C_Right_Paren =>
                    Editor.Char.Insert_String (Value => Ascii.Quotation & ")");
                when M_Right_Paren | M_0 =>
                    Common.Elide;
                when Cm_Right_Paren =>
                    Editor.Window.Expand (Lines => -4);
                when C_Plus | C_Equal =>
                    Editor.Char.Insert_String (Value => "=>");
                when M_Plus | M_Equal =>
                    Editor.Cursor.Next
                       (Repeat => 1, Prompt => False, Underline => True);
                when Cm_Plus | Cm_Equal =>
                    Editor.Macro.Bind;
                when C_Bar =>
                    Editor.Char.Insert_String (Value => "--|");
                when C_Backslash =>
                    Editor.Region.Off;
                when M_Slash | M_Question =>
                    Common.Explain;  -- mostly for compatibility
                when C_Slash | C_Question =>
                    Editor.Window.Directory;
                when C_Quotation | C_Tick =>  -- differ fromRat
                    Editor.Char.Quote;

                    -- Alphabetic
                when C_A | Cs_A =>
                    Editor.Line.Beginning_Of;
                when C_B | Cs_B =>
                    Editor.Cursor.Backward;
                when C_C | Cs_C =>
                    Menu_Operations.Edit.Copy;
                when M_C | Ms_C =>
                    Common.Create_Command;
                when Cm_C | Cms_C =>
                    Editor.Line.Copy;
                when C_D | Cs_D =>
                    Editor.Char.Delete_Forward;
                when M_D | Ms_D =>
                    Editor.Word.Delete;
                when Cm_D | Cms_D =>
                    Editor.Line.Delete;
                when C_E | Cs_E =>
                    Editor.Line.End_Of;
                when Cm_E | Cms_E =>
                    Editor.Window.Demote;
                when C_F | Cs_F =>
                    Editor.Cursor.Forward;
                when C_H | Cs_H =>
                    Editor.Cursor.Left;
                when M_J | Ms_J =>
                    Editor.Word.Next;
                when C_J | Cs_J =>
                    Editor.Cursor.Right;
                when C_K | Cs_K =>
                    Editor.Line.Delete_Forward;
                when M_K | Ms_K =>
                    Editor.Word.Delete_Forward;
                when Cm_K | Cms_K =>
                    Editor.Window.Delete;
                when C_L | Cs_L =>
                    Editor.Screen.Redraw;
                when M_L | Ms_L =>
                    Editor.Screen.Clear;
                when C_M | Cs_M =>
                    Editor.Mark.Push;
                when Cm_M | Cms_M =>
                    Editor.Mark.Previous;
                when C_N | Cs_N =>
                    Editor.Cursor.Down;
                when M_N | Ms_N =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);
                when Cm_N | Cms_N =>
                    Editor.Window.Next;
                when C_O | Cs_O =>
                    Editor.Line.Open;  
                when Cm_P | Cms_P =>
                    Editor.Window.Promote;
                when C_Q | Cs_Q =>
                    Editor.Key.Name;
                when M_Q | Ms_Q =>
                    Editor.Key.Prompt (Key_Code => "");
                when C_R | Cs_R =>
                    Editor.Search.Previous (Target => "", Wildcard => False);
                when Cm_R | Cms_R =>
                    Editor.Search.Replace_Previous (Target => "",
                                                    Replacement => "",
                                                    Repeat => 1,
                                                    Wildcard => False);
                when C_S | Cs_S =>
                    Editor.Search.Next (Target => "", Wildcard => False);
                when Cm_S | Cms_S =>
                    Editor.Search.Replace_Next (Target => "",
                                                Replacement => "",
                                                Repeat => 1,
                                                Wildcard => False);
                when C_T | Cs_T =>
                    Editor.Char.Transpose;
                when Cm_T | Cms_T =>
                    Editor.Line.Transpose;
                when M_T | Ms_T =>
                    Editor.Word.Transpose;
                when C_U | Cs_U =>
                    Editor.Cursor.Up;
                when M_U | Ms_U =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);
                when Cm_U | Cms_U =>
                    Editor.Window.Previous;
                when C_V | Cs_V =>
                    Editor.Image.Down;
                when M_V | Ms_V =>
                    Editor.Image.Up;
                when C_W | Cs_W =>
                    Editor.Region.Delete;
                when C_X | Cs_X =>
                    Editor.Set.Designation_Off;
                when M_X | Ms_X =>
                    Editor.Macro.Execute;
                when C_Y | Cs_Y =>
                    Editor.Hold_Stack.Top;
                when M_Y | Ms_Y =>
                    Editor.Hold_Stack.Next;
                when C_Z | Cs_Z =>
                    Editor.Image.Up;

                    -- the next 8 are the left-hand function keys on
                    -- a sun keyboard.  Disable them.  The top two
                    -- (L1, L2) leave alone as they are mapped to F11, F12

                when Props =>
                    Editor.Noop;
                when Undo =>
                    Editor.Noop;
                when Front =>
                    Editor.Noop;
                when Copy =>
                    Editor.Noop;
                when Open =>
                    Editor.Noop;
                when Paste =>
                    Editor.Noop;
                when Find =>
                    Editor.Noop;  
                when Cut =>
                    Editor.Noop;

                when M_2 | M_At_Sign =>
                    case Key2 is
                        when 'C' | 'c' =>
                            Editor.Char.Insert_String ("--| @COMPONENT_KIND ");
                        when 'D' | 'd' =>
                            Editor.Char.Insert_String ("--| @DECOMPOSITION ");
                        when 'N' | 'n' =>
                            Editor.Char.Insert_String ("--| @NOTE ");
                        when 'R' | 'r' =>
                            case Key3 is
                                when 'A' | 'a' =>
                                    Editor.Char.Insert_String ("--| @RAISES ");
                                when 'F' | 'f' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT FUNCTION ");
                                when 'I' | 'i' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT INTERFACE ");
                                when 'S' | 's' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT SUBFUNCTION ");
                                when others =>
                                    null;
                            end case;
                        when 'S' | 's' =>
                            Editor.Char.Insert_String ("--| @STATES (");
                        when M_2 | M_At_Sign =>
                            Editor.Char.Insert_String ("--| @");
                        when others =>
                            null;
                    end case;

                when M_6 | M_Circumflex =>
                    Editor.Word.Capitalize (Repeat => 1);

                    ---------------
                    -- Menu maps --
                    ---------------

                when M_B | Ms_B => -- debug menu
                    case Key2 is
                        when 's' | 'S' =>
                            Command.Debug;
                        when 'w' | 'W' =>
                            Debug.Current_Debugger;
                        when 'f' | 'F' =>
                            Debug.Debug_Off (True);
                        when 'd' | 'D' =>
                            Debug.Debug_Off (False);
                        when 'p' | 'P' =>
                            -- bring up the palette ...
                            case Key3 is
                                -- debug palette stuff
                                when 'a' | 'A' =>
                                    Debug.Execute (Name => "all");
                                when 'b' | 'B' =>
                                    -- breakpoint frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            -- Activate all breaks
                                            Debug.Activate (Breakpoint => 0);
                                        when 'b' | 'B' =>
                                            -- break here
                                            Debug.Break
                                               (Location => "<SELECTION>",
                                                Stack_Frame => 0,
                                                Count => 1,
                                                In_Task => "",
                                                Default_Lifetime => True);
                                        when 'd' | 'D' =>
                                            -- delete all breaks
                                            Debug.Remove (Breakpoint => 0,
                                                          Delete => True);
                                        when 'k' | 'K' =>
                                            -- break
                                            Menu_Operations.Debug.Break;
                                        when 't' | 'T' =>
                                            -- Temp break here
                                            Debug.Break
                                               (Location => "<SELECTION>",
                                                Stack_Frame => 0,
                                                Count => 1,
                                                In_Task => "",
                                                Default_Lifetime => False);
                                        when 'v' | 'V' =>
                                            -- deactivate all breaks
                                            Debug.Remove (Breakpoint => 0,
                                                          Delete => False);
                                        when others =>
                                            null;
                                    end case;
                                when 'c' | 'C' =>
                                    Debug.Execute (Name => "");
                                when 'd' | 'D' =>
                                    -- display frame
                                    case Key4 is
                                        when 'b' | 'B' =>
                                            -- Show all debugger state
                                            Debug.Show (Values_For =>
                                                           Debug.All_State);
                                        when 'e' | 'E' =>
                                            -- Show Execeptions
                                            Debug.Show (Values_For =>
                                                           Debug.Exceptions);
                                        when 'l' | 'L' =>
                                            -- Show libraries
                                            Debug.Show (Values_For =>
                                                           Debug.Libraries);
                                        when others =>
                                            null;
                                    end case;
                                when 'e' | 'E' =>
                                    Debug.Source (Location => "",
                                                  Stack_Frame => 0);
                                when 'g' | 'G' =>
                                    -- tracing frame
                                    case Key4 is  
                                        when 'a' | 'A' =>
                                            -- Activate all tracing
                                            Debug.Trace
                                               (On => True,
                                                Event => Debug.All_Events,
                                                In_Task => "",
                                                At_Location => "",
                                                Stack_Frame => 0);
                                        when 'd' | 'D' =>
                                            -- Deactivate all tracing
                                            Debug.Trace
                                               (On => False,
                                                Event => Debug.All_Events,
                                                In_Task => "",
                                                At_Location => "<SELECTION>",
                                                Stack_Frame => 0);
                                        when 's' | 'S' =>
                                            -- Show tracing
                                            Debug.Show (Values_For =>
                                                           Debug.Traces);
                                        when 't' | 'T' =>
                                            -- trace control
                                            Menu_Operations.Dispatch (41);
                                        when others =>
                                            null;
                                    end case;
                                when 'i' | 'I' =>
                                    Debug.Stop (Name => "all");
                                when 'j' | 'J' =>
                                    -- debug put...
                                    Menu_Operations.Dispatch (40);
                                when 'k' | 'K' =>
                                    Debug.Stack
                                       (For_Task => "", Start => 0, Count => 0);
                                when 'l' | 'L' =>
                                    Debug.Run (Stop_At => Debug.Local_Statement,
                                               Count => 1,
                                               In_Task => "");
                                when 'm' | 'M' =>
                                    Menu_Operations.Debug.Modify;
                                when 'o' | 'O' =>
                                    Debug.Stop (Name => "");  
                                when 'q' | 'Q' =>
                                    -- quit frame
                                    case Key4 is
                                        when 'd' | 'D' =>
                                            -- detach
                                            Debug.Debug_Off (Kill_Job => False);
                                        when 'k' | 'K' =>
                                            -- kill job being debugged
                                            Debug.Debug_Off (Kill_Job => True);
                                        when 't' | 'T' =>
                                            -- terminate debugger
                                            Debug.Kill (Job => True,
                                                        Debugger => True);
                                        when others =>
                                            null;
                                    end case;  
                                when 'r' | 'R' =>
                                    Debug.Run (Stop_At => Debug.Returned,
                                               Count => 1,
                                               In_Task => "");
                                when 's' | 'S' =>
                                    Debug.Run (Stop_At => Debug.Statement,
                                               Count => 1,
                                               In_Task => "");
                                when 't' | 'T' =>
                                    -- task / task info frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            -- Show all tasks
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.All_Tasks);
                                        when 'b' | 'B' =>
                                            -- List blocked tasks
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Blocked);
                                        when 'd' | 'D' =>
                                            -- List held tasks
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Held);
                                        when 'h' | 'H' =>
                                            -- Hold all tasks
                                            Debug.Hold (Name => "all");  
                                        when 'i' | 'I' =>
                                            -- Show space info - all tasks
                                            Debug.Information
                                               (Info_Type => Debug.Space,
                                                For_Task => "all");
                                        when 'l' | 'L' =>
                                            -- Release all
                                            Debug.Release (Name => "all");  
                                        when 'n' | 'N' =>
                                            -- List tasks not running
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Not_Running);
                                        when 'o' | 'O' =>
                                            -- Show holds
                                            Debug.Show
                                               (Values_For =>
                                                   Debug.Stops_And_Holds);
                                        when 'p' | 'P' =>
                                            -- List stopped
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Stopped);
                                        when 't' | 'T' =>
                                            -- List all tasks
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.All_Tasks);
                                        when 'u' | 'U' =>
                                            -- List running tasks
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Running);
                                        when 'x' | 'X' =>
                                            -- Show exceptions - all tasks
                                            Debug.Information
                                               (Info_Type => Debug.Exceptions,
                                                For_Task => "all");
                                        when 'z' | 'Z' =>
                                            -- Show rendezvous info - all tasks
                                            Debug.Information
                                               (Info_Type => Debug.Rendezvous,
                                                For_Task => "all");
                                        when others =>
                                            null;
                                    end case;
                                when 'w' | 'W' =>
                                    case Key4 is
                                        -- target frame
                                        when 'a' | 'A' =>
                                            -- Attach process
                                            Debug.Attach_Process
                                               (Name => "", Options => "");
                                        when 'c' | 'C' =>
                                            -- Connect
                                            Debug.Connect (Remote_Machine => "",
                                                           Target => "");
                                        when 'i' | 'I' =>
                                            -- invoke
                                            Menu_Operations.Dispatch (49);
                                        when 'r' | 'R' =>
                                            -- reconnect
                                            Debug.Reconnect;
                                        when 't' | 'T' =>
                                            -- target request
                                            Menu_Operations.Dispatch (50);
                                        when others =>
                                            null;
                                    end case;
                                when 'x' | 'X' =>
                                    -- Control / Context frame
                                    case Key4 is  
                                        when 'b' | 'B' =>
                                            -- Enable ...
                                            Menu_Operations.Dispatch (52);
                                        when 'c' | 'C' =>
                                            -- Set control context
                                            Menu_Operations.Debug.
                                               Context_Control;
                                        when 'd' | 'D' =>
                                            -- Disable ...
                                            Menu_Operations.Dispatch (53);  
                                        when 'e' | 'E' =>
                                            -- Set evaluation context
                                            Menu_Operations.Debug.
                                               Context_Evaluation;
                                        when 'p' | 'P' =>
                                            -- Clear stepping
                                            Debug.Clear_Stepping
                                               (For_Task => "");
                                        when 'r' | 'R' =>
                                            -- Reset to defaults
                                            Debug.Reset_Defaults;
                                        when 's' | 'S' =>
                                            -- Show evaluation context
                                            Debug.Show (Values_For =>
                                                           Debug.Contexts);
                                        when 't' | 'T' =>
                                            -- debug set ...
                                            Menu_Operations.Dispatch (51);
                                        when 'w' | 'W' =>
                                            -- show debug switches
                                            Debug.Show (Values_For =>
                                                           Debug.Flags);
                                        when others =>
                                            null;
                                    end case;  
                                when 'y' | 'Y' =>
                                    -- memory frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            -- address to location
                                            Menu_Operations.Dispatch (47);
                                        when 'd' | 'D' =>
                                            -- Memory_Display
                                            Menu_Operations.Dispatch (54);
                                        when 'e' | 'E' =>
                                            -- exception to name
                                            Menu_Operations.Dispatch (48);
                                        when 'g' | 'G' =>
                                            -- Register_Modify
                                            Menu_Operations.Dispatch (57);
                                        when 'l' | 'L' =>
                                            -- location to address
                                            Menu_Operations.Dispatch (45);
                                        when 'o' | 'O' =>
                                            -- object address
                                            Menu_Operations.Dispatch (46);
                                        when 'r' | 'R' =>
                                            -- Register_Display
                                            Menu_Operations.Dispatch (55);  
                                        when 'y' | 'Y' =>
                                            -- Memory_Modify
                                            Menu_Operations.Dispatch (56);
                                        when others =>
                                            null;
                                    end case;
                                when 'z' | 'Z' =>
                                    -- exception frame
                                    case Key4 is  
                                        when 'a' | 'A' =>
                                            -- Forget all
                                            Debug.Forget (Name => "all",
                                                          In_Task => "",
                                                          At_Location => "");
                                        when 'c' | 'C' =>
                                            -- Catch...
                                            Menu_Operations.Dispatch (43);
                                        when 'f' | 'F' =>
                                            -- Forget ...
                                            Menu_Operations.Dispatch (42);
                                        when 'h' | 'H' =>
                                            -- Catch unlisted
                                            Debug.Catch (Name => "<selection>",
                                                         In_Task => "",
                                                         At_Location => "");
                                        when 'p' | 'P' =>
                                            -- Propagate ...
                                            Menu_Operations.Dispatch (44);
                                        when 'u' | 'U' =>
                                            -- Propagate unlisted
                                            Debug.Propagate (Name => "",
                                                             In_Task => "",
                                                             At_Location => "");
                                        when others =>
                                            null;
                                    end case;  
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;

                when M_P | Ms_P => -- Program/Compilation menu
                    case Key2 is
                        when 'f' | 'F' =>
                            Common.Format;
                        when 'm' | 'M' =>
                            Common.Complete;
                        when 'z' | 'Z' =>
                            Common.Semanticize;
                        when 'p' | 'P' =>
                            Menu_Operations.Compile.Promote;
                        when 'c' | 'C' =>
                            Menu_Operations.Dispatch (20);
                        when M_C | Ms_C =>
                            -- Menu_Operations.Compile.Code; -- JustDoIt Mode
                            Menu_Operations.Dispatch (113);
                        when 'i' | 'I' =>
                            Menu_Operations.Dispatch (21);
                        when M_I | Ms_I =>
                            -- Menu_Operations.Compile.Install; -- JustDoIt Mode
                            Menu_Operations.Dispatch (114);
                        when 's' | 'S' =>
                            --Menu_Operations.Compile.Source;
                            Menu_Operations.Dispatch (22);
                        when M_S | Ms_S =>
                            -- Menu_Operations.Compile.Source; -- JustDoIt Mode
                            Menu_Operations.Dispatch (115);
                        when 'd' | 'D' =>
                            Menu_Operations.Compile.Demote;
                        when 'e' | 'E' =>
                            --Menu_Operations.Compile.Install;
                            Menu_Operations.Dispatch (23);
                        when M_E | Ms_E =>
                            -- Menu_Operations.Compile.Install; -- JustDoIt Mode
                            Menu_Operations.Dispatch (116);
                        when 'o' | 'O' =>
                            --Menu_Operations.Compile.Source;
                            Menu_Operations.Dispatch (24);
                        when M_O | Ms_O =>
                            -- Menu_Operations.Compile.Source; -- JustDoIt Mode
                            Menu_Operations.Dispatch (117);
                        when 't' | 'T' =>
                            --Menu_Operations.Compile.Archive;
                            Menu_Operations.Dispatch (25);
                        when M_T | Ms_T =>
                            -- Menu_Operations.Compile.Archive; -- JustDoIt Mode
                            Menu_Operations.Dispatch (118);
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'i' | 'I' =>
                                    -- compile incrementatl insert
                                    Menu_Operations.Dispatch (2);
                                when 'e' | 'E' =>
                                    -- compile incremental edit
                                    Menu_Operations.Dispatch (3);
                                when 'd' | 'D' =>
                                    -- compile incremental dispatch
                                    Menu_Operations.Dispatch (4);
                                when 'p' | 'P' =>
                                    -- compile incremental promote
                                    Menu_Operations.Dispatch (5);
                                when others =>
                                    null;
                            end case;
                        when 'u' | 'U' =>
                            Menu_Operations.Compile.Show_Usage;
                        when 'w' | 'W' =>
                            Menu_Operations.Compile.Show_Unused;
                        when 'b' | 'B' =>
                            case Key3 is
                                when 'l' | 'L' =>
                                    Menu_Operations.Compile.Load;
                                when 'f' | 'F' =>
                                    Menu_Operations.Compile.Parse;
                                when 'p' | 'P' =>
                                    Menu_Operations.Compile.Build_Private_Part;
                                when 'b' | 'B' =>
                                    Menu_Operations.Compile.Build_Body;
                                when 's' | 'S' =>
                                    Menu_Operations.Compile.Make_Separate;
                                when 'i' | 'I' =>
                                    Menu_Operations.Compile.Make_Inline;
                                when 'w' | 'W' =>
                                    Ada.Withdraw;
                                when others =>
                                    null;
                            end case;
                        when 'l' | 'L' =>
                            Menu_Operations.Compile.Options;
                        when others =>
                            null;
                    end case;

                when M_E | Ms_E => -- edit menu
                    case Key2 is
                        when 'a' | 'A' =>
                            -- add entry...
                            Common.Object.Insert;
                        when 'c' | 'C' =>
                            Editor.Hold_Stack.Push;
                        when 'd' | 'D' =>
                            -- delete entry...
                            Common.Object.Delete;
                        when 'e' | 'E' =>
                            -- edit entry...
                            Menu_Operations.Dispatch (17);
                        when 'f' | 'F' =>
                            -- fill...
                            Menu_Operations.Region.Fill;
                        when 'j' | 'J' =>
                            -- justify...
                            Menu_Operations.Region.Justify;
                        when 'l' | 'L' =>
                            -- deselect...
                            Editor.Set.Designation_Off;
                        when 'm' | 'M' =>
                            Menu_Operations.Region.Make_Comment;
                        when 'n' | 'N' =>
                            Menu_Operations.Edit.Underlines_Off;
                        when 'o' | 'O' =>
                            Menu_Operations.Region.Uncomment;
                        when 'p' | 'P' =>
                            Editor.Hold_Stack.Top;
                        when 'r' | 'R' =>
                            -- search/replace...
                            Menu_Operations.Dispatch (18);
                        when 's' | 'S' =>
                            -- spelling...
                            case Key3 is
                                when 'w' | 'W' =>
                                    Speller.Check_Text;
                                when 'i' | 'I' =>
                                    Speller.Check_Image;
                                when 'r' | 'R' =>
                                    Speller.Exchange_Word;
                                when 'a' | 'A' =>
                                    Speller.Learn_Word;
                                when 'l' | 'L' =>
                                    Speller.Learn_Replacement (The_Word => "",
                                                               Choice => 1,
                                                               Dictionary => 0);
                                when 'n' | 'N' =>
                                    Speller.Explain_Next;
                                when others =>
                                    null;
                            end case;
                        when 't' | 'T' =>
                            Editor.Region.Delete;
                        when 'u' | 'U' =>
                            Menu_Operations.Region.Uppercase;
                        when 'w' | 'W' =>
                            Menu_Operations.Region.Lowercase;
                        when 'y' | 'Y' =>
                            -- Typing Modes...
                            Menu_Operations.Dispatch (16);
                        when 'z' | 'Z' =>
                            Menu_Operations.Region.Capitalize;
                        when others =>
                            null;
                    end case;

                when M_F | Ms_F => -- File menu
                    case Key2 is
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'f' | 'F' =>
                                    Menu_Operations.File.New_File;
                                when 'a' | 'A' =>
                                    Menu_Operations.File.New_Ada;
                                when 'w' | 'W' =>
                                    Menu_Operations.File.New_World;
                                when 'd' | 'D' =>
                                    Menu_Operations.File.New_Directory;
                                when 's' | 'S' =>
                                    Menu_Operations.File.New_Subsystem;
                                when 'v' | 'V' =>
                                    Menu_Operations.File.New_Working_View;
                                when 'p' | 'P' =>
                                    Menu_Operations.File.New_Spec_View;
                                when 'r' | 'R' =>
                                    Menu_Operations.File.New_Release_View;
                                when 'c' | 'C' =>
                                    Menu_Operations.File.New_Code_View;
                                when 't' | 'T' =>
                                    Menu_Operations.File.New_Switch_File;
                                when 'y' | 'Y' =>
                                    Menu_Operations.File.New_Activity;
                                when 'm' | 'M' =>
                                    Menu_Operations.File.New_Mailbox;
                                when 'u' | 'U' =>
                                    Menu_Operations.File.New_Venture;
                                when 'o' | 'O' =>
                                    Menu_Operations.File.New_Work_Order;
                                when 'l' | 'L' =>
                                    Menu_Operations.File.New_Work_Order_List;
                                when 'e' | 'E' =>
                                    Menu_Operations.File.New_System;
                                when others =>
                                    null;
                            end case;
                        when 'o' | 'O' =>
                            Menu_Operations.File.Open;
                        when 'b' | 'B' =>
                            -- file browse
                            Menu_Operations.Dispatch (1);
                        when 'c' | 'C' =>
                            Menu_Operations.File.Close;
                        when 's' | 'S' =>
                            Menu_Operations.File.Save;
                        when 'v' | 'V' =>
                            Menu_Operations.File.Revert;
                        when 'p' | 'P' =>
                            Menu_Operations.File.Print;
                        when M_P | Ms_P =>
                            Menu_Operations.Dispatch (110); -- JustDoIt mode
                        when 't' | 'T' =>
                            Menu_Operations.File.Properties;
                        when 'y' | 'Y' =>
                            Menu_Operations.File.Copy;
                        when 'm' | 'M' =>
                            Menu_Operations.File.Move;
                        when 'd' | 'D' =>
                            Menu_Operations.File.Delete;
                        when 'i' | 'I' =>
                            Menu_Operations.Edit.Insert_File;
                        when 'r' | 'R' =>
                            Menu_Operations.File.Run;
                        when 'e' | 'E' =>
                            -- windows quit
                            null;  
                        when 'q' | 'Q' =>  -- for S_F2 on F key palette
                            Common.Edit;
                        when others =>
                            null;
                    end case;

                when M_H | Ms_H => -- Help menu
                    case Key2 is
                        when 'u' | 'U' =>
                            Menu_Operations.Help.Explain_Underline;
                        when 'k' | 'K' =>
                            Editor.Key.Name (Key_Code => "");
                        when 'h' | 'H' =>
                            Menu_Operations.Help.On_Help;
                        when others =>
                            null;
                    end case;

                when M_M | Ms_M => -- CM menu
                    case Key2 is  
                        when 'o' | 'O' =>
                            Menu_Operations.Cm.Check_Out;
                        when M_O | Ms_O =>
                            Menu_Operations.Dispatch (111); -- JustDoIt Mode
                        when 'i' | 'I' =>
                            Menu_Operations.Cm.Check_In;
                        when M_I | Ms_I =>
                            Menu_Operations.Dispatch (112); -- JustDoIt Mode
                        when 'b' | 'B' =>
                            Menu_Operations.Cm.Abandon;
                        when 'a' | 'A' =>
                            Menu_Operations.Cm.Accept_Changes;
                        when M_A | Ms_A =>
                            Menu_Operations.Dispatch (119); -- JustDoIt Mode
                        when 'j' | 'J' =>
                            Menu_Operations.Cm.Join;
                        when 's' | 'S' =>
                            Menu_Operations.Cm.Sever;
                        when 'm' | 'M' =>
                            Menu_Operations.Cm.Imports;
                        when 'e' | 'E' =>
                            Menu_Operations.Cm.Properties;
                        when 'c' | 'C' =>
                            -- cm control
                            Menu_Operations.Dispatch (7);
                        when 'g' | 'G' =>
                            -- cm revert
                            Menu_Operations.Dispatch (8);
                        when 'r' | 'R' => -- report...
                            case Key3 is
                                when 'c' | 'C' =>
                                    Cmvc.Show_All_Controlled
                                       (In_View => "<CURSOR>");
                                when 'u' | 'U' =>
                                    Cmvc.Show_All_Uncontrolled
                                       (In_View => "<CURSOR>");
                                when 'd' | 'D' =>
                                    Cmvc.Show_Out_Of_Date_Objects;
                                when 'o' | 'O' =>
                                    Cmvc.Show_All_Checked_Out;
                                when 'i' | 'I' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => True,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");
                                when 'r' | 'R' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => True,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");

                                when 'e' | 'E' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => True,
                                        Response => "<PROFILE>");

                                when 'm' | 'M' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => True,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");
                                when 'h' | 'H' =>
                                    -- history box
                                    Menu_Operations.Dispatch (6);
                                when others =>
                                    null;
                            end case;
                        when 't' | 'T' =>
                            Activity.Edit;
                        when others =>
                            null;
                    end case;

                when M_O | Ms_O =>         -- Tools menu
                    case Key2 is
                        when 'c' | 'C' =>
                            case Key3 is
                                when 'b' | 'B' =>
                                    Editor.Macro.Start;
                                when 'e' | 'E' =>
                                    Editor.Macro.Finish;
                                when 'x' | 'X' =>
                                    Editor.Macro.Execute;
                                when 'k' | 'K' =>
                                    Editor.Macro.Bind (Key => "");
                                when others =>
                                    null;
                            end case;  
                        when 'd' | 'D' =>
                            -- RDF menu
                            case Key3 is
                                when 'd' | 'D' =>
                                    -- Pdl Definition
                                    Menu_Operations.Dispatch (70);
                                when 'e' | 'E' =>
                                    -- Pdl Enclosing
                                    Menu_Operations.Dispatch (71);
                                when 'u' | 'U' =>
                                    -- Pdl Show User
                                    Menu_Operations.Dispatch (72);
                                when 'x' | 'X' =>
                                    -- Pdl Explain
                                    Menu_Operations.Dispatch (73);
                                when 'c' | 'C' =>
                                    --Pdl Complete
                                    Menu_Operations.Dispatch (74);
                                when 'a' | 'A' =>
                                    -- Pdl Complete Optional
                                    Menu_Operations.Dispatch (75);
                                when 'k' | 'K' =>
                                    -- Target Key/Phase...
                                    Menu_Operations.Dispatch (76);
                                when 'g' | 'G' =>
                                    -- Generate Document...
                                    Menu_Operations.Dispatch (77);
                                when 'i' | 'I' =>
                                    -- Display Hierarchy...
                                    Menu_Operations.Dispatch (78);
                                when 'h' | 'H' =>
                                    -- Check Consistency...
                                    Menu_Operations.Dispatch (79);
                                when 'm' | 'M' =>
                                    -- Component Hierarchy...
                                    Menu_Operations.Dispatch (80);
                                when 'n' | 'N' =>
                                    -- New 2167A Component...
                                    Menu_Operations.Dispatch (81);
                                when others =>
                                    null;  
                            end case;
                        when 'f' | 'F' =>
                            case Key3 is
                                when 'n' | 'N' =>
                                    What.Object;
                                when 's' | 'S' | 'l' | 'L' =>
                                    Menu_Operations.Tools.Show_Locks;
                                when others =>
                                    null;
                            end case;
                        when 'i' | 'I' =>
                            -- insight submenu
                            case Key3 is
                                when 'i' | 'I' =>
                                    -- insight invoke
                                    Menu_Operations.Dispatch (60);
                                when 'c' | 'C' =>
                                    -- insight create
                                    Menu_Operations.Dispatch (61);
                                when 'd' | 'D' =>
                                    -- insight delete
                                    Menu_Operations.Dispatch (62);
                                when 'p' | 'P' =>
                                    -- insight print
                                    Menu_Operations.Dispatch (63);
                                when others =>
                                    null;
                            end case;
                        when 'm' | 'M' =>
                            case Key3 is
                                when 'r' | 'R' =>
                                    Menu_Operations.Tools.Read_Mail;
                                when 'n' | 'N' =>
                                    Mail.Send;
                                when 's' | 'S' =>
                                    Common.Promote;
                                when 'p' | 'P' =>
                                    Mail.Reply (To_All => False);
                                when 'a' | 'A' =>
                                    Mail.Reply (To_All => True);
                                when 'f' | 'F' =>
                                    Mail.Forward;
                                when 'm' | 'M' =>
                                    Mail.Remail;
                                when 'd' | 'D' =>
                                    Common.Object.Delete;
                                when 'u' | 'U' =>
                                    Common.Undo;
                                when 'c' | 'C' =>
                                    Common.Semanticize;
                                when 'e' | 'E' =>
                                    Mail.Expunge;
                                when 't' | 'T' =>
                                    -- mail sorting options...
                                    Menu_Operations.Dispatch (14);
                                when others =>
                                    null;
                            end case;
                        when 'o' | 'O' =>
                            case Key3 is
                                when 'b' | 'B' =>
                                    Menu_Operations.Tools.Operator_Backup;
                                when 'v' | 'V' =>
                                    Menu_Operations.Tools.
                                       Operator_Verify_Backup;
                                when 'h' | 'H' =>
                                    Menu_Operations.Tools.
                                       Operator_Backup_History;
                                when 'u' | 'U' =>
                                    Menu_Operations.Tools.Operator_Edit_User;
                                when 'g' | 'G' =>
                                    Menu_Operations.Tools.Operator_Edit_Group;
                                when 'f' | 'F' =>
                                    Menu_Operations.Tools.Operator_Force_Logoff;
                                when 'r' | 'R' =>
                                    Menu_Operations.Tools.System_Manager_Report;
                                when 's' | 'S' =>
                                    Menu_Operations.Tools.
                                       System_Manager_Shutdown;
                                when 'c' | 'C' =>
                                    Menu_Operations.Tools.
                                       System_Manager_Cancel_Shutdown;
                                when others =>
                                    null;
                            end case;
                        when 'p' | 'P' =>
                            -- RPI menu
                            case Key3 is
                                when 'p' | 'P' =>
                                    -- RPI put changes
                                    Menu_Operations.Dispatch (90);
                                when 'a' | 'A' =>
                                    -- RPI accept changes
                                    Menu_Operations.Dispatch (91);
                                when 'o' | 'O' =>
                                    -- show out of date
                                    Menu_Operations.Dispatch (92);
                                when 'e' | 'E' =>
                                    case Key4 is
                                        when 'd' | 'D' =>
                                            -- create doc gateway
                                            Menu_Operations.Dispatch (93);
                                        when 'v' | 'V' =>
                                            -- create view gateway
                                            Menu_Operations.Dispatch (94);
                                        when 'f' | 'F' =>
                                            -- create file gateway
                                            Menu_Operations.Dispatch (95);
                                        when 'g' | 'G' =>
                                            -- create graphic gateway
                                            Menu_Operations.Dispatch (96);
                                        when others =>
                                            null;
                                    end case;
                                when 'c' | 'C' =>
                                    -- RPI connect
                                    Menu_Operations.Dispatch (97);
                                when 'd' | 'D' =>
                                    -- RPI disconnect
                                    Menu_Operations.Dispatch (98);
                                when 'v' | 'V' =>
                                    -- Save archive
                                    Menu_Operations.Dispatch (99);
                                when 'r' | 'R' =>
                                    -- Restore archive
                                    Menu_Operations.Dispatch (100);
                                when others =>
                                    null;
                            end case;
                        when 's' | 'S' =>
                            case Key3 is
                                when 'u' | 'U' =>
                                    Menu_Operations.Session.Users;
                                when 'd' | 'D' =>
                                    Operator.Disk_Space;
                                when 'c' | 'C' =>
                                    Menu_Operations.Session.Machine_Information;
                                when 's' | 'S' =>
                                    What.Load;
                                when others =>
                                    null;
                            end case;  
                        when 't' | 'T' =>
                            -- RTI menu
                            case Key3 is
                                when 'm' | 'M' =>
                                    -- Import model
                                    Menu_Operations.Dispatch (120);
                                when 'a' | 'A' =>
                                    -- RTI accept changes
                                    Menu_Operations.Dispatch (121);
                                when 'p' | 'P' =>
                                    -- Prepare document
                                    Menu_Operations.Dispatch (122);
                                when 's' | 'S' =>
                                    -- show out of date
                                    Menu_Operations.Dispatch (123);
                                when 'b' | 'B' =>
                                    -- Baseline model
                                    Menu_Operations.Dispatch (124);
                                when 'i' | 'I' =>
                                    -- Increment Model
                                    Menu_Operations.Dispatch (125);
                                when 'd' | 'D' =>
                                    -- Destroy model
                                    Menu_Operations.Dispatch (126);
                                when 'o' | 'O' =>
                                    -- Options
                                    Menu_Operations.Dispatch (127);
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;


                when M_S | Ms_S => -- session menu
                    case Key2 is
                        when 'p' | 'P' =>
                            Menu_Operations.Session.Profile;
                        when 'l' | 'L' =>
                            Menu_Operations.Session.Search_List;
                        when 's' | 'S' =>
                            Menu_Operations.Session.Switches;
                        when 'j' | 'J' =>
                            case Key3 is
                                when 'j' | 'J' =>
                                    What.Users (False);
                                when 'a' | 'A' =>
                                    What.Users (True);
                                when 'd' | 'D' =>
                                    Menu_Operations.Session.Disable_Job;
                                when 'e' | 'E' =>
                                    Menu_Operations.Session.Enable_Job;
                                when 'k' | 'K' =>
                                    Menu_Operations.Session.Kill_Job;
                                when 'c' | 'C' =>
                                    -- job.connect
                                    Menu_Operations.Dispatch (15);
                                when others =>
                                    null;
                            end case;
                        when 'e' | 'E' =>
                            Menu_Operations.Session.End_Of_Input;
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'h' | 'H' =>
                                    Menu_Operations.Tools.Screen_Push;
                                when 'p' | 'P' =>
                                    Menu_Operations.Tools.Screen_Pop;
                                when 'w' | 'W' =>
                                    -- set window frames
                                    Menu_Operations.Dispatch (13);
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;

                when M_I | Ms_I => -- Navigate menu
                    case Key2 is
                        when 'n' | 'N' =>
                            Editor.Cursor.Next (Repeat => 1,
                                                Prompt => False,
                                                Underline => True);
                        when 'p' | 'P' =>
                            Editor.Cursor.Previous (Repeat => 1,
                                                    Prompt => False,
                                                    Underline => True);  
                        when 'i' | 'I' =>
                            Menu_Operations.Traverse.Previous_Item;
                        when 'm' | 'M' =>
                            Menu_Operations.Traverse.Next_Item;
                        when 'd' | 'D' =>
                            Menu_Operations.Traverse.Definition;
                        when 'e' | 'E' =>
                            Menu_Operations.Traverse.Enclosing;
                        when 't' | 'T' =>
                            Menu_Operations.Region.Beginning_Of;
                        when 'b' | 'B' =>
                            Menu_Operations.Region.End_Of;
                        when 'o' | 'O' =>
                            Menu_Operations.Traverse.Other_Part;
                        when 'h' | 'H' =>
                            Menu_Operations.Traverse.Home_Library;
                        when 'r' | 'R' =>
                            Menu_Operations.Traverse.Resolve_Name;
                        when others =>
                            null;
                    end case;

                    -- Window panel buttons and other functions
                when Menu_Pick =>
                    case Key2 is
                        when 'b' =>
                            case Key3 is
                                when 'a' =>
                                    Editor.Window.Demote;
                                when 'b' =>
                                    Editor.Window.Delete;
                                when 'c' =>
                                    Editor.Image.End_Of;
                                when 'd' =>
                                    Editor.Window.Join (Repeat => 99);
                                when 'e' =>
                                    Editor.Image.Beginning_Of;
                                when 'f' =>
                                    Menu_Operations.Dispatch (19);
                                    -- Editor.Window.Promote;
                                    -- want to do this twice to ensure that the
                                    -- window is locked...
                                when 'g' =>
                                    Editor.Image.Left;
                                when 'h' =>
                                    Editor.Image.Right;
                                when 'i' =>
                                    Editor.Window.Copy;
                                when 'j' =>
                                    Editor.Window.Join;
                                when 'k' =>
                                    Editor.Window.Join (-1);
                                when 'l' =>
                                    Editor.Window.Expand;
                                when 'm' =>
                                    Editor.Window.Expand (-4);
                                when 'n' =>
                                    Editor.Window.Focus;
                                when 'o' =>
                                    Editor.Image.Down;
                                when 'p' =>
                                    Editor.Image.Up;
                                when 'q' =>
                                    -- dialog box completion
                                    Menu_Operations.Click_Ok;
                                when others =>
                                    null;
                            end case;
                        when 'c' =>
                            case Key3 is
                                when 'a' =>
                                    Menu_Operations.Load_Image_Palette;
                                when 'b' =>
                                    -- get version info
                                    Menu_Operations.Dispatch (9);
                                when others =>
                                    null;
                            end case;  
                        when 'q' =>
                            case Key3 is
                                when 'r' | 'R' =>
                                    -- for F? bar support
                                    Menu_Operations.Dispatch (12);
                                when 'p' | 'P' =>
                                    Editor.Key.Prompt (Key_Code => "");
                                when 'd' | 'D' =>
                                    Common.Definition (Name => "<CURSOR>",
                                                       In_Place => True,
                                                       Visible => True);
                                when 'c' | 'C' =>
                                    Common.Create_Command;
                                when 'e' | 'E' =>
                                    Common.Enclosing (In_Place => True,
                                                      Library => False);
                                when others =>
                                    null;  
                            end case;
                        when 'w' =>
                            case Key3 is
                                when '!' =>
                                    Editor.Window.Expand;
                                when '>' =>
                                    Editor.Window.Expand (-4);
                                when '?' =>
                                    Editor.Window.Directory;
                                when 'b' =>
                                    Editor.Window.Beginning_Of;
                                when 'c' =>
                                    Editor.Window.Copy;
                                when 'd' =>
                                    Editor.Window.Delete;
                                when 'e' =>
                                    Editor.Window.End_Of;
                                when 'f' =>
                                    Editor.Window.Focus;
                                when 'h' =>
                                    Common.Enclosing (In_Place => False,
                                                      Library => False);
                                when 'j' =>
                                    Editor.Window.Join (1);
                                when 'm' =>
                                    Editor.Window.Promote;
                                when 'n' =>
                                    Editor.Window.Next;
                                when 'o' =>
                                    Editor.Window.Join (-1);
                                when 't' =>
                                    Editor.Window.Transpose;
                                when 'u' =>
                                    Editor.Window.Previous;
                                when 'v' =>
                                    Editor.Window.Child;
                                when 'y' =>
                                    Editor.Window.Demote;
                                when 'l' =>
                                    Editor.Window.Parent;
                                when others =>
                                    null;
                            end case;
                        when 'i' =>
                            case Key3 is
                                when 'b' =>
                                    Editor.Image.Beginning_Of;
                                when 'e' =>
                                    Editor.Image.End_Of;
                                when 'f' =>
                                    Editor.Set.Fill_Mode (True);
                                when 'h' =>
                                    Editor.Image.Left;
                                when 'i' =>
                                    Editor.Set.Insert_Mode (True);
                                when 'j' =>
                                    Editor.Image.Right;
                                when 'n' =>
                                    Editor.Image.Down;
                                when 'o' =>
                                    Editor.Set.Insert_Mode (False);
                                when 'u' =>
                                    Editor.Image.Up;
                                when 'x' =>
                                    Editor.Set.Fill_Mode (False);
                                when others =>
                                    null;
                            end case;
                        when 'l' =>
                            case Key3 is
                                when '$' =>
                                    Editor.Line.Center;
                                when '<' =>
                                    Editor.Line.Lower_Case;
                                when '>' =>
                                    Editor.Line.Upper_Case;
                                when '?' =>
                                    What.Line;
                                when '^' =>
                                    Editor.Line.Capitalize;
                                when 'b' =>
                                    Editor.Line.Beginning_Of;
                                when 'c' =>
                                    Editor.Line.Copy;
                                when 'd' =>
                                    Editor.Line.Delete;
                                when 'e' =>
                                    Editor.Line.End_Of;
                                when 'i' =>
                                    Editor.Line.Insert (1);
                                when 'j' =>
                                    Editor.Line.Join;
                                when 'k' =>
                                    Editor.Line.Delete_Forward;
                                when 'o' =>
                                    Editor.Line.Open;
                                when 't' =>
                                    Editor.Line.Transpose;
                                when 'x' =>
                                    Editor.Line.Delete_Backward;
                                when others =>
                                    null;
                            end case;
                        when 'm' =>
                            case Key3 is
                                when 'a' =>
                                    Editor.Macro.Start;
                                when 'e' =>
                                    Editor.Macro.Finish;
                                when 'f' =>
                                    Editor.Macro.Bind;
                                when 'h' =>
                                    Editor.Mark.Previous;
                                when 'j' =>
                                    Editor.Mark.Next;
                                when 'x' =>
                                    Editor.Macro.Execute;
                                when 'n' =>
                                    Editor.Mark.Push;
                                when 'p' =>
                                    Editor.Mark.Copy_Top;
                                when 'r' =>
                                    Editor.Mark.Rotate;
                                when 't' =>
                                    Editor.Mark.Swap;
                                when 'u' =>
                                    Editor.Mark.Top;
                                when 'o' =>
                                    Editor.Mark.Delete_Top;
                                when others =>
                                    null;
                            end case;
                        when 'o' =>
                            case Key3 is
                                when '!' =>
                                    Common.Expand;
                                when '>' =>
                                    Common.Elide;
                                when '?' =>
                                    Common.Explain;
                                when 'c' =>
                                    Common.Object.Copy;
                                when 'd' =>
                                    Common.Object.Delete;
                                when 'e' =>
                                    Common.Object.Last_Child;
                                when 'g' =>
                                    Common.Abandon;
                                when 'h' =>
                                    Common.Object.Parent;
                                when 'i' =>
                                    Common.Object.Insert;
                                when 'j' =>
                                    Common.Object.Child;
                                when 'm' =>
                                    Common.Object.Move;
                                when 'n' =>
                                    Common.Object.Next;
                                when 'r' =>
                                    Common.Redo;
                                when 's' =>
                                    Common.Sort_Image;
                                when 'u' =>
                                    Common.Undo;
                                when 'x' =>
                                    Common.Release;
                                when 't' =>
                                    Editor.Char.Tab_To_Comment;
                                when 'f' =>
                                    Common.Commit;
                                when 'p' =>
                                    Common.Object.Previous;
                                when others =>
                                    null;
                            end case;
                        when 'r' =>
                            case Key3 is
                                when '^' =>
                                    Editor.Region.Capitalize;
                                when '[' =>
                                    Editor.Region.Start;
                                when ']' =>
                                    Editor.Region.Finish;
                                when '+' =>
                                    Editor.Region.Uncomment;
                                when '<' =>
                                    Editor.Region.Lower_Case;
                                when '-' =>
                                    Editor.Region.Comment;
                                when '>' =>
                                    Editor.Region.Upper_Case;
                                when 'b' =>
                                    Editor.Region.Beginning_Of;
                                when 'c' =>
                                    Editor.Region.Copy;
                                when 'd' =>
                                    Editor.Region.Delete;
                                when 'e' =>
                                    Editor.Region.End_Of;
                                when 'f' =>
                                    Editor.Region.Fill;
                                when 'h' =>
                                    Editor.Hold_Stack.Previous;
                                when 'j' =>
                                    Editor.Hold_Stack.Next;
                                when 'm' =>
                                    Editor.Region.Move;
                                when 'n' =>
                                    Editor.Hold_Stack.Push;
                                when 'p' =>
                                    Editor.Hold_Stack.Copy_Top;
                                when 'q' =>
                                    Editor.Region.Justify;
                                when 'r' =>
                                    Editor.Hold_Stack.Rotate;
                                when 't' =>
                                    Editor.Hold_Stack.Swap;
                                when 'u' =>
                                    Editor.Hold_Stack.Top;
                                when 'x' =>
                                    Editor.Region.Off;
                                when 'z' =>
                                    Editor.Hold_Stack.Delete_Top;
                                when others =>
                                    null;
                            end case;
                        when 'd' =>
                            case Key3 is
                                when '<' =>
                                    Editor.Word.Lower_Case;
                                when '>' =>
                                    Editor.Word.Upper_Case;
                                when '?' =>
                                    Speller.Check_Text (Data => "<TEXT>");
                                when '^' =>
                                    Editor.Word.Capitalize;
                                when 'b' =>
                                    Editor.Word.Beginning_Of;
                                when 'd' =>
                                    Editor.Word.Delete;
                                when 'e' =>
                                    Editor.Word.End_Of;
                                when 'i' =>
                                    Speller.Learn_Word
                                       (The_Word => "", Dictionary => 0);
                                when 'j' =>
                                    Editor.Word.Next;
                                when 'k' =>
                                    Editor.Word.Delete_Forward;
                                when 'm' =>
                                    Speller.Check_Image;
                                when 'n' =>
                                    Speller.Explain_Next;
                                when 'r' =>
                                    Speller.Learn_Replacement (The_Word => "",
                                                               Choice => 1,
                                                               Dictionary => 0);
                                when 't' =>
                                    Editor.Word.Transpose;
                                when 'W' =>
                                    Speller.Speller_Window (In_Place => True);
                                when 'x' =>
                                    Speller.Exchange_Word (Choice => 1);
                                when 'w' =>
                                    Speller.Speller_Window (In_Place => False);
                                when 'z' =>
                                    Editor.Word.Delete_Forward;
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;

                    end case;

                    -- Mouse button mapping

                when Mouse_Down =>
                    Editor.Screen.Down;
                when Mouse_Right =>
                    Editor.Screen.Right;
                when Mouse_Image_Down =>
                    Editor.Image.Down;
                when Mouse_Image_Right =>
                    Editor.Image.Right;
                when Mouse_Button1 =>
                    Editor.Set.Input_Logging_Off;
                when Mouse_Button1_Dbl =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => False, Visible => True);
                    -- when Mouse_Button2_Dbl =>
                    --     Common.Object.Parent (Repeat => 1);
                when Mouse_Button3 =>
                    Editor.Noop;
                when Mouse_Button3_Dbl =>
                    Common.Enclosing (In_Place => False, Library => False);
                when Mouse_Button4_Dbl =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => True);
                when Mouse_Button6_Dbl =>
                    Common.Enclosing (In_Place => True, Library => False);
                when Mouse_Button7 =>
                    Editor.Region.Start;
                when Mouse_Button7_Up =>
                    Editor.Region.Finish;
                when Mouse_Button7_Dbl =>
                    Common.Object.Parent (Repeat => 1);
                when Mouse_Button8 =>
                    Editor.Region.Copy;
                when Mouse_Button9 =>
                    Editor.Region.Finish;
                when Mouse_Button9_Dbl =>
                    Common.Object.Child (Repeat => 1);

                when Mouse_Minus =>
                    Editor.Set.Argument_Minus;
                when Mouse_0 =>
                    Editor.Set.Argument_Digit (Argument => 0);
                when Mouse_1 =>
                    Editor.Set.Argument_Digit (Argument => 1);
                when Mouse_2 =>
                    Editor.Set.Argument_Digit (Argument => 2);
                when Mouse_3 =>
                    Editor.Set.Argument_Digit (Argument => 3);
                when Mouse_4 =>
                    Editor.Set.Argument_Digit (Argument => 4);
                when Mouse_5 =>
                    Editor.Set.Argument_Digit (Argument => 5);
                when Mouse_6 =>
                    Editor.Set.Argument_Digit (Argument => 6);
                when Mouse_7 =>
                    Editor.Set.Argument_Digit (Argument => 7);
                when Mouse_8 =>
                    Editor.Set.Argument_Digit (Argument => 8);
                when Mouse_9 =>
                    Editor.Set.Argument_Digit (Argument => 9);


                when Menu_Return =>
                    Editor.Line.Insert (1);

                when X_No_Op =>
                    Editor.Noop;
                when X_Screen_Height =>
                    Editor.Screen.Set_Lines (24);
                when X_Screen_Width =>
                    Editor.Screen.Set_Columns (80);

                when others =>
                    null;
            end case;
    end case;

end Rational_Access_Commands;package Rational_Access_Key_Names is

----Generic X Keysym key file.
----05/23/89 - Mouse_0..Mouse_9
----4/15/92
----7/10/92 Mouse_Button7[_Up,_Dbl]..Mouse_Button9[_Up,_Dbl]
    type Key_Names is  
       (

----Special non-X11 keys we need for Rational Menus

        Menu_Job_Kill, Menu_Job_Disable, Menu_Debug_Stop, Menu_Return,

        Mouse_Argument, Mouse_Down, Mouse_Right,  
        Mouse_Image_Down, Mouse_Image_Right,  
        Mouse_Button1, Mouse_Button2, Mouse_Button3,  
        Mouse_Button4, Mouse_Button5, Mouse_Button6,
        Mouse_Button7, Mouse_Button8, Mouse_Button9,
        Mouse_Button1_Up, Mouse_Button2_Up, Mouse_Button3_Up,  
        Mouse_Button4_Up, Mouse_Button5_Up, Mouse_Button6_Up,
        Mouse_Button7_Up, Mouse_Button8_Up, Mouse_Button9_Up,
        Mouse_Button1_Dbl, Mouse_Button2_Dbl, Mouse_Button3_Dbl,  
        Mouse_Button4_Dbl, Mouse_Button5_Dbl, Mouse_Button6_Dbl,
        Mouse_Button7_Dbl, Mouse_Button8_Dbl, Mouse_Button9_Dbl,

        Menu_Pick, Mouse_Minus,  
        Mouse_0, Mouse_1, Mouse_2, Mouse_3, Mouse_4,  
        Mouse_5, Mouse_6, Mouse_7, Mouse_8, Mouse_9,

        X_No_Op, X_Screen_Height, X_Screen_Width, X_Screen_Redraw,

----X11 Miscellaneous Keys

        Backspace,      -- back space, back char
        S_Backspace, C_Backspace, M_Backspace, Cs_Backspace,
        Cm_Backspace, Ms_Backspace, Cms_Backspace,

        Tab, S_Tab, C_Tab, M_Tab, Cs_Tab, Cm_Tab, Ms_Tab, Cms_Tab,

        Linefeed,       -- Linefeed, LF
        C_Linefeed, M_Linefeed, Cm_Linefeed, S_Linefeed,
        Cs_Linefeed, Ms_Linefeed, Cms_Linefeed,

        Carriage_Return,-- Return, enter
        C_Carriage_Return, M_Carriage_Return, Cm_Carriage_Return,
        S_Carriage_Return, Cs_Carriage_Return,
        Ms_Carriage_Return, Cms_Carriage_Return,

        Escape, C_Escape, M_Escape, Cm_Escape,
        S_Escape, Cs_Escape, Ms_Escape, Cms_Escape,

        Delete,         -- Delete, rubout
        C_Delete, M_Delete, Cm_Delete, S_Delete,
        Cs_Delete, Ms_Delete, Cms_Delete,

        Left,           -- Move left, left arrow
        C_Left, M_Left, Cm_Left, S_Left, Cs_Left, Ms_Left, Cms_Left,

        Up,             -- Move up, up arrow
        C_Up, M_Up, Cm_Up, S_Up, Cs_Up, Ms_Up, Cms_Up,

        Right,          -- Move right, right arrow
        C_Right, M_Right, Cm_Right, S_Right, Cs_Right, Ms_Right, Cms_Right,

        Down,           -- Move down, down arrow
        C_Down, M_Down, Cm_Down, S_Down, Cs_Down, Ms_Down, Cms_Down,

        Alt, C_Alt, M_Alt, Cm_Alt, S_Alt, Cs_Alt, Ms_Alt, Cms_Alt,

        Alt_Graph, C_Alt_Graph, M_Alt_Graph, Cm_Alt_Graph,
        S_Alt_Graph, Cs_Alt_Graph, Ms_Alt_Graph, Cms_Alt_Graph,

        Compose, C_Compose, M_Compose, Cm_Compose,
        S_Compose, Cs_Compose, Ms_Compose, Cms_Compose,

        Stop, C_Stop, M_Stop, Cm_Stop,  
        S_Stop, Cs_Stop, Ms_Stop, Cms_Stop,

        Again, C_Again, M_Again, Cm_Again,  
        S_Again, Cs_Again, Ms_Again, Cms_Again,

        Props, C_Props, M_Props, Cm_Props,  
        S_Props, Cs_Props, Ms_Props, Cms_Props,

        Undo, C_Undo, M_Undo, Cm_Undo,  
        S_Undo, Cs_Undo, Ms_Undo, Cms_Undo,

        Front, C_Front, M_Front, Cm_Front,  
        S_Front, Cs_Front, Ms_Front, Cms_Front,

        Copy, C_Copy, M_Copy, Cm_Copy,  
        S_Copy, Cs_Copy, Ms_Copy, Cms_Copy,

        Open, C_Open, M_Open, Cm_Open,  
        S_Open, Cs_Open, Ms_Open, Cms_Open,

        Paste, C_Paste, M_Paste, Cm_Paste,  
        S_Paste, Cs_Paste, Ms_Paste, Cms_Paste,

        Find, C_Find, M_Find, Cm_Find,  
        S_Find, Cs_Find, Ms_Find, Cms_Find,

        Cut, C_Cut, M_Cut, Cm_Cut,  
        S_Cut, Cs_Cut, Ms_Cut, Cms_Cut,

        Help, C_Help, M_Help, Cm_Help,  
        S_Help, Cs_Help, Ms_Help, Cms_Help,

        Object, Region, Window, Image, Line, Word, Mark,


        Pause, C_Pause, M_Pause, Cm_Pause,  
        S_Pause, Cs_Pause, Ms_Pause, Cms_Pause,

        Print, C_Print, M_Print, Cm_Print,  
        S_Print, Cs_Print, Ms_Print, Cms_Print,

        Num_Lock, C_Num_Lock, M_Num_Lock, Cm_Num_Lock,  
        S_Num_Lock, Cs_Num_Lock, Ms_Num_Lock, Cms_Num_Lock,

        Scroll_Lock, C_Scroll_Lock, M_Scroll_Lock, Cm_Scroll_Lock,  
        S_Scroll_Lock, Cs_Scroll_Lock, Ms_Scroll_Lock, Cms_Scroll_Lock,

        Kp_Equal, C_Kp_Equal, M_Kp_Equal, Cm_Kp_Equal,  
        S_Kp_Equal, Cs_Kp_Equal, Ms_Kp_Equal, Cms_Kp_Equal,

        Kp_Divide, C_Kp_Divide, M_Kp_Divide, Cm_Kp_Divide,  
        S_Kp_Divide, Cs_Kp_Divide, Ms_Kp_Divide, Cms_Kp_Divide,

        Kp_Multiply, C_Kp_Multiply, M_Kp_Multiply, Cm_Kp_Multiply,  
        S_Kp_Multiply, Cs_Kp_Multiply, Ms_Kp_Multiply, Cms_Kp_Multiply,

        Kp_Subtract, C_Kp_Subtract, M_Kp_Subtract, Cm_Kp_Subtract,  
        S_Kp_Subtract, Cs_Kp_Subtract, Ms_Kp_Subtract, Cms_Kp_Subtract,

        Begin_Of, C_Begin_Of, M_Begin_Of, Cm_Begin_Of,  
        S_Begin_Of, Cs_Begin_Of, Ms_Begin_Of, Cms_Begin_Of,

        Page_Up, C_Page_Up, M_Page_Up, Cm_Page_Up,  
        S_Page_Up, Cs_Page_Up, Ms_Page_Up, Cms_Page_Up,

        Kp_Add, C_Kp_Add, M_Kp_Add, Cm_Kp_Add,  
        S_Kp_Add, Cs_Kp_Add, Ms_Kp_Add, Cms_Kp_Add,

        Kp_5, C_Kp_5, M_Kp_5, Cm_Kp_5,  
        S_Kp_5, Cs_Kp_5, Ms_Kp_5, Cms_Kp_5,

        End_Key, C_End_Key, M_End_Key, Cm_End_Key,  
        S_End_Key, Cs_End_Key, Ms_End_Key, Cms_End_Key,

        Page_Down, C_Page_Down, M_Page_Down, Cm_Page_Down,  
        S_Page_Down, Cs_Page_Down, Ms_Page_Down, Cms_Page_Down,

        Kp_Enter, C_Kp_Enter, M_Kp_Enter, Cm_Kp_Enter,  
        S_Kp_Enter, Cs_Kp_Enter, Ms_Kp_Enter, Cms_Kp_Enter,

        Insert, C_Insert, M_Insert, Cm_Insert,  
        S_Insert, Cs_Insert, Ms_Insert, Cms_Insert,

        Kp_Decimal, C_Kp_Decimal, M_Kp_Decimal, Cm_Kp_Decimal,  
        S_Kp_Decimal, Cs_Kp_Decimal, Ms_Kp_Decimal, Cms_Kp_Decimal,

        F1, C_F1, M_F1, Cm_F1, S_F1, Cs_F1, Ms_F1, Cms_F1,  
        F2, C_F2, M_F2, Cm_F2, S_F2, Cs_F2, Ms_F2, Cms_F2,  
        F3, C_F3, M_F3, Cm_F3, S_F3, Cs_F3, Ms_F3, Cms_F3,  
        F4, C_F4, M_F4, Cm_F4, S_F4, Cs_F4, Ms_F4, Cms_F4,  
        F5, C_F5, M_F5, Cm_F5, S_F5, Cs_F5, Ms_F5, Cms_F5,  
        F6, C_F6, M_F6, Cm_F6, S_F6, Cs_F6, Ms_F6, Cms_F6,  
        F7, C_F7, M_F7, Cm_F7, S_F7, Cs_F7, Ms_F7, Cms_F7,  
        F8, C_F8, M_F8, Cm_F8, S_F8, Cs_F8, Ms_F8, Cms_F8,  
        F9, C_F9, M_F9, Cm_F9, S_F9, Cs_F9, Ms_F9, Cms_F9,

        F10, C_F10, M_F10, Cm_F10,  
        S_F10, Cs_F10, Ms_F10, Cms_F10,

        F11, C_F11, M_F11, Cm_F11,  
        S_F11, Cs_F11, Ms_F11, Cms_F11,

        F12, C_F12, M_F12, Cm_F12,  
        S_F12, Cs_F12, Ms_F12, Cms_F12,


----X11 Latin1 keys

        ' ', C_Space, M_Space, Cm_Space, S_Space, Cs_Space, Ms_Space, Cms_Space,  
        '!', C_Exclam, M_Exclam, Cm_Exclam,  
        '"', C_Quotation, M_Quotation, Cm_Quotation,  
        '#', C_Sharp, M_Sharp, Cm_Sharp,  
        '$', C_Dollar, M_Dollar, Cm_Dollar,  
        '%', C_Percent, M_Percent, Cm_Percent,  
        '&', C_Ampersand, M_Ampersand, Cm_Ampersand,  
        ''', C_Tick, M_Tick, Cm_Tick,  
        '(', C_Left_Paren, M_Left_Paren, Cm_Left_Paren,  
        ')', C_Right_Paren, M_Right_Paren, Cm_Right_Paren,  
        '*', C_Star, M_Star, Cm_Star,  
        '+', C_Plus, M_Plus, Cm_Plus,  
        ',', C_Comma, M_Comma, Cm_Comma,  
        '-', C_Minus, M_Minus, Cm_Minus,  
        '.', C_Period, M_Period, Cm_Period,  
        '/', C_Slash, M_Slash, Cm_Slash,  
        '0', C_0, M_0, Cm_0,  
        '1', C_1, M_1, Cm_1,  
        '2', C_2, M_2, Cm_2,  
        '3', C_3, M_3, Cm_3,  
        '4', C_4, M_4, Cm_4,  
        '5', C_5, M_5, Cm_5,  
        '6', C_6, M_6, Cm_6,  
        '7', C_7, M_7, Cm_7,  
        '8', C_8, M_8, Cm_8,  
        '9', C_9, M_9, Cm_9,  
        ':', C_Colon, M_Colon, Cm_Colon,  
        ';', C_Semicolon, M_Semicolon, Cm_Semicolon,  
        '<', C_Less_Than, M_Less_Than, Cm_Less_Than,  
        '=', C_Equal, M_Equal, Cm_Equal,  
        '>', C_Greater_Than, M_Greater_Than, Cm_Greater_Than,  
        '?', C_Question, M_Question, Cm_Question,  
        '@', C_At_Sign, M_At_Sign, Cm_At_Sign,

        'a', C_A, M_A, Cm_A, 'A', Cs_A, Ms_A, Cms_A,  
        'b', C_B, M_B, Cm_B, 'B', Cs_B, Ms_B, Cms_B,  
        'c', C_C, M_C, Cm_C, 'C', Cs_C, Ms_C, Cms_C,  
        'd', C_D, M_D, Cm_D, 'D', Cs_D, Ms_D, Cms_D,  
        'e', C_E, M_E, Cm_E, 'E', Cs_E, Ms_E, Cms_E,  
        'f', C_F, M_F, Cm_F, 'F', Cs_F, Ms_F, Cms_F,  
        'g', C_G, M_G, Cm_G, 'G', Cs_G, Ms_G, Cms_G,  
        'h', C_H, M_H, Cm_H, 'H', Cs_H, Ms_H, Cms_H,  
        'i', C_I, M_I, Cm_I, 'I', Cs_I, Ms_I, Cms_I,  
        'j', C_J, M_J, Cm_J, 'J', Cs_J, Ms_J, Cms_J,  
        'k', C_K, M_K, Cm_K, 'K', Cs_K, Ms_K, Cms_K,  
        'l', C_L, M_L, Cm_L, 'L', Cs_L, Ms_L, Cms_L,  
        'm', C_M, M_M, Cm_M, 'M', Cs_M, Ms_M, Cms_M,  
        'n', C_N, M_N, Cm_N, 'N', Cs_N, Ms_N, Cms_N,  
        'o', C_O, M_O, Cm_O, 'O', Cs_O, Ms_O, Cms_O,  
        'p', C_P, M_P, Cm_P, 'P', Cs_P, Ms_P, Cms_P,  
        'q', C_Q, M_Q, Cm_Q, 'Q', Cs_Q, Ms_Q, Cms_Q,  
        'r', C_R, M_R, Cm_R, 'R', Cs_R, Ms_R, Cms_R,  
        's', C_S, M_S, Cm_S, 'S', Cs_S, Ms_S, Cms_S,  
        't', C_T, M_T, Cm_T, 'T', Cs_T, Ms_T, Cms_T,  
        'u', C_U, M_U, Cm_U, 'U', Cs_U, Ms_U, Cms_U,  
        'v', C_V, M_V, Cm_V, 'V', Cs_V, Ms_V, Cms_V,  
        'w', C_W, M_W, Cm_W, 'W', Cs_W, Ms_W, Cms_W,  
        'x', C_X, M_X, Cm_X, 'X', Cs_X, Ms_X, Cms_X,  
        'y', C_Y, M_Y, Cm_Y, 'Y', Cs_Y, Ms_Y, Cms_Y,  
        'z', C_Z, M_Z, Cm_Z, 'Z', Cs_Z, Ms_Z, Cms_Z,

        '[', C_Left_Bracket, M_Left_Bracket, Cm_Left_Bracket,  
        '\', C_Backslash, M_Backslash, Cm_Backslash,  
        ']', C_Right_Bracket, M_Right_Bracket, Cm_Right_Bracket,  
        '^', C_Circumflex, M_Circumflex, Cm_Circumflex,  
        '_', C_Underline, M_Underline, Cm_Underline,  
        '`', C_Grave, M_Grave, Cm_Grave,

        '{', C_Left_Brace, M_Left_Brace, Cm_Left_Brace,  
        '|', C_Bar, M_Bar, Cm_Bar,  
        '}', C_Right_Brace, M_Right_Brace, Cm_Right_Brace,  
        '~', C_Tilde, M_Tilde, Cm_Tilde

        );

----Convenient names for control characters.

    Nul : constant Key_Names := C_At_Sign;

    Home : constant Key_Names := Begin_Of;
    C_Home : constant Key_Names := C_Begin_Of;
    M_Home : constant Key_Names := M_Begin_Of;
    Cm_Home : constant Key_Names := Cm_Begin_Of;  
    S_Home : constant Key_Names := S_Begin_Of;
    Cs_Home : constant Key_Names := Cs_Begin_Of;
    Ms_Home : constant Key_Names := Ms_Begin_Of;
    Cms_Home : constant Key_Names := Cms_Begin_Of;

    Kp_0 : constant Key_Names := Insert;
    S_Kp_0 : constant Key_Names := S_Insert;
    C_Kp_0 : constant Key_Names := C_Insert;
    M_Kp_0 : constant Key_Names := M_Insert;
    Cs_Kp_0 : constant Key_Names := Cs_Insert;
    Ms_Kp_0 : constant Key_Names := Ms_Insert;
    Cm_Kp_0 : constant Key_Names := Cm_Insert;
    Cms_Kp_0 : constant Key_Names := Cms_Insert;

    Kp_1 : constant Key_Names := End_Key;
    S_Kp_1 : constant Key_Names := S_End_Key;
    C_Kp_1 : constant Key_Names := C_End_Key;
    M_Kp_1 : constant Key_Names := M_End_Key;
    Cs_Kp_1 : constant Key_Names := Cs_End_Key;
    Ms_Kp_1 : constant Key_Names := Ms_End_Key;
    Cm_Kp_1 : constant Key_Names := Cm_End_Key;
    Cms_Kp_1 : constant Key_Names := Cms_End_Key;

    Kp_2 : constant Key_Names := Down;
    S_Kp_2 : constant Key_Names := S_Down;
    C_Kp_2 : constant Key_Names := C_Down;
    M_Kp_2 : constant Key_Names := M_Down;
    Cs_Kp_2 : constant Key_Names := Cs_Down;
    Ms_Kp_2 : constant Key_Names := Ms_Down;
    Cm_Kp_2 : constant Key_Names := Cm_Down;
    Cms_Kp_2 : constant Key_Names := Cms_Down;

    Kp_3 : constant Key_Names := Page_Down;
    S_Kp_3 : constant Key_Names := S_Page_Down;
    C_Kp_3 : constant Key_Names := C_Page_Down;
    M_Kp_3 : constant Key_Names := M_Page_Down;
    Cs_Kp_3 : constant Key_Names := Cs_Page_Down;
    Ms_Kp_3 : constant Key_Names := Ms_Page_Down;
    Cm_Kp_3 : constant Key_Names := Cm_Page_Down;
    Cms_Kp_3 : constant Key_Names := Cms_Page_Down;

    Kp_4 : constant Key_Names := Left;
    S_Kp_4 : constant Key_Names := S_Left;
    C_Kp_4 : constant Key_Names := C_Left;
    M_Kp_4 : constant Key_Names := M_Left;
    Cs_Kp_4 : constant Key_Names := Cs_Left;
    Ms_Kp_4 : constant Key_Names := Ms_Left;
    Cm_Kp_4 : constant Key_Names := Cm_Left;
    Cms_Kp_4 : constant Key_Names := Cms_Left;

    Kp_6 : constant Key_Names := Right;
    S_Kp_6 : constant Key_Names := S_Right;
    C_Kp_6 : constant Key_Names := C_Right;
    M_Kp_6 : constant Key_Names := M_Right;
    Cs_Kp_6 : constant Key_Names := Cs_Right;
    Ms_Kp_6 : constant Key_Names := Ms_Right;
    Cm_Kp_6 : constant Key_Names := Cm_Right;
    Cms_Kp_6 : constant Key_Names := Cms_Right;

    Kp_7 : constant Key_Names := Begin_Of;
    S_Kp_7 : constant Key_Names := S_Begin_Of;
    C_Kp_7 : constant Key_Names := C_Begin_Of;
    M_Kp_7 : constant Key_Names := M_Begin_Of;
    Cs_Kp_7 : constant Key_Names := Cs_Begin_Of;
    Ms_Kp_7 : constant Key_Names := Ms_Begin_Of;
    Cm_Kp_7 : constant Key_Names := Cm_Begin_Of;
    Cms_Kp_7 : constant Key_Names := Cms_Begin_Of;

    Kp_8 : constant Key_Names := Up;
    S_Kp_8 : constant Key_Names := S_Up;
    C_Kp_8 : constant Key_Names := C_Up;
    M_Kp_8 : constant Key_Names := M_Up;
    Cs_Kp_8 : constant Key_Names := Cs_Up;
    Ms_Kp_8 : constant Key_Names := Ms_Up;
    Cm_Kp_8 : constant Key_Names := Cm_Up;
    Cms_Kp_8 : constant Key_Names := Cms_Up;

    Kp_9 : constant Key_Names := Page_Up;
    S_Kp_9 : constant Key_Names := S_Page_Up;
    C_Kp_9 : constant Key_Names := C_Page_Up;
    M_Kp_9 : constant Key_Names := M_Page_Up;
    Cs_Kp_9 : constant Key_Names := Cs_Page_Up;
    Ms_Kp_9 : constant Key_Names := Ms_Page_Up;
    Cm_Kp_9 : constant Key_Names := Cm_Page_Up;
    Cms_Kp_9 : constant Key_Names := Cms_Page_Up;

    L1 : constant Key_Names := Stop;
    C_L1 : constant Key_Names := C_Stop;
    M_L1 : constant Key_Names := M_Stop;
    Cm_L1 : constant Key_Names := Cm_Stop;  
    S_L1 : constant Key_Names := S_Stop;
    Cs_L1 : constant Key_Names := Cs_Stop;
    Ms_L1 : constant Key_Names := Ms_Stop;
    Cms_L1 : constant Key_Names := Cms_Stop;

    L2 : constant Key_Names := Again;
    C_L2 : constant Key_Names := C_Again;
    M_L2 : constant Key_Names := M_Again;
    Cm_L2 : constant Key_Names := Cm_Again;  
    S_L2 : constant Key_Names := S_Again;
    Cs_L2 : constant Key_Names := Cs_Again;
    Ms_L2 : constant Key_Names := Ms_Again;
    Cms_L2 : constant Key_Names := Cms_Again;

    L3 : constant Key_Names := Props;
    C_L3 : constant Key_Names := C_Props;
    M_L3 : constant Key_Names := M_Props;
    Cm_L3 : constant Key_Names := Cm_Props;  
    S_L3 : constant Key_Names := S_Props;
    Cs_L3 : constant Key_Names := Cs_Props;
    Ms_L3 : constant Key_Names := Ms_Props;
    Cms_L3 : constant Key_Names := Cms_Props;

    L4 : constant Key_Names := Undo;
    C_L4 : constant Key_Names := C_Undo;
    M_L4 : constant Key_Names := M_Undo;
    Cm_L4 : constant Key_Names := Cm_Undo;  
    S_L4 : constant Key_Names := S_Undo;
    Cs_L4 : constant Key_Names := Cs_Undo;
    Ms_L4 : constant Key_Names := Ms_Undo;
    Cms_L4 : constant Key_Names := Cms_Undo;

    L5 : constant Key_Names := Front;
    C_L5 : constant Key_Names := C_Front;
    M_L5 : constant Key_Names := M_Front;
    Cm_L5 : constant Key_Names := Cm_Front;  
    S_L5 : constant Key_Names := S_Front;
    Cs_L5 : constant Key_Names := Cs_Front;
    Ms_L5 : constant Key_Names := Ms_Front;
    Cms_L5 : constant Key_Names := Cms_Front;

    L6 : constant Key_Names := Copy;
    C_L6 : constant Key_Names := C_Copy;
    M_L6 : constant Key_Names := M_Copy;
    Cm_L6 : constant Key_Names := Cm_Copy;  
    S_L6 : constant Key_Names := S_Copy;
    Cs_L6 : constant Key_Names := Cs_Copy;
    Ms_L6 : constant Key_Names := Ms_Copy;
    Cms_L6 : constant Key_Names := Cms_Copy;

    L7 : constant Key_Names := Open;
    C_L7 : constant Key_Names := C_Open;
    M_L7 : constant Key_Names := M_Open;
    Cm_L7 : constant Key_Names := Cm_Open;  
    S_L7 : constant Key_Names := S_Open;
    Cs_L7 : constant Key_Names := Cs_Open;
    Ms_L7 : constant Key_Names := Ms_Open;
    Cms_L7 : constant Key_Names := Cms_Open;

    L8 : constant Key_Names := Paste;
    C_L8 : constant Key_Names := C_Paste;
    M_L8 : constant Key_Names := M_Paste;
    Cm_L8 : constant Key_Names := Cm_Paste;  
    S_L8 : constant Key_Names := S_Paste;
    Cs_L8 : constant Key_Names := Cs_Paste;
    Ms_L8 : constant Key_Names := Ms_Paste;
    Cms_L8 : constant Key_Names := Cms_Paste;

    L9 : constant Key_Names := Find;
    C_L9 : constant Key_Names := C_Find;
    M_L9 : constant Key_Names := M_Find;
    Cm_L9 : constant Key_Names := Cm_Find;  
    S_L9 : constant Key_Names := S_Find;
    Cs_L9 : constant Key_Names := Cs_Find;
    Ms_L9 : constant Key_Names := Ms_Find;
    Cms_L9 : constant Key_Names := Cms_Find;

    L10 : constant Key_Names := Cut;
    C_L10 : constant Key_Names := C_Cut;
    M_L10 : constant Key_Names := M_Cut;
    Cm_L10 : constant Key_Names := Cm_Cut;  
    S_L10 : constant Key_Names := S_Cut;
    Cs_L10 : constant Key_Names := Cs_Cut;
    Ms_L10 : constant Key_Names := Ms_Cut;
    Cms_L10 : constant Key_Names := Cms_Cut;

end Rational_Access_Key_Names;86
1