[Python-checkins] CVS: python/dist/src/Modules _localemodule.c,2.19,2.20

Martin v. L?wis loewis@users.sourceforge.net
2001年8月10日 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 */
 }

AltStyle によって変換されたページ (->オリジナル) /