-- -- REENTRANT GETOPT -- SPECIFICATION -- $Id$ -- -- Based upon getopt by Nasser Abbasi. -- modifications to support reentrancy by Joel Sherrill. -- -- Copyright (C) 1998 Nasser Abbasi -- Copyright (C) 2011 Joel Sherrill -- -- This is free software; you can redistribute it and/or modify it under -- terms of the GNU General Public License as published by the Free Soft- -- ware Foundation; either version 2, or (at your option) any later ver- -- sion. GETOPT is distributed in the hope that it will be useful, but WITH -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- for more details. Free Software Foundation, 59 Temple Place - Suite -- 330, Boston, MA 02111-1307, USA. -- -- As a special exception, if other files instantiate generics from this -- unit, or you link this unit with other files to produce an executable, -- this unit does not by itself cause the resulting executable to be -- covered by the GNU General Public License. This exception does not -- however invalidate any other reasons why the executable file might be -- covered by the GNU Public License. -- ------------------------------------------------------------------------------ -- -- change history: -- -- name changes -- ---------- -------------------------------------------------------------- -- NMA021899 created -- NMA030299 Changed header to make it modified GPL -- -- description: -- -- This package is an Ada implementation of getopt() as specified by the -- document "The Single UNIX Specification, Version 2", Copyright 1997 The -- Open Group -- -- This describes the items involveed using example -- -- -- curopt -- | -- V -- "-f foo -dbc -k" -- ^ -- | -- optind -- -- optind is position (index) that tells which command line argument is -- being processed now. -- curopt tells which optchar is being processed within one command line -- argument. This is needed only if more that one optchar are stuck -- togother in one argument with no space, as in -df where both d and f -- are valid optchar and d takes no optarg. -- -- Compiler used: GCC 4.5.2 targeting i386-rtems4.10 -- Platform: Fedora 14/x86_64 -- with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Command_Line_Arguments; use Command_Line_Arguments; package Getopt_R is pragma Elaborate_Body; type Reentrant is record Optind : Argument_Count_type; Optarg : Unbounded_String; Optopt : Character := ' '; Opterr : Integer := 1; Curopt : Natural := 2; Argc : Argument_Count_Type; Argv : Argument_Vector_Type; end record; type Reentrant_Ptr is access all Reentrant; procedure Initialize ( R : Reentrant_Ptr; Argc : Argument_Count_Type; Argv : Argument_Vector_Type); function Getopt ( R : Reentrant_Ptr; Optstring : String ) return Integer; end Getopt_R;