MCPcopy Create free account
hub / github.com/OpenPrinting/cups / ippSetString

Function ippSetString

cups/ipp.c:3490–3539  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3488 */
3489
3490int /* O - 1 on success, 0 on failure */
3491ippSetString(ipp_t *ipp, /* I - IPP message */
3492 ipp_attribute_t **attr, /* IO - IPP attribute */
3493 int element, /* I - Value number (0-based) */
3494 const char *strvalue) /* I - String value */
3495{
3496 char *temp; /* Temporary string */
3497 _ipp_value_t *value; /* Current value */
3498 ipp_tag_t value_tag; /* Value tag */
3499
3500
3501 /*
3502 * Range check input...
3503 */
3504
3505 if (attr && *attr)
3506 value_tag = (*attr)->value_tag & IPP_TAG_CUPS_MASK;
3507 else
3508 value_tag = IPP_TAG_ZERO;
3509
3510 if (!ipp || !attr || !*attr || (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG && value_tag != IPP_TAG_NAMELANG && value_tag != IPP_TAG_NOVALUE && value_tag != IPP_TAG_UNKNOWN) || value_tag > IPP_TAG_MIMETYPE || element < 0 || element > (*attr)->num_values || !strvalue)
3511 return (0);
3512
3513 /*
3514 * Set the value and return...
3515 */
3516
3517 if ((value = ipp_set_value(ipp, attr, element)) != NULL)
3518 {
3519 if (value_tag == IPP_TAG_NOVALUE || value_tag == IPP_TAG_UNKNOWN)
3520 (*attr)->value_tag = IPP_TAG_KEYWORD;
3521
3522 if (element > 0)
3523 value->string.language = (*attr)->values[0].string.language;
3524
3525 if ((int)((*attr)->value_tag) & IPP_TAG_CUPS_CONST)
3526 value->string.text = (char *)strvalue;
3527 else if ((temp = _cupsStrAlloc(strvalue)) != NULL)
3528 {
3529 if (value->string.text)
3530 _cupsStrFree(value->string.text);
3531
3532 value->string.text = temp;
3533 }
3534 else
3535 return (0);
3536 }
3537
3538 return (value != NULL);
3539}
3540
3541
3542/*

Callers 15

load_ppd_attributesFunction · 0.85
show_mediaFunction · 0.85
cupsdProcessIPPRequestFunction · 0.85
add_jobFunction · 0.85
authenticate_jobFunction · 0.85
print_jobFunction · 0.85
release_jobFunction · 0.85
send_documentFunction · 0.85
cupsdCheckJobsFunction · 0.85
cupsdContinueJobFunction · 0.85
cupsdLoadJobFunction · 0.85

Calls 3

ipp_set_valueFunction · 0.85
_cupsStrAllocFunction · 0.85
_cupsStrFreeFunction · 0.85

Tested by

no test coverage detected