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

Function ippCopyAttribute

cups/ipp.c:1471–1620  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1469
1470
1471ipp_attribute_t * /* O - New attribute */
1472ippCopyAttribute(
1473 ipp_t *dst, /* I - Destination IPP message */
1474 ipp_attribute_t *srcattr, /* I - Attribute to copy */
1475 int quickcopy) /* I - 1 for a referenced copy, 0 for normal */
1476{
1477 int i; /* Looping var */
1478 ipp_tag_t srctag; /* Source value tag */
1479 ipp_attribute_t *dstattr; /* Destination attribute */
1480 _ipp_value_t *srcval, /* Source value */
1481 *dstval; /* Destination value */
1482
1483
1484 DEBUG_printf(("ippCopyAttribute(dst=%p, srcattr=%p, quickcopy=%d)", (void *)dst, (void *)srcattr, quickcopy));
1485
1486 /*
1487 * Range check input...
1488 */
1489
1490 if (!dst || !srcattr)
1491 return (NULL);
1492
1493 /*
1494 * Copy it...
1495 */
1496
1497 quickcopy = (quickcopy && (srcattr->value_tag & IPP_TAG_CUPS_CONST)) ? IPP_TAG_CUPS_CONST : 0;
1498 srctag = srcattr->value_tag & IPP_TAG_CUPS_MASK;
1499
1500 switch (srctag)
1501 {
1502 case IPP_TAG_ZERO :
1503 dstattr = ippAddSeparator(dst);
1504 break;
1505
1506 case IPP_TAG_UNSUPPORTED_VALUE :
1507 case IPP_TAG_DEFAULT :
1508 case IPP_TAG_UNKNOWN :
1509 case IPP_TAG_NOVALUE :
1510 case IPP_TAG_NOTSETTABLE :
1511 case IPP_TAG_DELETEATTR :
1512 case IPP_TAG_ADMINDEFINE :
1513 dstattr = ippAddOutOfBand(dst, srcattr->group_tag, srctag, srcattr->name);
1514 break;
1515
1516 case IPP_TAG_INTEGER :
1517 case IPP_TAG_ENUM :
1518 case IPP_TAG_BOOLEAN :
1519 case IPP_TAG_DATE :
1520 case IPP_TAG_RESOLUTION :
1521 case IPP_TAG_RANGE :
1522 if ((dstattr = ipp_add_attr(dst, srcattr->name, srcattr->group_tag, srctag, srcattr->num_values)) != NULL)
1523 memcpy(dstattr->values, srcattr->values, (size_t)srcattr->num_values * sizeof(_ipp_value_t));
1524 break;
1525
1526 case IPP_TAG_TEXT :
1527 case IPP_TAG_NAME :
1528 case IPP_TAG_RESERVED_STRING :

Callers 12

respond_ignoredFunction · 0.85
respond_unsupportedFunction · 0.85
cupsdProcessIPPRequestFunction · 0.85
add_jobFunction · 0.85
copy_attrsFunction · 0.85
create_local_bg_threadFunction · 0.85
hold_jobFunction · 0.85
read_job_ticketFunction · 0.85
set_job_attrsFunction · 0.85
validate_jobFunction · 0.85
cupsdSetPrinterAttrFunction · 0.85
ippCopyAttributesFunction · 0.85

Calls 6

ippAddSeparatorFunction · 0.85
ippAddOutOfBandFunction · 0.85
ipp_add_attrFunction · 0.85
ippAddStringsFunction · 0.85
_cupsStrAllocFunction · 0.85
ippAddCollectionsFunction · 0.85

Tested by

no test coverage detected