X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fsample-explanation.adb;h=3129dfd76a742b15d7ab4fa274db2e7306d8edf3;hp=67930911bb40fc1432594750ae48e818a481fcb8;hb=52aa842907b31bb56fb5133da3f023b45bd4355f;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c diff --git a/Ada95/samples/sample-explanation.adb b/Ada95/samples/sample-explanation.adb index 67930911..3129dfd7 100644 --- a/Ada95/samples/sample-explanation.adb +++ b/Ada95/samples/sample-explanation.adb @@ -6,23 +6,38 @@ -- -- -- B O D Y -- -- -- --- Version 00.92 -- +------------------------------------------------------------------------------ +-- Copyright (c) 1998-2006,2009 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 -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell -- +-- copies of the Software, and to permit persons to whom the Software is -- +-- furnished to do so, subject to the following conditions: -- -- -- --- The ncurses Ada95 binding is copyrighted 1996 by -- --- Juergen Pfeifer, Email: Juergen.Pfeifer@T-Online.de -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- -- -- --- Permission is hereby granted to reproduce and distribute this -- --- binding by any means and for any fee, whether alone or as part -- --- of a larger distribution, in source or in binary form, PROVIDED -- --- this notice is included with any such distribution, and is not -- --- removed from any of its header files. Mention of ncurses and the -- --- author of this binding in any applications linked with it is -- --- highly appreciated. -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -- +-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -- +-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- -- -- --- This binding comes AS IS with no warranty, implied or expressed. -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- ------------------------------------------------------------------------------ +-- Author: Juergen Pfeifer, 1996 -- Version Control --- $Revision: 1.6 $ +-- $Revision: 1.21 $ +-- $Date: 2009/12/26 17:38:58 $ +-- Binding Version 01.00 ------------------------------------------------------------------------------ -- Poor mans help system. This scans a sequential file for key lines and -- then reads the lines up to the next key. Those lines are presented in @@ -43,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.msg"; F : File_Type; type Help_Line; @@ -58,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, @@ -71,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 @@ -102,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 @@ -285,7 +300,6 @@ package body Sample.Explanation is Root : Help_Line_Access := null; Current : Help_Line_Access; Tail : Help_Line_Access := null; - Save : String_Access; function Next_Line return Boolean; @@ -304,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 @@ -346,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; @@ -392,4 +406,3 @@ package body Sample.Explanation is begin Open (F, In_File, File_Name); end Sample.Explanation; -