10a33cf8b4
__need_getopt is misnamed; what it really means is "we want only the getopt features specified in POSIX, not the GNU extensions". Because this code is shared with gnulib, it winds up being cleanest to split getopt.h into *four* headers. getopt_core.h and getopt_ext.h will be shared with gnulib, getopt_posix.h will be just for glibc, and each project will have its own copy of getopt.h. * posix/bits/getopt_core.h, posix/bits/getopt_ext.h: New files, intended to be shared with gnulib. * posix/bits/getopt_posix.h: New file, not intended to be shared with gnulib. * posix/getopt.h: Now just includes features.h, bits/getopt_core.h, and bits/getopt_ext.h. Will no longer be shared with gnulib. * include/bits/getopt_core.h, include/bits/getopt_ext.h * include/bits/getopt_posix.h: New wrappers. * posix/Makefile: Install new headers. * posix/unistd.h, libio/stdio.h: Include bits/getopt_posix.h instead of getopt.h.
37 lines
1.3 KiB
C
37 lines
1.3 KiB
C
/* Declarations for getopt.
|
|
Copyright (C) 1989-2017 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library 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
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _GETOPT_H
|
|
#define _GETOPT_H 1
|
|
|
|
#include <features.h>
|
|
|
|
/* The type of the 'argv' argument to getopt_long and getopt_long_only
|
|
is properly 'char **', since both functions may write to the array
|
|
(in order to move all the options to the beginning). However, for
|
|
compatibility with old versions of LSB, glibc has to use 'char *const *'
|
|
instead. */
|
|
#ifndef __getopt_argv_const
|
|
# define __getopt_argv_const const
|
|
#endif
|
|
|
|
#include <bits/getopt_core.h>
|
|
#include <bits/getopt_ext.h>
|
|
|
|
#endif /* getopt.h */
|