mirror of
https://gitlab.freedesktop.org/libbsd/libbsd.git
synced 2025-01-09 19:27:42 +01:00
parent
34b269a1cf
commit
019b5818da
@ -1,11 +1,3 @@
|
|||||||
2006-02-13 Robert Millan <rmh@aybabtu.com>
|
|
||||||
|
|
||||||
Add reset_getopt (borrowed from e2fsprogs).
|
|
||||||
* reset_getopt.c: New.
|
|
||||||
* Versions: Add reset_getopt.
|
|
||||||
* Makefile: Add reset_getopt.c.
|
|
||||||
* debian/copyright: Add license (GPL).
|
|
||||||
|
|
||||||
2006-02-10 Robert Millan <rmh@aybabtu.com>
|
2006-02-10 Robert Millan <rmh@aybabtu.com>
|
||||||
|
|
||||||
Add errc, warnc, verrc and vwarnc.
|
Add errc, warnc, verrc and vwarnc.
|
||||||
|
2
Makefile
2
Makefile
@ -4,7 +4,7 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
LIB_SRCS = arc4random.c err.c fgetln.c inet_net_pton.c reset_getopt.c strlcat.c strlcpy.c md5c.c fmtcheck.c
|
LIB_SRCS = arc4random.c err.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c md5c.c fmtcheck.c
|
||||||
|
|
||||||
LIB_INCLUDES = include/bsd/err.h include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h
|
LIB_INCLUDES = include/bsd/err.h include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h
|
||||||
|
|
||||||
|
4
Versions
4
Versions
@ -6,8 +6,8 @@ LIBBSD_0.0 {
|
|||||||
fgetwln;
|
fgetwln;
|
||||||
fmtcheck;
|
fmtcheck;
|
||||||
inet_net_pton;
|
inet_net_pton;
|
||||||
reset_getopt;
|
strlcpy;
|
||||||
strlcpy; strlcat;
|
strlcat;
|
||||||
MD5Init;
|
MD5Init;
|
||||||
MD5Update;
|
MD5Update;
|
||||||
MD5Pad;
|
MD5Pad;
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* util.c --- utilities for the debugfs program
|
|
||||||
*
|
|
||||||
* Copyright (C) 1993, 1994 Theodore Ts'o. This file may be
|
|
||||||
* redistributed under the terms of the GNU Public License.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Enable getopt variables */
|
|
||||||
#ifndef _GNU_SOURCE
|
|
||||||
# define _GNU_SOURCE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/param.h> /* BSD */
|
|
||||||
|
|
||||||
#ifdef BSD
|
|
||||||
# define HAVE_OPTRESET 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This function resets the libc getopt() function, which keeps
|
|
||||||
* internal state. Bad design! Stupid libc API designers! No
|
|
||||||
* biscuit!
|
|
||||||
*
|
|
||||||
* BSD-derived getopt() functions require that optind be reset to 1 in
|
|
||||||
* order to reset getopt() state. This used to be generally accepted
|
|
||||||
* way of resetting getopt(). However, glibc's getopt()
|
|
||||||
* has additional getopt() state beyond optind, and requires that
|
|
||||||
* optind be set zero to reset its state. So the unfortunate state of
|
|
||||||
* affairs is that BSD-derived versions of getopt() misbehave if
|
|
||||||
* optind is set to 0 in order to reset getopt(), and glibc's getopt()
|
|
||||||
* will core ump if optind is set 1 in order to reset getopt().
|
|
||||||
*
|
|
||||||
* More modern versions of BSD require that optreset be set to 1 in
|
|
||||||
* order to reset getopt(). Sigh. Standards, anyone?
|
|
||||||
*
|
|
||||||
* We hide the hair here.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
reset_getopt (void)
|
|
||||||
{
|
|
||||||
#ifdef __GLIBC__
|
|
||||||
optind = 0;
|
|
||||||
#else
|
|
||||||
optind = 1;
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_OPTRESET
|
|
||||||
optreset = 1; /* Makes BSD getopt happy */
|
|
||||||
#endif
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user