clamav-devel/shared/options.h
afb48b28
 /*
7b8edc5c
  *  Copyright (C) 2002 - 2006 Tomasz Kojm <tkojm@clamav.net>
afb48b28
  *
  *  This program 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.
  *
  *  This program 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 this program; if not, write to the Free Software
48b7b4a7
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  *  MA 02110-1301, USA.
afb48b28
  */
 
 #ifndef __OPTIONS_H
 #define __OPTIONS_H
 
7b8edc5c
 #define _GNU_SOURCE
 #include "getopt.h"
 
afb48b28
 struct optnode {
7b8edc5c
     char optshort;
     char *optlong;
afb48b28
     char *optarg;
     struct optnode *next;
 };
 
 struct optstruct {
     struct optnode *optlist;
     char *filename;
 };
 
7b8edc5c
 void opt_free(struct optstruct *opt);
 
 struct optstruct *opt_parse(int argc, char * const *argv, const char *getopt_short, const struct option *options_long, const char **accepted_long);
 
 int opt_check(const struct optstruct *opt, char *optlong);
 
 char *opt_arg(const struct optstruct *opt, char *optlong);
 
 char *opt_firstarg(const struct optstruct *opt, const char *optlong, const struct optnode **optnode);
 
 char *opt_nextarg(const struct optnode **optnode, const char *optlong);
afb48b28
 
 #endif