X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fncurses2-getopt.adb;h=29f1fee8281ac7ee5f96e0d8c0f09c761eeba421;hp=176073b0bb59197171a8e85136cc060d7c6d4019;hb=7d3e03f12f3e179f5780f733fa5b78d981080d48;hpb=a8987e73ec254703634802b4f7ee30d3a485524d diff --git a/Ada95/samples/ncurses2-getopt.adb b/Ada95/samples/ncurses2-getopt.adb index 176073b0..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,2004 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.3 $ +-- $Revision: 1.8 $ +-- $Date: 2011/03/19 12:09:51 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ -- A simplified version of the GNU getopt function @@ -47,8 +48,6 @@ with Ada.Text_IO; use Ada.Text_IO; package body ncurses2.getopt is - optopt : Character := '?'; - nextchar : Natural := 0; -- Ncurses doesn't use the non option elements so we are spared @@ -57,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; @@ -68,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); @@ -104,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; @@ -134,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 := '?';