/[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 852 by zherczeg, Thu Jan 5 19:18:12 2012 UTC revision 882 by ph10, Sun Jan 15 18:45:27 2012 UTC
# Line 626  the alternative names that are used. */ Line 626  the alternative names that are used. */
626  #define condassert    condition  #define condassert    condition
627  #define matched_once  prev_is_word  #define matched_once  prev_is_word
628  #define foc           number  #define foc           number
629    #define save_mark     data
630    
631  /* These statements are here to stop the compiler complaining about unitialized  /* These statements are here to stop the compiler complaining about unitialized
632  variables. */  variables. */
# Line 818  for (;;) Line 819  for (;;)
819      case OP_ONCE_NC:      case OP_ONCE_NC:
820      prev = ecode;      prev = ecode;
821      saved_eptr = eptr;      saved_eptr = eptr;
822        save_mark = md->mark;
823      do      do
824        {        {
825        RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM64);        RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM64);
# Line 836  for (;;) Line 838  for (;;)
838    
839        if (rrc != MATCH_NOMATCH) RRETURN(rrc);        if (rrc != MATCH_NOMATCH) RRETURN(rrc);
840        ecode += GET(ecode,1);        ecode += GET(ecode,1);
841          md->mark = save_mark;
842        }        }
843      while (*ecode == OP_ALT);      while (*ecode == OP_ALT);
844    
# Line 915  for (;;) Line 918  for (;;)
918        save_offset2 = md->offset_vector[offset+1];        save_offset2 = md->offset_vector[offset+1];
919        save_offset3 = md->offset_vector[md->offset_end - number];        save_offset3 = md->offset_vector[md->offset_end - number];
920        save_capture_last = md->capture_last;        save_capture_last = md->capture_last;
921          save_mark = md->mark;
922    
923        DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3));        DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3));
924        md->offset_vector[md->offset_end - number] =        md->offset_vector[md->offset_end - number] =
# Line 951  for (;;) Line 955  for (;;)
955          if (rrc != MATCH_NOMATCH) RRETURN(rrc);          if (rrc != MATCH_NOMATCH) RRETURN(rrc);
956          md->capture_last = save_capture_last;          md->capture_last = save_capture_last;
957          ecode += GET(ecode, 1);          ecode += GET(ecode, 1);
958            md->mark = save_mark;
959          if (*ecode != OP_ALT) break;          if (*ecode != OP_ALT) break;
960          }          }
961    
# Line 1016  for (;;) Line 1021  for (;;)
1021    
1022        /* In all other cases, we have to make another call to match(). */        /* In all other cases, we have to make another call to match(). */
1023    
1024          save_mark = md->mark;
1025        RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, eptrb,        RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, eptrb,
1026          RM2);          RM2);
1027    
1028        /* See comment in the code for capturing groups above about handling        /* See comment in the code for capturing groups above about handling
1029        THEN. */        THEN. */
1030    
# Line 1045  for (;;) Line 1051  for (;;)
1051          RRETURN(rrc);          RRETURN(rrc);
1052          }          }
1053        ecode += GET(ecode, 1);        ecode += GET(ecode, 1);
1054          md->mark = save_mark;
1055        if (*ecode != OP_ALT) break;        if (*ecode != OP_ALT) break;
1056        }        }
1057    

Legend:
Removed from v.852  
changed lines
  Added in v.882

  ViewVC Help
Powered by ViewVC 1.1.5