[Python-checkins] CVS: python/dist/src/Modules _localemodule.c,2.19,2.20
Martin v. L?wis
loewis@users.sourceforge.net
Fri, 10 Aug 2001 06:58:52 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv26513/Modules
Modified Files:
_localemodule.c
Log Message:
Expose nl_langinfo through locale where available.
Index: _localemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_localemodule.c,v
retrieving revision 2.19
retrieving revision 2.20
diff -C2 -d -r2.19 -r2.20
*** _localemodule.c 2001/03/02 06:28:17 2.19
--- _localemodule.c 2001/08/10 13:58:50 2.20
***************
*** 18,21 ****
--- 18,25 ----
#include <ctype.h>
+ #ifdef HAVE_LANGINFO_H
+ #include <langinfo.h>
+ #endif
+
#if defined(MS_WIN32)
#define WINDOWS_LEAN_AND_MEAN
***************
*** 392,395 ****
--- 396,416 ----
#endif
+ #ifdef HAVE_LANGINFO_H
+ static char nl_langinfo__doc__[] =
+ "nl_langinfo(key) -> string\n"
+ "Return the value for the locale information associated with key."
+ ;
+
+ static PyObject*
+ PyLocale_nl_langinfo(PyObject* self, PyObject* args)
+ {
+ int item;
+ if (!PyArg_ParseTuple(args, "i:nl_langinfo", &item))
+ return NULL;
+ return PyString_FromString(nl_langinfo(item));
+ }
+ #endif
+
+
static struct PyMethodDef PyLocale_Methods[] = {
{"setlocale", (PyCFunction) PyLocale_setlocale,
***************
*** 404,407 ****
--- 425,433 ----
{"_getdefaultlocale", (PyCFunction) PyLocale_getdefaultlocale, 0},
#endif
+ #ifdef HAVE_LANGINFO_H
+ {"nl_langinfo", (PyCFunction) PyLocale_nl_langinfo,
+ METH_VARARGS, nl_langinfo__doc__},
+ #endif
+
{NULL, NULL}
};
***************
*** 456,458 ****
--- 482,561 ----
PyDict_SetItemString(d, "__doc__", x);
Py_XDECREF(x);
+
+ #define ADDINT(X) PyModule_AddIntConstant(m, #X, X)
+ #ifdef HAVE_LANGINFO_H
+ /* These constants should exist on any langinfo implementation */
+ ADDINT(DAY_1);
+ ADDINT(DAY_2);
+ ADDINT(DAY_3);
+ ADDINT(DAY_4);
+ ADDINT(DAY_5);
+ ADDINT(DAY_6);
+ ADDINT(DAY_7);
+
+ ADDINT(ABDAY_1);
+ ADDINT(ABDAY_2);
+ ADDINT(ABDAY_3);
+ ADDINT(ABDAY_4);
+ ADDINT(ABDAY_5);
+ ADDINT(ABDAY_6);
+ ADDINT(ABDAY_7);
+
+ ADDINT(MON_1);
+ ADDINT(MON_2);
+ ADDINT(MON_3);
+ ADDINT(MON_4);
+ ADDINT(MON_5);
+ ADDINT(MON_6);
+ ADDINT(MON_7);
+ ADDINT(MON_8);
+ ADDINT(MON_9);
+ ADDINT(MON_10);
+ ADDINT(MON_11);
+ ADDINT(MON_12);
+
+ ADDINT(ABMON_1);
+ ADDINT(ABMON_2);
+ ADDINT(ABMON_3);
+ ADDINT(ABMON_4);
+ ADDINT(ABMON_5);
+ ADDINT(ABMON_6);
+ ADDINT(ABMON_7);
+ ADDINT(ABMON_8);
+ ADDINT(ABMON_9);
+ ADDINT(ABMON_10);
+ ADDINT(ABMON_11);
+ ADDINT(ABMON_12);
+
+ ADDINT(RADIXCHAR);
+ ADDINT(THOUSEP);
+ /* YESSTR and NOSTR are deprecated in glibc, since they are
+ a special case of message translation, which should be rather
+ done using gettext. So we don't expose it to Python in the
+ first place.
+ ADDINT(YESSTR);
+ ADDINT(NOSTR);
+ */
+ ADDINT(CRNCYSTR);
+
+ ADDINT(D_T_FMT);
+ ADDINT(D_FMT);
+ ADDINT(T_FMT);
+ ADDINT(AM_STR);
+ ADDINT(PM_STR);
+
+ #ifdef CODESET
+ /* The following constants are available only with XPG4. */
+ ADDINT(CODESET);
+ ADDINT(T_FMT_AMPM);
+ ADDINT(ERA);
+ ADDINT(ERA_D_FMT);
+ ADDINT(ERA_D_T_FMT);
+ ADDINT(ERA_T_FMT);
+ ADDINT(ALT_DIGITS);
+ ADDINT(YESEXPR);
+ ADDINT(NOEXPR);
+ ADDINT(_DATE_FMT);
+ #endif
+ #endif /* HAVE_LANGINFO_H */
}