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
emacs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
emacs
emacs
Commits
2287ac98
Commit
2287ac98
authored
Jul 08, 2011
by
Paul Eggert
Browse files
Options
Browse Files
Download
Plain Diff
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
#
define 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)
#
undef 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