Markus Neteler wrote:

> >> @grass-dev: There are encoding issues with --interface-description
> >>    which states UTF-8 also then the actual language encoding is different:
> 
> [then -> when]
> 
> ...
> > The --interface description option needs to either determine the
> > locale's encoding via e.g. nl_langinfo() and use that in the header,
> 
> It seems to be already there?
> 
> lib/gis/parser.c:
> 
> static void G_usage_xml(void)
> {
> ...
> #if defined(HAVE_LANGINFO_H)
>     encoding = nl_langinfo(CODESET);
>     if (!encoding || strlen(encoding) == 0) {
>         encoding = "UTF-8";
>     }

That would explain the sense of déjà vu ;)

> Apparently the Windows built was missing HAVE_LANGINFO_H or it
> isn't properly set on Windows.

This probably won't exist on Windows. I think that we can get the
information from locale_charset(), declared in localcharset.h and
defined in both libintl and libgettext.

Can someone try the attached patch?

-- 
Glynn Clements <[email protected]>

Index: lib/gis/parser.c
===================================================================
--- lib/gis/parser.c    (revision 39007)
+++ lib/gis/parser.c    (working copy)
@@ -77,6 +77,9 @@
 #if defined(HAVE_LANGINFO_H)
 #include <langinfo.h>
 #endif
+#if defined(__MINGW32__) && defined(USE_NLS)
+#include <localcharset.h>
+#endif
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -1311,6 +1314,11 @@
     if (!encoding || strlen(encoding) == 0) {
        encoding = "UTF-8";
     }
+#elif defined(__MINGW32__) && defined(USE_NLS)
+    encoding = locale_charset();
+    if (!encoding || strlen(encoding) == 0) {
+       encoding = "UTF-8";
+    }
 #else
     encoding = "UTF-8";
 #endif
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to