About a week ago, I have installed
gtypist and tried to run it with ru.typ
that comes with it:
$ gtypist ru.typ
gtypist: line 34: iconv() failed on 'B: Добро пожаловать!':
Invalid or incomplete multibyte or wide character
You should probably use a UTF-8 locale for the selected lesson!
:
?

What can I do about it?

My
$ locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=C
LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=


I have already posted this question on gtypist mailing list
and got the answers that

1. This doesn't happen on Debian stable with the same
     version of gtypist and the same locale.

2. In this case, iconv shouldn't be called at all as it is only
    used to convert UTF-8 lessons to an 8-bit locale (like russian-8bit).

Below is the additional details of the second answer:

 iconv conversion is only used if no UTF-8 locale is detected.
 This is how it is detected:
(http://git.savannah.gnu.org/gitweb/?p=gtypist.git;a=blob;f=src/gtypist.c;h=7328ac6262ae9f8c3cfe89a368bd585fcd59b7e6;hb=refs/heads/branch-2.9):

#ifdef MINGW
  locale_encoding = "UTF-8";
#else
  locale_encoding = nl_langinfo(CODESET);
#endif
  isUTF8Locale = strcasecmp(locale_encoding, "UTF-8") == 0 ||
      strcasecmp(locale_encoding, "UTF8") == 0;
  /* printf("encoding is %s, UTF8=%d\n", locale_encoding, isUTF8Locale); */

Since you build from source on gentoo:
Can you check whether this appears when running ./configure?
  checking for nl_langinfo and CODESET... yes

Also, which arguments are used for ./configure?

If that doesn't help, can you enable to printf above and post the
output?

Reply via email to