From: Ruben Kerkhof Date: Fri, 5 Aug 2016 17:46:08 +0000 (+0200) Subject: python plugin: fix building with python 3 X-Git-Tag: collectd-5.6.0~104 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=b55658bb615f6d33e70791d2a7d2a0f2114598cc;p=collectd.git python plugin: fix building with python 3 Python 3 doesn't have PyUnicode_SetDefaultEncoding() CC python_la-python.lo python.c: In function 'cpy_config': python.c:1138:4: error: implicit declaration of function 'PyUnicode_SetDefaultEncoding' [-Werror=implicit-function-declaration] if (PyUnicode_SetDefaultEncoding(encoding)) { ^ cc1: all warnings being treated as errors *** Error code 1 --- diff --git a/src/python.c b/src/python.c index deab4be1..b991f45f 100644 --- a/src/python.c +++ b/src/python.c @@ -1124,21 +1124,23 @@ static int cpy_config(oconfig_item_t *ci) { continue; } } else if (strcasecmp(item->key, "Encoding") == 0) { -#ifdef IS_PY3K - ERROR("python: \"Encoding\" was used in the config file but Python3 was used, which does not support changing encodings"); - status = 1; - continue; -#endif char *encoding = NULL; if (cf_util_get_string(item, &encoding) != 0) { status = 1; continue; } +#ifdef IS_PY3K + ERROR("python: \"Encoding\" was used in the config file but Python3 was used, which does not support changing encodings"); + status = 1; + sfree(encoding); + continue; +#else /* Why is this even necessary? And undocumented? */ if (PyUnicode_SetDefaultEncoding(encoding)) { cpy_log_exception("setting default encoding"); status = 1; } +#endif sfree(encoding); } else if (strcasecmp(item->key, "LogTraces") == 0) { _Bool log_traces;