diff options
author | Rob Crittenden <rcritten@redhat.com> | 2010-10-06 13:41:26 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-10-22 21:39:20 -0400 |
commit | 0ef9d8810403b68a11c98e92761b63a8d280438a (patch) | |
tree | 838d0a780c47fe95b73d0625dc55d3c40aa44a38 /ipapython/py_default_encoding | |
parent | 5dcf01136380d8e32188c3dcb6a5b77023fc4fe8 (diff) | |
download | freeipa-0ef9d8810403b68a11c98e92761b63a8d280438a.tar.gz freeipa-0ef9d8810403b68a11c98e92761b63a8d280438a.tar.xz freeipa-0ef9d8810403b68a11c98e92761b63a8d280438a.zip |
Add default python encoding module to reset default from ascii to utf-8
Also clean up some duplicate files in the rpm for the UI.
Diffstat (limited to 'ipapython/py_default_encoding')
-rw-r--r-- | ipapython/py_default_encoding/Makefile | 20 | ||||
-rw-r--r-- | ipapython/py_default_encoding/default_encoding_utf8.c | 59 | ||||
-rw-r--r-- | ipapython/py_default_encoding/setup.py | 38 |
3 files changed, 117 insertions, 0 deletions
diff --git a/ipapython/py_default_encoding/Makefile b/ipapython/py_default_encoding/Makefile new file mode 100644 index 000000000..7cd1f6c58 --- /dev/null +++ b/ipapython/py_default_encoding/Makefile @@ -0,0 +1,20 @@ +PYTHONLIBDIR ?= $(shell python -c "from distutils.sysconfig import *; print get_python_lib()") +PACKAGEDIR ?= $(DESTDIR)/$(PYTHONLIBDIR)/ipa +CONFIGDIR ?= $(DESTDIR)/etc/ipa + +all: + python setup.py build + +install: + if [ "$(DESTDIR)" = "" ]; then \ + python setup.py install; \ + else \ + python setup.py install --root $(DESTDIR); \ + fi + +clean: + rm -rf build + +distclean: clean + +maintainer-clean: distclean diff --git a/ipapython/py_default_encoding/default_encoding_utf8.c b/ipapython/py_default_encoding/default_encoding_utf8.c new file mode 100644 index 000000000..c3cdd4eca --- /dev/null +++ b/ipapython/py_default_encoding/default_encoding_utf8.c @@ -0,0 +1,59 @@ +/* + * Authors: + * John Dennis <jdennis@redhat.com> + * + * Copyright (C) 2009 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <Python.h> + +PyDoc_STRVAR(setdefaultencoding_doc, +"setdefaultencoding(encoding='utf-8')\n\ +\n\ +Set the current default string encoding used by the Unicode implementation.\n\ +Defaults to utf-8." +); + +static PyObject * +setdefaultencoding(PyObject *self, PyObject *args, PyObject *kwds) +{ + static char *kwlist[] = {"utf-8", NULL}; + char *encoding; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:setdefaultencoding", kwlist, &encoding)) + return NULL; + + if (PyUnicode_SetDefaultEncoding(encoding)) + return NULL; + + Py_RETURN_NONE; +} + +static PyMethodDef methods[] = { + {"setdefaultencoding", (PyCFunction)setdefaultencoding, METH_VARARGS|METH_KEYWORDS, setdefaultencoding_doc}, + {NULL, NULL} /* sentinel */ +}; + + +PyMODINIT_FUNC +initdefault_encoding_utf8(void) +{ + PyObject* m; + + PyUnicode_SetDefaultEncoding("utf-8"); + m = Py_InitModule3("default_encoding_utf8", methods, "Forces the default encoding to utf-8"); +} diff --git a/ipapython/py_default_encoding/setup.py b/ipapython/py_default_encoding/setup.py new file mode 100644 index 000000000..6ea520f13 --- /dev/null +++ b/ipapython/py_default_encoding/setup.py @@ -0,0 +1,38 @@ +# Authors: +# John Dennis <jdennis@redhat.com> +# +# Copyright (C) 2009 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from distutils.core import setup, Extension + +default_encoding_utf8 = Extension('default_encoding_utf8', ['default_encoding_utf8.c']) + +setup(name = 'python-default-encoding', + version = '0.1', + description = 'Forces the default encoding in Python to be utf-8', + long_description = 'Forces the default encoding in Python to be utf-8', + author = 'John Dennis', + author_email = 'jdennis@redhat.com', + maintainer = 'John Dennis', + maintainer_email = 'jdennis@redhat.com', + license = 'GPLv3+', + platforms = 'posix', + url = '', + download_url = '', + ext_modules = [default_encoding_utf8], +) + |