Blame posix/bug-regex1.c

Packit 6c4009
/* Test case by Jim Meyering <jim@meyering.net>.  */
Packit 6c4009
#include <locale.h>
Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
#include <regex.h>
Packit 6c4009
#include <wchar.h>
Packit 6c4009
Packit 6c4009
int
Packit 6c4009
main (void)
Packit 6c4009
{
Packit 6c4009
  struct re_pattern_buffer regex;
Packit 6c4009
  struct re_registers regs;
Packit 6c4009
  const char *s;
Packit 6c4009
  int match;
Packit 6c4009
  int result = 0;
Packit 6c4009
Packit 6c4009
  memset (&regex, '\0', sizeof (regex));
Packit 6c4009
Packit 6c4009
  setlocale (LC_ALL, "de_DE.ISO-8859-1");
Packit 6c4009
  fwide (stdout, -1);
Packit 6c4009
Packit 6c4009
  re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_DEBUG);
Packit 6c4009
Packit 6c4009
  puts ("in C locale");
Packit 6c4009
  setlocale (LC_ALL, "C");
Packit 6c4009
  s = re_compile_pattern ("[anù]*n", 7, &regex);
Packit 6c4009
  if (s != NULL)
Packit 6c4009
    {
Packit 6c4009
      puts ("re_compile_pattern return non-NULL value");
Packit 6c4009
      result = 1;
Packit 6c4009
    }
Packit 6c4009
  else
Packit 6c4009
    {
Packit 6c4009
      match = re_match (&regex, "an", 2, 0, ®s;;
Packit 6c4009
      if (match != 2)
Packit 6c4009
	{
Packit 6c4009
	  printf ("re_match returned %d, expected 2\n", match);
Packit 6c4009
	  result = 1;
Packit 6c4009
	}
Packit 6c4009
      else
Packit 6c4009
	puts (" -> OK");
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  puts ("in de_DE.ISO-8859-1 locale");
Packit 6c4009
  setlocale (LC_ALL, "de_DE.ISO-8859-1");
Packit 6c4009
  s = re_compile_pattern ("[anù]*n", 7, &regex);
Packit 6c4009
  if (s != NULL)
Packit 6c4009
    {
Packit 6c4009
      puts ("re_compile_pattern return non-NULL value");
Packit 6c4009
      result = 1;
Packit 6c4009
    }
Packit 6c4009
  else
Packit 6c4009
    {
Packit 6c4009
      match = re_match (&regex, "an", 2, 0, ®s;;
Packit 6c4009
      if (match != 2)
Packit 6c4009
	{
Packit 6c4009
	  printf ("re_match returned %d, expected 2\n", match);
Packit 6c4009
	  result = 1;
Packit 6c4009
	}
Packit 6c4009
      else
Packit 6c4009
	puts (" -> OK");
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  return result;
Packit 6c4009
}