diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-03-01 09:05:59 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-03-01 09:05:59 +0000 |
commit | b4b997286ed025b673f3ba4698d0075952cc7896 (patch) | |
tree | 43ef3fb43263e6c2d4c0db62d588eb59d1a6c66a /Build/source | |
parent | a15743669eec9a2ab5c7c49ffead9fa786103502 (diff) |
getopt
git-svn-id: svn://tug.org/texlive/trunk@25547 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/kpathsea/ChangeLog | 10 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/c-unistd.h | 3 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/getopt.c | 14 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/getopt.h | 39 | ||||
-rw-r--r-- | Build/source/utils/chktex/ChangeLog | 7 | ||||
-rw-r--r-- | Build/source/utils/chktex/getopt.c | 14 | ||||
-rw-r--r-- | Build/source/utils/chktex/getopt.h | 39 |
7 files changed, 54 insertions, 72 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index aadc7b9b3fa..261715995fb 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,3 +1,13 @@ +2012-03-01 Peter Breitenlohner <peb@mppmu.mpg.de> + + * c-unistd.h: Declare getopt() (via <kpathsea/getopt.h>) but + not getopt_long(). + + * getopt.h: With __need_getopt declare only getopt() but not + getopt_long() (with 'struct option'). + + * getopt.[ch]: Drop pre-ANSI C non-prototype declarations. + 2012-02-27 Peter Breitenlohner <peb@mppmu.mpg.de> * c-unistd.h [CYGWIN]: Explicitly #include <kpathsea/getopt.h> diff --git a/Build/source/texk/kpathsea/c-unistd.h b/Build/source/texk/kpathsea/c-unistd.h index 9447544bf64..a8c49ba09c1 100644 --- a/Build/source/texk/kpathsea/c-unistd.h +++ b/Build/source/texk/kpathsea/c-unistd.h @@ -24,9 +24,8 @@ #include <kpathsea/systypes.h> #if HAVE_UNISTD_H -#ifdef __CYGWIN__ +# define __need_getopt #include <kpathsea/getopt.h> -#endif #include <unistd.h> #endif diff --git a/Build/source/texk/kpathsea/getopt.c b/Build/source/texk/kpathsea/getopt.c index 2f6984e263d..d1fc9864de5 100644 --- a/Build/source/texk/kpathsea/getopt.c +++ b/Build/source/texk/kpathsea/getopt.c @@ -1,6 +1,6 @@ /* Getopt for GNU. - Copyright 2008, 2009, 2010, 2011 Karl Berry. + Copyright 2008-2012 Karl Berry. Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 2000, 2010 Free Software Foundation, Inc. @@ -221,18 +221,6 @@ static char *my_index(const char *str, int chr) return 0; } -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -#if !defined (__STDC__) || !__STDC__ -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -#endif /* not __STDC__ */ -#endif /* __GNUC__ */ - #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ diff --git a/Build/source/texk/kpathsea/getopt.h b/Build/source/texk/kpathsea/getopt.h index c9ca5e720a7..c899189bebc 100644 --- a/Build/source/texk/kpathsea/getopt.h +++ b/Build/source/texk/kpathsea/getopt.h @@ -22,7 +22,10 @@ along with this library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _GETOPT_H + +#ifndef __need_getopt #define _GETOPT_H 1 +#endif #if defined (WIN32) && !defined (__MINGW32__) && !defined (NO_KPSE_DLL) #define KPSE_DLL 1 @@ -75,6 +78,7 @@ extern KPSEDLL int opterr; extern KPSEDLL int optopt; +#ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is @@ -111,23 +115,21 @@ struct option #define no_argument 0 #define required_argument 1 #define optional_argument 2 +#endif /* need getopt */ -#if defined (__CYGWIN__) && !defined ( __GETOPT_H__) -#define __GETOPT_H__ -extern KPSEDLL int getopt (int argc, char *const *argv, const char *shortopts); -#endif - -#if defined (__STDC__) && __STDC__ -#ifdef __GNU_LIBRARY__ +#if defined(__GNU_LIBRARY__) || defined (WIN32) || defined (__CYGWIN__) /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern KPSEDLL int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -#if !defined (__cplusplus) && !defined (__CYGWIN__) +#if defined (__MINGW32__) || defined (__CYGWIN__) +#define __GETOPT_H__ /* Avoid that <unistd.h> redeclares the getopt API. */ +#endif +#elif !defined (__cplusplus) extern KPSEDLL int getopt (); -#endif /* not __cplusplus and not __CYGWIN__ */ -#endif /* __GNU_LIBRARY__ */ +#endif + +#ifndef __need_getopt extern KPSEDLL int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern KPSEDLL int getopt_long_only (int argc, char *const *argv, @@ -143,20 +145,13 @@ extern int _getopt_internal (int argc, char *const *argv, int long_only); #endif /* MAKE_KPSE_DLL || NO_KPSE_DLL */ -#else /* not __STDC__ */ -extern KPSEDLL int getopt (); -extern KPSEDLL int getopt_long (); -extern KPSEDLL int getopt_long_only (); - -#if defined (MAKE_KPSE_DLL) || defined (NO_KPSE_DLL) /* libkpathsea internal only */ - -extern int _getopt_internal (); - -#endif /* MAKE_KPSE_DLL || NO_KPSE_DLL */ -#endif /* __STDC__ */ +#endif /* need getopt */ #ifdef __cplusplus } #endif +/* Make sure we later can get all the definitions and declarations. */ +#undef __need_getopt + #endif /* _GETOPT_H */ diff --git a/Build/source/utils/chktex/ChangeLog b/Build/source/utils/chktex/ChangeLog index f1740c8cc64..5b6b7b51981 100644 --- a/Build/source/utils/chktex/ChangeLog +++ b/Build/source/utils/chktex/ChangeLog @@ -1,3 +1,10 @@ +2012-03-01 Peter Breitenlohner <peb@mppmu.mpg.de> + + * getopt.h: With __need_getopt declare only getopt() but not + getopt_long() (with 'struct option'). + + * getopt.[ch]: Drop pre-ANSI C non-prototype declarations. + 2012-02-27 Ken Brown <kbrow1i@gmail.com> * getopt.h: Cygwin requires getopt() prototype. diff --git a/Build/source/utils/chktex/getopt.c b/Build/source/utils/chktex/getopt.c index 2f6984e263d..d1fc9864de5 100644 --- a/Build/source/utils/chktex/getopt.c +++ b/Build/source/utils/chktex/getopt.c @@ -1,6 +1,6 @@ /* Getopt for GNU. - Copyright 2008, 2009, 2010, 2011 Karl Berry. + Copyright 2008-2012 Karl Berry. Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 2000, 2010 Free Software Foundation, Inc. @@ -221,18 +221,6 @@ static char *my_index(const char *str, int chr) return 0; } -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -#if !defined (__STDC__) || !__STDC__ -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -#endif /* not __STDC__ */ -#endif /* __GNUC__ */ - #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ diff --git a/Build/source/utils/chktex/getopt.h b/Build/source/utils/chktex/getopt.h index c9ca5e720a7..c899189bebc 100644 --- a/Build/source/utils/chktex/getopt.h +++ b/Build/source/utils/chktex/getopt.h @@ -22,7 +22,10 @@ along with this library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _GETOPT_H + +#ifndef __need_getopt #define _GETOPT_H 1 +#endif #if defined (WIN32) && !defined (__MINGW32__) && !defined (NO_KPSE_DLL) #define KPSE_DLL 1 @@ -75,6 +78,7 @@ extern KPSEDLL int opterr; extern KPSEDLL int optopt; +#ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is @@ -111,23 +115,21 @@ struct option #define no_argument 0 #define required_argument 1 #define optional_argument 2 +#endif /* need getopt */ -#if defined (__CYGWIN__) && !defined ( __GETOPT_H__) -#define __GETOPT_H__ -extern KPSEDLL int getopt (int argc, char *const *argv, const char *shortopts); -#endif - -#if defined (__STDC__) && __STDC__ -#ifdef __GNU_LIBRARY__ +#if defined(__GNU_LIBRARY__) || defined (WIN32) || defined (__CYGWIN__) /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern KPSEDLL int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -#if !defined (__cplusplus) && !defined (__CYGWIN__) +#if defined (__MINGW32__) || defined (__CYGWIN__) +#define __GETOPT_H__ /* Avoid that <unistd.h> redeclares the getopt API. */ +#endif +#elif !defined (__cplusplus) extern KPSEDLL int getopt (); -#endif /* not __cplusplus and not __CYGWIN__ */ -#endif /* __GNU_LIBRARY__ */ +#endif + +#ifndef __need_getopt extern KPSEDLL int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern KPSEDLL int getopt_long_only (int argc, char *const *argv, @@ -143,20 +145,13 @@ extern int _getopt_internal (int argc, char *const *argv, int long_only); #endif /* MAKE_KPSE_DLL || NO_KPSE_DLL */ -#else /* not __STDC__ */ -extern KPSEDLL int getopt (); -extern KPSEDLL int getopt_long (); -extern KPSEDLL int getopt_long_only (); - -#if defined (MAKE_KPSE_DLL) || defined (NO_KPSE_DLL) /* libkpathsea internal only */ - -extern int _getopt_internal (); - -#endif /* MAKE_KPSE_DLL || NO_KPSE_DLL */ -#endif /* __STDC__ */ +#endif /* need getopt */ #ifdef __cplusplus } #endif +/* Make sure we later can get all the definitions and declarations. */ +#undef __need_getopt + #endif /* _GETOPT_H */ |