/[pcre]/code/branches/pcre16/pcretest.c
ViewVC logotype

Diff of /code/branches/pcre16/pcretest.c

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

revision 816 by zherczeg, Wed Dec 21 23:08:51 2011 UTC revision 817 by zherczeg, Thu Dec 22 07:03:34 2011 UTC
# Line 320  use these in the definitions of generic Line 320  use these in the definitions of generic
320    
321  #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16  #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16
322    
323    #define CHAR_SIZE (use_pcre16? 2:1)
324    
325  #define PCHARS(lv, p, len, f) \  #define PCHARS(lv, p, len, f) \
326    if (use_pcre16) \    if (use_pcre16) \
327      PCHARS16(lv, p, len, f); \      PCHARS16(lv, p, len, f); \
# Line 439  use these in the definitions of generic Line 441  use these in the definitions of generic
441  /* ----- Only 8-bit mode is supported ----- */  /* ----- Only 8-bit mode is supported ----- */
442    
443  #elif defined SUPPORT_PCRE8  #elif defined SUPPORT_PCRE8
444    #define CHAR_SIZE                 1
445  #define PCHARS                    PCHARS8  #define PCHARS                    PCHARS8
446  #define PCHARSV                   PCHARSV8  #define PCHARSV                   PCHARSV8
447  #define STRLEN                    STRLEN8  #define STRLEN                    STRLEN8
# Line 461  use these in the definitions of generic Line 464  use these in the definitions of generic
464  /* ----- Only 16-bit mode is supported ----- */  /* ----- Only 16-bit mode is supported ----- */
465    
466  #else  #else
467    #define CHAR_SIZE                 1
468  #define PCHARS                    PCHARS16  #define PCHARS                    PCHARS16
469  #define PCHARSV                   PCHARSV16  #define PCHARSV                   PCHARSV16
470  #define STRLEN                    STRLEN16  #define STRLEN                    STRLEN16
# Line 1305  static int pchars(pcre_uint8 *p, int len Line 1309  static int pchars(pcre_uint8 *p, int len
1309  int c = 0;  int c = 0;
1310  int yield = 0;  int yield = 0;
1311    
1312    if (length < 0)
1313      length = strlen((char *)p);
1314    
1315  while (length-- > 0)  while (length-- > 0)
1316    {    {
1317  #if !defined NOUTF8  #if !defined NOUTF8
# Line 1355  static int pchars16(PCRE_SPTR16 p, int l Line 1362  static int pchars16(PCRE_SPTR16 p, int l
1362  {  {
1363  int yield = 0;  int yield = 0;
1364    
1365    if (length < 0)
1366      length = strlen16(p);
1367    
1368  while (length-- > 0)  while (length-- > 0)
1369    {    {
1370    int c = *p++ & 0xffff;    int c = *p++ & 0xffff;
# Line 3257  while (!done) Line 3267  while (!done)
3267            if (n < 0)            if (n < 0)
3268              {              {
3269              fprintf(outfile, "no parentheses with name \"");              fprintf(outfile, "no parentheses with name \"");
3270              PCHARSV(namestart, STRLEN(namestart), outfile);              PCHARSV(namestart, -1, outfile);
3271              fprintf(outfile, "\"\n");              fprintf(outfile, "\"\n");
3272              }              }
3273            }            }
# Line 3322  while (!done) Line 3332  while (!done)
3332            }            }
3333          else if (isalnum(*p))          else if (isalnum(*p))
3334            {            {
3335            pcre_uchar *npp = getnamesptr;            pcre_uchar *namestart = getnamesptr;
3336            while (isalnum(*p)) *npp++ = *p++;  #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16
3337            *npp++ = 0;            if (use_pcre16)
3338            *npp = 0;              {
3339            PCRE_GET_STRINGNUMBER(n, re, getnamesptr);              PCRE_SCHAR16 *npp = (PCRE_SCHAR16 *)getnamesptr;
3340                while (isalnum(*p)) *npp++ = *p++;
3341                *npp++ = 0;
3342                *npp = 0;
3343                PCRE_GET_STRINGNUMBER(n, re, getnamesptr);
3344                getnamesptr = (pcre_uchar *)npp;
3345                }
3346              else
3347                {
3348    #endif
3349                pcre_uchar *npp = getnamesptr;
3350                while (isalnum(*p)) *npp++ = *p++;
3351                *npp++ = 0;
3352                *npp = 0;
3353                PCRE_GET_STRINGNUMBER(n, re, getnamesptr);
3354                getnamesptr = npp;
3355    #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16
3356                }
3357    #endif
3358            if (n < 0)            if (n < 0)
3359              fprintf(outfile, "no parentheses with name \"%s\"\n", getnamesptr);              {
3360            getnamesptr = npp;              fprintf(outfile, "no parentheses with name \"");
3361                PCHARSV(namestart, -1, outfile);
3362                fprintf(outfile, "\"\n");
3363                }
3364            }            }
3365          continue;          continue;
3366    
# Line 3339  while (!done) Line 3370  while (!done)
3370              && (extra->flags & PCRE_EXTRA_EXECUTABLE_JIT) != 0              && (extra->flags & PCRE_EXTRA_EXECUTABLE_JIT) != 0
3371              && extra->executable_jit != NULL)              && extra->executable_jit != NULL)
3372            {            {
3373            if (jit_stack != NULL) pcre_jit_stack_free(jit_stack);            if (jit_stack != NULL) pcre_jit_stack_free(jit_stack);
3374            jit_stack = pcre_jit_stack_alloc(1, n * 1024);            jit_stack = pcre_jit_stack_alloc(1, n * 1024);
3375            pcre_assign_jit_stack(extra, jit_callback, jit_stack);            pcre_assign_jit_stack(extra, jit_callback, jit_stack);
3376            }            }
3377          continue;          continue;
3378    
# Line 3711  while (!done) Line 3742  while (!done)
3742          if (markptr != NULL)          if (markptr != NULL)
3743            {            {
3744            fprintf(outfile, "MK: ");            fprintf(outfile, "MK: ");
3745            PCHARSV(markptr, STRLEN(markptr), outfile);            PCHARSV(markptr, -1, outfile);
3746            fprintf(outfile, "\n");            fprintf(outfile, "\n");
3747            }            }
3748    
# Line 3738  while (!done) Line 3769  while (!done)
3769  #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16  #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16
3770               use_pcre16?               use_pcre16?
3771                 (*(PCRE_SCHAR16*)copynamesptr) != 0 : *copynamesptr != 0;                 (*(PCRE_SCHAR16*)copynamesptr) != 0 : *copynamesptr != 0;
              copynamesptr += (int)(STRLEN(copynamesptr) + 1) *  
                (use_pcre16? 2:1)  
3772  #else  #else
3773               *copynamesptr != 0;               *copynamesptr != 0;
              copynamesptr += (int)STRLEN(copynamesptr) + 1  
3774  #endif  #endif
3775               )               copynamesptr += (int)(STRLEN(copynamesptr) + 1) * CHAR_SIZE)
3776            {            {
3777            int rc;            int rc;
3778            char copybuffer[256];            char copybuffer[256];
3779            PCRE_COPY_NAMED_SUBSTRING(rc, re, bptr, use_offsets, count,            PCRE_COPY_NAMED_SUBSTRING(rc, re, bptr, use_offsets, count,
3780              copynamesptr, copybuffer, sizeof(copybuffer));              copynamesptr, copybuffer, sizeof(copybuffer));
3781            if (rc < 0)            if (rc < 0)
3782              fprintf(outfile, "copy substring %s failed %d\n", copynamesptr, rc);              {
3783                fprintf(outfile, "copy substring ");
3784                PCHARSV(copynamesptr, -1, outfile);
3785                fprintf(outfile, " failed %d\n", rc);
3786                }
3787            else            else
3788              {              {
3789              fprintf(outfile, "  C ");              fprintf(outfile, "  C ");
3790              PCHARSV(copybuffer, rc, outfile);              PCHARSV(copybuffer, rc, outfile);
3791              fprintf(outfile, " (%d) ", rc);              fprintf(outfile, " (%d) ", rc);
3792              PCHARSV(copynamesptr, STRLEN(copynamesptr), outfile);              PCHARSV(copynamesptr, -1, outfile);
3793              putc('\n', outfile);              putc('\n', outfile);
3794              }              }
3795            }            }
# Line 3782  while (!done) Line 3814  while (!done)
3814            }            }
3815    
3816          for (getnamesptr = getnames;          for (getnamesptr = getnames;
3817    #if defined SUPPORT_PCRE8 && defined SUPPORT_PCRE16
3818                 use_pcre16?
3819                   (*(PCRE_SCHAR16*)getnamesptr) != 0 : *getnamesptr != 0;
3820    #else
3821               *getnamesptr != 0;               *getnamesptr != 0;
3822               getnamesptr += (int)strlen((char*)getnamesptr) + 1)  #endif
3823                 getnamesptr += (int)(STRLEN(getnamesptr) + 1) * CHAR_SIZE)
3824            {            {
3825            int rc;            int rc;
3826            const char *substring;            const char *substring;
3827            PCRE_GET_NAMED_SUBSTRING(rc, re, bptr, use_offsets, count,            PCRE_GET_NAMED_SUBSTRING(rc, re, bptr, use_offsets, count,
3828              getnamesptr, &substring);              getnamesptr, &substring);
3829            if (rc < 0)            if (rc < 0)
3830              fprintf(outfile, "get substring %s failed %d\n", getnamesptr, rc);              {
3831                fprintf(outfile, "get substring ");
3832                PCHARSV(getnamesptr, -1, outfile);
3833                fprintf(outfile, " failed %d\n", rc);
3834                }
3835            else            else
3836              {              {
3837              fprintf(outfile, "  G ");              fprintf(outfile, "  G ");
3838              PCHARSV(substring, rc, outfile);              PCHARSV(substring, rc, outfile);
3839              fprintf(outfile, " (%d) %s\n", rc, getnamesptr);              fprintf(outfile, " (%d) ", rc);
3840                PCHARSV(getnamesptr, -1, outfile);
3841              PCRE_FREE_SUBSTRING(substring);              PCRE_FREE_SUBSTRING(substring);
3842                putc('\n', outfile);
3843              }              }
3844            }            }
3845    
# Line 3810  while (!done) Line 3853  while (!done)
3853            else            else
3854              {              {
3855              for (i = 0; i < count; i++)              for (i = 0; i < count; i++)
3856                fprintf(outfile, "%2dL %s\n", i, stringlist[i]);                {
3857                  fprintf(outfile, "%2dL ", i);
3858                  PCHARSV(stringlist[i], -1, outfile);
3859                  putc('\n', outfile);
3860                  }
3861              if (stringlist[i] != NULL)              if (stringlist[i] != NULL)
3862                fprintf(outfile, "string list not terminated by NULL\n");                fprintf(outfile, "string list not terminated by NULL\n");
3863              PCRE_FREE_SUBSTRING_LIST(stringlist);              PCRE_FREE_SUBSTRING_LIST(stringlist);
# Line 3874  while (!done) Line 3921  while (!done)
3921                 (obits & PCRE_NEWLINE_BITS) == PCRE_NEWLINE_ANYCRLF)                 (obits & PCRE_NEWLINE_BITS) == PCRE_NEWLINE_ANYCRLF)
3922                &&                &&
3923                start_offset < len - 1 &&                start_offset < len - 1 &&
3924                bptr[start_offset] == '\r' &&                bptr[start_offset * CHAR_SIZE] == '\r' &&
3925                bptr[start_offset+1] == '\n')                bptr[(start_offset + 1) * CHAR_SIZE] == '\n')
3926              onechar++;              onechar++;
3927            else if (use_utf)            else if (use_utf)
3928              {              {
# Line 3948  while (!done) Line 3995  while (!done)
3995    
3996        else        else
3997          {          {
3998          bptr += use_offsets[1];          bptr += use_offsets[1] * CHAR_SIZE;
3999          len -= use_offsets[1];          len -= use_offsets[1];
4000          }          }
4001        }  /* End of loop for /g and /G */        }  /* End of loop for /g and /G */

Legend:
Removed from v.816  
changed lines
  Added in v.817

  ViewVC Help
Powered by ViewVC 1.1.5