Line 5906... |
Line 5906... |
|
|
/* If we haven't matched the entire string, and we want the
|
/* If we haven't matched the entire string, and we want the
|
longest match, try backtracking. */
|
longest match, try backtracking. */
|
if (d != end_match_2)
|
if (d != end_match_2)
|
{
|
{
|
|
/* 1 if this match is the best seen so far. */
|
|
boolean best_match_p;
|
|
|
|
{
|
/* 1 if this match ends in the same string (string1 or string2)
|
/* 1 if this match ends in the same string (string1 or string2)
|
as the best previous match. */
|
as the best previous match. */
|
boolean same_str_p = (FIRST_STRING_P (match_end)
|
boolean same_str_p = (FIRST_STRING_P (match_end)
|
== MATCHING_IN_FIRST_STRING);
|
== MATCHING_IN_FIRST_STRING);
|
/* 1 if this match is the best seen so far. */
|
|
boolean best_match_p;
|
|
|
|
/* AIX compiler got confused when this was combined
|
/* AIX compiler got confused when this was combined
|
with the previous declaration. */
|
with the previous declaration. */
|
if (same_str_p)
|
if (same_str_p)
|
best_match_p = d > match_end;
|
best_match_p = d > match_end;
|
else
|
else
|
best_match_p = !MATCHING_IN_FIRST_STRING;
|
best_match_p = !MATCHING_IN_FIRST_STRING;
|
|
|
DEBUG_PRINT1 ("backtracking.\n");
|
DEBUG_PRINT1 ("backtracking.\n");
|
|
}
|
if (!FAIL_STACK_EMPTY ())
|
if (!FAIL_STACK_EMPTY ())
|
{ /* More failure points to try. */
|
{ /* More failure points to try. */
|
|
|
/* If exceeds best match so far, save it. */
|
/* If exceeds best match so far, save it. */
|
if (!best_regs_set || best_match_p)
|
if (!best_regs_set || best_match_p)
|