mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-22 13:27:58 +02:00
25 lines
934 B
Plaintext
25 lines
934 B
Plaintext
#ifdef COND_REGEXP
|
|
/* When parsing a regexp as a single word inside a conditional command,
|
|
we need to special-case characters special to both the shell and
|
|
regular expressions. Right now, that is only '(' and '|'. */ /*)*/
|
|
if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/
|
|
{
|
|
if (character == '|')
|
|
goto got_character;
|
|
|
|
push_delimiter (dstack, character);
|
|
ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
|
|
pop_delimiter (dstack);
|
|
if (ttok == &matched_pair_error)
|
|
return -1; /* Bail immediately. */
|
|
RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
|
|
token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
|
|
token[token_index++] = character;
|
|
strcpy (token + token_index, ttok);
|
|
token_index += ttoklen;
|
|
FREE (ttok);
|
|
dollar_present = all_digit_token = 0;
|
|
goto next_character;
|
|
}
|
|
#endif /* COND_REGEXP */
|