aboutsummaryrefslogtreecommitdiffstats
path: root/sm/misc.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-04-13 09:45:35 +0000
committerWerner Koch <[email protected]>2004-04-13 09:45:35 +0000
commitaaac5dd2dca6dc1bcd2367a93e6d9713379121d7 (patch)
treef2ce3786aa0d795a4513744fa31b2d3ee1703e2f /sm/misc.c
parent(copy_and_escape): Relaxed quoting. (diff)
downloadgnupg-aaac5dd2dca6dc1bcd2367a93e6d9713379121d7.tar.gz
gnupg-aaac5dd2dca6dc1bcd2367a93e6d9713379121d7.zip
* misc.c (setup_pinentry_env): New.
* import.c (popen_protect_tool): Call it. * export.c (popen_protect_tool): Call it.
Diffstat (limited to 'sm/misc.c')
-rw-r--r--sm/misc.c36
1 files changed, 34 insertions, 2 deletions
diff --git a/sm/misc.c b/sm/misc.c
index 4ffa7153e..281056177 100644
--- a/sm/misc.c
+++ b/sm/misc.c
@@ -1,5 +1,5 @@
/* misc.c - Miscellaneous fucntions
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2004 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -25,9 +25,41 @@
#include <string.h>
#include <ctype.h>
#include <unistd.h>
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
#include "gpgsm.h"
-#include <ksba.h>
+/* Setup the environment so that the pinentry is able to get all
+ required information. This is used prior to an exec of the
+ protect-tool. */
+void
+setup_pinentry_env (void)
+{
+ char *lc;
+
+ if (opt.display)
+ setenv ("DISPLAY", opt.display, 1);
+ if (opt.ttyname)
+ setenv ("GPG_TTY", opt.ttyname, 1);
+ if (opt.ttytype)
+ setenv ("TERM", opt.ttytype, 1);
+
+ if (opt.lc_ctype)
+ setenv ("LC_CTYPE", opt.lc_ctype, 1);
+#if defined(HAVE_SETLOCALE) && defined(LC_CTYPE)
+ else if ( (lc = setlocale (LC_CTYPE, "")) )
+ setenv ("LC_CTYPE", lc, 1);
+#endif
+
+ if (opt.lc_messages)
+ setenv ("LC_MESSAGES", opt.lc_messages, 1);
+#if defined(HAVE_SETLOCALE) && defined(LC_MESSAGES)
+ else if ( (lc = setlocale (LC_MESSAGES, "")) )
+ setenv ("LC_MESSAGES", lc, 1);
+#endif
+
+}