File pinentry-0.7.2-curses-utf-8.diff of Package pinentry
--- m4/curses.m4
+++ m4/curses.m4
@@ -28,7 +28,7 @@
AC_ARG_ENABLE(ncurses, [ --disable-ncurses don't prefer -lncurses over -lcurses],
, enable_ncurses=yes)
if test "$enable_ncurses" = yes; then
- AC_CHECK_LIB(ncurses, initscr, LIBNCURSES="-lncurses")
+ AC_CHECK_LIB(ncursesw, initscr, LIBNCURSES="-lncursesw")
if test "$LIBNCURSES"; then
# Use ncurses header files instead of the ordinary ones, if possible;
# is there a better way of doing this, that avoids looking in specific
--- pinentry/pinentry-curses.c
+++ pinentry/pinentry-curses.c
@@ -546,6 +545,14 @@
SCREEN *screen = 0;
int done = 0;
char *pin_utf8;
+ char *old_ctype = NULL;
+
+
+ if (pinentry->lc_ctype)
+ {
+ old_ctype = strdup (setlocale (LC_CTYPE, NULL));
+ setlocale (LC_CTYPE, pinentry->lc_ctype);
+ }
/* Open the desired terminal if necessary. */
if (tty_name)
@@ -684,6 +690,12 @@
if (screen)
delscreen (screen);
+ if (old_ctype)
+ {
+ setlocale (LC_CTYPE, old_ctype);
+ free(old_ctype);
+ }
+
if (ttyfi)
fclose (ttyfi);
if (ttyfo)