* call-pinentry.c (start_pinentry): Fix for OS X to allow loading
authorWerner Koch <wk@gnupg.org>
Tue, 20 Feb 2007 14:55:32 +0000 (14:55 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 20 Feb 2007 14:55:32 +0000 (14:55 +0000)
of the bundle.  Tested by Benjamin Donnachie.

agent/ChangeLog
agent/call-pinentry.c

index cd19f35..e78d2dc 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-20  Werner Koch  <wk@g10code.com>
+
+       * call-pinentry.c (start_pinentry): Fix for OS X to allow loading
+       of the bundle.  Tested by Benjamin Donnachie.
+
 2007-02-14  Werner Koch  <wk@g10code.com>
 
        * gpg-agent.c: New option --pinentry-touch-file.
index 8b527b2..14e6476 100644 (file)
@@ -214,12 +214,21 @@ start_pinentry (ctrl_t ctrl)
 
   if (!opt.pinentry_program || !*opt.pinentry_program)
     opt.pinentry_program = GNUPG_DEFAULT_PINENTRY;
+    pgmname = opt.pinentry_program;
   if ( !(pgmname = strrchr (opt.pinentry_program, '/')))
     pgmname = opt.pinentry_program;
   else
     pgmname++;
 
+  /* OS X needs the entire file name in argv[0], so that it can locate
+     the resource bundle.  For other systems we stick to the the usual
+     convention of supplying only the name of the program.  */
+#ifdef __APPLE__
+  argv[0] = opt.pinentry_program;
+#else /*!__APPLE__*/
   argv[0] = pgmname;
+#endif /*__APPLE__*/
+
   if (ctrl->display && !opt.keep_display)
     {
       argv[1] = "--display";