/* Test for the STOP parameter of re_match_2 and re_search_2. Copyright (C) 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Stepan Kasal , 2002. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include #include #include #include #include #include int main (void) { struct re_pattern_buffer regex; const char *s; int match[4]; memset (®ex, '\0', sizeof (regex)); s = re_compile_pattern ("xy$", 3, ®ex); if (s != NULL) { puts ("failed to compile pattern \"xy$\""); return 1; } else match[0] = re_match_2(®ex,"xyz",3,NULL,0,0,NULL,2); free (regex.buffer); memset (®ex, '\0', sizeof (regex)); s = re_compile_pattern ("xy\\>", 4, ®ex); if (s != NULL) { puts ("failed to compile pattern \"xy\\>\""); return 1; } else match[1] = re_search_2(®ex,"xyz",3,NULL,0,0,2,NULL,2); free (regex.buffer); memset (®ex, '\0', sizeof (regex)); s = re_compile_pattern ("xy \\<", 5, ®ex); if (s != NULL) { puts ("failed to compile pattern \"xy \\<\""); return 1; } else { match[2] = re_match_2(®ex,"xy ",4,NULL,0,0,NULL,3); match[3] = re_match_2(®ex,"xy z",4,NULL,0,0,NULL,3); } if (match[0] != -1 || match[1] != -1 || match[2] != -1 || match[3] != 3) { printf ("re_{match,search}_2 returned %d,%d,%d,%d, expected -1,-1,-1,3\n", match[0], match[1], match[2], match[3]); return 1; } puts (" -> OK"); return 0; }