diff options
-rw-r--r-- | examples/qpdfjob-c-save-attachment.c | 4 | ||||
-rw-r--r-- | include/qpdf/qpdflogger-c.h | 3 | ||||
-rw-r--r-- | libqpdf/qpdflogger-c.cc | 7 | ||||
-rw-r--r-- | libtests/logger_c.c | 4 |
4 files changed, 7 insertions, 11 deletions
diff --git a/examples/qpdfjob-c-save-attachment.c b/examples/qpdfjob-c-save-attachment.c index 6f67e25b..39d1f69a 100644 --- a/examples/qpdfjob-c-save-attachment.c +++ b/examples/qpdfjob-c-save-attachment.c @@ -12,11 +12,11 @@ // something with QPDFJob. See qpdfjob-c-save-attachment.c for an // implementation that uses the C API. -static void +static int save_to_file(char const* data, size_t len, void* udata) { FILE* f = (FILE*)udata; - fwrite(data, 1, len, f); + return fwrite(data, 1, len, f) != len; } static FILE* diff --git a/include/qpdf/qpdflogger-c.h b/include/qpdf/qpdflogger-c.h index 10ab5bb0..6bf456e7 100644 --- a/include/qpdf/qpdflogger-c.h +++ b/include/qpdf/qpdflogger-c.h @@ -59,7 +59,8 @@ extern "C" { qpdf_log_dest_custom = 4, }; - typedef void (*qpdf_log_fn_t)(char const* data, size_t len, void* udata); + /* Function should return 0 on success. */ + typedef int (*qpdf_log_fn_t)(char const* data, size_t len, void* udata); QPDF_DLL void qpdflogger_set_info( diff --git a/libqpdf/qpdflogger-c.cc b/libqpdf/qpdflogger-c.cc index 4640c83b..290b2667 100644 --- a/libqpdf/qpdflogger-c.cc +++ b/libqpdf/qpdflogger-c.cc @@ -56,12 +56,7 @@ set_log_dest( method(l->discard()); break; case qpdf_log_dest_custom: - method(std::make_shared<Pl_Function>( - identifier, - nullptr, - [fn, udata](unsigned char const* data, size_t len) { - fn(reinterpret_cast<char const*>(data), len, udata); - })); + method(std::make_shared<Pl_Function>(identifier, nullptr, fn, udata)); break; } } diff --git a/libtests/logger_c.c b/libtests/logger_c.c index 94815601..5c4c519a 100644 --- a/libtests/logger_c.c +++ b/libtests/logger_c.c @@ -8,11 +8,11 @@ #include <stdio.h> #include <stdlib.h> -static void +static int fn(char const* data, size_t len, void* udata) { FILE* f = (FILE*)udata; - fwrite(data, 1, len, f); + return fwrite(data, 1, len, f) != len; } static void |