[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 */
  }