printf ("test %d\n", id); puts (errmsg);
printf (" FAIL: %s.\n", errmsg);
run_a_test (int id, const struct a_test * t){  static const char * last_pattern = 0;  static regex_t r;  int err;  char errmsg[100];  int x;  regmatch_t regs[10];  if (!last_pattern || strcmp (last_pattern, t->pattern))    {      if (last_pattern)	regfree (&r);      last_pattern = t->pattern;      err = regcomp (&r, t->pattern, REG_EXTENDED);      if (err)	{	  if (t->expected == 2)	    {	      puts (" OK.");	      return 0;	    }	  if (last_pattern)	    regfree (&r);	  last_pattern = NULL;	  regerror (err, &r, errmsg, 100);	  printf ("test %d\n", id);	  puts (errmsg);	  return 1;	}      else if (t->expected == 2)	{	  printf ("test %d\n", id);	  printf ("pattern \"%s\" successfull compilation not expected\n",		  t->pattern);	  return 1;	}    }  err = regexec (&r, t->data, 10, regs, 0);  if (err != t->expected)    {      printf ("test %d\n", id);      printf ("pattern \"%s\" data \"%s\" wanted %d got %d\n",	      t->pattern, t->data, t->expected, err);      for (x = 0; x < 10; ++x)	printf ("reg %d == (%d, %d) %.*s\n",		x,		regs[x].rm_so,		regs[x].rm_eo,		regs[x].rm_eo - regs[x].rm_so,		t->data + regs[x].rm_so);      return 1;    }  puts (" OK.");  return 0;}