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

Diff of /code/trunk/pcre_compile.c

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

revision 97 by ph10, Mon Mar 5 12:36:47 2007 UTC revision 145 by ph10, Wed Apr 4 14:06:52 2007 UTC
# Line 6  Line 6 
6  and semantics are as close as possible to those of the Perl 5 language.  and semantics are as close as possible to those of the Perl 5 language.
7    
8                         Written by Philip Hazel                         Written by Philip Hazel
9             Copyright (c) 1997-2006 University of Cambridge             Copyright (c) 1997-2007 University of Cambridge
10    
11  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
12  Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
# Line 1246  for (;;) Line 1246  for (;;)
1246    else    else
1247      {      {
1248      code += _pcre_OP_lengths[c];      code += _pcre_OP_lengths[c];
1249    #ifdef SUPPORT_UTF8
1250      if (utf8) switch(c)      if (utf8) switch(c)
1251        {        {
1252        case OP_CHAR:        case OP_CHAR:
# Line 1266  for (;;) Line 1267  for (;;)
1267        if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f];        if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f];
1268        break;        break;
1269        }        }
1270    #endif
1271      }      }
1272    }    }
1273  }  }
# Line 1309  for (;;) Line 1311  for (;;)
1311    else    else
1312      {      {
1313      code += _pcre_OP_lengths[c];      code += _pcre_OP_lengths[c];
1314    #ifdef SUPPORT_UTF8
1315      if (utf8) switch(c)      if (utf8) switch(c)
1316        {        {
1317        case OP_CHAR:        case OP_CHAR:
# Line 1329  for (;;) Line 1332  for (;;)
1332        if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f];        if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f];
1333        break;        break;
1334        }        }
1335    #endif
1336      }      }
1337    }    }
1338  }  }
# Line 5039  Returns: pointer to compiled data Line 5043  Returns: pointer to compiled data
5043                  with errorptr and erroroffset set                  with errorptr and erroroffset set
5044  */  */
5045    
5046  PCRE_DATA_SCOPE pcre *  PCRE_EXP_DEFN pcre *
5047  pcre_compile(const char *pattern, int options, const char **errorptr,  pcre_compile(const char *pattern, int options, const char **errorptr,
5048    int *erroroffset, const unsigned char *tables)    int *erroroffset, const unsigned char *tables)
5049  {  {
# Line 5047  return pcre_compile2(pattern, options, N Line 5051  return pcre_compile2(pattern, options, N
5051  }  }
5052    
5053    
5054  PCRE_DATA_SCOPE pcre *  PCRE_EXP_DEFN pcre *
5055  pcre_compile2(const char *pattern, int options, int *errorcodeptr,  pcre_compile2(const char *pattern, int options, int *errorcodeptr,
5056    const char **errorptr, int *erroroffset, const unsigned char *tables)    const char **errorptr, int *erroroffset, const unsigned char *tables)
5057  {  {
# Line 5096  if (errorcodeptr != NULL) *errorcodeptr Line 5100  if (errorcodeptr != NULL) *errorcodeptr
5100  if (erroroffset == NULL)  if (erroroffset == NULL)
5101    {    {
5102    errorcode = ERR16;    errorcode = ERR16;
5103    goto PCRE_EARLY_ERROR_RETURN;    goto PCRE_EARLY_ERROR_RETURN2;
5104    }    }
5105    
5106  *erroroffset = 0;  *erroroffset = 0;
# Line 5109  if (utf8 && (options & PCRE_NO_UTF8_CHEC Line 5113  if (utf8 && (options & PCRE_NO_UTF8_CHEC
5113       (*erroroffset = _pcre_valid_utf8((uschar *)pattern, -1)) >= 0)       (*erroroffset = _pcre_valid_utf8((uschar *)pattern, -1)) >= 0)
5114    {    {
5115    errorcode = ERR44;    errorcode = ERR44;
5116    goto PCRE_UTF8_ERROR_RETURN;    goto PCRE_EARLY_ERROR_RETURN2;
5117    }    }
5118  #else  #else
5119  if ((options & PCRE_UTF8) != 0)  if ((options & PCRE_UTF8) != 0)
# Line 5321  if (errorcode != 0) Line 5325  if (errorcode != 0)
5325    (pcre_free)(re);    (pcre_free)(re);
5326    PCRE_EARLY_ERROR_RETURN:    PCRE_EARLY_ERROR_RETURN:
5327    *erroroffset = ptr - (const uschar *)pattern;    *erroroffset = ptr - (const uschar *)pattern;
5328  #ifdef SUPPORT_UTF8    PCRE_EARLY_ERROR_RETURN2:
   PCRE_UTF8_ERROR_RETURN:  
 #endif  
5329    *errorptr = error_texts[errorcode];    *errorptr = error_texts[errorcode];
5330    if (errorcodeptr != NULL) *errorcodeptr = errorcode;    if (errorcodeptr != NULL) *errorcodeptr = errorcode;
5331    return NULL;    return NULL;
# Line 5413  if ((re->options & PCRE_REQCHSET) != 0) Line 5415  if ((re->options & PCRE_REQCHSET) != 0)
5415      else printf("Req char = \\x%02x%s\n", ch, caseless);      else printf("Req char = \\x%02x%s\n", ch, caseless);
5416    }    }
5417    
5418  pcre_printint(re, stdout);  pcre_printint(re, stdout, TRUE);
5419    
5420  /* This check is done here in the debugging case so that the code that  /* This check is done here in the debugging case so that the code that
5421  was compiled can be seen. */  was compiled can be seen. */

Legend:
Removed from v.97  
changed lines
  Added in v.145

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12