/[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 518 by ph10, Tue May 18 15:47:01 2010 UTC revision 527 by ph10, Sat May 29 15:50:39 2010 UTC
# Line 255  enum { RM1=1, RM2,  RM3,  RM4,  RM5,  RM Line 255  enum { RM1=1, RM2,  RM3,  RM4,  RM5,  RM
255         RM21,  RM22, RM23, RM24, RM25, RM26, RM27, RM28, RM29, RM30,         RM21,  RM22, RM23, RM24, RM25, RM26, RM27, RM28, RM29, RM30,
256         RM31,  RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40,         RM31,  RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40,
257         RM41,  RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50,         RM41,  RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50,
258         RM51,  RM52, RM53, RM54, RM55, RM56, RM57, RM58 };         RM51,  RM52, RM53, RM54, RM55, RM56, RM57, RM58, RM59, RM60,
259           RM61,  RM62 };
260    
261  /* These versions of the macros use the stack, as normal. There are debugging  /* These versions of the macros use the stack, as normal. There are debugging
262  versions and production versions. Note that the "rw" argument of RMATCH isn't  versions and production versions. Note that the "rw" argument of RMATCH isn't
# Line 314  argument of match(), which never changes Line 315  argument of match(), which never changes
315    
316  #define RRETURN(ra)\  #define RRETURN(ra)\
317    {\    {\
318    heapframe *newframe = frame;\    heapframe *oldframe = frame;\
319    frame = newframe->Xprevframe;\    frame = oldframe->Xprevframe;\
320    (pcre_stack_free)(newframe);\    (pcre_stack_free)(oldframe);\
321    if (frame != NULL)\    if (frame != NULL)\
322      {\      {\
323      rrc = ra;\      rrc = ra;\
# Line 1719  for (;;) Line 1720  for (;;)
1720        if (utf8)        if (utf8)
1721          {          {
1722          /* Get status of previous character */          /* Get status of previous character */
1723    
1724          if (eptr == md->start_subject) prev_is_word = FALSE; else          if (eptr == md->start_subject) prev_is_word = FALSE; else
1725            {            {
1726            USPTR lastptr = eptr - 1;            USPTR lastptr = eptr - 1;
1727            while((*lastptr & 0xc0) == 0x80) lastptr--;            while((*lastptr & 0xc0) == 0x80) lastptr--;
1728            if (lastptr < md->start_used_ptr) md->start_used_ptr = lastptr;            if (lastptr < md->start_used_ptr) md->start_used_ptr = lastptr;
1729            GETCHAR(c, lastptr);            GETCHAR(c, lastptr);
1730  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
1731            if (md->use_ucp)            if (md->use_ucp)
1732              {              {
1733              if (c == '_') prev_is_word = TRUE; else              if (c == '_') prev_is_word = TRUE; else
1734                {                {
1735                int cat = UCD_CATEGORY(c);                int cat = UCD_CATEGORY(c);
1736                prev_is_word = (cat == ucp_L || cat == ucp_N);                prev_is_word = (cat == ucp_L || cat == ucp_N);
1737                }                }
1738              }              }
1739            else            else
1740  #endif  #endif
1741            prev_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0;            prev_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0;
1742            }            }
1743    
1744          /* Get status of next character */          /* Get status of next character */
1745    
1746          if (eptr >= md->end_subject)          if (eptr >= md->end_subject)
1747            {            {
1748            SCHECK_PARTIAL();            SCHECK_PARTIAL();
# Line 1750  for (;;) Line 1751  for (;;)
1751          else          else
1752            {            {
1753            GETCHAR(c, eptr);            GETCHAR(c, eptr);
1754  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
1755            if (md->use_ucp)            if (md->use_ucp)
1756              {              {
1757              if (c == '_') cur_is_word = TRUE; else              if (c == '_') cur_is_word = TRUE; else
1758                {                {
1759                int cat = UCD_CATEGORY(c);                int cat = UCD_CATEGORY(c);
1760                cur_is_word = (cat == ucp_L || cat == ucp_N);                cur_is_word = (cat == ucp_L || cat == ucp_N);
1761                }                }
1762              }              }
1763            else            else
1764  #endif  #endif
1765            cur_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0;            cur_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0;
1766            }            }
1767          }          }
1768        else        else
1769  #endif  #endif
1770    
1771        /* Not in UTF-8 mode, but we may still have PCRE_UCP set, and for        /* Not in UTF-8 mode, but we may still have PCRE_UCP set, and for
1772        consistency with the behaviour of \w we do use it in this case. */        consistency with the behaviour of \w we do use it in this case. */
1773    
1774          {          {
1775          /* Get status of previous character */          /* Get status of previous character */
1776    
1777          if (eptr == md->start_subject) prev_is_word = FALSE; else          if (eptr == md->start_subject) prev_is_word = FALSE; else
1778            {            {
1779            if (eptr <= md->start_used_ptr) md->start_used_ptr = eptr - 1;            if (eptr <= md->start_used_ptr) md->start_used_ptr = eptr - 1;
1780  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
1781            if (md->use_ucp)            if (md->use_ucp)
1782              {              {
1783              c = eptr[-1];              c = eptr[-1];
1784              if (c == '_') prev_is_word = TRUE; else              if (c == '_') prev_is_word = TRUE; else
1785                {                {
1786                int cat = UCD_CATEGORY(c);                int cat = UCD_CATEGORY(c);
1787                prev_is_word = (cat == ucp_L || cat == ucp_N);                prev_is_word = (cat == ucp_L || cat == ucp_N);
1788                }                }
1789              }              }
1790            else            else
1791  #endif  #endif
1792            prev_is_word = ((md->ctypes[eptr[-1]] & ctype_word) != 0);            prev_is_word = ((md->ctypes[eptr[-1]] & ctype_word) != 0);
1793            }            }
1794    
1795          /* Get status of next character */          /* Get status of next character */
1796    
1797          if (eptr >= md->end_subject)          if (eptr >= md->end_subject)
1798            {            {
1799            SCHECK_PARTIAL();            SCHECK_PARTIAL();
1800            cur_is_word = FALSE;            cur_is_word = FALSE;
1801            }            }
1802          else          else
1803  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
1804          if (md->use_ucp)          if (md->use_ucp)
1805            {            {
1806            c = *eptr;            c = *eptr;
1807            if (c == '_') cur_is_word = TRUE; else            if (c == '_') cur_is_word = TRUE; else
1808              {              {
1809              int cat = UCD_CATEGORY(c);              int cat = UCD_CATEGORY(c);
1810              cur_is_word = (cat == ucp_L || cat == ucp_N);              cur_is_word = (cat == ucp_L || cat == ucp_N);
1811              }              }
1812            }            }
1813          else          else
1814  #endif  #endif
1815          cur_is_word = ((md->ctypes[*eptr] & ctype_word) != 0);          cur_is_word = ((md->ctypes[*eptr] & ctype_word) != 0);
1816          }          }
1817    
# Line 2134  for (;;) Line 2135  for (;;)
2135          if ((ecode[2] != prop->script) == (op == OP_PROP))          if ((ecode[2] != prop->script) == (op == OP_PROP))
2136            MRRETURN(MATCH_NOMATCH);            MRRETURN(MATCH_NOMATCH);
2137          break;          break;
2138    
2139          /* These are specials */          /* These are specials */
2140    
2141          case PT_ALNUM:          case PT_ALNUM:
2142          if ((_pcre_ucp_gentype[prop->chartype] == ucp_L ||          if ((_pcre_ucp_gentype[prop->chartype] == ucp_L ||
2143               _pcre_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP))               _pcre_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP))
2144            MRRETURN(MATCH_NOMATCH);            MRRETURN(MATCH_NOMATCH);
2145          break;          break;
2146    
2147          case PT_SPACE:    /* Perl space */          case PT_SPACE:    /* Perl space */
2148          if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z ||          if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z ||
2149               c == CHAR_HT || c == CHAR_NL || c == CHAR_FF || c == CHAR_CR)               c == CHAR_HT || c == CHAR_NL || c == CHAR_FF || c == CHAR_CR)
2150                 == (op == OP_NOTPROP))                 == (op == OP_NOTPROP))
2151            MRRETURN(MATCH_NOMATCH);            MRRETURN(MATCH_NOMATCH);
2152          break;          break;
2153    
2154          case PT_PXSPACE:  /* POSIX space */          case PT_PXSPACE:  /* POSIX space */
2155          if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z ||          if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z ||
2156               c == CHAR_HT || c == CHAR_NL || c == CHAR_VT ||               c == CHAR_HT || c == CHAR_NL || c == CHAR_VT ||
2157               c == CHAR_FF || c == CHAR_CR)               c == CHAR_FF || c == CHAR_CR)
2158                 == (op == OP_NOTPROP))                 == (op == OP_NOTPROP))
2159            MRRETURN(MATCH_NOMATCH);            MRRETURN(MATCH_NOMATCH);
2160          break;          break;
2161    
2162          case PT_WORD:          case PT_WORD:
2163          if ((_pcre_ucp_gentype[prop->chartype] == ucp_L ||          if ((_pcre_ucp_gentype[prop->chartype] == ucp_L ||
2164               _pcre_ucp_gentype[prop->chartype] == ucp_N ||               _pcre_ucp_gentype[prop->chartype] == ucp_N ||
2165               c == CHAR_UNDERSCORE) == (op == OP_NOTPROP))               c == CHAR_UNDERSCORE) == (op == OP_NOTPROP))
2166            MRRETURN(MATCH_NOMATCH);            MRRETURN(MATCH_NOMATCH);
2167          break;          break;
2168    
2169          /* This should never occur */          /* This should never occur */
2170    
2171          default:          default:
# Line 3582  for (;;) Line 3583  for (;;)
3583                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3584              }              }
3585            break;            break;
3586    
3587            case PT_ALNUM:            case PT_ALNUM:
3588            for (i = 1; i <= min; i++)            for (i = 1; i <= min; i++)
3589              {              {
# Line 3592  for (;;) Line 3593  for (;;)
3593                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3594                }                }
3595              GETCHARINCTEST(c, eptr);              GETCHARINCTEST(c, eptr);
3596              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
3597              if ((prop_category == ucp_L || prop_category == ucp_N)              if ((prop_category == ucp_L || prop_category == ucp_N)
3598                     == prop_fail_result)                     == prop_fail_result)
3599                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3600              }              }
3601            break;            break;
3602    
3603            case PT_SPACE:    /* Perl space */            case PT_SPACE:    /* Perl space */
3604            for (i = 1; i <= min; i++)            for (i = 1; i <= min; i++)
3605              {              {
# Line 3608  for (;;) Line 3609  for (;;)
3609                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3610                }                }
3611              GETCHARINCTEST(c, eptr);              GETCHARINCTEST(c, eptr);
3612              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
3613              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
3614                   c == CHAR_FF || c == CHAR_CR)                   c == CHAR_FF || c == CHAR_CR)
3615                     == prop_fail_result)                     == prop_fail_result)
3616                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3617              }              }
3618            break;            break;
3619    
3620            case PT_PXSPACE:  /* POSIX space */            case PT_PXSPACE:  /* POSIX space */
3621            for (i = 1; i <= min; i++)            for (i = 1; i <= min; i++)
3622              {              {
# Line 3625  for (;;) Line 3626  for (;;)
3626                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3627                }                }
3628              GETCHARINCTEST(c, eptr);              GETCHARINCTEST(c, eptr);
3629              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
3630              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
3631                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)
3632                     == prop_fail_result)                     == prop_fail_result)
3633                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3634              }              }
3635            break;            break;
3636    
3637            case PT_WORD:            case PT_WORD:
3638            for (i = 1; i <= min; i++)            for (i = 1; i <= min; i++)
3639              {              {
3640              if (eptr >= md->end_subject)              if (eptr >= md->end_subject)
# Line 3642  for (;;) Line 3643  for (;;)
3643                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3644                }                }
3645              GETCHARINCTEST(c, eptr);              GETCHARINCTEST(c, eptr);
3646              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
3647              if ((prop_category == ucp_L || prop_category == ucp_N ||              if ((prop_category == ucp_L || prop_category == ucp_N ||
3648                   c == CHAR_UNDERSCORE)                   c == CHAR_UNDERSCORE)
3649                     == prop_fail_result)                     == prop_fail_result)
3650                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
3651              }              }
3652            break;            break;
3653    
3654            /* This should not occur */            /* This should not occur */
3655    
3656            default:            default:
# Line 4294  for (;;) Line 4295  for (;;)
4295            case PT_ALNUM:            case PT_ALNUM:
4296            for (fi = min;; fi++)            for (fi = min;; fi++)
4297              {              {
4298              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM39);              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM59);
4299              if (rrc != MATCH_NOMATCH) RRETURN(rrc);              if (rrc != MATCH_NOMATCH) RRETURN(rrc);
4300              if (fi >= max) MRRETURN(MATCH_NOMATCH);              if (fi >= max) MRRETURN(MATCH_NOMATCH);
4301              if (eptr >= md->end_subject)              if (eptr >= md->end_subject)
# Line 4303  for (;;) Line 4304  for (;;)
4304                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4305                }                }
4306              GETCHARINC(c, eptr);              GETCHARINC(c, eptr);
4307              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4308              if ((prop_category == ucp_L || prop_category == ucp_N)              if ((prop_category == ucp_L || prop_category == ucp_N)
4309                     == prop_fail_result)                     == prop_fail_result)
4310                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4311              }              }
4312            /* Control never gets here */            /* Control never gets here */
4313    
4314            case PT_SPACE:    /* Perl space */            case PT_SPACE:    /* Perl space */
4315            for (fi = min;; fi++)            for (fi = min;; fi++)
4316              {              {
4317              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM39);              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM60);
4318              if (rrc != MATCH_NOMATCH) RRETURN(rrc);              if (rrc != MATCH_NOMATCH) RRETURN(rrc);
4319              if (fi >= max) MRRETURN(MATCH_NOMATCH);              if (fi >= max) MRRETURN(MATCH_NOMATCH);
4320              if (eptr >= md->end_subject)              if (eptr >= md->end_subject)
# Line 4322  for (;;) Line 4323  for (;;)
4323                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4324                }                }
4325              GETCHARINC(c, eptr);              GETCHARINC(c, eptr);
4326              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4327              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
4328                   c == CHAR_FF || c == CHAR_CR)                   c == CHAR_FF || c == CHAR_CR)
4329                     == prop_fail_result)                     == prop_fail_result)
4330                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4331              }              }
4332            /* Control never gets here */            /* Control never gets here */
4333    
4334            case PT_PXSPACE:  /* POSIX space */            case PT_PXSPACE:  /* POSIX space */
4335            for (fi = min;; fi++)            for (fi = min;; fi++)
4336              {              {
4337              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM39);              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM61);
4338              if (rrc != MATCH_NOMATCH) RRETURN(rrc);              if (rrc != MATCH_NOMATCH) RRETURN(rrc);
4339              if (fi >= max) MRRETURN(MATCH_NOMATCH);              if (fi >= max) MRRETURN(MATCH_NOMATCH);
4340              if (eptr >= md->end_subject)              if (eptr >= md->end_subject)
# Line 4342  for (;;) Line 4343  for (;;)
4343                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4344                }                }
4345              GETCHARINC(c, eptr);              GETCHARINC(c, eptr);
4346              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4347              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
4348                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)
4349                     == prop_fail_result)                     == prop_fail_result)
4350                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4351              }              }
4352            /* Control never gets here */            /* Control never gets here */
4353    
4354            case PT_WORD:            case PT_WORD:
4355            for (fi = min;; fi++)            for (fi = min;; fi++)
4356              {              {
4357              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM39);              RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM62);
4358              if (rrc != MATCH_NOMATCH) RRETURN(rrc);              if (rrc != MATCH_NOMATCH) RRETURN(rrc);
4359              if (fi >= max) MRRETURN(MATCH_NOMATCH);              if (fi >= max) MRRETURN(MATCH_NOMATCH);
4360              if (eptr >= md->end_subject)              if (eptr >= md->end_subject)
# Line 4362  for (;;) Line 4363  for (;;)
4363                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4364                }                }
4365              GETCHARINC(c, eptr);              GETCHARINC(c, eptr);
4366              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4367              if ((prop_category == ucp_L ||              if ((prop_category == ucp_L ||
4368                   prop_category == ucp_N ||                   prop_category == ucp_N ||
4369                   c == CHAR_UNDERSCORE)                   c == CHAR_UNDERSCORE)
4370                     == prop_fail_result)                     == prop_fail_result)
4371                MRRETURN(MATCH_NOMATCH);                MRRETURN(MATCH_NOMATCH);
4372              }              }
4373            /* Control never gets here */            /* Control never gets here */
4374    
4375            /* This should never occur */            /* This should never occur */
4376    
4377            default:            default:
4378            RRETURN(PCRE_ERROR_INTERNAL);            RRETURN(PCRE_ERROR_INTERNAL);
4379            }            }
# Line 4794  for (;;) Line 4795  for (;;)
4795              eptr+= len;              eptr+= len;
4796              }              }
4797            break;            break;
4798    
4799            case PT_ALNUM:            case PT_ALNUM:
4800            for (i = min; i < max; i++)            for (i = min; i < max; i++)
4801              {              {
# Line 4806  for (;;) Line 4807  for (;;)
4807                }                }
4808              GETCHARLEN(c, eptr, len);              GETCHARLEN(c, eptr, len);
4809              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4810              if ((prop_category == ucp_L || prop_category == ucp_N)              if ((prop_category == ucp_L || prop_category == ucp_N)
4811                   == prop_fail_result)                   == prop_fail_result)
4812                break;                break;
4813              eptr+= len;              eptr+= len;
# Line 4825  for (;;) Line 4826  for (;;)
4826              GETCHARLEN(c, eptr, len);              GETCHARLEN(c, eptr, len);
4827              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4828              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
4829                   c == CHAR_FF || c == CHAR_CR)                   c == CHAR_FF || c == CHAR_CR)
4830                   == prop_fail_result)                   == prop_fail_result)
4831                break;                break;
4832              eptr+= len;              eptr+= len;
# Line 4844  for (;;) Line 4845  for (;;)
4845              GETCHARLEN(c, eptr, len);              GETCHARLEN(c, eptr, len);
4846              prop_category = UCD_CATEGORY(c);              prop_category = UCD_CATEGORY(c);
4847              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||              if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL ||
4848                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)                   c == CHAR_VT || c == CHAR_FF || c == CHAR_CR)
4849                   == prop_fail_result)                   == prop_fail_result)
4850                break;                break;
4851              eptr+= len;              eptr+= len;
# Line 5462  switch (frame->Xwhere) Line 5463  switch (frame->Xwhere)
5463    LBL(32) LBL(34) LBL(42) LBL(46)    LBL(32) LBL(34) LBL(42) LBL(46)
5464  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
5465    LBL(36) LBL(37) LBL(38) LBL(39) LBL(40) LBL(41) LBL(44) LBL(45)    LBL(36) LBL(37) LBL(38) LBL(39) LBL(40) LBL(41) LBL(44) LBL(45)
5466      LBL(59) LBL(60) LBL(61) LBL(62)
5467  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
5468  #endif  /* SUPPORT_UTF8 */  #endif  /* SUPPORT_UTF8 */
5469    default:    default:

Legend:
Removed from v.518  
changed lines
  Added in v.527

  ViewVC Help
Powered by ViewVC 1.1.5