branch: externals/pq commit 8964028f11e101bc94163c80dc3cfc26a7f08d1d Author: Andreas Seltenreich <seltenre...@gmx.de> Commit: Andreas Seltenreich <seltenre...@gmx.de>
Coerce non-string query parameters into strings. --- pq.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pq.c b/pq.c index bb55643ddd..b9d68ca0b2 100644 --- a/pq.c +++ b/pq.c @@ -64,6 +64,17 @@ static bool result_ok(emacs_env *env, PGresult *res) static char *my_string_to_c(emacs_env *env, emacs_value string) { ptrdiff_t size; + emacs_value teststring = env->make_string(env, "", 0); + + if (!env->eq(env, + env->type_of(env, teststring), + env->type_of(env, string))) { + emacs_value Fprin1_to_string = + env->intern(env, "prin1-to-string"); + string = env->funcall(env, Fprin1_to_string, + 1, &string); + } + env->copy_string_contents(env, string, 0, &size); char *buf = malloc(size); env->copy_string_contents(env, string, buf, &size);