Subversion Repositories f9daq

Rev

Rev 197 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. /*-
  3.  * Copyright (c) 2000 The NetBSD Foundation, Inc.
  4.  * All rights reserved.
  5.  *
  6.  * This code is derived from software contributed to The NetBSD Foundation
  7.  * by Dieter Baron and Thomas Klausner.
  8.  *
  9.  * Redistribution and use in source and binary forms, with or without
  10.  * modification, are permitted provided that the following conditions
  11.  * are met:
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in the
  16.  *    documentation and/or other materials provided with the distribution.
  17.  *
  18.  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  19.  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  20.  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  21.  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  22.  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  23.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  24.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  25.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  26.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  27.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  28.  * POSSIBILITY OF SUCH DAMAGE.
  29.  *
  30.  *      $NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $
  31.  */
  32.  
  33. #ifndef _GETOPT_H_
  34. #define _GETOPT_H_
  35.  
  36. /*
  37.  * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions
  38.  */
  39. #define no_argument        0
  40. #define required_argument  1
  41. #define optional_argument  2
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47. struct option {
  48.         /* name of long option */
  49.         const char *name;
  50.         /*
  51.          * one of no_argument, required_argument, and optional_argument:
  52.          * whether option takes an argument
  53.          */
  54.         int has_arg;
  55.         /* if not NULL, set *flag to val when option found */
  56.         int *flag;
  57.         /* if flag not NULL, value to set *flag to; else return value */
  58.         int val;
  59. };
  60.  
  61. int getopt_long(int, char * const *, const char *,
  62.     const struct option *, int *);
  63.  
  64. extern int optreset;
  65. extern char *optarg;
  66. extern int opterr;
  67. extern int optind;
  68. extern int optopt;
  69.  
  70. #ifdef __cplusplus
  71. };
  72. #endif
  73.  
  74. #endif /* !_GETOPT_H_ */
  75.