mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 23:00:07 +00:00
Update.
2000-01-18 Bruno Haible <haible@ilog.fr> * posix/fnmatch.c (ISWCTYPE): New macro. (__wcschrnul): New function. (BTOWC): New macro. Define it instead of __btowc. (is_char_class) [!_LIBC]: Fix 'mstate_t' typo. Fix 2nd arg to wcsrtombs. Call wctype, not __wctype. * posix/fnmatch_loop.c (FCT): Use ISWCTYPE instead of __iswctype, and BTOWC instead of __btowc. 2000-01-18 Andreas Jaeger <aj@suse.de> * inet/Versions: Add new functions added on 2000-01-17.
This commit is contained in:
parent
b51094bd75
commit
ea6eb38329
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
|||||||
|
2000-01-18 Bruno Haible <haible@ilog.fr>
|
||||||
|
|
||||||
|
* posix/fnmatch.c (ISWCTYPE): New macro.
|
||||||
|
(__wcschrnul): New function.
|
||||||
|
(BTOWC): New macro. Define it instead of __btowc.
|
||||||
|
(is_char_class) [!_LIBC]: Fix 'mstate_t' typo. Fix 2nd arg to
|
||||||
|
wcsrtombs. Call wctype, not __wctype.
|
||||||
|
* posix/fnmatch_loop.c (FCT): Use ISWCTYPE instead of __iswctype, and
|
||||||
|
BTOWC instead of __btowc.
|
||||||
|
|
||||||
|
2000-01-18 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
|
* inet/Versions: Add new functions added on 2000-01-17.
|
||||||
|
|
||||||
2000-01-18 Jakub Jelinek <jakub@redhat.com>
|
2000-01-18 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* dirent/dirent.h (getdentries): Correct prototype to use __off64_t.
|
* dirent/dirent.h (getdentries): Correct prototype to use __off64_t.
|
||||||
|
@ -67,5 +67,9 @@ libc {
|
|||||||
freehostent;
|
freehostent;
|
||||||
# g*
|
# g*
|
||||||
getipnodebyaddr;
|
getipnodebyaddr;
|
||||||
|
# i*
|
||||||
|
iruserok_af;
|
||||||
|
# r*
|
||||||
|
rcmd_af; rexec_af; rrsesvport_af; ruserok_af;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,6 +106,12 @@
|
|||||||
# define IS_CHAR_CLASS(string) wctype (string)
|
# define IS_CHAR_CLASS(string) wctype (string)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef _LIBC
|
||||||
|
# define ISWCTYPE(WC, WT) __iswctype (WC, WT)
|
||||||
|
# else
|
||||||
|
# define ISWCTYPE(WC, WT) iswctype (WC, WT)
|
||||||
|
# endif
|
||||||
|
|
||||||
# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC
|
# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC
|
||||||
/* In this case we are implementing the multibyte character handling. */
|
/* In this case we are implementing the multibyte character handling. */
|
||||||
# define HANDLE_MULTIBYTE 1
|
# define HANDLE_MULTIBYTE 1
|
||||||
@ -149,6 +155,19 @@ __strchrnul (s, c)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if HANDLE_MULTIBYTE && !defined HAVE___STRCHRNUL && !defined _LIBC
|
||||||
|
static wchar_t *
|
||||||
|
__wcschrnul (s, c)
|
||||||
|
const wchar_t *s;
|
||||||
|
wint_t c;
|
||||||
|
{
|
||||||
|
wchar_t *result = wcschr (s, c);
|
||||||
|
if (result == NULL)
|
||||||
|
result = wcschr (s, '\0');
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef internal_function
|
# ifndef internal_function
|
||||||
/* Inside GNU libc we mark some function in a special way. In other
|
/* Inside GNU libc we mark some function in a special way. In other
|
||||||
environments simply ignore the marking. */
|
environments simply ignore the marking. */
|
||||||
@ -165,6 +184,11 @@ __strchrnul (s, c)
|
|||||||
# define UCHAR unsigned char
|
# define UCHAR unsigned char
|
||||||
# define FCT internal_fnmatch
|
# define FCT internal_fnmatch
|
||||||
# define L(CS) CS
|
# define L(CS) CS
|
||||||
|
# ifdef _LIBC
|
||||||
|
# define BTOWC(C) __btowc (C)
|
||||||
|
# else
|
||||||
|
# define BTOWC(C) btowc (C)
|
||||||
|
# endif
|
||||||
# define STRCHR(S, C) strchr (S, C)
|
# define STRCHR(S, C) strchr (S, C)
|
||||||
# define STRCHRNUL(S, C) __strchrnul (S, C)
|
# define STRCHRNUL(S, C) __strchrnul (S, C)
|
||||||
# include "fnmatch_loop.c"
|
# include "fnmatch_loop.c"
|
||||||
@ -181,7 +205,7 @@ __strchrnul (s, c)
|
|||||||
# define UCHAR wint_t
|
# define UCHAR wint_t
|
||||||
# define FCT internal_fnwmatch
|
# define FCT internal_fnwmatch
|
||||||
# define L(CS) L##CS
|
# define L(CS) L##CS
|
||||||
# define __btowc(wc) wc
|
# define BTOWC(C) (C)
|
||||||
# define STRCHR(S, C) wcschr (S, C)
|
# define STRCHR(S, C) wcschr (S, C)
|
||||||
# define STRCHRNUL(S, C) __wcschrnul (S, C)
|
# define STRCHRNUL(S, C) __wcschrnul (S, C)
|
||||||
|
|
||||||
@ -214,22 +238,25 @@ is_char_class (const wchar_t *wcs)
|
|||||||
static wctype_t
|
static wctype_t
|
||||||
is_char_class (const wchar_t *wcs)
|
is_char_class (const wchar_t *wcs)
|
||||||
{
|
{
|
||||||
mstate_t ps;
|
mbstate_t ps;
|
||||||
|
const wchar_t *pwc;
|
||||||
char *s;
|
char *s;
|
||||||
size_t n;
|
size_t n;
|
||||||
|
|
||||||
memset (&ps, '\0', sizeof (ps));
|
memset (&ps, '\0', sizeof (ps));
|
||||||
|
|
||||||
n = wcsrtombs (NULL, wcs, 0, &ps);
|
pwc = wcs;
|
||||||
|
n = wcsrtombs (NULL, &pwc, 0, &ps);
|
||||||
if (n == (size_t) -1)
|
if (n == (size_t) -1)
|
||||||
/* Something went wrong. */
|
/* Something went wrong. */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
s = alloca (n + 1);
|
s = alloca (n + 1);
|
||||||
assert (mbsinit (&ps));
|
assert (mbsinit (&ps));
|
||||||
(void) wcsrtombs (s, wcs, n + 1, &ps);
|
pwc = wcs;
|
||||||
|
(void) wcsrtombs (s, &pwc, n + 1, &ps);
|
||||||
|
|
||||||
return __wctype (s);
|
return wctype (s);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# define IS_CHAR_CLASS(string) is_char_class (string)
|
# define IS_CHAR_CLASS(string) is_char_class (string)
|
||||||
|
@ -224,7 +224,7 @@ FCT (pattern, string, no_leading_period, flags)
|
|||||||
/* Invalid character class name. */
|
/* Invalid character class name. */
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
|
|
||||||
if (__iswctype (__btowc ((UCHAR) *n), wt))
|
if (ISWCTYPE (BTOWC ((UCHAR) *n), wt))
|
||||||
goto matched;
|
goto matched;
|
||||||
# else
|
# else
|
||||||
if ((STREQ (str, L("alnum")) && ISALNUM ((UCHAR) *n))
|
if ((STREQ (str, L("alnum")) && ISALNUM ((UCHAR) *n))
|
||||||
@ -325,6 +325,7 @@ FCT (pattern, string, no_leading_period, flags)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
|
}
|
||||||
|
|
||||||
#undef FOLD
|
#undef FOLD
|
||||||
#undef CHAR
|
#undef CHAR
|
||||||
@ -333,4 +334,4 @@ FCT (pattern, string, no_leading_period, flags)
|
|||||||
#undef STRCHR
|
#undef STRCHR
|
||||||
#undef STRCHRNUL
|
#undef STRCHRNUL
|
||||||
#undef L
|
#undef L
|
||||||
}
|
#undef BTOWC
|
||||||
|
Loading…
Reference in New Issue
Block a user