DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 2152 (0x868) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
WITH Io; WITH Messages; WITH Mailboxes; WITH Destinations; WITH Command_Utilities; WITH System_Utilities; PROCEDURE Run_Mail (User_Name : String := "<Current_User>") IS PACKAGE Cu RENAMES Command_Utilities; Mailbox : Mailboxes.Mailbox := Mailboxes.Make; Command : Cu.Command; Message : Messages.Message; Current_User : Destinations.User; FUNCTION Get_User (Name : String) RETURN String; FUNCTION Get_User (Name : String) RETURN String IS BEGIN IF Name = "<Current_User>" THEN RETURN System_Utilities.User_Name; ELSE RETURN Name; END IF; END Get_User; BEGIN BEGIN Current_User := Destinations.Lookup (Get_User (User_Name)); EXCEPTION WHEN Destinations.Undefined => Io.Put_Line ("Sorry, can only run simulation for current user."); RETURN; END; LOOP Command := Cu.Get_Command; CASE Command.Kind IS WHEN Cu.Headers => Cu.Display_Headers (Mailbox); WHEN Cu.Read => Cu.Display_Message (Mailboxes.Get_Message (Command.Message, Mailbox)); Mailboxes.Set_Read_Flag (Command.Message, True, Mailbox); WHEN Cu.Send => BEGIN Message := Cu.Get_Message; Messages.Set_From (Current_User, Message); Mailboxes.Add (Message, Mailbox); Cu.Notify_Of_Receipt (Current_User, Messages.Get_To (Message)); EXCEPTION WHEN Destinations.Undefined => Io.Put_Line ("Sorry, undefined user name entered."); END; WHEN Cu.Delete => Mailboxes.Delete_Message (Command.Message, Mailbox); WHEN Cu.Quit => EXIT; WHEN Cu.Unknown => Io.Put_Line ("Unknown command entered. Please try again."); Io.Put ("Legal commands are: "); FOR I IN Cu.Headers .. Cu.Quit LOOP Io.Put (Cu.Command_Kind'Image (I)); Io.Put (' '); END LOOP; Io.New_Line; END CASE; END LOOP; END Run_Mail;