View | Details | Raw Unified | Return to bug 140899
Collapse All | Expand All

(-)src/regex.c (-10 / +7 lines)
Lines 35-40 Link Here
35
/* We assume non-Mule if emacs isn't defined. */
35
/* We assume non-Mule if emacs isn't defined. */
36
#ifndef emacs
36
#ifndef emacs
37
#undef MULE
37
#undef MULE
38
#define MAX_ICHAR_LEN 1
38
#endif
39
#endif
39
40
40
/* XEmacs addition */
41
/* XEmacs addition */
Lines 3340-3348 Link Here
3340
	normal_char:
3341
	normal_char:
3341
	  {
3342
	  {
3342
	    /* XEmacs: modifications here for Mule. */
3343
	    /* XEmacs: modifications here for Mule. */
3343
	    /* `q' points to the beginning of the next char. */
3344
	    re_char *q = p;
3345
3346
	    /* If no exactn currently being built.  */
3344
	    /* If no exactn currently being built.  */
3347
	    if (!pending_exact
3345
	    if (!pending_exact
3348
3346
Lines 3350-3367 Link Here
3350
		|| pending_exact + *pending_exact + 1 != buf_end
3348
		|| pending_exact + *pending_exact + 1 != buf_end
3351
3349
3352
		/* We have only one byte following the exactn for the count. */
3350
		/* We have only one byte following the exactn for the count. */
3353
		|| ((unsigned int) (*pending_exact + (q - p)) >=
3351
		|| *pending_exact >= (1 << BYTEWIDTH) - MAX_ICHAR_LEN
3354
		    ((unsigned int) (1 << BYTEWIDTH) - 1))
3355
3352
3356
		/* If followed by a repetition operator.  */
3353
		/* If followed by a repetition operator.  */
3357
		|| *q == '*' || *q == '^'
3354
                || (p != pend && (*p == '*' || *p == '^'))
3358
		|| ((syntax & RE_BK_PLUS_QM)
3355
		|| ((syntax & RE_BK_PLUS_QM)
3359
		    ? *q == '\\' && (q[1] == '+' || q[1] == '?')
3356
		    ? p + 1 < pend && *p == '\\' && (p[1] == '+' || p[1] == '?')
3360
		    : (*q == '+' || *q == '?'))
3357
		    : p != pend && (*p == '+' || *p == '?'))
3361
		|| ((syntax & RE_INTERVALS)
3358
		|| ((syntax & RE_INTERVALS)
3362
		    && ((syntax & RE_NO_BK_BRACES)
3359
		    && ((syntax & RE_NO_BK_BRACES)
3363
			? *q == '{'
3360
			? p != pend && *p == '{'
3364
			: (q[0] == '\\' && q[1] == '{'))))
3361
			: p + 1 < pend && (p[0] == '\\' && p[1] == '{'))))
3365
	      {
3362
	      {
3366
		/* Start building a new exactn.  */
3363
		/* Start building a new exactn.  */

Return to bug 140899