mkportable: Install pinentry depending on the install type.
authorWerner Koch <wk@gnupg.org>
Mon, 12 Aug 2013 10:47:52 +0000 (12:47 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 12 Aug 2013 10:47:52 +0000 (12:47 +0200)
* src/mkportable.c (copy_file): Add arg NAME2 and change all callers.
(copy_all_files): Install pinentry.exe.

src/mkportable-full.h
src/mkportable-light.h
src/mkportable-vanilla.h
src/mkportable.c

index ab97182..9825f6e 100644 (file)
@@ -162,7 +162,6 @@ const char * const full_files[] =
   "pinentry-gtk-2.exe",
   "pinentry-qt4.exe",
   "pinentry-w32.exe",
-  "pinentry.exe",
   "plugins/imageformats/qgif4.dll",
   "plugins/imageformats/qico4.dll",
   "plugins/imageformats/qjpeg4.dll",
index 61ae36c..7af065f 100644 (file)
@@ -120,7 +120,6 @@ const char * const light_files[] =
   "paperkey.exe",
   "pinentry-gtk-2.exe",
   "pinentry-w32.exe",
-  "pinentry.exe",
   "pthreadGC2.dll",
   "pub/gpa.exe",
   "pub/gpg-connect-agent.exe",
index 3e2a16f..a2cddbc 100644 (file)
@@ -35,7 +35,6 @@ const char * const vanilla_files[] =
   "md5sum.exe",
   "paperkey.exe",
   "pinentry-w32.exe",
-  "pinentry.exe",
   "pub/gpg-connect-agent.exe",
   "pub/gpg.exe",
   "pub/gpg2.exe",
index b37bd46..d30d4d5 100644 (file)
@@ -390,10 +390,11 @@ make_dirs (const char *name)
 
 
 /****************
- * Copy the option file skeleton to the given directory.
+ * Copy the option file skeleton to the given directory.  If NAME2 is
+ * not NULL it is used as the destination name.
  */
 static int
-copy_file (const char *name)
+copy_file (const char *name, const char *name2)
 {
   char *srcname, *dstname;
   FILE *srcfp, *dstfp;
@@ -401,10 +402,15 @@ copy_file (const char *name)
   char buffer[4096];
 
   if (verbose > 1)
-    inf ("copying '%s'", name);
+    {
+      if (name2)
+        inf ("copying '%s' as '%s'", name, name2);
+      else
+        inf ("copying '%s'", name);
+    }
 
   srcname = make_sourcename (name);
-  dstname = make_targetname (name);
+  dstname = make_targetname (name2? name2:name);
 
   srcfp = fopen (srcname, "rb");
   if (!srcfp)
@@ -543,7 +549,7 @@ wildcard_copy_file (const char *name)
                     strcat (buffer, tail);
                   }
                 if (!access (buffer, F_OK))
-                  if (copy_file (buffer + srcpos))
+                  if (copy_file (buffer + srcpos, NULL))
                     {
                       res = 1;
                       goto leave;
@@ -580,9 +586,20 @@ copy_all_files (void)
           if (wildcard_copy_file (name))
             return 1;
         }
-      else if (copy_file (name))
+      else if (copy_file (name, NULL))
         return 1;
     }
+
+  /* Pinentry is special.  Depending on the installation type we need
+     to install a copy under the name pinentry.exe.  */
+  switch (install_type)
+    {
+    case iFULL:    copy_file ("pinentry-qt4.exe",   "pinentry.exe"); break;
+    case iLIGHT:   copy_file ("pinentry-gtk-2.exe", "pinentry.exe"); break;
+    case iVANILLA: copy_file ("pinentry-w32.exe",   "pinentry.exe"); break;
+    }
+
+
   return 0;
 }