X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fncurses2-getopt.adb;h=29f1fee8281ac7ee5f96e0d8c0f09c761eeba421;hp=93f1713959cdef9f2fe875236e04cdf2bbf69bf3;hb=2e5d72d6396bb38a8d1d1b3534f62e28aebaa600;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/Ada95/samples/ncurses2-getopt.adb b/Ada95/samples/ncurses2-getopt.adb index 93f17139..29f1fee8 100644 --- a/Ada95/samples/ncurses2-getopt.adb +++ b/Ada95/samples/ncurses2-getopt.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 2000 Free Software Foundation, Inc. -- +-- Copyright (c) 2000-2008,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 -- @@ -35,7 +35,8 @@ ------------------------------------------------------------------------------ -- Author: Eugene V. Melaragno 2000 -- Version Control --- $Revision: 1.2 $ +-- $Revision: 1.8 $ +-- $Date: 2011/03/19 12:09:51 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ -- A simplified version of the GNU getopt function @@ -47,10 +48,6 @@ with Ada.Text_IO; use Ada.Text_IO; package body ncurses2.getopt is - opterr : Character := Character'Val (1); - optopt : Character := '?'; - initialized : Boolean := False; - nextchar : Natural := 0; -- Ncurses doesn't use the non option elements so we are spared @@ -59,7 +56,7 @@ package body ncurses2.getopt is -- also the user is not allowed to modify argv or argc -- Doing so is Erroneous execution. - -- longoptions are not handled. + -- long options are not handled. procedure Qgetopt (retval : out Integer; argc : Integer; @@ -70,7 +67,7 @@ package body ncurses2.getopt is -- ignored for ncurses, must be initialized to 1 by -- the caller Optarg : out stringa - -- a garbage colector would be useful here. + -- a garbage collector would be useful here. ) is package BS is new Ada.Strings.Bounded.Generic_Bounded_Length (200); @@ -106,13 +103,12 @@ package body ncurses2.getopt is -- Look at and handle the next short option-character. declare c : Character := argv (optind) (nextchar); - temp : Natural := + temp : constant Natural := Ada.Strings.Fixed.Index (optstring, String'(1 => c)); begin if temp = 0 or c = ':' then Put_Line (Standard_Error, argv (optind) & ": invalid option -- " & c); - optopt := c; c := '?'; return; end if; @@ -136,8 +132,7 @@ package body ncurses2.getopt is Put_Line (Standard_Error, argv (optind) & ": option requires an argument -- " & c); - optopt := c; - if optstring (1) = ':' then + if optstring (optstring'First) = ':' then c := ':'; else c := '?';