mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 06:56:14 +01:00
Merge branch 're-js-compat' into 'main'
gregex: Allow G_REGEX_JAVASCRIPT_COMPAT in compile mask See merge request GNOME/glib!2920
This commit is contained in:
commit
df8403eec4
@ -89,18 +89,6 @@
|
||||
* unescaped "#" outside a character class is encountered. This indicates
|
||||
* a comment that lasts until after the next newline.
|
||||
*
|
||||
* When setting the %G_REGEX_JAVASCRIPT_COMPAT flag, pattern syntax and pattern
|
||||
* matching is changed to be compatible with the way that regular expressions
|
||||
* work in JavaScript. More precisely, a lonely ']' character in the pattern
|
||||
* is a syntax error; the '\x' escape only allows 0 to 2 hexadecimal digits, and
|
||||
* you must use the '\u' escape sequence with 4 hex digits to specify a unicode
|
||||
* codepoint instead of '\x' or 'x{....}'. If '\x' or '\u' are not followed by
|
||||
* the specified number of hex digits, they match 'x' and 'u' literally; also
|
||||
* '\U' always matches 'U' instead of being an error in the pattern. Finally,
|
||||
* pattern matching is modified so that back references to an unset subpattern
|
||||
* group produces a match with the empty string instead of an error. See
|
||||
* pcreapi(3) for more information.
|
||||
*
|
||||
* Creating and manipulating the same #GRegex structure from different
|
||||
* threads is not a problem as #GRegex does not modify its internal
|
||||
* state between creation and destruction, on the other hand #GMatchInfo
|
||||
@ -1684,7 +1672,10 @@ g_regex_new (const gchar *pattern,
|
||||
|
||||
g_return_val_if_fail (pattern != NULL, NULL);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
||||
g_return_val_if_fail ((compile_options & ~G_REGEX_COMPILE_MASK) == 0, NULL);
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
g_return_val_if_fail ((compile_options & ~(G_REGEX_COMPILE_MASK |
|
||||
G_REGEX_JAVASCRIPT_COMPAT)) == 0, NULL);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL);
|
||||
|
||||
if (g_once_init_enter (&initialised))
|
||||
|
@ -2542,6 +2542,10 @@ main (int argc, char *argv[])
|
||||
TEST_NEW_CHECK_FLAGS ("(*BSR_ANYCRLF)a", 0, 0, G_REGEX_BSR_ANYCRLF, 0);
|
||||
TEST_NEW_CHECK_FLAGS ("(*BSR_UNICODE)a", 0, 0, 0 /* this is the default in GRegex */, 0);
|
||||
TEST_NEW_CHECK_FLAGS ("(*NO_START_OPT)a", 0, 0, 0 /* not exposed in GRegex */, 0);
|
||||
/* Make sure we ignore deprecated G_REGEX_JAVASCRIPT_COMPAT */
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
TEST_NEW_CHECK_FLAGS ("a", G_REGEX_JAVASCRIPT_COMPAT, 0, 0, 0);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
/* TEST_NEW_FAIL(pattern, compile_opts, expected_error) */
|
||||
TEST_NEW_FAIL("(", 0, G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
|
||||
|
Loading…
Reference in New Issue
Block a user