mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
* malloc/malloc.c (morecore): Don't attempt recursive realloc of info table when _heaplimit==0 during realloc growing large block. * MakeTAGS (extract): Remove /dev/null from xgettext command line. (text-srcs): New variable: extract only C sources from $(tags_sources). (po/$(domain).pot): Depend on that. If it's empty, cp /dev/null $@ instead of $(extract). * misc/Makefile (headers): Add iovec.h. * sysdeps/unix/sysv/linux/iovec.h: New file. * sysdeps/generic/iovec.h: New file. * misc/sys/uio.h (struct iovec): Type replaced with #include <iovec.h>. * configure.in (NO_UNDERSCORES check): Use AC_TRY_LINK instead of AC_TRY_COMPILE. * misc/sys/cdefs.h [__USE_BSD] (const, signed, volatile): Move these macros inside [! __STDC__]. * stdlib/rpmatch.c: New file. * stdlib/Makefile (routines): Add rpmatch. * stdlib/stdlib.h [__USE_SVID]: Declare rpmatch. * MakeTAGS (MSGJOIN): Variable removed. (po/SYS_libc.pot): Use $(XGETTEXT) instead of $(MSGJOIN). Wed Mar 20 20:08:46 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysdep.h: Don't define C_SYMBOL_NAME. * sysdeps/unix/sysv/linux/m68k/sysdep.h: Don't define NO_UNDERSCORES.cvs/thomas-posix1996
16 changed files with 255 additions and 74 deletions
@ -0,0 +1,62 @@ |
|||
/* rpmatch - determine whether string value is affirmation or negative
|
|||
response according to current locale's data |
|||
Copyright (C) 1996 Free Software Foundation, Inc. |
|||
|
|||
This file is part of the GNU C Library. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Library General Public License as |
|||
published by the Free Software Foundation; either version 2 of the |
|||
License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Library General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Library General Public |
|||
License along with the GNU C Library; see the file COPYING.LIB. If |
|||
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
|||
Boston, MA 02111-1307, USA. */ |
|||
|
|||
#include <langinfo.h> |
|||
#include <stdlib.h> |
|||
#include <regex.h> |
|||
|
|||
|
|||
int |
|||
rpmatch (response) |
|||
const char *response; |
|||
{ |
|||
/* Match against one of the response patterns, compiling the pattern
|
|||
first if necessary. */ |
|||
inline int try (const int tag, const int match, |
|||
const char **lastp, regex_t *re) |
|||
{ |
|||
const char *pattern = nl_langinfo (tag); |
|||
if (pattern != *lastp) |
|||
{ |
|||
/* The pattern has changed. */ |
|||
if (*lastp) |
|||
{ |
|||
/* Free the old compiled pattern. */ |
|||
regfree (re); |
|||
*lastp = NULL; |
|||
} |
|||
/* Compile the pattern and cache it for future runs. */ |
|||
if (regcomp (re, pattern, REG_EXTENDED) != 0) |
|||
return -1; |
|||
*lastp = pattern; |
|||
} |
|||
|
|||
/* Try the pattern. */ |
|||
return regexec (re, response, 0, NULL, 0) == 0 ? match : !match; |
|||
} |
|||
|
|||
/* We cache the response patterns and compiled regexps here. */ |
|||
static const char *yesexpr, *noexpr; |
|||
static regex_t yesre, nore; |
|||
|
|||
return (try (YESEXPR, 1, &yesexpr, &yesre) ?: |
|||
try (NOEXPR, 0, &noexpr, &nore)); |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
/* `struct iovec' -- Structure describing a section of memory. */ |
|||
|
|||
struct iovec |
|||
{ |
|||
/* Starting address. */ |
|||
__ptr_t iov_base; |
|||
/* Length in bytes. */ |
|||
size_t iov_len; |
|||
}; |
|||
@ -0,0 +1,3 @@ |
|||
/* The Linux kernel header defines `struct iovec' for us. */ |
|||
|
|||
#include <linux/uio.h> |
|||
Loading…
Reference in new issue