tests: Mark lots of unused vars and fix const mismatches.
[gpgme.git] / tests / run-sign.c
index b16b9ef..70853ed 100644 (file)
@@ -2,17 +2,17 @@
    Copyright (C) 2009 g10 Code GmbH
 
    This file is part of GPGME.
+
    GPGME is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.
-   
+
    GPGME is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public
    License along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
 
 static int verbose;
 
+static gpg_error_t
+status_cb (void *opaque, const char *keyword, const char *value)
+{
+  (void)opaque;
+  printf ("status_cb: %s %s\n", keyword, value);
+  return 0;
+}
+
 
 static void
 print_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
@@ -43,11 +51,13 @@ print_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
   gpgme_invalid_key_t invkey;
   gpgme_new_signature_t sig;
 
+  (void)type;
+
   for (invkey = result->invalid_signers; invkey; invkey = invkey->next)
-    printf ("Signing key `%s' not used: %s <%s>\n", 
-            nonnull (invkey->fpr), 
+    printf ("Signing key `%s' not used: %s <%s>\n",
+            nonnull (invkey->fpr),
             gpg_strerror (invkey->reason), gpg_strsource (invkey->reason));
-  
+
   for (sig = result->signatures; sig; sig = sig->next)
     {
       printf ("Key fingerprint: %s\n", nonnull (sig->fpr));
@@ -67,16 +77,18 @@ show_usage (int ex)
   fputs ("usage: " PGM " [options] FILE\n\n"
          "Options:\n"
          "  --verbose        run in verbose mode\n"
+         "  --status         print status lines from the backend\n"
          "  --openpgp        use the OpenPGP protocol (default)\n"
          "  --cms            use the CMS protocol\n"
          "  --uiserver       use the UI server\n"
+         "  --loopback       use a loopback pinentry\n"
          "  --key NAME       use key NAME for signing\n"
          , stderr);
   exit (ex);
 }
 
 
-int 
+int
 main (int argc, char **argv)
 {
   int last_argc = -1;
@@ -87,6 +99,8 @@ main (int argc, char **argv)
   gpgme_sig_mode_t sigmode = GPGME_SIG_MODE_NORMAL;
   gpgme_data_t in, out;
   gpgme_sign_result_t result;
+  int print_status = 0;
+  int use_loopback = 0;
 
   if (argc)
     { argc--; argv++; }
@@ -106,6 +120,11 @@ main (int argc, char **argv)
           verbose = 1;
           argc--; argv++;
         }
+      else if (!strcmp (*argv, "--status"))
+        {
+          print_status = 1;
+          argc--; argv++;
+        }
       else if (!strcmp (*argv, "--openpgp"))
         {
           protocol = GPGME_PROTOCOL_OpenPGP;
@@ -129,11 +148,16 @@ main (int argc, char **argv)
           key_string = *argv;
           argc--; argv++;
         }
+      else if (!strcmp (*argv, "--loopback"))
+        {
+          use_loopback = 1;
+          argc--; argv++;
+        }
       else if (!strncmp (*argv, "--", 2))
         show_usage (1);
-      
-    }          
+
+    }
+
   if (argc != 1)
     show_usage (1);
 
@@ -149,11 +173,15 @@ main (int argc, char **argv)
   fail_if_err (err);
   gpgme_set_protocol (ctx, protocol);
   gpgme_set_armor (ctx, 1);
+  if (print_status)
+    gpgme_set_status_cb (ctx, status_cb, NULL);
+  if (use_loopback)
+    gpgme_set_pinentry_mode (ctx, GPGME_PINENTRY_MODE_LOOPBACK);
 
   if (key_string)
     {
       gpgme_key_t akey;
-      
+
       err = gpgme_get_key (ctx, key_string, &akey, 1);
       if (err)
         {