core: Fix condition-always-true warning in trace macro.
[gpgme.git] / src / engine-g13.c
index 75154ca..ce98b1b 100644 (file)
@@ -212,7 +212,8 @@ g13_release (void *engine)
 
 
 static gpgme_error_t
-g13_new (void **engine, const char *file_name, const char *home_dir)
+g13_new (void **engine, const char *file_name, const char *home_dir,
+         const char *version)
 {
   gpgme_error_t err = 0;
   engine_g13_t g13;
@@ -224,6 +225,8 @@ g13_new (void **engine, const char *file_name, const char *home_dir)
   char *dft_ttytype = NULL;
   char *optstr;
 
+  (void)version; /* Not yet used.  */
+
   g13 = calloc (1, sizeof *g13);
   if (!g13)
     return gpg_error_from_syserror ();
@@ -286,12 +289,10 @@ g13_new (void **engine, const char *file_name, const char *home_dir)
       int rc;
 
       rc = ttyname_r (1, dft_ttyname, sizeof (dft_ttyname));
-      if (rc)
-       {
-         err = gpg_error_from_errno (rc);
-         goto leave;
-       }
-      else
+
+      /* Even though isatty() returns 1, ttyname_r() may fail in many
+        ways, e.g., when /dev/pts is not accessible under chroot.  */
+      if (!rc)
        {
          if (asprintf (&optstr, "OPTION ttyname=%s", dft_ttyname) < 0)
            {
@@ -412,6 +413,9 @@ g13_assuan_simple_command (assuan_context_t ctx, char *cmd,
   char *line;
   size_t linelen;
 
+  (void)status_fnc;
+  (void)status_fnc_value;
+
   err = assuan_write_line (ctx, cmd);
   if (err)
     return err;
@@ -770,6 +774,7 @@ struct engine_ops _gpgme_engine_ops_g13 =
 #else
     NULL,                      /* reset */
 #endif
+    NULL,               /* set_status_cb */
     NULL,               /* set_status_handler */
     NULL,              /* set_command_handler */
     NULL,               /* set_colon_line_handler */
@@ -799,5 +804,6 @@ struct engine_ops _gpgme_engine_ops_g13 =
     g13_cancel,
     g13_cancel_op,
     NULL,               /* passwd */
-    NULL                /* set_pinentry_mode */
+    NULL,               /* set_pinentry_mode */
+    NULL                /* opspawn */
   };