diff options
author | Noel Power <noel.power@suse.com> | 2018-12-11 15:18:10 +0000 |
---|---|---|
committer | Douglas Bagnall <dbagnall@samba.org> | 2019-01-13 00:40:26 +0100 |
commit | 253af8b85450c2830a442084e98734ca338c1b2f (patch) | |
tree | 210a9655386ef57648f285b1ec0636e67367b03d /python/py3compat.h | |
parent | 5232979de8394944dccae848207aae65c1a65ec1 (diff) | |
download | samba-253af8b85450c2830a442084e98734ca338c1b2f.tar.gz |
python: Add new compat PYARG_STR_UNI format
In python2 PYARG_STR_UNI evaluates to et which allows str type
(e.g bytes) pass through unencoded and accepts unicode objects
encoded as utf8
In python3 PYARG_STR_UNI evaluates to es which allows str type
encoded as named/specified encoding
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'python/py3compat.h')
-rw-r--r-- | python/py3compat.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/python/py3compat.h b/python/py3compat.h index 5fa57f323d5..89b7552c791 100644 --- a/python/py3compat.h +++ b/python/py3compat.h @@ -118,6 +118,7 @@ /* PyArg_ParseTuple/Py_BuildValue argument */ #define PYARG_BYTES_LEN "y#" +#define PYARG_STR_UNI "es" #else @@ -179,6 +180,15 @@ /* PyArg_ParseTuple/Py_BuildValue argument */ #define PYARG_BYTES_LEN "s#" +/* + * We want a format that will ensure unicode is encoded using the + * specified encoding 'utf8' (to obtain the char* array) + * In python3 we use "es" but in python2 the specifiying 'es' will + * result in the any incomming 'str' type being decoded first to ascii + * then encoded to the specified 'utf8' encoding. In order to avoid that + * we use format 'et' in python2 instead. + */ +#define PYARG_STR_UNI "et" /* Module init */ |