/[pcre]/code/trunk/pcre_exec.c
ViewVC logotype

Diff of /code/trunk/pcre_exec.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 230 by ph10, Mon Sep 10 13:23:56 2007 UTC revision 231 by ph10, Tue Sep 11 11:15:33 2007 UTC
# Line 1526  for (;;) Line 1526  for (;;)
1526        case 0x000d:        case 0x000d:
1527        if (eptr < md->end_subject && *eptr == 0x0a) eptr++;        if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
1528        break;        break;
1529    
1530        case 0x000a:        case 0x000a:
1531          break;
1532    
1533        case 0x000b:        case 0x000b:
1534        case 0x000c:        case 0x000c:
1535        case 0x0085:        case 0x0085:
1536        case 0x2028:        case 0x2028:
1537        case 0x2029:        case 0x2029:
1538          if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH);
1539        break;        break;
1540        }        }
1541      ecode++;      ecode++;
# Line 2954  for (;;) Line 2958  for (;;)
2958              case 0x000d:              case 0x000d:
2959              if (eptr < md->end_subject && *eptr == 0x0a) eptr++;              if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
2960              break;              break;
2961    
2962              case 0x000a:              case 0x000a:
2963                break;
2964    
2965              case 0x000b:              case 0x000b:
2966              case 0x000c:              case 0x000c:
2967              case 0x0085:              case 0x0085:
2968              case 0x2028:              case 0x2028:
2969              case 0x2029:              case 0x2029:
2970                if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH);
2971              break;              break;
2972              }              }
2973            }            }
# Line 3172  for (;;) Line 3180  for (;;)
3180              if (eptr < md->end_subject && *eptr == 0x0a) eptr++;              if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
3181              break;              break;
3182              case 0x000a:              case 0x000a:
3183                break;
3184    
3185              case 0x000b:              case 0x000b:
3186              case 0x000c:              case 0x000c:
3187              case 0x0085:              case 0x0085:
3188                if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH);
3189              break;              break;
3190              }              }
3191            }            }
# Line 3426  for (;;) Line 3437  for (;;)
3437                if (eptr < md->end_subject && *eptr == 0x0a) eptr++;                if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
3438                break;                break;
3439                case 0x000a:                case 0x000a:
3440                  break;
3441    
3442                case 0x000b:                case 0x000b:
3443                case 0x000c:                case 0x000c:
3444                case 0x0085:                case 0x0085:
3445                case 0x2028:                case 0x2028:
3446                case 0x2029:                case 0x2029:
3447                  if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH);
3448                break;                break;
3449                }                }
3450              break;              break;
# Line 3582  for (;;) Line 3596  for (;;)
3596                case 0x000d:                case 0x000d:
3597                if (eptr < md->end_subject && *eptr == 0x0a) eptr++;                if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
3598                break;                break;
3599    
3600                case 0x000a:                case 0x000a:
3601                  break;
3602    
3603                case 0x000b:                case 0x000b:
3604                case 0x000c:                case 0x000c:
3605                case 0x0085:                case 0x0085:
3606                  if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH);
3607                break;                break;
3608                }                }
3609              break;              break;
# Line 3883  for (;;) Line 3901  for (;;)
3901                }                }
3902              else              else
3903                {                {
3904                if (c != 0x000a && c != 0x000b && c != 0x000c &&                if (c != 0x000a &&
3905                    c != 0x0085 && c != 0x2028 && c != 0x2029)                    (md->bsr_anycrlf ||
3906                       (c != 0x000b && c != 0x000c &&
3907                        c != 0x0085 && c != 0x2028 && c != 0x2029)))
3908                  break;                  break;
3909                eptr += len;                eptr += len;
3910                }                }
# Line 4074  for (;;) Line 4094  for (;;)
4094                }                }
4095              else              else
4096                {                {
4097                if (c != 0x000a && c != 0x000b && c != 0x000c && c != 0x0085)                if (c != 0x000a &&
4098                      (md->bsr_anycrlf ||
4099                        (c != 0x000b && c != 0x000c && c != 0x0085)))
4100                  break;                  break;
4101                eptr++;                eptr++;
4102                }                }
# Line 4435  md->recursive = NULL; Line 4457  md->recursive = NULL;
4457  md->lcc = tables + lcc_offset;  md->lcc = tables + lcc_offset;
4458  md->ctypes = tables + ctypes_offset;  md->ctypes = tables + ctypes_offset;
4459    
4460    /* Handle different \R options. */
4461    
4462    switch (options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE))
4463      {
4464      case 0:
4465      if ((re->options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE)) != 0)
4466        md->bsr_anycrlf = (re->options & PCRE_BSR_ANYCRLF) != 0;
4467      else
4468    #ifdef BSR_ANYCRLF
4469      md->bsr_anycrlf = TRUE;
4470    #else
4471      md->bsr_anycrlf = FALSE;
4472    #endif
4473      break;
4474    
4475      case PCRE_BSR_ANYCRLF:
4476      md->bsr_anycrlf = TRUE;
4477      break;
4478    
4479      case PCRE_BSR_UNICODE:
4480      md->bsr_anycrlf = FALSE;
4481      break;
4482    
4483      default: return PCRE_ERROR_BADNEWLINE;
4484      }
4485    
4486  /* Handle different types of newline. The three bits give eight cases. If  /* Handle different types of newline. The three bits give eight cases. If
4487  nothing is set at run time, whatever was used at compile time applies. */  nothing is set at run time, whatever was used at compile time applies. */
4488    
4489  switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options :  switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options :
4490          (pcre_uint32)options) & PCRE_NEWLINE_BITS)          (pcre_uint32)options) & PCRE_NEWLINE_BITS)
4491    {    {
4492    case 0: newline = NEWLINE; break;   /* Compile-time default */    case 0: newline = NEWLINE; break;   /* Compile-time default */

Legend:
Removed from v.230  
changed lines
  Added in v.231

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12