Switch user-supplied functions in C API to return int

This commit is contained in:
Jay Berkenbilt 2022-09-08 17:34:22 -04:00
parent b0f054e600
commit 66f1fd2ad9
4 changed files with 7 additions and 11 deletions

View File

@ -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*

View File

@ -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(

View File

@ -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;
}
}

View File

@ -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