Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
2287ac98
Commit
2287ac98
authored
Jul 08, 2011
by
Paul Eggert
Browse files
Merge from gnulib.
parents
a63e0781
4a621aae
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
132 additions
and
107 deletions
+132
-107
ChangeLog
ChangeLog
+4
-0
lib/getopt.c
lib/getopt.c
+8
-3
lib/unistd.in.h
lib/unistd.in.h
+70
-71
m4/getopt.m4
m4/getopt.m4
+50
-33
No files found.
ChangeLog
View file @
2287ac98
2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/getopt.c, lib/unistd.in.h, m4/getopt.m4: Merge from gnulib.
2011-07-07 Andreas Schwab <schwab@linux-m68k.org>
* configure.in (maintainer-mode): Reflect default in help string.
...
...
lib/getopt.c
View file @
2287ac98
...
...
@@ -829,7 +829,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
return
'?'
;
}
/* Convenience. Treat POSIX -W foo same as long option --foo */
if
(
temp
[
0
]
==
'W'
&&
temp
[
1
]
==
';'
&&
longopts
)
if
(
temp
[
0
]
==
'W'
&&
temp
[
1
]
==
';'
)
{
char
*
nameend
;
const
struct
option
*
p
;
...
...
@@ -839,6 +839,9 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
int
indfound
=
0
;
int
option_index
;
if
(
longopts
==
NULL
)
goto
no_longs
;
/* This is an option that requires an argument. */
if
(
*
d
->
__nextchar
!=
'\0'
)
{
...
...
@@ -1046,8 +1049,10 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
}
return
pfound
->
val
;
}
d
->
__nextchar
=
NULL
;
return
'W'
;
/* Let the application handle it. */
no_longs:
d
->
__nextchar
=
NULL
;
return
'W'
;
/* Let the application handle it. */
}
if
(
temp
[
1
]
==
':'
)
{
...
...
lib/unistd.in.h
View file @
2287ac98
...
...
@@ -117,78 +117,77 @@
/* The definition of _GL_WARN_ON_USE is copied here. */
#if @GNULIB_GETHOSTNAME@
/* Get all possible declarations of gethostname(). */
# if @UNISTD_H_HAVE_WINSOCK2_H@
# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef socket
# define socket socket_used_without_including_sys_socket_h
# undef connect
# define connect connect_used_without_including_sys_socket_h
# undef accept
# define accept accept_used_without_including_sys_socket_h
# undef bind
# define bind bind_used_without_including_sys_socket_h
# undef getpeername
# define getpeername getpeername_used_without_including_sys_socket_h
# undef getsockname
# define getsockname getsockname_used_without_including_sys_socket_h
# undef getsockopt
# define getsockopt getsockopt_used_without_including_sys_socket_h
# undef listen
# define listen listen_used_without_including_sys_socket_h
# undef recv
# define recv recv_used_without_including_sys_socket_h
# undef send
# define send send_used_without_including_sys_socket_h
# undef recvfrom
# define recvfrom recvfrom_used_without_including_sys_socket_h
# undef sendto
# define sendto sendto_used_without_including_sys_socket_h
# undef setsockopt
# define setsockopt setsockopt_used_without_including_sys_socket_h
# undef shutdown
# define shutdown shutdown_used_without_including_sys_socket_h
# else
_GL_WARN_ON_USE
(
socket
,
"socket() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
connect
,
"connect() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
accept
,
"accept() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
bind
,
"bind() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getpeername
,
"getpeername() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getsockname
,
"getsockname() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getsockopt
,
"getsockopt() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
listen
,
"listen() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
recv
,
"recv() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
send
,
"send() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
recvfrom
,
"recvfrom() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
sendto
,
"sendto() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
setsockopt
,
"setsockopt() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
shutdown
,
"shutdown() used without including <sys/socket.h>"
);
# endif
/* Hide some function declarations from <winsock2.h>. */
#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef socket
# define socket socket_used_without_including_sys_socket_h
# undef connect
# define connect connect_used_without_including_sys_socket_h
# undef accept
# define accept accept_used_without_including_sys_socket_h
# undef bind
# define bind bind_used_without_including_sys_socket_h
# undef getpeername
# define getpeername getpeername_used_without_including_sys_socket_h
# undef getsockname
# define getsockname getsockname_used_without_including_sys_socket_h
# undef getsockopt
# define getsockopt getsockopt_used_without_including_sys_socket_h
# undef listen
# define listen listen_used_without_including_sys_socket_h
# undef recv
# define recv recv_used_without_including_sys_socket_h
# undef send
# define send send_used_without_including_sys_socket_h
# undef recvfrom
# define recvfrom recvfrom_used_without_including_sys_socket_h
# undef sendto
# define sendto sendto_used_without_including_sys_socket_h
# undef setsockopt
# define setsockopt setsockopt_used_without_including_sys_socket_h
# undef shutdown
# define shutdown shutdown_used_without_including_sys_socket_h
# else
_GL_WARN_ON_USE
(
socket
,
"socket() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
connect
,
"connect() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
accept
,
"accept() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
bind
,
"bind() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getpeername
,
"getpeername() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getsockname
,
"getsockname() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
getsockopt
,
"getsockopt() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
listen
,
"listen() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
recv
,
"recv() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
send
,
"send() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
recvfrom
,
"recvfrom() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
sendto
,
"sendto() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
setsockopt
,
"setsockopt() used without including <sys/socket.h>"
);
_GL_WARN_ON_USE
(
shutdown
,
"shutdown() used without including <sys/socket.h>"
);
# endif
#
if !defined _@GUARD_PREFIX@_SYS_SELECT_H
#
if !
(
defined _
_cplusplus && defined GNULIB_NAMESPACE)
#
undef select
#
def
ine
select
select_used_without_including_sys_select_h
#
else
_GL_WARN_ON_USE
(
select
,
"select() used without including <sys/select.h>"
);
# endif
#
endif
# if !defined _
@GUARD_PREFIX@_SYS_SELECT_H
#
if !(defined __cplusplus && defined GNULIB_NAMESPACE)
#
un
def select
#
define select select_used_without_including_sys_select_h
# else
_GL_WARN_ON_USE
(
select
,
"select() used without including <sys/select.h>"
);
# endif
# endif
#endif
...
...
m4/getopt.m4
View file @
2287ac98
# getopt.m4 serial 3
5
# getopt.m4 serial 3
8
dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
...
...
@@ -89,15 +89,15 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
AC_CACHE_CHECK([whether getopt is POSIX compatible],
[gl_cv_func_getopt_posix],
[
dnl BSD getopt_long uses an incompatible method to reset
dnl
option
processing. Existence of the variable, in and of
dnl BSD getopt_long uses an incompatible method to reset
option
dnl processing. Existence of the
optreset
variable, in and of
dnl itself, is not a reason to replace getopt, but knowledge
dnl of the variable is needed to determine how to reset and
dnl whether a reset reparses the environment. Solaris
dnl supports neither optreset nor optind=0, but keeps no state
dnl that needs a reset beyond setting optind=1; detect Solaris
dnl by getopt_clip.
AC_
COMPILE
_IFELSE(
AC_
LINK
_IFELSE(
[AC_LANG_PROGRAM(
[[#include <unistd.h>]],
[[int *p = &optreset; return optreset;]])],
...
...
@@ -121,22 +121,20 @@ int
main ()
{
{
int argc = 0;
char *argv[10];
static char program[] = "program";
static char a[] = "-a";
static char foo[] = "foo";
static char bar[] = "bar";
char *argv[] = { program, a, foo, bar, NULL };
int c;
argv[argc++] = "program";
argv[argc++] = "-a";
argv[argc++] = "foo";
argv[argc++] = "bar";
argv[argc] = NULL;
optind = OPTIND_MIN;
opterr = 0;
c = getopt (
argc
, argv, "ab");
c = getopt (
4
, argv, "ab");
if (!(c == 'a'))
return 1;
c = getopt (
argc
, argv, "ab");
c = getopt (
4
, argv, "ab");
if (!(c == -1))
return 2;
if (!(optind == 2))
...
...
@@ -144,22 +142,20 @@ main ()
}
/* Some internal state exists at this point. */
{
int argc = 0;
char *argv[10];
static char program[] = "program";
static char donald[] = "donald";
static char p[] = "-p";
static char billy[] = "billy";
static char duck[] = "duck";
static char a[] = "-a";
static char bar[] = "bar";
char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
int c;
argv[argc++] = "program";
argv[argc++] = "donald";
argv[argc++] = "-p";
argv[argc++] = "billy";
argv[argc++] = "duck";
argv[argc++] = "-a";
argv[argc++] = "bar";
argv[argc] = NULL;
optind = OPTIND_MIN;
opterr = 0;
c = getopt (
argc
, argv, "+abp:q:");
c = getopt (
7
, argv, "+abp:q:");
if (!(c == -1))
return 4;
if (!(strcmp (argv[0], "program") == 0))
...
...
@@ -181,7 +177,9 @@ main ()
}
/* Detect MacOS 10.5, AIX 7.1 bug. */
{
char *argv[3] = { "program", "-ab", NULL };
static char program[] = "program";
static char ab[] = "-ab";
char *argv[3] = { program, ab, NULL };
optind = OPTIND_MIN;
opterr = 0;
if (getopt (2, argv, "ab:") != 'a')
...
...
@@ -239,19 +237,22 @@ dnl is ambiguous with environment values that contain newlines.
and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
OSF/1 5.1, Solaris 10. */
{
char *myargv[3];
myargv[0] = "conftest";
myargv[1] = "-+";
myargv[2] = 0;
static char conftest[] = "conftest";
static char plus[] = "-+";
char *argv[3] = { conftest, plus, NULL };
opterr = 0;
if (getopt (2,
my
argv, "+a") != '?')
if (getopt (2, argv, "+a") != '?')
result |= 1;
}
/* This code succeeds on glibc 2.8, mingw,
and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */
{
char *argv[] = { "program", "-p", "foo", "bar", NULL };
static char program[] = "program";
static char p[] = "-p";
static char foo[] = "foo";
static char bar[] = "bar";
char *argv[] = { program, p, foo, bar, NULL };
optind = 1;
if (getopt (4, argv, "p::") != 'p')
...
...
@@ -265,7 +266,10 @@ dnl is ambiguous with environment values that contain newlines.
}
/* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
{
char *argv[] = { "program", "foo", "-p", NULL };
static char program[] = "program";
static char foo[] = "foo";
static char p[] = "-p";
char *argv[] = { program, foo, p, NULL };
optind = 0;
if (getopt (3, argv, "-p") != 1)
result |= 16;
...
...
@@ -274,13 +278,26 @@ dnl is ambiguous with environment values that contain newlines.
}
/* This code fails on glibc 2.11. */
{
char *argv[] = { "program", "-b", "-a", NULL };
static char program[] = "program";
static char b[] = "-b";
static char a[] = "-a";
char *argv[] = { program, b, a, NULL };
optind = opterr = 0;
if (getopt (3, argv, "+:a:b") != 'b')
result |= 64;
else if (getopt (3, argv, "+:a:b") != ':')
result |= 64;
}
/* This code dumps core on glibc 2.14. */
{
static char program[] = "program";
static char w[] = "-W";
static char dummy[] = "dummy";
char *argv[] = { program, w, dummy, NULL };
optind = opterr = 1;
if (getopt (3, argv, "W;") != 'W')
result |= 128;
}
return result;
]])],
[gl_cv_func_getopt_gnu=yes],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment