/[pcre]/code/trunk/pcre_printint.src
ViewVC logotype

Diff of /code/trunk/pcre_printint.src

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

revision 86 by nigel, Sat Feb 24 21:41:13 2007 UTC revision 87 by nigel, Sat Feb 24 21:41:21 2007 UTC
# Line 101  else Line 101  else
101  *************************************************/  *************************************************/
102    
103  static const char *  static const char *
104  get_ucpname(int property)  get_ucpname(int ptype, int pvalue)
105  {  {
106  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
107  int i;  int i;
108  for (i = _pcre_utt_size; i >= 0; i--)  for (i = _pcre_utt_size; i >= 0; i--)
109    {    {
110    if (property == _pcre_utt[i].value) break;    if (ptype == _pcre_utt[i].type && pvalue == _pcre_utt[i].value) break;
111    }    }
112  return (i >= 0)? _pcre_utt[i].name : "??";  return (i >= 0)? _pcre_utt[i].name : "??";
113  #else  #else
114    ptype = ptype;    /* Avoid compiler warning */
115    pvalue = pvalue;
116  return "??";  return "??";
117  #endif  #endif
118  }  }
# Line 250  for(;;) Line 252  for(;;)
252        fprintf(f, "%s", OP_names[code[1]]);        fprintf(f, "%s", OP_names[code[1]]);
253        if (code[1] == OP_PROP || code[1] == OP_NOTPROP)        if (code[1] == OP_PROP || code[1] == OP_NOTPROP)
254          {          {
255          fprintf(f, " %s ", get_ucpname(code[2]));          fprintf(f, " %s ", get_ucpname(code[2], code[3]));
256          extra = 1;          extra = 2;
257          }          }
258        }        }
259      else extra = print_char(f, code+1, utf8);      else extra = print_char(f, code+1, utf8);
# Line 275  for(;;) Line 277  for(;;)
277      fprintf(f, "    %s", OP_names[code[3]]);      fprintf(f, "    %s", OP_names[code[3]]);
278      if (code[3] == OP_PROP || code[3] == OP_NOTPROP)      if (code[3] == OP_PROP || code[3] == OP_NOTPROP)
279        {        {
280        fprintf(f, " %s ", get_ucpname(code[4]));        fprintf(f, " %s ", get_ucpname(code[4], code[5]));
281        extra = 1;        extra = 2;
282        }        }
283      fprintf(f, "{");      fprintf(f, "{");
284      if (*code != OP_TYPEEXACT) fprintf(f, "0,");      if (*code != OP_TYPEEXACT) fprintf(f, "0,");
# Line 326  for(;;) Line 328  for(;;)
328    
329      case OP_PROP:      case OP_PROP:
330      case OP_NOTPROP:      case OP_NOTPROP:
331      fprintf(f, "    %s %s", OP_names[*code], get_ucpname(code[1]));      fprintf(f, "    %s %s", OP_names[*code], get_ucpname(code[1], code[2]));
332      break;      break;
333    
334      /* OP_XCLASS can only occur in UTF-8 mode. However, there's no harm in      /* OP_XCLASS can only occur in UTF-8 mode. However, there's no harm in
# Line 389  for(;;) Line 391  for(;;)
391            {            {
392            if (ch == XCL_PROP)            if (ch == XCL_PROP)
393              {              {
394              fprintf(f, "\\p{%s}", get_ucpname(*ccode++));              int ptype = *ccode++;
395                int pvalue = *ccode++;
396                fprintf(f, "\\p{%s}", get_ucpname(ptype, pvalue));
397              }              }
398            else if (ch == XCL_NOTPROP)            else if (ch == XCL_NOTPROP)
399              {              {
400              fprintf(f, "\\P{%s}", get_ucpname(*ccode++));              int ptype = *ccode++;
401                int pvalue = *ccode++;
402                fprintf(f, "\\P{%s}", get_ucpname(ptype, pvalue));
403              }              }
404            else            else
405              {              {
# Line 435  for(;;) Line 441  for(;;)
441          if (*ccode == OP_CRMINRANGE) fprintf(f, "?");          if (*ccode == OP_CRMINRANGE) fprintf(f, "?");
442          extra += _pcre_OP_lengths[*ccode];          extra += _pcre_OP_lengths[*ccode];
443          break;          break;
444    
445            /* Do nothing if it's not a repeat; this code stops picky compilers
446            warning about the lack of a default code path. */
447    
448            default:
449            break;
450          }          }
451        }        }
452      break;      break;

Legend:
Removed from v.86  
changed lines
  Added in v.87

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12