Update.
* Rules (tests): Depend on tests-static only if build-static == yes. * misc/Makefile (install-lib): Compile libbsd-compat.a and libg.a only if build-static == yes. 1998-07-29 12:58 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/glob.c: Winblowz compatibility stuff. Patch received from Paul D. Smith <psmith@BayNetworks.COM>. 1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sunrpc/clnt_unix.c (__msgwrite)[!SCM_CRED]: Add return statement, fix typo. * sunrpc/svc_unix.c (__msgwrite)[!SCM_CRED]: Likewise. 1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
This commit is contained in:
parent
ec986e237a
commit
786a5421b8
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* Rules (tests): Depend on tests-static only if build-static == yes.
|
||||||
|
|
||||||
|
* misc/Makefile (install-lib): Compile libbsd-compat.a and libg.a
|
||||||
|
only if build-static == yes.
|
||||||
|
|
||||||
|
1998-07-29 12:58 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/generic/glob.c: Winblowz compatibility stuff.
|
||||||
|
Patch received from Paul D. Smith <psmith@BayNetworks.COM>.
|
||||||
|
|
||||||
|
1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* sunrpc/clnt_unix.c (__msgwrite)[!SCM_CRED]: Add return
|
||||||
|
statement, fix typo.
|
||||||
|
* sunrpc/svc_unix.c (__msgwrite)[!SCM_CRED]: Likewise.
|
||||||
|
|
||||||
1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
* manual/pattern.texi (More Flags for Globbing): Fix typo.
|
* manual/pattern.texi (More Flags for Globbing): Fix typo.
|
||||||
|
|
4
Rules
4
Rules
|
@ -91,8 +91,12 @@ endif
|
||||||
ifeq ($(cross-compiling),yes)
|
ifeq ($(cross-compiling),yes)
|
||||||
tests: $(addprefix $(objpfx),$(tests) $(tests-static) $(test-srcs))
|
tests: $(addprefix $(objpfx),$(tests) $(tests-static) $(test-srcs))
|
||||||
else
|
else
|
||||||
|
ifneq (($build-static),yes)
|
||||||
|
tests: $(tests:%=$(objpfx)%.out)
|
||||||
|
else
|
||||||
tests: $(tests:%=$(objpfx)%.out) $(tests-static:%=$(objpfx)%.sout)
|
tests: $(tests:%=$(objpfx)%.out) $(tests-static:%=$(objpfx)%.sout)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(build-programs),yes)
|
ifeq ($(build-programs),yes)
|
||||||
binaries-all = $(others) $(sysdep-others) $(tests) $(test-srcs)
|
binaries-all = $(others) $(sysdep-others) $(tests) $(test-srcs)
|
||||||
|
|
|
@ -58,7 +58,9 @@ routines := brk sbrk sstk ioctl \
|
||||||
err error ustat \
|
err error ustat \
|
||||||
getsysstats dirname regexp
|
getsysstats dirname regexp
|
||||||
aux := init-misc
|
aux := init-misc
|
||||||
|
ifeq ($(build-static),yes)
|
||||||
install-lib := libbsd-compat.a libg.a
|
install-lib := libbsd-compat.a libg.a
|
||||||
|
endif
|
||||||
gpl2lgpl := error.c error.h
|
gpl2lgpl := error.c error.h
|
||||||
|
|
||||||
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent
|
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent
|
||||||
|
|
|
@ -466,14 +466,14 @@ __msgread (int sock, void *buf, size_t cnt)
|
||||||
static int
|
static int
|
||||||
__msgwrite (int sock, void *buf, size_t cnt)
|
__msgwrite (int sock, void *buf, size_t cnt)
|
||||||
{
|
{
|
||||||
#ifndef SCM_CRED
|
#ifndef SCM_CREDS
|
||||||
/* We cannot implement this reliably. */
|
/* We cannot implement this reliably. */
|
||||||
__set_errno (ENOSYS);
|
__set_errno (ENOSYS);
|
||||||
|
return -1;
|
||||||
#else
|
#else
|
||||||
struct iovec iov[1];
|
struct iovec iov[1];
|
||||||
struct msghdr msg;
|
struct msghdr msg;
|
||||||
struct cmessage cm;
|
struct cmessage cm;
|
||||||
int len;
|
|
||||||
|
|
||||||
iov[0].iov_base = buf;
|
iov[0].iov_base = buf;
|
||||||
iov[0].iov_len = cnt;
|
iov[0].iov_len = cnt;
|
||||||
|
|
|
@ -294,7 +294,7 @@ __msgread (int sock, void *buf, size_t cnt)
|
||||||
{
|
{
|
||||||
struct iovec iov[1];
|
struct iovec iov[1];
|
||||||
struct msghdr msg;
|
struct msghdr msg;
|
||||||
int len, on = 1;
|
int on = 1;
|
||||||
|
|
||||||
iov[0].iov_base = buf;
|
iov[0].iov_base = buf;
|
||||||
iov[0].iov_len = cnt;
|
iov[0].iov_len = cnt;
|
||||||
|
@ -315,13 +315,13 @@ __msgread (int sock, void *buf, size_t cnt)
|
||||||
static int
|
static int
|
||||||
__msgwrite (int sock, void *buf, size_t cnt)
|
__msgwrite (int sock, void *buf, size_t cnt)
|
||||||
{
|
{
|
||||||
#ifndef SCM_CRED
|
#ifndef SCM_CREDS
|
||||||
/* We cannot implement this reliably. */
|
/* We cannot implement this reliably. */
|
||||||
__set_errno (ENOSYS);
|
__set_errno (ENOSYS);
|
||||||
|
return -1;
|
||||||
#else
|
#else
|
||||||
struct iovec iov[1];
|
struct iovec iov[1];
|
||||||
struct msghdr msg;
|
struct msghdr msg;
|
||||||
int len;
|
|
||||||
|
|
||||||
iov[0].iov_base = buf;
|
iov[0].iov_base = buf;
|
||||||
iov[0].iov_len = cnt;
|
iov[0].iov_len = cnt;
|
||||||
|
|
|
@ -496,6 +496,14 @@ glob (pattern, flags, errfunc, pglob)
|
||||||
|
|
||||||
/* Find the filename. */
|
/* Find the filename. */
|
||||||
filename = strrchr (pattern, '/');
|
filename = strrchr (pattern, '/');
|
||||||
|
#if defined __MSDOS__ || defined WINDOWS32
|
||||||
|
/* The case of "d:pattern". Since `:' is not allowed in
|
||||||
|
file names, we can safely assume that wherever it
|
||||||
|
happens in pattern, it signals the filename part. This
|
||||||
|
is so we could some day support patterns like "[a-z]:foo". */
|
||||||
|
if (filename == NULL)
|
||||||
|
filename = strchr (pattern, ':');
|
||||||
|
#endif /* __MSDOS__ || WINDOWS32 */
|
||||||
if (filename == NULL)
|
if (filename == NULL)
|
||||||
{
|
{
|
||||||
/* This can mean two things: a simple name or "~name". The later
|
/* This can mean two things: a simple name or "~name". The later
|
||||||
|
@ -506,7 +514,7 @@ glob (pattern, flags, errfunc, pglob)
|
||||||
dirlen = strlen (pattern);
|
dirlen = strlen (pattern);
|
||||||
|
|
||||||
/* Set FILENAME to NULL as a special flag. This is ugly but
|
/* Set FILENAME to NULL as a special flag. This is ugly but
|
||||||
other solutions would requiremuch more code. We test for
|
other solutions would require much more code. We test for
|
||||||
this special case below. */
|
this special case below. */
|
||||||
filename = NULL;
|
filename = NULL;
|
||||||
}
|
}
|
||||||
|
@ -532,6 +540,29 @@ glob (pattern, flags, errfunc, pglob)
|
||||||
{
|
{
|
||||||
char *newp;
|
char *newp;
|
||||||
dirlen = filename - pattern;
|
dirlen = filename - pattern;
|
||||||
|
#if defined __MSDOS__ || defined WINDOWS32
|
||||||
|
if (*filename == ':'
|
||||||
|
|| (filename > pattern + 1 && filename[-1] == ':'))
|
||||||
|
{
|
||||||
|
char *drive_spec;
|
||||||
|
|
||||||
|
++dirlen;
|
||||||
|
drive_spec = (char *) __alloca (dirlen + 1);
|
||||||
|
#ifdef HAVE_MEMPCPY
|
||||||
|
*((char *) mempcpy (drive_spec, pattern, dirlen)) = '\0';
|
||||||
|
#else
|
||||||
|
memcpy (drive_spec, pattern, dirlen);
|
||||||
|
drive_spec[dirlen] = '\0';
|
||||||
|
#endif
|
||||||
|
/* For now, disallow wildcards in the drive spec, to
|
||||||
|
prevent infinite recursion in glob. */
|
||||||
|
if (__glob_pattern_p (drive_spec, !(flags & GLOB_NOESCAPE)))
|
||||||
|
return GLOB_NOMATCH;
|
||||||
|
/* If this is "d:pattern", we need to copy `:' to DIRNAME
|
||||||
|
as well. If it's "d:/pattern", don't remove the slash
|
||||||
|
from "d:/", since "d:" and "d:/" are not the same.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
newp = (char *) __alloca (dirlen + 1);
|
newp = (char *) __alloca (dirlen + 1);
|
||||||
#ifdef HAVE_MEMPCPY
|
#ifdef HAVE_MEMPCPY
|
||||||
*((char *) mempcpy (newp, pattern, dirlen)) = '\0';
|
*((char *) mempcpy (newp, pattern, dirlen)) = '\0';
|
||||||
|
@ -542,7 +573,13 @@ glob (pattern, flags, errfunc, pglob)
|
||||||
dirname = newp;
|
dirname = newp;
|
||||||
++filename;
|
++filename;
|
||||||
|
|
||||||
if (filename[0] == '\0' && dirlen > 1)
|
if (filename[0] == '\0'
|
||||||
|
#if defined __MSDOS__ || defined WINDOWS32
|
||||||
|
&& dirname[dirlen - 1] != ':'
|
||||||
|
&& (dirlen < 3 || dirname[dirlen - 2] != ':'
|
||||||
|
|| dirname[dirlen - 1] != '/')
|
||||||
|
#endif
|
||||||
|
&& dirlen > 1)
|
||||||
/* "pattern/". Expand "pattern", appending slashes. */
|
/* "pattern/". Expand "pattern", appending slashes. */
|
||||||
{
|
{
|
||||||
int val = glob (dirname, flags | GLOB_MARK, errfunc, pglob);
|
int val = glob (dirname, flags | GLOB_MARK, errfunc, pglob);
|
||||||
|
@ -905,8 +942,9 @@ glob (pattern, flags, errfunc, pglob)
|
||||||
pglob->gl_flags = flags;
|
pglob->gl_flags = flags;
|
||||||
|
|
||||||
/* Now we know how large the gl_pathv vector must be. */
|
/* Now we know how large the gl_pathv vector must be. */
|
||||||
new_pathv = realloc (pglob->gl_pathv,
|
new_pathv = (char **) realloc (pglob->gl_pathv,
|
||||||
(pglob->gl_pathc + 1) * sizeof (char *));
|
((pglob->gl_pathc + 1)
|
||||||
|
* sizeof (char *)));
|
||||||
if (new_pathv != NULL)
|
if (new_pathv != NULL)
|
||||||
pglob->gl_pathv = new_pathv;
|
pglob->gl_pathv = new_pathv;
|
||||||
}
|
}
|
||||||
|
@ -1026,11 +1064,31 @@ prefix_array (dirname, array, n)
|
||||||
{
|
{
|
||||||
register size_t i;
|
register size_t i;
|
||||||
size_t dirlen = strlen (dirname);
|
size_t dirlen = strlen (dirname);
|
||||||
|
#if defined __MSDOS__ || defined WINDOWS32
|
||||||
|
int sep_char = '/';
|
||||||
|
# define DIRSEP_CHAR sep_char
|
||||||
|
#else
|
||||||
|
# define DIRSEP_CHAR '/'
|
||||||
|
#endif
|
||||||
|
|
||||||
if (dirlen == 1 && dirname[0] == '/')
|
if (dirlen == 1 && dirname[0] == '/')
|
||||||
/* DIRNAME is just "/", so normal prepending would get us "//foo".
|
/* DIRNAME is just "/", so normal prepending would get us "//foo".
|
||||||
We want "/foo" instead, so don't prepend any chars from DIRNAME. */
|
We want "/foo" instead, so don't prepend any chars from DIRNAME. */
|
||||||
dirlen = 0;
|
dirlen = 0;
|
||||||
|
#if defined __MSDOS__ || defined WINDOWS32
|
||||||
|
else if (dirlen > 1)
|
||||||
|
{
|
||||||
|
if (dirname[dirlen - 1] == '/')
|
||||||
|
/* DIRNAME is "d:/". Don't prepend the slash from DIRNAME. */
|
||||||
|
--dirlen;
|
||||||
|
else if (dirname[dirlen - 1] == ':')
|
||||||
|
{
|
||||||
|
/* DIRNAME is "d:". Use `:' instead of `/'. */
|
||||||
|
--dirlen;
|
||||||
|
sep_char = ':';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < n; ++i)
|
for (i = 0; i < n; ++i)
|
||||||
{
|
{
|
||||||
|
@ -1046,12 +1104,12 @@ prefix_array (dirname, array, n)
|
||||||
#ifdef HAVE_MEMPCPY
|
#ifdef HAVE_MEMPCPY
|
||||||
{
|
{
|
||||||
char *endp = (char *) mempcpy (new, dirname, dirlen);
|
char *endp = (char *) mempcpy (new, dirname, dirlen);
|
||||||
*endp++ = '/';
|
*endp++ = DIRSEP_CHAR;
|
||||||
mempcpy (endp, array[i], eltlen);
|
mempcpy (endp, array[i], eltlen);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
memcpy (new, dirname, dirlen);
|
memcpy (new, dirname, dirlen);
|
||||||
new[dirlen] = '/';
|
new[dirlen] = DIRSEP_CHAR;
|
||||||
memcpy (&new[dirlen + 1], array[i], eltlen);
|
memcpy (&new[dirlen + 1], array[i], eltlen);
|
||||||
#endif
|
#endif
|
||||||
free ((__ptr_t) array[i]);
|
free ((__ptr_t) array[i]);
|
||||||
|
@ -1131,7 +1189,7 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
|
||||||
if (flags & (GLOB_NOCHECK|GLOB_NOMAGIC))
|
if (flags & (GLOB_NOCHECK|GLOB_NOMAGIC))
|
||||||
/* We need not do any tests. The PATTERN contains no meta
|
/* We need not do any tests. The PATTERN contains no meta
|
||||||
characters and we must not return an error therefore the
|
characters and we must not return an error therefore the
|
||||||
result will always contain exactly the one name. */
|
result will always contain exactly one name. */
|
||||||
flags |= GLOB_NOCHECK;
|
flags |= GLOB_NOCHECK;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1140,7 +1198,7 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
|
||||||
struct stat st;
|
struct stat st;
|
||||||
size_t patlen = strlen (pattern);
|
size_t patlen = strlen (pattern);
|
||||||
size_t dirlen = strlen (directory);
|
size_t dirlen = strlen (directory);
|
||||||
char *fullname = __alloca (dirlen + 1 + patlen + 1);
|
char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
|
||||||
|
|
||||||
# ifdef HAVE_MEMPCPY
|
# ifdef HAVE_MEMPCPY
|
||||||
mempcpy (mempcpy (mempcpy (fullname, directory, dirlen),
|
mempcpy (mempcpy (mempcpy (fullname, directory, dirlen),
|
||||||
|
@ -1154,7 +1212,7 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
|
||||||
if (((flags & GLOB_ALTDIRFUNC)
|
if (((flags & GLOB_ALTDIRFUNC)
|
||||||
? (*pglob->gl_stat) (fullname, &st)
|
? (*pglob->gl_stat) (fullname, &st)
|
||||||
: __stat (fullname, &st)) == 0)
|
: __stat (fullname, &st)) == 0)
|
||||||
/* We found this file to be existing. No tell the rest
|
/* We found this file to be existing. Now tell the rest
|
||||||
of the function to copy this name into the result. */
|
of the function to copy this name into the result. */
|
||||||
flags |= GLOB_NOCHECK;
|
flags |= GLOB_NOCHECK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,6 @@ __csqrt (__complex__ double x)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
double d, r, s;
|
double d, r, s;
|
||||||
|
|
||||||
d = __ieee754_hypot (__real__ x, __imag__ x);
|
d = __ieee754_hypot (__real__ x, __imag__ x);
|
||||||
|
@ -98,20 +97,11 @@ __csqrt (__complex__ double x)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s = __ieee754_sqrt (0.5 * d - 0.5 * __real__ x);
|
s = __ieee754_sqrt (0.5 * d - 0.5 * __real__ x);
|
||||||
r = (0.5 * __imag__ x) / s;
|
r = fabs ((0.5 * __imag__ x) / s);
|
||||||
}
|
}
|
||||||
|
|
||||||
__real__ res = r;
|
__real__ res = r;
|
||||||
__imag__ res = __copysign (s, __imag__ x);
|
__imag__ res = __copysign (s, __imag__ x);
|
||||||
#else
|
|
||||||
double d, imag;
|
|
||||||
|
|
||||||
d = __ieee754_hypot (__real__ x, __imag__ x);
|
|
||||||
imag = __ieee754_sqrt (0.5 * (d - __real__ x));
|
|
||||||
|
|
||||||
__real__ res = __ieee754_sqrt (0.5 * (d + __real__ x));
|
|
||||||
__imag__ res = __copysign (imag, __imag__ x);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,6 @@ __csqrtf (__complex__ float x)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
float d, r, s;
|
float d, r, s;
|
||||||
|
|
||||||
d = __ieee754_hypotf (__real__ x, __imag__ x);
|
d = __ieee754_hypotf (__real__ x, __imag__ x);
|
||||||
|
@ -98,20 +97,11 @@ __csqrtf (__complex__ float x)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s = __ieee754_sqrtf (0.5f * d - 0.5f * __real__ x);
|
s = __ieee754_sqrtf (0.5f * d - 0.5f * __real__ x);
|
||||||
r = (0.5f * __imag__ x) / s;
|
r = fabsf ((0.5f * __imag__ x) / s);
|
||||||
}
|
}
|
||||||
|
|
||||||
__real__ res = r;
|
__real__ res = r;
|
||||||
__imag__ res = __copysignf (s, __imag__ x);
|
__imag__ res = __copysignf (s, __imag__ x);
|
||||||
#else
|
|
||||||
float d, imag;
|
|
||||||
|
|
||||||
d = __ieee754_hypotf (__real__ x, __imag__ x);
|
|
||||||
imag = __ieee754_sqrtf (0.5 * (d - __real__ x));
|
|
||||||
|
|
||||||
__real__ res = __ieee754_sqrtf (0.5 * (d + __real__ x));
|
|
||||||
__imag__ res = __copysignf (imag, __imag__ x);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,6 @@ __csqrtl (__complex__ long double x)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
long double d, r, s;
|
long double d, r, s;
|
||||||
|
|
||||||
d = __ieee754_hypotl (__real__ x, __imag__ x);
|
d = __ieee754_hypotl (__real__ x, __imag__ x);
|
||||||
|
@ -98,20 +97,11 @@ __csqrtl (__complex__ long double x)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s = __ieee754_sqrtl (0.5L * d - 0.5L * __real__ x);
|
s = __ieee754_sqrtl (0.5L * d - 0.5L * __real__ x);
|
||||||
r = (0.5L * __imag__ x) / s;
|
r = fabsl ((0.5L * __imag__ x) / s);
|
||||||
}
|
}
|
||||||
|
|
||||||
__real__ res = r;
|
__real__ res = r;
|
||||||
__imag__ res = __copysignl (s, __imag__ x);
|
__imag__ res = __copysignl (s, __imag__ x);
|
||||||
#else
|
|
||||||
long double d, imag;
|
|
||||||
|
|
||||||
d = __ieee754_hypotl (__real__ x, __imag__ x);
|
|
||||||
imag = __ieee754_sqrtl (0.5 * (d - __real__ x));
|
|
||||||
|
|
||||||
__real__ res = __ieee754_sqrtl (0.5 * (d + __real__ x));
|
|
||||||
__imag__ res = __copysignl (imag, __imag__ x);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue