mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
022755953f
This merges some getopt fixes from Zack Weinberg, and affects only non-GNUish platforms. It incorporates: 2017-04-06 getopt-gnu: omit some duplicate code 2017-04-06 getopt-posix: use angle-bracket include 2017-04-06 getopt: annotate files with relationship to glibc 2017-04-06 getopt: split up getopt.in.h and eliminate __need_getopt 2017-04-06 getopt: better handling of ambiguous options 2017-04-06 getopt: refactor long-option handling 2017-04-06 getopt: tidy up _getopt_initialize a bit 2017-04-06 getopt: merge from glibc: repetition reduction 2017-04-06 getopt: clean up error reporting 2017-04-06 getopt: fix fencepost error in ambiguous-W-option handling 2017-04-06 getopt: clean up getopt.c and getopt1.c file headers 2017-04-06 getopt: harmonize comments with glibc 2017-04-06 getopt: remove USE_NONOPTION_FLAGS 2017-04-06 getopt: tabify, in preparation for merge with glibc 2017-04-06 md5, sha1, sha256, sha512: Add comments re correctness * build-aux/config.sub, doc/misc/texinfo.tex, lib/getopt.c: * lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h, lib/md5.c: * lib/md5.h, lib/sha1.c, lib/sha1.h, lib/sha256.c, lib/sha256.h: * lib/sha512.c, lib/sha512.h, lib/unistd.in.h, m4/getopt.m4: Copy from gnulib. * lib/getopt_cdefs.in.h, lib/getopt_core.h, lib/getopt_ext.h: * lib/getopt_pfx_core.h, lib/getopt_pfx_ext.h: New files, taken from gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
76 lines
2.1 KiB
C
76 lines
2.1 KiB
C
/* getopt-on-non-glibc compatibility macros.
|
|
Copyright (C) 1989-2017 Free Software Foundation, Inc.
|
|
This file is part of gnulib.
|
|
Unlike most of the getopt implementation, it is NOT shared
|
|
with the GNU C Library.
|
|
|
|
gnulib 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 3 of
|
|
the License, or (at your option) any later version.
|
|
|
|
gnulib 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 gnulib; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _GETOPT_CDEFS_H
|
|
#define _GETOPT_CDEFS_H 1
|
|
|
|
/* This header should not be used directly; include getopt.h or
|
|
unistd.h instead. It does not have a protective #error, because
|
|
the guard macro for getopt.h in gnulib is not fixed. */
|
|
|
|
/* getopt_core.h and getopt_ext.h are shared with GNU libc, and expect
|
|
a number of the internal macros supplied to GNU libc's headers by
|
|
sys/cdefs.h. Provide fallback definitions for all of them. */
|
|
#if @HAVE_SYS_CDEFS_H@
|
|
# include <sys/cdefs.h>
|
|
#endif
|
|
|
|
#ifndef __BEGIN_DECLS
|
|
# ifdef __cplusplus
|
|
# define __BEGIN_DECLS extern "C" {
|
|
# else
|
|
# define __BEGIN_DECLS /* nothing */
|
|
# endif
|
|
#endif
|
|
#ifndef __END_DECLS
|
|
# ifdef __cplusplus
|
|
# define __END_DECLS }
|
|
# else
|
|
# define __END_DECLS /* nothing */
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef __GNUC_PREREQ
|
|
# if defined __GNUC__ && defined __GNUC_VERSION__
|
|
# define __GNUC_PREREQ(maj, min) \
|
|
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
|
# else
|
|
# define __GNUC_PREREQ(maj, min) 0
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef __THROW
|
|
# if defined __cplusplus && __GNUC_PREREQ (2,8)
|
|
# define __THROW throw ()
|
|
# else
|
|
# define __THROW
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef __nonnull
|
|
# if __GNUC_PREREQ (3,3)
|
|
# define __nonnull(params) __attribute__ ((__nonnull__ params))
|
|
# else
|
|
# define __nonnull(params)
|
|
# endif
|
|
#endif
|
|
|
|
#endif /* getopt_cdefs.h */
|