Commit 2ed5f49a795d91faddc723bbbb561e485094e23a
Committed by
Jay Berkenbilt
1 parent
b3bf0290
C-API expose QPDFObjectHandle::getValueAs... accessors
Showing
4 changed files
with
240 additions
and
1 deletions
include/qpdf/qpdf-c.h
| ... | ... | @@ -707,26 +707,50 @@ extern "C" { |
| 707 | 707 | |
| 708 | 708 | QPDF_DLL |
| 709 | 709 | QPDF_BOOL qpdf_oh_get_bool_value(qpdf_data qpdf, qpdf_oh oh); |
| 710 | + QPDF_DLL | |
| 711 | + QPDF_BOOL qpdf_oh_get_value_as_bool( | |
| 712 | + qpdf_data qpdf, qpdf_oh oh, QPDF_BOOL* value); | |
| 710 | 713 | |
| 711 | 714 | QPDF_DLL |
| 712 | 715 | long long qpdf_oh_get_int_value(qpdf_data qpdf, qpdf_oh oh); |
| 713 | 716 | QPDF_DLL |
| 717 | + QPDF_BOOL qpdf_oh_get_value_as_longlong( | |
| 718 | + qpdf_data qpdf, qpdf_oh oh, long long* value); | |
| 719 | + QPDF_DLL | |
| 714 | 720 | int qpdf_oh_get_int_value_as_int(qpdf_data qpdf, qpdf_oh oh); |
| 715 | 721 | QPDF_DLL |
| 722 | + QPDF_BOOL qpdf_oh_get_value_as_int( | |
| 723 | + qpdf_data qpdf, qpdf_oh oh, int* value); | |
| 724 | + QPDF_DLL | |
| 716 | 725 | unsigned long long qpdf_oh_get_uint_value(qpdf_data qpdf, qpdf_oh oh); |
| 717 | 726 | QPDF_DLL |
| 727 | + QPDF_BOOL qpdf_oh_get_value_as_ulonglong( | |
| 728 | + qpdf_data qpdf, qpdf_oh oh, unsigned long long* value); | |
| 729 | + QPDF_DLL | |
| 718 | 730 | unsigned int qpdf_oh_get_uint_value_as_uint(qpdf_data qpdf, qpdf_oh oh); |
| 731 | + QPDF_DLL | |
| 732 | + QPDF_BOOL qpdf_oh_get_value_as_uint( | |
| 733 | + qpdf_data qpdf, qpdf_oh oh, unsigned int* value); | |
| 719 | 734 | |
| 720 | 735 | QPDF_DLL |
| 721 | 736 | char const* qpdf_oh_get_real_value(qpdf_data qpdf, qpdf_oh oh); |
| 737 | + QPDF_DLL | |
| 738 | + QPDF_BOOL qpdf_oh_get_value_as_real( | |
| 739 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length); | |
| 722 | 740 | |
| 723 | 741 | QPDF_DLL |
| 724 | 742 | QPDF_BOOL qpdf_oh_is_number(qpdf_data qpdf, qpdf_oh oh); |
| 725 | 743 | QPDF_DLL |
| 726 | 744 | double qpdf_oh_get_numeric_value(qpdf_data qpdf, qpdf_oh oh); |
| 745 | + QPDF_DLL | |
| 746 | + QPDF_BOOL qpdf_oh_get_value_as_number( | |
| 747 | + qpdf_data qpdf, qpdf_oh oh, double* value); | |
| 727 | 748 | |
| 728 | 749 | QPDF_DLL |
| 729 | 750 | char const* qpdf_oh_get_name(qpdf_data qpdf, qpdf_oh oh); |
| 751 | + QPDF_DLL | |
| 752 | + QPDF_BOOL qpdf_oh_get_value_as_name( | |
| 753 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length); | |
| 730 | 754 | |
| 731 | 755 | /* Return the length of the last string returned. This enables you |
| 732 | 756 | * to retrieve the entire string for cases in which a char* |
| ... | ... | @@ -747,8 +771,14 @@ extern "C" { |
| 747 | 771 | QPDF_DLL |
| 748 | 772 | char const* qpdf_oh_get_string_value(qpdf_data qpdf, qpdf_oh oh); |
| 749 | 773 | QPDF_DLL |
| 774 | + QPDF_BOOL qpdf_oh_get_value_as_string( | |
| 775 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length); | |
| 776 | + QPDF_DLL | |
| 750 | 777 | char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh); |
| 751 | 778 | QPDF_DLL |
| 779 | + QPDF_BOOL qpdf_oh_get_value_as_utf8( | |
| 780 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length); | |
| 781 | + QPDF_DLL | |
| 752 | 782 | char const* qpdf_oh_get_binary_string_value( |
| 753 | 783 | qpdf_data qpdf, qpdf_oh oh, size_t* length); |
| 754 | 784 | QPDF_DLL | ... | ... |
libqpdf/qpdf-c.cc
| ... | ... | @@ -1238,6 +1238,22 @@ QPDF_BOOL qpdf_oh_get_bool_value(qpdf_data qpdf, qpdf_oh oh) |
| 1238 | 1238 | }); |
| 1239 | 1239 | } |
| 1240 | 1240 | |
| 1241 | +QPDF_BOOL qpdf_oh_get_value_as_bool( | |
| 1242 | + qpdf_data qpdf, qpdf_oh oh, QPDF_BOOL* value) | |
| 1243 | +{ | |
| 1244 | + return do_with_oh<QPDF_BOOL>( | |
| 1245 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1246 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_bool"); | |
| 1247 | + bool v = *value; | |
| 1248 | + QPDF_BOOL result = o.getValueAsBool(v); | |
| 1249 | + if (result) | |
| 1250 | + { | |
| 1251 | + *value = v; | |
| 1252 | + } | |
| 1253 | + return result; | |
| 1254 | + }); | |
| 1255 | +} | |
| 1256 | + | |
| 1241 | 1257 | long long qpdf_oh_get_int_value(qpdf_data qpdf, qpdf_oh oh) |
| 1242 | 1258 | { |
| 1243 | 1259 | return do_with_oh<long long>( |
| ... | ... | @@ -1247,6 +1263,16 @@ long long qpdf_oh_get_int_value(qpdf_data qpdf, qpdf_oh oh) |
| 1247 | 1263 | }); |
| 1248 | 1264 | } |
| 1249 | 1265 | |
| 1266 | +QPDF_BOOL qpdf_oh_get_value_as_longlong( | |
| 1267 | + qpdf_data qpdf, qpdf_oh oh, long long* value) | |
| 1268 | +{ | |
| 1269 | + return do_with_oh<QPDF_BOOL>( | |
| 1270 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1271 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_longlong"); | |
| 1272 | + return o.getValueAsInt(*value); | |
| 1273 | + }); | |
| 1274 | +} | |
| 1275 | + | |
| 1250 | 1276 | int qpdf_oh_get_int_value_as_int(qpdf_data qpdf, qpdf_oh oh) |
| 1251 | 1277 | { |
| 1252 | 1278 | return do_with_oh<int>( |
| ... | ... | @@ -1256,6 +1282,16 @@ int qpdf_oh_get_int_value_as_int(qpdf_data qpdf, qpdf_oh oh) |
| 1256 | 1282 | }); |
| 1257 | 1283 | } |
| 1258 | 1284 | |
| 1285 | +QPDF_BOOL qpdf_oh_get_value_as_int( | |
| 1286 | + qpdf_data qpdf, qpdf_oh oh, int* value) | |
| 1287 | +{ | |
| 1288 | + return do_with_oh<QPDF_BOOL>( | |
| 1289 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1290 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_int"); | |
| 1291 | + return o.getValueAsInt(*value); | |
| 1292 | + }); | |
| 1293 | +} | |
| 1294 | + | |
| 1259 | 1295 | unsigned long long qpdf_oh_get_uint_value(qpdf_data qpdf, qpdf_oh oh) |
| 1260 | 1296 | { |
| 1261 | 1297 | return do_with_oh<unsigned long long>( |
| ... | ... | @@ -1265,6 +1301,16 @@ unsigned long long qpdf_oh_get_uint_value(qpdf_data qpdf, qpdf_oh oh) |
| 1265 | 1301 | }); |
| 1266 | 1302 | } |
| 1267 | 1303 | |
| 1304 | +QPDF_BOOL qpdf_oh_get_value_as_ulonglong( | |
| 1305 | + qpdf_data qpdf, qpdf_oh oh, unsigned long long* value) | |
| 1306 | +{ | |
| 1307 | + return do_with_oh<QPDF_BOOL>( | |
| 1308 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1309 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_ulonglong"); | |
| 1310 | + return o.getValueAsUInt(*value); | |
| 1311 | + }); | |
| 1312 | +} | |
| 1313 | + | |
| 1268 | 1314 | unsigned int qpdf_oh_get_uint_value_as_uint(qpdf_data qpdf, qpdf_oh oh) |
| 1269 | 1315 | { |
| 1270 | 1316 | return do_with_oh<unsigned int>( |
| ... | ... | @@ -1274,6 +1320,16 @@ unsigned int qpdf_oh_get_uint_value_as_uint(qpdf_data qpdf, qpdf_oh oh) |
| 1274 | 1320 | }); |
| 1275 | 1321 | } |
| 1276 | 1322 | |
| 1323 | +QPDF_BOOL qpdf_oh_get_value_as_uint( | |
| 1324 | + qpdf_data qpdf, qpdf_oh oh, unsigned int* value) | |
| 1325 | +{ | |
| 1326 | + return do_with_oh<QPDF_BOOL>( | |
| 1327 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1328 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_uint"); | |
| 1329 | + return o.getValueAsUInt(*value); | |
| 1330 | + }); | |
| 1331 | +} | |
| 1332 | + | |
| 1277 | 1333 | char const* qpdf_oh_get_real_value(qpdf_data qpdf, qpdf_oh oh) |
| 1278 | 1334 | { |
| 1279 | 1335 | return do_with_oh<char const*>( |
| ... | ... | @@ -1284,6 +1340,22 @@ char const* qpdf_oh_get_real_value(qpdf_data qpdf, qpdf_oh oh) |
| 1284 | 1340 | }); |
| 1285 | 1341 | } |
| 1286 | 1342 | |
| 1343 | +QPDF_BOOL qpdf_oh_get_value_as_real( | |
| 1344 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) | |
| 1345 | +{ | |
| 1346 | + return do_with_oh<QPDF_BOOL>( | |
| 1347 | + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { | |
| 1348 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_real"); | |
| 1349 | + auto result = o.getValueAsReal(qpdf->tmp_string); | |
| 1350 | + if (result) | |
| 1351 | + { | |
| 1352 | + *value = qpdf->tmp_string.c_str(); | |
| 1353 | + *length = qpdf->tmp_string.length(); | |
| 1354 | + } | |
| 1355 | + return result; | |
| 1356 | + }); | |
| 1357 | +} | |
| 1358 | + | |
| 1287 | 1359 | double qpdf_oh_get_numeric_value(qpdf_data qpdf, qpdf_oh oh) |
| 1288 | 1360 | { |
| 1289 | 1361 | return do_with_oh<double>( |
| ... | ... | @@ -1293,6 +1365,16 @@ double qpdf_oh_get_numeric_value(qpdf_data qpdf, qpdf_oh oh) |
| 1293 | 1365 | }); |
| 1294 | 1366 | } |
| 1295 | 1367 | |
| 1368 | +QPDF_BOOL qpdf_oh_get_value_as_number( | |
| 1369 | + qpdf_data qpdf, qpdf_oh oh, double* value) | |
| 1370 | +{ | |
| 1371 | + return do_with_oh<QPDF_BOOL>( | |
| 1372 | + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { | |
| 1373 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_number"); | |
| 1374 | + return o.getValueAsNumber(*value); | |
| 1375 | + }); | |
| 1376 | +} | |
| 1377 | + | |
| 1296 | 1378 | char const* qpdf_oh_get_name(qpdf_data qpdf, qpdf_oh oh) |
| 1297 | 1379 | { |
| 1298 | 1380 | return do_with_oh<char const*>( |
| ... | ... | @@ -1303,6 +1385,22 @@ char const* qpdf_oh_get_name(qpdf_data qpdf, qpdf_oh oh) |
| 1303 | 1385 | }); |
| 1304 | 1386 | } |
| 1305 | 1387 | |
| 1388 | +QPDF_BOOL qpdf_oh_get_value_as_name( | |
| 1389 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) | |
| 1390 | +{ | |
| 1391 | + return do_with_oh<QPDF_BOOL>( | |
| 1392 | + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { | |
| 1393 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_name"); | |
| 1394 | + auto result = o.getValueAsName(qpdf->tmp_string); | |
| 1395 | + if (result) | |
| 1396 | + { | |
| 1397 | + *value = qpdf->tmp_string.c_str(); | |
| 1398 | + *length = qpdf->tmp_string.length(); | |
| 1399 | + } | |
| 1400 | + return result; | |
| 1401 | + }); | |
| 1402 | +} | |
| 1403 | + | |
| 1306 | 1404 | char const* qpdf_oh_get_string_value(qpdf_data qpdf, qpdf_oh oh) |
| 1307 | 1405 | { |
| 1308 | 1406 | return do_with_oh<char const*>( |
| ... | ... | @@ -1313,6 +1411,22 @@ char const* qpdf_oh_get_string_value(qpdf_data qpdf, qpdf_oh oh) |
| 1313 | 1411 | }); |
| 1314 | 1412 | } |
| 1315 | 1413 | |
| 1414 | +QPDF_BOOL qpdf_oh_get_value_as_string( | |
| 1415 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) | |
| 1416 | +{ | |
| 1417 | + return do_with_oh<QPDF_BOOL>( | |
| 1418 | + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { | |
| 1419 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_string"); | |
| 1420 | + auto result = o.getValueAsString(qpdf->tmp_string); | |
| 1421 | + if (result) | |
| 1422 | + { | |
| 1423 | + *value = qpdf->tmp_string.c_str(); | |
| 1424 | + *length = qpdf->tmp_string.length(); | |
| 1425 | + } | |
| 1426 | + return result; | |
| 1427 | + }); | |
| 1428 | +} | |
| 1429 | + | |
| 1316 | 1430 | char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh) |
| 1317 | 1431 | { |
| 1318 | 1432 | return do_with_oh<char const*>( |
| ... | ... | @@ -1323,6 +1437,22 @@ char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh) |
| 1323 | 1437 | }); |
| 1324 | 1438 | } |
| 1325 | 1439 | |
| 1440 | +QPDF_BOOL qpdf_oh_get_value_as_utf8( | |
| 1441 | + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) | |
| 1442 | +{ | |
| 1443 | + return do_with_oh<QPDF_BOOL>( | |
| 1444 | + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { | |
| 1445 | + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_utf8"); | |
| 1446 | + auto result = o.getValueAsUTF8(qpdf->tmp_string); | |
| 1447 | + if (result) | |
| 1448 | + { | |
| 1449 | + *value = qpdf->tmp_string.c_str(); | |
| 1450 | + *length = qpdf->tmp_string.length(); | |
| 1451 | + } | |
| 1452 | + return result; | |
| 1453 | + }); | |
| 1454 | +} | |
| 1455 | + | |
| 1326 | 1456 | char const* qpdf_oh_get_binary_string_value( |
| 1327 | 1457 | qpdf_data qpdf, qpdf_oh oh, size_t* length) |
| 1328 | 1458 | { | ... | ... |
qpdf/qpdf-ctest.c
| ... | ... | @@ -673,26 +673,78 @@ static void test25(char const* infile, |
| 673 | 673 | |
| 674 | 674 | /* Parse objects from a string */ |
| 675 | 675 | qpdf_oh parsed = qpdf_oh_parse( |
| 676 | - qpdf, "[ 1 2.0 (3\xf7) << /Four [/Five] >> null true ]"); | |
| 676 | + qpdf, "[ 1 2.0 (3\xf7) << /Four [/Five] >> null true false /Six]"); | |
| 677 | 677 | qpdf_oh p_int = qpdf_oh_get_array_item(qpdf, parsed, 0); |
| 678 | 678 | qpdf_oh p_real = qpdf_oh_get_array_item(qpdf, parsed, 1); |
| 679 | 679 | qpdf_oh p_string = qpdf_oh_get_array_item(qpdf, parsed, 2); |
| 680 | 680 | qpdf_oh p_dict = qpdf_oh_get_array_item(qpdf, parsed, 3); |
| 681 | 681 | qpdf_oh p_null = qpdf_oh_get_array_item(qpdf, parsed, 4); |
| 682 | 682 | qpdf_oh p_bool = qpdf_oh_get_array_item(qpdf, parsed, 5); |
| 683 | + qpdf_oh p_bool_f = qpdf_oh_get_array_item(qpdf, parsed, 6); | |
| 684 | + qpdf_oh p_name = qpdf_oh_get_array_item(qpdf, parsed, 7); | |
| 683 | 685 | assert(qpdf_oh_is_integer(qpdf, p_int) && |
| 684 | 686 | qpdf_oh_get_int_value_as_int(qpdf, p_int) == 1); |
| 687 | + long long l = 0; | |
| 688 | + assert(qpdf_oh_get_value_as_longlong(qpdf, p_bool, &l) == QPDF_FALSE); | |
| 689 | + assert((qpdf_oh_get_value_as_longlong(qpdf, p_int, &l) == QPDF_TRUE) && | |
| 690 | + (l == 1)); | |
| 691 | + int i = 0; | |
| 692 | + assert(qpdf_oh_get_value_as_int(qpdf, p_bool, &i) == QPDF_FALSE); | |
| 693 | + assert((qpdf_oh_get_value_as_int(qpdf, p_int, &i) == QPDF_TRUE) && | |
| 694 | + (i == 1)); | |
| 695 | + unsigned long long ul = 0u; | |
| 696 | + assert(qpdf_oh_get_value_as_ulonglong(qpdf, p_bool, &ul) == QPDF_FALSE); | |
| 697 | + assert((qpdf_oh_get_value_as_ulonglong(qpdf, p_int, &ul) == QPDF_TRUE) && | |
| 698 | + (ul == 1u)); | |
| 699 | + unsigned int u = 0u; | |
| 700 | + assert(qpdf_oh_get_value_as_uint(qpdf, p_bool, &u) == QPDF_FALSE); | |
| 701 | + assert((qpdf_oh_get_value_as_uint(qpdf, p_int, &u) == QPDF_TRUE) && | |
| 702 | + (u == 1u)); | |
| 703 | + double d = 0.0; | |
| 704 | + assert(qpdf_oh_get_value_as_number(qpdf, p_bool, &d) == QPDF_FALSE); | |
| 705 | + assert((qpdf_oh_get_value_as_number(qpdf, p_int, &d) == QPDF_TRUE) && | |
| 706 | + (((d - 1.0) * (d - 1.0)) < 1e-100)); | |
| 685 | 707 | assert(qpdf_oh_get_type_code(qpdf, p_int) == ot_integer); |
| 686 | 708 | assert(strcmp(qpdf_oh_get_type_name(qpdf, p_int), "integer") == 0); |
| 687 | 709 | assert(qpdf_oh_is_real(qpdf, p_real) && |
| 688 | 710 | (strcmp(qpdf_oh_get_real_value(qpdf, p_real), "2.0") == 0) && |
| 689 | 711 | qpdf_oh_get_numeric_value(qpdf, p_real) == 2.0); |
| 712 | + const char* r = ""; | |
| 713 | + size_t length = 0; | |
| 714 | + assert((qpdf_oh_get_value_as_real(qpdf, p_name, &r, &length) == | |
| 715 | + QPDF_FALSE) && | |
| 716 | + (strcmp(r, "") == 0) && | |
| 717 | + (length == 0)); | |
| 718 | + assert((qpdf_oh_get_value_as_real(qpdf, p_real, &r, &length) == | |
| 719 | + QPDF_TRUE) && | |
| 720 | + (strcmp(r, "2.0") == 0) && | |
| 721 | + (length == 3)); | |
| 690 | 722 | assert(qpdf_oh_get_type_code(qpdf, p_real) == ot_real); |
| 691 | 723 | assert(strcmp(qpdf_oh_get_type_name(qpdf, p_real), "real") == 0); |
| 692 | 724 | assert(qpdf_oh_is_string(qpdf, p_string) && |
| 693 | 725 | (strcmp(qpdf_oh_get_string_value(qpdf, p_string), "3\xf7") == 0) && |
| 694 | 726 | (strcmp(qpdf_oh_get_utf8_value(qpdf, p_string), "3\xc3\xb7") == 0) && |
| 695 | 727 | (strcmp(qpdf_oh_unparse_binary(qpdf, p_string), "<33f7>") == 0)); |
| 728 | + const char* str = ""; | |
| 729 | + length = 0; | |
| 730 | + assert((qpdf_oh_get_value_as_string(qpdf, p_name, &str, &length) == | |
| 731 | + QPDF_FALSE) && | |
| 732 | + (strcmp(str, "") == 0) && | |
| 733 | + (length == 0)); | |
| 734 | + assert((qpdf_oh_get_value_as_string(qpdf, p_string, &str, &length) == | |
| 735 | + QPDF_TRUE) && | |
| 736 | + (strcmp(str, "3\xf7") == 0) && | |
| 737 | + (length == 2)); | |
| 738 | + const char* utf8 = ""; | |
| 739 | + length = 0; | |
| 740 | + assert((qpdf_oh_get_value_as_utf8(qpdf, p_name, &utf8, &length) == | |
| 741 | + QPDF_FALSE) && | |
| 742 | + (strcmp(utf8, "") == 0) && | |
| 743 | + (length == 0)); | |
| 744 | + assert((qpdf_oh_get_value_as_utf8(qpdf, p_string, &utf8, &length) == | |
| 745 | + QPDF_TRUE) && | |
| 746 | + (strcmp(utf8, "3\xc3\xb7") == 0) && | |
| 747 | + (length == 3)); | |
| 696 | 748 | assert(qpdf_oh_get_type_code(qpdf, p_string) == ot_string); |
| 697 | 749 | assert(! qpdf_oh_is_name_and_equals(qpdf, p_string, "3\xf7")); |
| 698 | 750 | assert(strcmp(qpdf_oh_get_type_name(qpdf, p_string), "string") == 0); |
| ... | ... | @@ -709,8 +761,25 @@ static void test25(char const* infile, |
| 709 | 761 | assert(strcmp(qpdf_oh_get_type_name(qpdf, p_null), "null") == 0); |
| 710 | 762 | assert(qpdf_oh_is_bool(qpdf, p_bool) && |
| 711 | 763 | (qpdf_oh_get_bool_value(qpdf, p_bool) == QPDF_TRUE)); |
| 764 | + QPDF_BOOL b = QPDF_FALSE; | |
| 765 | + assert((qpdf_oh_get_value_as_bool(qpdf, p_int, &b) == QPDF_FALSE) && | |
| 766 | + b == QPDF_FALSE); | |
| 767 | + assert((qpdf_oh_get_value_as_bool(qpdf, p_bool, &b) == QPDF_TRUE) && | |
| 768 | + b == QPDF_TRUE); | |
| 769 | + assert((qpdf_oh_get_value_as_bool(qpdf, p_bool_f, &b) == QPDF_TRUE) && | |
| 770 | + b == QPDF_FALSE); | |
| 712 | 771 | assert(qpdf_oh_get_type_code(qpdf, p_bool) == ot_boolean); |
| 713 | 772 | assert(strcmp(qpdf_oh_get_type_name(qpdf, p_bool), "boolean") == 0); |
| 773 | + const char* n = ""; | |
| 774 | + length = 0; | |
| 775 | + assert((qpdf_oh_get_value_as_name(qpdf, p_string, &n, &length) == | |
| 776 | + QPDF_FALSE) && | |
| 777 | + (strcmp(n, "") == 0) && | |
| 778 | + (length == 0)); | |
| 779 | + assert((qpdf_oh_get_value_as_name(qpdf, p_name, &n, &length) == | |
| 780 | + QPDF_TRUE) && | |
| 781 | + (strcmp(n, "/Six") == 0) && | |
| 782 | + (length == 4)); | |
| 714 | 783 | qpdf_oh_erase_item(qpdf, parsed, 4); |
| 715 | 784 | qpdf_oh_insert_item( |
| 716 | 785 | qpdf, parsed, 2, | ... | ... |
qpdf/qpdf.testcov
| ... | ... | @@ -477,16 +477,26 @@ qpdf-c array to wrap_in_array 0 |
| 477 | 477 | qpdf-c non-array to wrap_in_array 0 |
| 478 | 478 | qpdf-c called qpdf_oh_parse 0 |
| 479 | 479 | qpdf-c called qpdf_oh_get_bool_value 0 |
| 480 | +qpdf-c called qpdf_oh_get_value_as_bool 0 | |
| 480 | 481 | qpdf-c called qpdf_oh_get_int_value 0 |
| 482 | +qpdf-c called qpdf_oh_get_value_as_longlong 0 | |
| 481 | 483 | qpdf-c called qpdf_oh_get_int_value_as_int 0 |
| 484 | +qpdf-c called qpdf_oh_get_value_as_int 0 | |
| 482 | 485 | qpdf-c called qpdf_oh_get_uint_value 0 |
| 486 | +qpdf-c called qpdf_oh_get_value_as_ulonglong 0 | |
| 483 | 487 | qpdf-c called qpdf_oh_get_uint_value_as_uint 0 |
| 488 | +qpdf-c called qpdf_oh_get_value_as_uint 0 | |
| 484 | 489 | qpdf-c called qpdf_oh_get_real_value 0 |
| 490 | +qpdf-c called qpdf_oh_get_value_as_real 0 | |
| 485 | 491 | qpdf-c called qpdf_oh_is_number 0 |
| 492 | +qpdf-c called qpdf_oh_get_value_as_number 0 | |
| 486 | 493 | qpdf-c called qpdf_oh_get_numeric_value 0 |
| 487 | 494 | qpdf-c called qpdf_oh_get_name 0 |
| 495 | +qpdf-c called qpdf_oh_get_value_as_name 0 | |
| 488 | 496 | qpdf-c called qpdf_oh_get_string_value 0 |
| 497 | +qpdf-c called qpdf_oh_get_value_as_string 0 | |
| 489 | 498 | qpdf-c called qpdf_oh_get_utf8_value 0 |
| 499 | +qpdf-c called qpdf_oh_get_value_as_utf8 0 | |
| 490 | 500 | qpdf-c called qpdf_oh_get_array_n_items 0 |
| 491 | 501 | qpdf-c called qpdf_oh_get_array_item 0 |
| 492 | 502 | qpdf-c called qpdf_oh_begin_dict_key_iter 0 | ... | ... |