glibc/posix/bug-regex2.c
Ulrich Drepper 770d454df3 Update.
* posix/Makefile: Add rules to build and run bug-regex2.

2001-02-10  Jakub Jelinek  <jakub@redhat.com>

	* posix/regex.c (convert_mbs_to_wcs): Change is_binary to char *.
	(regex_compile): Likewise.
	(FREE_VARIABLES): Don't free is_binary1 and is_binary2.
	(re_match_2_internal): Use just is_binary instead of two variables.
	Use REGEX_TALLOC to allocate it and FREE_VAR to free on failure.

2001-02-09  Ulrich Drepper  <drepper@redhat.com>
2001-02-10 06:19:01 +00:00

54 lines
1.4 KiB
C

/* Test for memory handling in regex.
Copyright (C) 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
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 <sys/types.h>
#include <mcheck.h>
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
static const char text[] = "This is a test; this is a test";
int
main (void)
{
regex_t re;
regmatch_t rm[2];
int n;
mtrace ();
n = regcomp (&re, "a test", REG_EXTENDED);
if (n != 0)
{
char buf[500];
regerror (n, &re, buf, sizeof (buf));
printf ("regcomp failed: %s\n", buf);
exit (1);
}
for (n = 0; n < 20; ++n)
regexec (&re, text, 2, rm, 0);
regfree (&re);
return 0;
}