/[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 171 by ph10, Tue May 29 15:18:18 2007 UTC revision 172 by ph10, Tue Jun 5 10:40:13 2007 UTC
# Line 292  typedef struct heapframe { Line 292  typedef struct heapframe {
292    
293    const uschar *Xeptr;    const uschar *Xeptr;
294    const uschar *Xecode;    const uschar *Xecode;
295    const uschar *Xmstart;    const uschar *Xmstart;
296    int Xoffset_top;    int Xoffset_top;
297    long int Xims;    long int Xims;
298    eptrblock *Xeptrb;    eptrblock *Xeptrb;
# Line 374  Arguments: Line 374  Arguments:
374     eptr        pointer to current character in subject     eptr        pointer to current character in subject
375     ecode       pointer to current position in compiled code     ecode       pointer to current position in compiled code
376     mstart      pointer to the current match start position (can be modified     mstart      pointer to the current match start position (can be modified
377                   by encountering \K)                   by encountering \K)
378     offset_top  current top pointer     offset_top  current top pointer
379     md          pointer to "static" info for the match     md          pointer to "static" info for the match
380     ims         current /i, /m, and /s options     ims         current /i, /m, and /s options
# Line 394  Returns:       MATCH_MATCH if matched Line 394  Returns:       MATCH_MATCH if matched
394  */  */
395    
396  static int  static int
397  match(REGISTER USPTR eptr, REGISTER const uschar *ecode, const uschar *mstart,  match(REGISTER USPTR eptr, REGISTER const uschar *ecode, const uschar *mstart,
398    int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,    int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,
399    int flags, unsigned int rdepth)    int flags, unsigned int rdepth)
400  {  {
# Line 1266  for (;;) Line 1266  for (;;)
1266      if (eptr != md->start_subject + md->start_offset) RRETURN(MATCH_NOMATCH);      if (eptr != md->start_subject + md->start_offset) RRETURN(MATCH_NOMATCH);
1267      ecode++;      ecode++;
1268      break;      break;
1269    
1270      /* Reset the start of match point */      /* Reset the start of match point */
1271    
1272      case OP_SET_SOM:      case OP_SET_SOM:
1273      mstart = eptr;      mstart = eptr;
1274      ecode++;      ecode++;
1275      break;      break;
1276    
1277      /* Assert before internal newline if multiline, or before a terminating      /* Assert before internal newline if multiline, or before a terminating
1278      newline unless endonly is set, else end of subject unless noteol is set. */      newline unless endonly is set, else end of subject unless noteol is set. */
# Line 4181  for(;;) Line 4181  for(;;)
4181    md->start_match_ptr = start_match;      /* Insurance */    md->start_match_ptr = start_match;      /* Insurance */
4182    md->match_call_count = 0;    md->match_call_count = 0;
4183    md->eptrn = 0;                          /* Next free eptrchain slot */    md->eptrn = 0;                          /* Next free eptrchain slot */
4184    rc = match(start_match, md->start_code, start_match, 2, md,    rc = match(start_match, md->start_code, start_match, 2, md,
4185      ims, NULL, 0, 0);      ims, NULL, 0, 0);
4186    
4187    /* Any return other than MATCH_NOMATCH breaks the loop. */    /* Any return other than MATCH_NOMATCH breaks the loop. */
# Line 4263  if (rc == MATCH_MATCH) Line 4263  if (rc == MATCH_MATCH)
4263    rc = md->offset_overflow? 0 : md->end_offset_top/2;    rc = md->offset_overflow? 0 : md->end_offset_top/2;
4264    
4265    /* If there is space, set up the whole thing as substring 0. The value of    /* If there is space, set up the whole thing as substring 0. The value of
4266    md->start_match_ptr might be modified if \K was encountered on the success    md->start_match_ptr might be modified if \K was encountered on the success
4267    matching path. */    matching path. */
4268    
4269    if (offsetcount < 2) rc = 0; else    if (offsetcount < 2) rc = 0; else

Legend:
Removed from v.171  
changed lines
  Added in v.172

  ViewVC Help
Powered by ViewVC 1.1.5