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

Diff of /code/trunk/pcretest.c

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

revision 358 by ph10, Wed Jul 9 11:03:07 2008 UTC revision 392 by ph10, Tue Mar 17 21:30:30 2009 UTC
# Line 785  printf("  -dfa     force DFA matching fo Line 785  printf("  -dfa     force DFA matching fo
785  #endif  #endif
786  printf("  -help    show usage information\n");  printf("  -help    show usage information\n");
787  printf("  -i       show information about compiled patterns\n"  printf("  -i       show information about compiled patterns\n"
788           "  -M       find MATCH_LIMIT minimum for each subject\n"
789         "  -m       output memory used information\n"         "  -m       output memory used information\n"
790         "  -o <n>   set size of offsets vector to <n>\n");         "  -o <n>   set size of offsets vector to <n>\n");
791  #if !defined NOPOSIX  #if !defined NOPOSIX
# Line 814  int main(int argc, char **argv) Line 815  int main(int argc, char **argv)
815  FILE *infile = stdin;  FILE *infile = stdin;
816  int options = 0;  int options = 0;
817  int study_options = 0;  int study_options = 0;
818    int default_find_match_limit = FALSE;
819  int op = 1;  int op = 1;
820  int timeit = 0;  int timeit = 0;
821  int timeitm = 0;  int timeitm = 0;
# Line 873  while (argc > 1 && argv[op][0] == '-') Line 875  while (argc > 1 && argv[op][0] == '-')
875    else if (strcmp(argv[op], "-b") == 0) debug = 1;    else if (strcmp(argv[op], "-b") == 0) debug = 1;
876    else if (strcmp(argv[op], "-i") == 0) showinfo = 1;    else if (strcmp(argv[op], "-i") == 0) showinfo = 1;
877    else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1;    else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1;
878      else if (strcmp(argv[op], "-M") == 0) default_find_match_limit = TRUE;
879  #if !defined NODFA  #if !defined NODFA
880    else if (strcmp(argv[op], "-dfa") == 0) all_use_dfa = 1;    else if (strcmp(argv[op], "-dfa") == 0) all_use_dfa = 1;
881  #endif  #endif
# Line 925  while (argc > 1 && argv[op][0] == '-') Line 928  while (argc > 1 && argv[op][0] == '-')
928    else if (strcmp(argv[op], "-C") == 0)    else if (strcmp(argv[op], "-C") == 0)
929      {      {
930      int rc;      int rc;
931        unsigned long int lrc;
932      printf("PCRE version %s\n", pcre_version());      printf("PCRE version %s\n", pcre_version());
933      printf("Compiled with\n");      printf("Compiled with\n");
934      (void)pcre_config(PCRE_CONFIG_UTF8, &rc);      (void)pcre_config(PCRE_CONFIG_UTF8, &rc);
# Line 932  while (argc > 1 && argv[op][0] == '-') Line 936  while (argc > 1 && argv[op][0] == '-')
936      (void)pcre_config(PCRE_CONFIG_UNICODE_PROPERTIES, &rc);      (void)pcre_config(PCRE_CONFIG_UNICODE_PROPERTIES, &rc);
937      printf("  %sUnicode properties support\n", rc? "" : "No ");      printf("  %sUnicode properties support\n", rc? "" : "No ");
938      (void)pcre_config(PCRE_CONFIG_NEWLINE, &rc);      (void)pcre_config(PCRE_CONFIG_NEWLINE, &rc);
939      printf("  Newline sequence is %s\n", (rc == '\r')? "CR" :      /* Note that these values are always the ASCII values, even
940        (rc == '\n')? "LF" : (rc == ('\r'<<8 | '\n'))? "CRLF" :      in EBCDIC environments. CR is 13 and NL is 10. */
941        printf("  Newline sequence is %s\n", (rc == 13)? "CR" :
942          (rc == 10)? "LF" : (rc == (13<<8 | 10))? "CRLF" :
943        (rc == -2)? "ANYCRLF" :        (rc == -2)? "ANYCRLF" :
944        (rc == -1)? "ANY" : "???");        (rc == -1)? "ANY" : "???");
945      (void)pcre_config(PCRE_CONFIG_BSR, &rc);      (void)pcre_config(PCRE_CONFIG_BSR, &rc);
# Line 943  while (argc > 1 && argv[op][0] == '-') Line 949  while (argc > 1 && argv[op][0] == '-')
949      printf("  Internal link size = %d\n", rc);      printf("  Internal link size = %d\n", rc);
950      (void)pcre_config(PCRE_CONFIG_POSIX_MALLOC_THRESHOLD, &rc);      (void)pcre_config(PCRE_CONFIG_POSIX_MALLOC_THRESHOLD, &rc);
951      printf("  POSIX malloc threshold = %d\n", rc);      printf("  POSIX malloc threshold = %d\n", rc);
952      (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT, &rc);      (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT, &lrc);
953      printf("  Default match limit = %d\n", rc);      printf("  Default match limit = %ld\n", lrc);
954      (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT_RECURSION, &rc);      (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT_RECURSION, &lrc);
955      printf("  Default recursion depth limit = %d\n", rc);      printf("  Default recursion depth limit = %ld\n", lrc);
956      (void)pcre_config(PCRE_CONFIG_STACKRECURSE, &rc);      (void)pcre_config(PCRE_CONFIG_STACKRECURSE, &rc);
957      printf("  Match recursion uses %s\n", rc? "stack" : "heap");      printf("  Match recursion uses %s\n", rc? "stack" : "heap");
958      goto EXIT;      goto EXIT;
# Line 1708  while (!done) Line 1714  while (!done)
1714      int callout_data_set = 0;      int callout_data_set = 0;
1715      int count, c;      int count, c;
1716      int copystrings = 0;      int copystrings = 0;
1717      int find_match_limit = 0;      int find_match_limit = default_find_match_limit;
1718      int getstrings = 0;      int getstrings = 0;
1719      int getlist = 0;      int getlist = 0;
1720      int gmatched = 0;      int gmatched = 0;
# Line 2006  while (!done) Line 2012  while (!done)
2012          show_malloc = 1;          show_malloc = 1;
2013          continue;          continue;
2014    
2015            case 'Y':
2016            options |= PCRE_NO_START_OPTIMIZE;
2017            continue;
2018    
2019          case 'Z':          case 'Z':
2020          options |= PCRE_NOTEOL;          options |= PCRE_NOTEOL;
2021          continue;          continue;
# Line 2028  while (!done) Line 2038  while (!done)
2038      *q = 0;      *q = 0;
2039      len = q - dbuffer;      len = q - dbuffer;
2040    
2041        /* Move the data to the end of the buffer so that a read over the end of
2042        the buffer will be seen by valgrind, even if it doesn't cause a crash. If
2043        we are using the POSIX interface, we must include the terminating zero. */
2044    
2045    #if !defined NOPOSIX
2046        if (posix || do_posix)
2047          {
2048          memmove(bptr + buffer_size - len - 1, bptr, len + 1);
2049          bptr += buffer_size - len - 1;
2050          }
2051        else
2052    #endif
2053          {
2054          memmove(bptr + buffer_size - len, bptr, len);
2055          bptr += buffer_size - len;
2056          }
2057    
2058      if ((all_use_dfa || use_dfa) && find_match_limit)      if ((all_use_dfa || use_dfa) && find_match_limit)
2059        {        {
2060        printf("**Match limit not relevant for DFA matching: ignored\n");        printf("**Match limit not relevant for DFA matching: ignored\n");
# Line 2047  while (!done) Line 2074  while (!done)
2074          pmatch = (regmatch_t *)malloc(sizeof(regmatch_t) * use_size_offsets);          pmatch = (regmatch_t *)malloc(sizeof(regmatch_t) * use_size_offsets);
2075        if ((options & PCRE_NOTBOL) != 0) eflags |= REG_NOTBOL;        if ((options & PCRE_NOTBOL) != 0) eflags |= REG_NOTBOL;
2076        if ((options & PCRE_NOTEOL) != 0) eflags |= REG_NOTEOL;        if ((options & PCRE_NOTEOL) != 0) eflags |= REG_NOTEOL;
2077          if ((options & PCRE_NOTEMPTY) != 0) eflags |= REG_NOTEMPTY;
2078    
2079        rc = regexec(&preg, (const char *)bptr, use_size_offsets, pmatch, eflags);        rc = regexec(&preg, (const char *)bptr, use_size_offsets, pmatch, eflags);
2080    
# Line 2354  while (!done) Line 2382  while (!done)
2382              {              {
2383              int d;              int d;
2384              (void)pcre_config(PCRE_CONFIG_NEWLINE, &d);              (void)pcre_config(PCRE_CONFIG_NEWLINE, &d);
2385              obits = (d == '\r')? PCRE_NEWLINE_CR :              /* Note that these values are always the ASCII ones, even in
2386                      (d == '\n')? PCRE_NEWLINE_LF :              EBCDIC environments. CR = 13, NL = 10. */
2387                      (d == ('\r'<<8 | '\n'))? PCRE_NEWLINE_CRLF :              obits = (d == 13)? PCRE_NEWLINE_CR :
2388                        (d == 10)? PCRE_NEWLINE_LF :
2389                        (d == (13<<8 | 10))? PCRE_NEWLINE_CRLF :
2390                      (d == -2)? PCRE_NEWLINE_ANYCRLF :                      (d == -2)? PCRE_NEWLINE_ANYCRLF :
2391                      (d == -1)? PCRE_NEWLINE_ANY : 0;                      (d == -1)? PCRE_NEWLINE_ANY : 0;
2392              }              }

Legend:
Removed from v.358  
changed lines
  Added in v.392

  ViewVC Help
Powered by ViewVC 1.1.5