825
* 'ippCreateRequestedArray()' - Create a CUPS array of attribute names from the
826
* given requested-attributes attribute.
828
* This function creates a (sorted) CUPS array of attribute names matching the
829
* list of "requested-attribute" values supplied in an IPP request. All IANA-
830
* registered values are supported in addition to the CUPS IPP extension
833
* The @code request@ parameter specifies the request message that was read from
836
* @code NULL@ is returned if all attributes should be returned. Otherwise, the
837
* result is a sorted array of attribute names, where @code cupsArrayFind(array,
838
* "attribute-name")@ will return a non-NULL pointer. The array must be freed
839
* using the @code cupsArrayDelete@ function.
841
* @since CUPS 1.7/OS X 10.9@
844
cups_array_t * /* O - CUPS array or @code NULL@ if all */
845
ippCreateRequestedArray(ipp_t *request) /* I - IPP request */
847
int i, j, /* Looping vars */
848
count, /* Number of values */
849
added; /* Was name added? */
850
ipp_attribute_t *requested; /* requested-attributes attribute */
851
cups_array_t *ra; /* Requested attributes array */
852
const char *value; /* Current value */
853
/* The following lists come from the current IANA IPP registry of attributes */
854
static const char * const document_description[] =
855
{ /* document-description group */
859
"cover-front-actual",
860
"current-page-order",
861
"date-time-at-completed",
862
"date-time-at-creation",
863
"date-time-at-processing",
864
"detailed-status-messages",
865
"document-access-errors",
867
"document-digital-signature",
869
"document-format-details",
870
"document-format-detected",
871
"document-format-version",
872
"document-format-version-detected",
878
"document-natural-language",
880
"document-printer-uri",
882
"document-state-message",
883
"document-state-reasons",
888
"finishings-col-actual",
889
"force-front-side-actual",
890
"imposition-template-actual",
892
"impressions-completed",
893
"impressions-completed-current-copy",
894
"insert-sheet-actual",
896
"k-octets-processed",
900
"media-input-tray-check-actual",
902
"media-sheets-completed",
905
"orientation-requested-actual",
907
"output-device-assigned",
909
"page-delivery-actual",
910
"page-order-received-actual",
911
"page-ranges-actual",
914
"pages-completed-current-copy",
915
"presentation-direction-number-up-actual",
916
"print-color-mode-actual",
917
"print-content-optimize-actual",
918
"print-quality-actual",
919
"print-rendering-intent-actual",
920
"print-scaling-actual", /* IPP Paid Printing */
921
"printer-resolution-actual",
923
"separator-sheets-actual",
924
"sheet-completed-copy-number",
928
"time-at-processing",
929
"x-image-position-actual",
930
"x-image-shift-actual",
931
"x-side1-image-shift-actual",
932
"x-side2-image-shift-actual",
933
"y-image-position-actual",
934
"y-image-shift-actual",
935
"y-side1-image-shift-actual",
936
"y-side2-image-shift-actual"
938
static const char * const document_template[] =
939
{ /* document-template group */
944
"cover-back-default",
945
"cover-back-supported",
947
"cover-front-default",
948
"cover-front-supported",
950
"feed-orientation-default",
951
"feed-orientation-supported",
954
"finishings-col-default",
955
"finishings-col-supported",
956
"finishings-default",
957
"finishings-supported",
958
"font-name-requested",
959
"font-name-requested-default",
960
"font-name-requested-supported",
961
"font-size-requested",
962
"font-size-requested-default",
963
"font-size-requested-supported",
965
"force-front-side-default",
966
"force-front-side-supported",
967
"imposition-template",
968
"imposition-template-default",
969
"imposition-template-supported",
970
"insert-after-page-number-supported",
971
"insert-count-supported",
973
"insert-sheet-default",
974
"insert-sheet-supported",
975
"max-stitching-locations-supported",
977
"media-back-coating-supported",
978
"media-bottom-margin-supported",
981
"media-col-supported",
982
"media-color-supported",
984
"media-front-coating-supported",
985
"media-grain-supported",
986
"media-hole-count-supported",
987
"media-info-supported",
988
"media-input-tray-check",
989
"media-input-tray-check-default",
990
"media-input-tray-check-supported",
991
"media-key-supported",
992
"media-left-margin-supported",
993
"media-order-count-supported",
994
"media-pre-printed-supported",
995
"media-recycled-supported",
996
"media-right-margin-supported",
997
"media-size-supported",
998
"media-source-supported",
1000
"media-thickness-supported",
1001
"media-top-margin-supported",
1002
"media-type-supported",
1003
"media-weight-metric-supported",
1004
"multiple-document-handling",
1005
"multiple-document-handling-default",
1006
"multiple-document-handling-supported",
1008
"number-up-default",
1009
"number-up-supported",
1010
"orientation-requested",
1011
"orientation-requested-default",
1012
"orientation-requested-supported",
1013
"output-mode", /* CUPS extension */
1014
"output-mode-default", /* CUPS extension */
1015
"output-mode-supported", /* CUPS extension */
1017
"overrides-supported",
1019
"page-delivery-default",
1020
"page-delivery-supported",
1021
"page-order-received",
1022
"page-order-received-default",
1023
"page-order-received-supported",
1025
"page-ranges-supported",
1027
"pages-per-subset-supported",
1029
"pdl-init-file-default",
1030
"pdl-init-file-entry-supported",
1031
"pdl-init-file-location-supported",
1032
"pdl-init-file-name-subdirectory-supported",
1033
"pdl-init-file-name-supported",
1034
"pdl-init-file-supported",
1035
"presentation-direction-number-up",
1036
"presentation-direction-number-up-default",
1037
"presentation-direction-number-up-supported",
1039
"print-color-mode-default",
1040
"print-color-mode-supported",
1041
"print-content-optimize",
1042
"print-content-optimize-default",
1043
"print-content-optimize-supported",
1045
"print-quality-default",
1046
"print-quality-supported",
1047
"print-rendering-intent",
1048
"print-rendering-intent-default",
1049
"print-rendering-intent-supported",
1050
"print-scaling", /* IPP Paid Printing */
1051
"print-scaling-default", /* IPP Paid Printing */
1052
"print-scaling-supported", /* IPP Paid Printing */
1053
"printer-resolution",
1054
"printer-resolution-default",
1055
"printer-resolution-supported",
1057
"separator-sheets-default",
1058
"separator-sheets-supported",
1060
"sheet-collate-default",
1061
"sheet-collate-supported",
1065
"stitching-locations-supported",
1066
"stitching-offset-supported",
1068
"x-image-position-default",
1069
"x-image-position-supported",
1071
"x-image-shift-default",
1072
"x-image-shift-supported",
1073
"x-side1-image-shift",
1074
"x-side1-image-shift-default",
1075
"x-side1-image-shift-supported",
1076
"x-side2-image-shift",
1077
"x-side2-image-shift-default",
1078
"x-side2-image-shift-supported",
1080
"y-image-position-default",
1081
"y-image-position-supported",
1083
"y-image-shift-default",
1084
"y-image-shift-supported",
1085
"y-side1-image-shift",
1086
"y-side1-image-shift-default",
1087
"y-side1-image-shift-supported",
1088
"y-side2-image-shift",
1089
"y-side2-image-shift-default",
1090
"y-side2-image-shift-supported"
1092
static const char * const job_description[] =
1093
{ /* job-description group */
1094
"compression-supplied",
1096
"cover-back-actual",
1097
"cover-front-actual",
1098
"current-page-order",
1099
"date-time-at-completed",
1100
"date-time-at-creation",
1101
"date-time-at-processing",
1102
"destination-statuses",
1103
"document-charset-supplied",
1104
"document-digital-signature-supplied",
1105
"document-format-details-supplied",
1106
"document-format-supplied",
1107
"document-message-supplied",
1108
"document-metadata",
1109
"document-name-supplied",
1110
"document-natural-language-supplied",
1111
"document-overrides-actual",
1113
"finishings-actual",
1114
"finishings-col-actual",
1115
"force-front-side-actual",
1116
"imposition-template-actual",
1117
"impressions-completed-current-copy",
1118
"insert-sheet-actual",
1119
"job-account-id-actual",
1120
"job-accounting-sheets-actual",
1121
"job-accounting-user-id-actual",
1122
"job-attribute-fidelity",
1123
"job-charge-info", /* CUPS extension */
1124
"job-collation-type",
1125
"job-collation-type-actual",
1126
"job-copies-actual",
1127
"job-cover-back-actual",
1128
"job-cover-front-actual",
1129
"job-detailed-status-message",
1130
"job-document-access-errors",
1131
"job-error-sheet-actual",
1132
"job-finishings-actual",
1133
"job-finishings-col-actual",
1134
"job-hold-until-actual",
1137
"job-impressions-completed",
1139
"job-k-octets-processed",
1140
"job-mandatory-attributes",
1141
"job-media-progress", /* CUPS extension */
1143
"job-media-sheets-completed",
1144
"job-message-from-operator",
1147
"job-originating-host-name", /* CUPS extension */
1148
"job-originating-user-name",
1149
"job-originating-user-uri",
1151
"job-pages-completed",
1152
"job-pages-completed-current-copy",
1153
"job-printer-state-message", /* CUPS extension */
1154
"job-printer-state-reasons", /* CUPS extension */
1155
"job-printer-up-time",
1157
"job-priority-actual",
1158
"job-save-printer-make-and-model",
1159
"job-sheet-message-actual",
1160
"job-sheets-actual",
1161
"job-sheets-col-actual",
1163
"job-state-message",
1164
"job-state-reasons",
1169
"media-check-input-tray-actual",
1170
"multiple-document-handling-actual",
1171
"number-of-documents",
1172
"number-of-intervening-jobs",
1174
"orientation-requested-actual",
1175
"original-requesting-user-name",
1176
"output-bin-actual",
1177
"output-device-assigned",
1179
"page-delivery-actual",
1180
"page-order-received-actual",
1181
"page-ranges-actual",
1182
"presentation-direction-number-up-actual",
1183
"print-color-mode-actual",
1184
"print-content-optimize-actual",
1185
"print-quality-actual",
1186
"print-rendering-intent-actual",
1187
"print-scaling-actual", /* IPP Paid Printing */
1188
"printer-resolution-actual",
1189
"separator-sheets-actual",
1190
"sheet-collate-actual",
1191
"sheet-completed-copy-number",
1192
"sheet-completed-document-number",
1194
"time-at-completed",
1196
"time-at-processing",
1198
"x-image-position-actual",
1199
"x-image-shift-actual",
1200
"x-side1-image-shift-actual",
1201
"x-side2-image-shift-actual",
1202
"y-image-position-actual",
1203
"y-image-shift-actual",
1204
"y-side1-image-shift-actual",
1205
"y-side2-image-shift-actual"
1207
static const char * const job_template[] =
1208
{ /* job-template group */
1209
"confirmation-sheet-print", /* IPP FaxOut */
1210
"confirmation-sheet-print-default",
1215
"cover-back-default",
1216
"cover-back-supported",
1218
"cover-front-default",
1219
"cover-front-supported",
1220
"cover-sheet-info", /* IPP FaxOut */
1221
"cover-sheet-info-default",
1222
"cover-sheet-info-supported",
1223
"destination-uri-schemes-supported",/* IPP FaxOut */
1224
"destination-uris", /* IPP FaxOut */
1225
"destination-uris-supported",
1227
"feed-orientation-default",
1228
"feed-orientation-supported",
1231
"finishings-col-default",
1232
"finishings-col-supported",
1233
"finishings-default",
1234
"finishings-supported",
1235
"font-name-requested",
1236
"font-name-requested-default",
1237
"font-name-requested-supported",
1238
"font-size-requested",
1239
"font-size-requested-default",
1240
"font-size-requested-supported",
1242
"force-front-side-default",
1243
"force-front-side-supported",
1244
"imposition-template",
1245
"imposition-template-default",
1246
"imposition-template-supported",
1247
"insert-after-page-number-supported",
1248
"insert-count-supported",
1250
"insert-sheet-default",
1251
"insert-sheet-supported",
1253
"job-account-id-default",
1254
"job-account-id-supported",
1255
"job-accounting-sheets"
1256
"job-accounting-sheets-default"
1257
"job-accounting-sheets-supported"
1258
"job-accounting-user-id",
1259
"job-accounting-user-id-default",
1260
"job-accounting-user-id-supported",
1262
"job-copies-default",
1263
"job-copies-supported",
1265
"job-cover-back-default",
1266
"job-cover-back-supported",
1268
"job-cover-front-default",
1269
"job-cover-front-supported",
1270
"job-delay-output-until",
1271
"job-delay-output-until-default",
1272
"job-delay-output-until-supported",
1273
"job-delay-output-until-time",
1274
"job-delay-output-until-time-default",
1275
"job-delay-output-until-time-supported",
1277
"job-error-action-default",
1278
"job-error-action-supported",
1280
"job-error-sheet-default",
1281
"job-error-sheet-supported",
1283
"job-finishings-col",
1284
"job-finishings-col-default",
1285
"job-finishings-col-supported",
1286
"job-finishings-default",
1287
"job-finishings-supported",
1289
"job-hold-until-default",
1290
"job-hold-until-supported",
1291
"job-hold-until-time",
1292
"job-hold-until-time-default",
1293
"job-hold-until-time-supported",
1294
"job-message-to-operator",
1295
"job-message-to-operator-default",
1296
"job-message-to-operator-supported",
1298
"job-phone-number-default",
1299
"job-phone-number-supported",
1301
"job-priority-default",
1302
"job-priority-supported",
1303
"job-recipient-name",
1304
"job-recipient-name-default",
1305
"job-recipient-name-supported",
1306
"job-save-disposition",
1307
"job-save-disposition-default",
1308
"job-save-disposition-supported",
1311
"job-sheets-col-default",
1312
"job-sheets-col-supported",
1313
"job-sheets-default",
1314
"job-sheets-supported",
1315
"logo-uri-schemes-supported",
1316
"max-save-info-supported",
1317
"max-stitching-locations-supported",
1319
"media-back-coating-supported",
1320
"media-bottom-margin-supported",
1322
"media-col-default",
1323
"media-col-supported",
1324
"media-color-supported",
1326
"media-front-coating-supported",
1327
"media-grain-supported",
1328
"media-hole-count-supported",
1329
"media-info-supported",
1330
"media-input-tray-check",
1331
"media-input-tray-check-default",
1332
"media-input-tray-check-supported",
1333
"media-key-supported",
1334
"media-left-margin-supported",
1335
"media-order-count-supported",
1336
"media-pre-printed-supported",
1337
"media-recycled-supported",
1338
"media-right-margin-supported",
1339
"media-size-supported",
1340
"media-source-supported",
1342
"media-thickness-supported",
1343
"media-top-margin-supported",
1344
"media-type-supported",
1345
"media-weight-metric-supported",
1346
"multiple-document-handling",
1347
"multiple-document-handling-default",
1348
"multiple-document-handling-supported",
1349
"number-of-retries", /* IPP FaxOut */
1350
"number-of-retries-default",
1351
"number-of-retries-supported",
1353
"number-up-default",
1354
"number-up-supported",
1355
"orientation-requested",
1356
"orientation-requested-default",
1357
"orientation-requested-supported",
1359
"output-bin-default",
1360
"output-bin-supported",
1362
"output-device-default",
1363
"output-device-supported",
1364
"output-mode", /* CUPS extension */
1365
"output-mode-default", /* CUPS extension */
1366
"output-mode-supported", /* CUPS extension */
1368
"overrides-supported",
1370
"page-delivery-default",
1371
"page-delivery-supported",
1372
"page-order-received",
1373
"page-order-received-default",
1374
"page-order-received-supported",
1376
"page-ranges-supported",
1378
"pages-per-subset-supported",
1380
"pdl-init-file-default",
1381
"pdl-init-file-entry-supported",
1382
"pdl-init-file-location-supported",
1383
"pdl-init-file-name-subdirectory-supported",
1384
"pdl-init-file-name-supported",
1385
"pdl-init-file-supported",
1386
"presentation-direction-number-up",
1387
"presentation-direction-number-up-default",
1388
"presentation-direction-number-up-supported",
1390
"print-color-mode-default",
1391
"print-color-mode-supported",
1392
"print-content-optimize",
1393
"print-content-optimize-default",
1394
"print-content-optimize-supported",
1396
"print-quality-default",
1397
"print-quality-supported",
1398
"print-rendering-intent",
1399
"print-rendering-intent-default",
1400
"print-rendering-intent-supported",
1401
"print-scaling", /* IPP Paid Printing */
1402
"print-scaling-default", /* IPP Paid Printing */
1403
"print-scaling-supported", /* IPP Paid Printing */
1404
"printer-resolution",
1405
"printer-resolution-default",
1406
"printer-resolution-supported",
1408
"proof-print-default",
1409
"proof-print-supported",
1410
"retry-interval", /* IPP FaxOut */
1411
"retry-interval-default",
1412
"retry-interval-supported",
1413
"retry-timeout", /* IPP FaxOut */
1414
"retry-timeout-default",
1415
"retry-timeout-supported",
1416
"save-disposition-supported",
1417
"save-document-format-default",
1418
"save-document-format-supported",
1419
"save-location-default",
1420
"save-location-supported",
1421
"save-name-subdirectory-supported",
1422
"save-name-supported",
1424
"separator-sheets-default",
1425
"separator-sheets-supported",
1427
"sheet-collate-default",
1428
"sheet-collate-supported",
1432
"stitching-locations-supported",
1433
"stitching-offset-supported",
1435
"x-image-position-default",
1436
"x-image-position-supported",
1438
"x-image-shift-default",
1439
"x-image-shift-supported",
1440
"x-side1-image-shift",
1441
"x-side1-image-shift-default",
1442
"x-side1-image-shift-supported",
1443
"x-side2-image-shift",
1444
"x-side2-image-shift-default",
1445
"x-side2-image-shift-supported",
1447
"y-image-position-default",
1448
"y-image-position-supported",
1450
"y-image-shift-default",
1451
"y-image-shift-supported",
1452
"y-side1-image-shift",
1453
"y-side1-image-shift-default",
1454
"y-side1-image-shift-supported",
1455
"y-side2-image-shift",
1456
"y-side2-image-shift-default",
1457
"y-side2-image-shift-supported"
1459
static const char * const printer_description[] =
1460
{ /* printer-description group */
1461
"auth-info-required", /* CUPS extension */
1462
"charset-configured",
1463
"charset-supported",
1465
"compression-supported",
1466
"device-service-count",
1467
"device-uri", /* CUPS extension */
1469
"document-charset-default",
1470
"document-charset-supported",
1471
"document-creation-attributes-supported",
1472
"document-digital-signature-default",
1473
"document-digital-signature-supported",
1474
"document-format-default",
1475
"document-format-details-default",
1476
"document-format-details-supported",
1477
"document-format-supported",
1478
"document-format-varying-attributes",
1479
"document-format-version-default",
1480
"document-format-version-supported",
1481
"document-natural-language-default",
1482
"document-natural-language-supported",
1483
"document-password-supported",
1484
"generated-natural-language-supported",
1485
"identify-actions-default",
1486
"identify-actions-supported",
1487
"input-source-supported",
1488
"ipp-features-supported",
1489
"ipp-versions-supported",
1490
"ippget-event-life",
1491
"job-authorization-uri-supported", /* CUPS extension */
1492
"job-constraints-supported",
1493
"job-creation-attributes-supported",
1494
"job-finishings-col-ready",
1495
"job-finishings-ready",
1496
"job-ids-supported",
1497
"job-impressions-supported",
1498
"job-k-limit", /* CUPS extension */
1499
"job-k-octets-supported",
1500
"job-media-sheets-supported",
1501
"job-page-limit", /* CUPS extension */
1502
"job-password-encryption-supported",
1503
"job-password-supported",
1504
"job-quota-period", /* CUPS extension */
1505
"job-resolvers-supported",
1506
"job-settable-attributes-supported",
1507
"job-spooling-supported",
1508
"jpeg-k-octets-supported", /* CUPS extension */
1509
"jpeg-x-dimension-supported", /* CUPS extension */
1510
"jpeg-y-dimension-supported", /* CUPS extension */
1511
"landscape-orientation-requested-preferred",
1512
/* CUPS extension */
1513
"marker-change-time", /* CUPS extension */
1514
"marker-colors", /* CUPS extension */
1515
"marker-high-levels", /* CUPS extension */
1516
"marker-levels", /* CUPS extension */
1517
"marker-low-levels", /* CUPS extension */
1518
"marker-message", /* CUPS extension */
1519
"marker-names", /* CUPS extension */
1520
"marker-types", /* CUPS extension */
1523
"member-names", /* CUPS extension */
1524
"member-uris", /* CUPS extension */
1525
"multiple-destination-uris-supported",/* IPP FaxOut */
1526
"multiple-document-jobs-supported",
1527
"multiple-operation-time-out",
1528
"multiple-operation-time-out-action",
1529
"natural-language-configured",
1530
"operations-supported",
1532
"pages-per-minute-color",
1533
"pdf-k-octets-supported", /* CUPS extension */
1534
"pdf-versions-supported", /* CUPS extension */
1535
"pdl-override-supported",
1537
"port-monitor", /* CUPS extension */
1538
"port-monitor-supported", /* CUPS extension */
1539
"preferred-attributes-supported",
1541
"printer-alert-description",
1542
"printer-charge-info",
1543
"printer-charge-info-uri",
1544
"printer-commands", /* CUPS extension */
1545
"printer-current-time",
1546
"printer-detailed-status-messages",
1547
"printer-device-id",
1548
"printer-dns-sd-name", /* CUPS extension */
1549
"printer-driver-installer",
1550
"printer-fax-log-uri", /* IPP FaxOut */
1551
"printer-fax-modem-info", /* IPP FaxOut */
1552
"printer-fax-modem-name", /* IPP FaxOut */
1553
"printer-fax-modem-number", /* IPP FaxOut */
1554
"printer-geo-location",
1555
"printer-get-attributes-supported",
1556
"printer-icc-profiles",
1559
"printer-is-accepting-jobs",
1560
"printer-is-colormanaged",
1561
"printer-is-shared", /* CUPS extension */
1562
"printer-kind", /* IPP Paid Printing */
1564
"printer-make-and-model",
1565
"printer-mandatory-job-attributes",
1566
"printer-message-date-time",
1567
"printer-message-from-operator",
1568
"printer-message-time",
1569
"printer-more-info",
1570
"printer-more-info-manufacturer",
1572
"printer-native-formats",
1573
"printer-organization",
1574
"printer-organizational-unit",
1575
"printer-settable-attributes-supported",
1577
"printer-state-change-date-time",
1578
"printer-state-change-time",
1579
"printer-state-message",
1580
"printer-state-reasons",
1582
"printer-supply-description",
1583
"printer-supply-info-uri",
1584
"printer-type", /* CUPS extension */
1586
"printer-uri-supported",
1588
"printer-xri-supported",
1589
"pwg-raster-document-resolution-supported",
1590
"pwg-raster-document-sheet-back",
1591
"pwg-raster-document-type-supported",
1593
"reference-uri-schemes-supported",
1594
"repertoire-supported",
1595
"requesting-user-name-allowed", /* CUPS extension */
1596
"requesting-user-name-denied", /* CUPS extension */
1597
"requesting-user-uri-supported",
1598
"subordinate-printers-supported",
1599
"urf-supported", /* CUPS extension */
1600
"uri-authentication-supported",
1601
"uri-security-supported",
1602
"user-defined-value-supported",
1603
"which-jobs-supported",
1604
"xri-authentication-supported",
1605
"xri-security-supported",
1606
"xri-uri-scheme-supported"
1608
static const char * const subscription_description[] =
1609
{ /* subscription-description group */
1611
"notify-lease-expiration-time",
1612
"notify-printer-up-time",
1613
"notify-printer-uri",
1614
"notify-sequence-number",
1615
"notify-subscriber-user-name",
1616
"notify-subscriber-user-uri",
1617
"notify-subscription-id",
1618
"subscriptions-uuid"
1620
static const char * const subscription_template[] =
1621
{ /* subscription-template group */
1622
"notify-attributes",
1623
"notify-attributes-supported",
1626
"notify-events-default",
1627
"notify-events-supported",
1628
"notify-lease-duration",
1629
"notify-lease-duration-default",
1630
"notify-lease-duration-supported",
1631
"notify-max-events-supported",
1632
"notify-natural-language",
1633
"notify-pull-method",
1634
"notify-pull-method-supported",
1635
"notify-recipient-uri",
1636
"notify-schemes-supported",
1637
"notify-time-interval",
1643
* Get the requested-attributes attribute...
1646
if ((requested = ippFindAttribute(request, "requested-attributes",
1647
IPP_TAG_KEYWORD)) == NULL)
1650
* The Get-Jobs operation defaults to "job-id" and "job-uri", all others
1651
* default to "all"...
1654
if (ippGetOperation(request) == IPP_OP_GET_JOBS)
1656
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
1657
cupsArrayAdd(ra, "job-id");
1658
cupsArrayAdd(ra, "job-uri");
1667
* If the attribute contains a single "all" keyword, return NULL...
1670
count = ippGetCount(requested);
1671
if (count == 1 && !strcmp(ippGetString(requested, 0, NULL), "all"))
1675
* Create an array using "strcmp" as the comparison function...
1678
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
1680
for (i = 0; i < count; i ++)
1683
value = ippGetString(requested, i, NULL);
1685
if (!strcmp(value, "document-description") || !strcmp(value, "all"))
1688
j < (int)(sizeof(document_description) /
1689
sizeof(document_description[0]));
1691
cupsArrayAdd(ra, (void *)document_description[j]);
1696
if (!strcmp(value, "document-template") || !strcmp(value, "all"))
1699
j < (int)(sizeof(document_template) / sizeof(document_template[0]));
1701
cupsArrayAdd(ra, (void *)document_template[j]);
1706
if (!strcmp(value, "job-description") || !strcmp(value, "all"))
1709
j < (int)(sizeof(job_description) / sizeof(job_description[0]));
1711
cupsArrayAdd(ra, (void *)job_description[j]);
1716
if (!strcmp(value, "job-template") || !strcmp(value, "all"))
1719
j < (int)(sizeof(job_template) / sizeof(job_template[0]));
1721
cupsArrayAdd(ra, (void *)job_template[j]);
1726
if (!strcmp(value, "printer-description") || !strcmp(value, "all"))
1729
j < (int)(sizeof(printer_description) /
1730
sizeof(printer_description[0]));
1732
cupsArrayAdd(ra, (void *)printer_description[j]);
1737
if (!strcmp(value, "subscription-description") || !strcmp(value, "all"))
1740
j < (int)(sizeof(subscription_description) /
1741
sizeof(subscription_description[0]));
1743
cupsArrayAdd(ra, (void *)subscription_description[j]);
1748
if (!strcmp(value, "subscription-template") || !strcmp(value, "all"))
1751
j < (int)(sizeof(subscription_template) /
1752
sizeof(subscription_template[0]));
1754
cupsArrayAdd(ra, (void *)subscription_template[j]);
1760
cupsArrayAdd(ra, (void *)value);
632
1768
* 'ippEnumString()' - Return a string corresponding to the enum value.