diff options
author | Werner Koch <[email protected]> | 2004-04-13 09:45:35 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2004-04-13 09:45:35 +0000 |
commit | aaac5dd2dca6dc1bcd2367a93e6d9713379121d7 (patch) | |
tree | f2ce3786aa0d795a4513744fa31b2d3ee1703e2f /sm/misc.c | |
parent | (copy_and_escape): Relaxed quoting. (diff) | |
download | gnupg-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.c | 36 |
1 files changed, 34 insertions, 2 deletions
@@ -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 + +} |