* keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
authorDavid Shaw <dshaw@jabberwocky.com>
Sun, 22 Jan 2006 21:40:20 +0000 (21:40 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Sun, 22 Jan 2006 21:40:20 +0000 (21:40 +0000)
keyserver helpers on systems that use extensions.

* misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing with
drive letter systems.

g10/ChangeLog
g10/keyserver.c
g10/misc.c

index 4187c1a..4af244c 100644 (file)
@@ -1,3 +1,11 @@
+2006-01-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
+       keyserver helpers on systems that use extensions.
+
+       * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
+       with drive letter systems.
+
 2006-01-17  David Shaw  <dshaw@jabberwocky.com>
 
        * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
index 4376dae..75f45b6 100644 (file)
@@ -946,7 +946,7 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
       /* If exec-path was set, and DISABLE_KEYSERVER_PATH is
         undefined, then don't specify a full path to gpgkeys_foo, so
         that the PATH can work. */
-      command=xmalloc(GPGKEYS_PREFIX_LEN+strlen(scheme)+3+1);
+      command=xmalloc(GPGKEYS_PREFIX_LEN+strlen(scheme)+3+strlen(EXEEXT)+1);
       command[0]='\0';
     }
   else
@@ -954,7 +954,7 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
     {
       /* Specify a full path to gpgkeys_foo. */
       command=xmalloc(strlen(libexecdir)+strlen(DIRSEP_S)+
-                     GPGKEYS_PREFIX_LEN+strlen(scheme)+3+1);
+                     GPGKEYS_PREFIX_LEN+strlen(scheme)+3+strlen(EXEEXT)+1);
       strcpy(command,libexecdir);
       strcat(command,DIRSEP_S);
     }
@@ -967,6 +967,8 @@ keyserver_spawn(enum ks_action action,STRLIST list,KEYDB_SEARCH_DESC *desc,
   if(keyserver->flags.direct_uri)
     strcat(command,"uri");
 
+  strcat(command,EXEEXT);
+
 #ifdef GPGKEYS_CURL
   if(!curl_cant_handle(scheme,keyserver->flags.direct_uri)
      && path_access(command,X_OK)!=0)
index c5b9774..b0fe825 100644 (file)
@@ -1251,7 +1251,15 @@ path_access(const char *file,int mode)
 
   envpath=getenv("PATH");
 
-  if(file[0]=='/' || !envpath)
+  if(!envpath
+#ifdef HAVE_DRIVE_LETTERS
+     || (((file[0]>='A' && file[0]<='Z')
+         || (file[0]>='a' && file[0]<='z'))
+        && file[1]==':')
+#else
+     || file[0]=='/'
+#endif
+     )
     return access(file,mode);
   else
     {