
1: /* Test re_search in multibyte locale other than UTF-8. 2: Copyright (C) 2006 Free Software Foundation, Inc. 3: This file is part of the GNU C Library. 4: Contributed by Jakub Jelinek <jakub@redhat.com>, 2006. 5: 6: The GNU C Library is free software; you can redistribute it and/or 7: modify it under the terms of the GNU Lesser General Public 8: License as published by the Free Software Foundation; either 9: version 2.1 of the License, or (at your option) any later version. 10: 11: The GNU C Library is distributed in the hope that it will be useful, 12: but WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: Lesser General Public License for more details. 15: 16: You should have received a copy of the GNU Lesser General Public 17: License along with the GNU C Library; if not, write to the Free 18: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 19: 02111-1307 USA. */ 20: 21: #include <locale.h> 22: #include <regex.h> 23: #include <stdio.h> 24: #include <string.h> 25: 26: const char *str1 = "\xa3\xd8\xa3\xc9\xa3\xc9"; 27: const char *str2 = "\xa3\xd8\xa3\xc9"; 28: 29: int 30: main (void) 31: { 32: setlocale (LC_ALL, "ja_JP.eucJP"); 33: 34: re_set_syntax (RE_SYNTAX_SED); 35: 36: struct re_pattern_buffer re; 37: memset (&re, 0, sizeof (re)); 38: 39: struct re_registers regs; 40: memset (®s, 0, sizeof (regs)); 41: 42: re_compile_pattern ("$", 1, &re); 43: 44: int ret = 0, r = re_search (&re, str1, 4, 0, 4, ®s); 45: if (r != 4) 46: { 47: printf ("First re_search returned %d\n", r); 48: ret = 1; 49: } 50: r = re_search (&re, str2, 4, 0, 4, ®s); 51: if (r != 4) 52: { 53: printf ("Second re_search returned %d\n", r); 54: ret = 1; 55: } 56: return ret; 57: }