The R Project SVN R

Rev

Rev 65105 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 65105 Rev 75562
Line 160... Line 160...
160
    {
160
    {
161
      /* The regex has back references, use the backtracking matcher. */
161
      /* The regex has back references, use the backtracking matcher. */
162
      if (type == STR_USER)
162
      if (type == STR_USER)
163
	{
163
	{
164
	  const tre_str_source *source = string;
164
	  const tre_str_source *source = string;
165
	  if (source->rewind == NULL || source->compare == NULL)
165
	  if (source->rewind == NULL || source->compare == NULL) {
166
	    /* The backtracking matcher requires rewind and compare
166
	    /* The backtracking matcher requires rewind and compare
167
	       capabilities from the input stream. */
167
	       capabilities from the input stream. */
-
 
168
#ifndef TRE_USE_ALLOCA
-
 
169
	    if (tags)
-
 
170
		xfree(tags);
-
 
171
#endif /* !TRE_USE_ALLOCA */
168
	    return REG_BADPAT;
172
	    return REG_BADPAT;
-
 
173
	  }
169
	}
174
	}
170
      status = tre_tnfa_run_backtrack(tnfa, string, (int)len, type,
175
      status = tre_tnfa_run_backtrack(tnfa, string, (int)len, type,
171
				      tags, eflags, &eo);
176
				      tags, eflags, &eo);
172
    }
177
    }
173
#ifdef TRE_APPROX
178
#ifdef TRE_APPROX