GNUPGHOME and the registry on mingw

jrobinson jrobinson@airswitch.net
Tue Apr 24 20:56:01 2001


Hello,

I would like GnuPG to check the GNUPGHOME environment variable before it
looks in the registry on Windows.  This is useful when you have a
program that runs GnuPG, and you want to set where it looks for its home
directory, instead of looking in the registry.

What do you think?

- Jared Robinson

Here are my patches (generated with "cvs diff -c")

Index: g10.c
===================================================================
RCS file: /cvs/gnupg/gnupg/g10/Attic/g10.c,v
retrieving revision 1.129.2.43
diff -c -r1.129.2.43 g10.c
*** g10.c	2001/03/27 18:13:16	1.129.2.43
--- g10.c	2001/04/24 18:50:36
***************
*** 652,666 ****
      opt.max_cert_depth = 5;
      opt.pgp2_workarounds = 1;
      opt.auto_key_retrieve = 1;
-   #ifdef __MINGW32__
-     opt.homedir = read_w32_registry_string( NULL,
"Software\\GNU\\GnuPG", "HomeDir" );
-   #else
      opt.homedir = getenv("GNUPGHOME");
-   #endif
      if( !opt.homedir || !*opt.homedir ) {
  	opt.homedir = GNUPG_HOMEDIR;
      }
! 
      /* check whether we have a config file on the commandline */
      orig_argc = argc;
      orig_argv = argv;
--- 652,669 ----
      opt.max_cert_depth = 5;
      opt.pgp2_workarounds = 1;
      opt.auto_key_retrieve = 1;
      opt.homedir = getenv("GNUPGHOME");
      if( !opt.homedir || !*opt.homedir ) {
+   #ifdef __MINGW32__
+         opt.homedir = read_w32_registry_string( NULL,
"Software\\GNU\\GnuPG", "HomeDir" );
+         if( !opt.homedir || !*opt.homedir ) {
+             opt.homedir = GNUPG_HOMEDIR;
+         }
+   #else
  	opt.homedir = GNUPG_HOMEDIR;
+   #endif
      }
!         
      /* check whether we have a config file on the commandline */
      orig_argc = argc;
      orig_argv = argv;
Index: gpgv.c
===================================================================
RCS file: /cvs/gnupg/gnupg/g10/Attic/gpgv.c,v
retrieving revision 1.1.2.4
diff -c -r1.1.2.4 gpgv.c
*** gpgv.c	2001/03/08 14:33:23	1.1.2.4
--- gpgv.c	2001/04/24 18:50:36
***************
*** 146,158 ****
      opt.always_trust = 1;
      opt.batch = 1;
  
-   #ifdef __MINGW32__
-     opt.homedir = read_w32_registry_string( NULL,
"Software\\GNU\\GnuPG", "HomeDir" );
-   #else
      opt.homedir = getenv("GNUPGHOME");
-   #endif
      if( !opt.homedir || !*opt.homedir ) {
  	opt.homedir = GNUPG_HOMEDIR;
      }
      tty_no_terminal(1);
      tty_batchmode(1);
--- 146,161 ----
      opt.always_trust = 1;
      opt.batch = 1;
  
      opt.homedir = getenv("GNUPGHOME");
      if( !opt.homedir || !*opt.homedir ) {
+   #ifdef __MINGW32__
+         opt.homedir = read_w32_registry_string( NULL,
"Software\\GNU\\GnuPG", "HomeDir" );
+         if( !opt.homedir || !*opt.homedir ) {
+             opt.homedir = GNUPG_HOMEDIR;
+         }
+   #else
  	opt.homedir = GNUPG_HOMEDIR;
+   #endif
      }
      tty_no_terminal(1);
      tty_batchmode(1);