aboutsummaryrefslogtreecommitdiff
path: root/security/pinentry/files/patch-curses-utf
diff options
context:
space:
mode:
Diffstat (limited to 'security/pinentry/files/patch-curses-utf')
-rw-r--r--security/pinentry/files/patch-curses-utf40
1 files changed, 40 insertions, 0 deletions
diff --git a/security/pinentry/files/patch-curses-utf b/security/pinentry/files/patch-curses-utf
new file mode 100644
index 000000000000..9c11655966af
--- /dev/null
+++ b/security/pinentry/files/patch-curses-utf
@@ -0,0 +1,40 @@
+--- m4/curses.m4.orig 2005-09-08 21:25:01.000000000 +0600
++++ m4/curses.m4 2008-02-17 22:23:32.000000000 +0500
+@@ -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(ncurses, 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.orig 2007-06-15 17:36:39.000000000 +0600
++++ pinentry/pinentry-curses.c 2008-02-17 22:28:40.000000000 +0500
+@@ -587,6 +587,13 @@
+ 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)
+@@ -739,6 +746,12 @@
+ if (screen)
+ delscreen (screen);
+
++ if (old_ctype)
++ {
++ setlocale (LC_CTYPE, old_ctype);
++ free(old_ctype);
++ }
++
+ if (ttyfi)
+ fclose (ttyfi);
+ if (ttyfo)