/*!
**    Notice:  Gubby Copyright 2003 Christian Stigen Larsen
**    Author:  <csl@sublevel3.org>
**
**    $Id: getopts.h,v 1.20 2003/04/01 09:03:40 cslsublevel3org Exp $
**
**    This file is part of Gubby.
**
**    Gubby is free software; you can redistribute it and/or modify
**    it under the terms of the GNU General Public License as published by
**    the Free Software Foundation; either version 2 of the License, or
**    (at your option) any later version.
**
**    Gubby is distributed in the hope that it will be useful,
**    but WITHOUT ANY WARRANTY; without even the implied warranty of
**    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
**    GNU General Public License for more details.
**
**    You should have received a copy of the GNU General Public License
**    along with Gubby; if not, write to the Free Software
**    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
**
*/

// Needed on e.g. some solaris/sunos systems
struct goption {
	const char *name;
	int has_arg;
	int *flag;
	int val;
};

class getopts {
	//! Non-option ARGV-elements (e.g. ./program ARG1 ARG2 ARG3)
	virtual void gotnonopt(const char* arg) = 0;

	//! Options and/or values
	virtual void gotopt(const char ch, const char* value) = 0;

public:
	virtual ~getopts() {
	}

	void parse(int argc, char* argv[], const char* optmask);
};


syntax highlighted by Code2HTML, v. 0.9.1