]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/samples/sample-explanation.adb
ncurses 5.8 - patch 20110319
[ncurses.git] / Ada95 / samples / sample-explanation.adb
index 8701925dedf3e2066e936e97239c2beab1e0d4b1..cf1ebb60361213989125c4d0ff1f0befe47b378f 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.12 $
+--  $Revision: 1.24 $
+--  $Date: 2011/03/19 12:18:35 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
@@ -57,7 +58,7 @@ package body Sample.Explanation is
    Help_Keys : constant String := "HELPKEYS";
    In_Help   : constant String := "INHELP";
 
-   File_Name : String := "explain.msg";
+   File_Name : constant String := "explain.txt";
    F : File_Type;
 
    type Help_Line;
@@ -72,8 +73,8 @@ package body Sample.Explanation is
          Line : String_Access;
       end record;
 
-   procedure Explain (Key : in String;
-                      Win : in Window);
+   procedure Explain (Key : String;
+                      Win : Window);
 
    procedure Release_String is
      new Ada.Unchecked_Deallocation (String,
@@ -85,14 +86,14 @@ package body Sample.Explanation is
    function Search (Key : String) return Help_Line_Access;
    procedure Release_Help (Root : in out Help_Line_Access);
 
-   procedure Explain (Key : in String)
+   procedure Explain (Key : String)
    is
    begin
       Explain (Key, Null_Window);
    end Explain;
 
-   procedure Explain (Key : in String;
-                      Win : in Window)
+   procedure Explain (Key : String;
+                      Win : Window)
    is
       --  Retrieve the text associated with this key and display it in this
       --  window. If no window argument is passed, the routine will create
@@ -116,7 +117,7 @@ package body Sample.Explanation is
       Current  : Help_Line_Access;
       Top_Line : Help_Line_Access;
 
-      Has_More : Boolean;
+      Has_More : Boolean := True;
 
       procedure Unknown_Key
       is
@@ -125,7 +126,7 @@ package body Sample.Explanation is
          Add (W, Key);
          Add (W, " not found.");
          Add (W, Character'Val (10));
-         Add (W, "Press the Function key labelled 'Quit' key to continue.");
+         Add (W, "Press the Function key labeled 'Quit' key to continue.");
       end Unknown_Key;
 
       procedure Redo
@@ -317,7 +318,7 @@ package body Sample.Explanation is
       Reset (F);
       Outer :
       loop
-         exit when not Next_Line;
+         exit Outer when not Next_Line;
          if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
            and then Buffer (1) = '#' then
             loop
@@ -359,7 +360,7 @@ package body Sample.Explanation is
       Explain (Context);
    end Explain_Context;
 
-   procedure Notepad (Key : in String)
+   procedure Notepad (Key : String)
    is
       H : constant Help_Line_Access := Search (Key);
       T : Help_Line_Access := H;
@@ -404,5 +405,10 @@ package body Sample.Explanation is
 
 begin
    Open (F, In_File, File_Name);
+exception
+   when Name_Error =>
+      Put_Line (Standard_Error,
+                "The file explain.txt was not found in the current directory."
+                );
+      raise;
 end Sample.Explanation;
-