| 2519 | */ |
| 2520 | |
| 2521 | const char * |
| 2522 | ippGetString(ipp_attribute_t *attr, /* I - IPP attribute */ |
| 2523 | int element, /* I - Value number (0-based) */ |
| 2524 | const char **language)/* O - Language code (@code NULL@ for don't care) */ |
| 2525 | { |
| 2526 | ipp_tag_t tag; /* Value tag */ |
| 2527 | |
| 2528 | |
| 2529 | /* |
| 2530 | * Range check input... |
| 2531 | */ |
| 2532 | |
| 2533 | tag = ippGetValueTag(attr); |
| 2534 | |
| 2535 | if (!attr || element < 0 || element >= attr->num_values || (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG && (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE))) |
| 2536 | return (NULL); |
| 2537 | |
| 2538 | /* |
| 2539 | * Return the value... |
| 2540 | */ |
| 2541 | |
| 2542 | if (language) |
| 2543 | *language = attr->values[element].string.language; |
| 2544 | |
| 2545 | return (attr->values[element].string.text); |
| 2546 | } |
| 2547 | |
| 2548 | |
| 2549 | /* |