[prev in list] [next in list] [prev in thread] [next in thread]
List: gnupg-commit-watchers
Subject: [svn] gpgme - r1282 - trunk/gpgme
From: cvs () trithemius ! gnupg ! org (svn author marcus)
Date: 2007-11-28 16:31:07
Message-ID: E1IxPYk-0002Yk-GW () trithemius ! gnupg ! org
[Download RAW message or body]
Author: marcus
Date: 2007-11-28 17:31:05 +0100 (Wed, 28 Nov 2007)
New Revision: 1282
Modified:
trunk/gpgme/ChangeLog
trunk/gpgme/w32-util.c
Log:
2007-11-28 Marcus Brinkmann <marcus@g10code.de>
* w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search
for installation directory. Remove old fallback default.
(find_program_in_inst_dir): New function.
Modified: trunk/gpgme/ChangeLog
===================================================================
--- trunk/gpgme/ChangeLog 2007-11-26 10:59:11 UTC (rev 1281)
+++ trunk/gpgme/ChangeLog 2007-11-28 16:31:05 UTC (rev 1282)
@@ -1,3 +1,9 @@
+2007-11-28 Marcus Brinkmann <marcus@g10code.de>
+
+ * w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search
+ for installation directory. Remove old fallback default.
+ (find_program_in_inst_dir): New function.
+
2007-11-26 Werner Koch <wk@g10code.com>
* engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and
Modified: trunk/gpgme/w32-util.c
===================================================================
--- trunk/gpgme/w32-util.c 2007-11-26 10:59:11 UTC (rev 1281)
+++ trunk/gpgme/w32-util.c 2007-11-28 16:31:05 UTC (rev 1282)
@@ -245,6 +245,36 @@
static char *
+find_program_in_inst_dir (const char *name)
+{
+ char *result = NULL;
+ char *tmp;
+
+ tmp = read_w32_registry_string ("HKEY_LOCAL_MACHINE",
+ "Software\\GNU\\GnuPG",
+ "Install Directory");
+ if (!tmp)
+ return NULL;
+
+ result = malloc (strlen (tmp) + 1 + strlen (name) + 1);
+ if (!result)
+ {
+ free (tmp);
+ return NULL;
+ }
+
+ strcpy (stpcpy (stpcpy (result, tmp), "\\"), name);
+ free (tmp);
+ if (access (result, F_OK))
+ {
+ free (result);
+ return NULL;
+ }
+
+ return result;
+}
+
+static char *
find_program_at_standard_place (const char *name)
{
char path[MAX_PATH];
@@ -266,6 +296,7 @@
return result;
}
+
const char *
_gpgme_get_gpg_path (void)
{
@@ -275,11 +306,9 @@
if (!gpg_program)
gpg_program = find_program_in_registry ("gpgProgram");
if (!gpg_program)
+ gpg_program = find_program_in_inst_dir ("gpg.exe");
+ if (!gpg_program)
gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe");
-#ifdef GPG_PATH
- if (!gpg_program)
- gpg_program = GPG_PATH;
-#endif
UNLOCK (get_path_lock);
return gpg_program;
}
@@ -293,11 +322,9 @@
if (!gpgsm_program)
gpgsm_program = find_program_in_registry ("gpgsmProgram");
if (!gpgsm_program)
+ gpgsm_program = find_program_in_inst_dir ("gpgsm.exe");
+ if (!gpgsm_program)
gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe");
-#ifdef GPGSM_PATH
- if (!gpgsm_program)
- gpgsm_program = GPGSM_PATH;
-#endif
UNLOCK (get_path_lock);
return gpgsm_program;
}
_______________________________________________
Gnupg-commits mailing list
Gnupg-commits@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic