From f4b8983c611580afdcb5e952031621cd5234f736 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Mon, 27 Jun 2022 10:17:00 -0400 Subject: [PATCH] Implement pdfioDictIterateKeys API (Issue #31) --- CHANGES.md | 1 + doc/pdfio.3 | 33 +++++++++++++++++++++++++++- doc/pdfio.html | 34 +++++++++++++++++++++++++++++ pdfio-dict.c | 41 +++++++++++++++++++++++++++++++++++ pdfio.h | 3 +++ testpdfio.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 170 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 98b42d1..6399488 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ v1.1.0 (Month DD, YYYY) ----------------------- - Added `pdfioFileCreateTemporary` function (Issue #29) +- Added `pdfioDictIterateKeys` function (Issue #31) v1.0.1 (March 2, 2022) diff --git a/doc/pdfio.3 b/doc/pdfio.3 index 87e25e7..ad9a061 100644 --- a/doc/pdfio.3 +++ b/doc/pdfio.3 @@ -1,4 +1,4 @@ -.TH pdfio 3 "pdf read/write library" "2022-05-15" "pdf read/write library" +.TH pdfio 3 "pdf read/write library" "2022-06-27" "pdf read/write library" .SH NAME pdfio \- pdf read/write library .SH Introduction @@ -1950,6 +1950,31 @@ pdfio_valtype_t pdfioDictGetType ( const char *key ); .fi +.SS pdfioDictIterateKeys +Iterate the keys in a dictionary. +.PP +.nf +void pdfioDictIterateKeys ( + pdfio_dict_t *dict, + pdfio_dict_cb_t cb, + void *cb_data +); +.fi +.PP +This function iterates the keys in a dictionary, calling the supplied +function "cb": +.PP +.nf + bool + my_dict_cb(pdfio_dict_t *dict, const char *key, void *cb_data) + { + ... "key" contains the dictionary key ... + ... return true to continue or false to stop ... + } + +.fi +The iteration continues as long as the callback returns \fBtrue\fR or all keys +have been iterated. .SS pdfioDictSetArray Set a key array in a dictionary. .PP @@ -2889,6 +2914,12 @@ Standard color spaces .nf typedef enum pdfio_cs_e pdfio_cs_t; .fi +.SS pdfio_dict_cb_t +Dictionary iterator callback +.PP +.nf +typedef bool(*)(pdfio_dict_t *dict, const char *key, void *cb_data) pdfio_dict_cb_t; +.fi .SS pdfio_dict_t Key/value dictionary .PP diff --git a/doc/pdfio.html b/doc/pdfio.html index db000b9..c134456 100644 --- a/doc/pdfio.html +++ b/doc/pdfio.html @@ -360,6 +360,7 @@ span.string {
  • pdfioDictGetRect
  • pdfioDictGetString
  • pdfioDictGetType
  • +
  • pdfioDictIterateKeys
  • pdfioDictSetArray
  • pdfioDictSetBinary
  • pdfioDictSetBoolean
  • @@ -443,6 +444,7 @@ span.string {
  • Data Types