1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru******************************************************************************* 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Copyright (C) 2003-2006, International Business Machines 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Corporation and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru******************************************************************************* 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* file name: regexc.cpp 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* description: The purpose of this function is to separate the codepage 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* conversion from the rest of the uregex_ API. This can removes any 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* dependency on codepage conversion, which reduces the overhead of 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/uregex.h" 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/unistr.h" 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_USE 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//---------------------------------------------------------------------------------------- 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru// 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru// uregex_openC 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru// 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//---------------------------------------------------------------------------------------- 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_REGULAR_EXPRESSIONS 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_CAPI URegularExpression * U_EXPORT2 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruuregex_openC( const char *pattern, 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru uint32_t flags, 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UParseError *pe, 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode *status) { 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (U_FAILURE(*status)) { 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (pattern == NULL) { 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *status = U_ILLEGAL_ARGUMENT_ERROR; 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString patString(pattern); 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return uregex_open(patString.getBuffer(), patString.length(), flags, pe, status); 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 41