aboutsummaryrefslogtreecommitdiff
path: root/security/pinentry/files/patch-curses-utf
blob: 9c11655966af72ba14f777d5e61a227a403c6b88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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)