core: Map GPGME_STATUS_EOF to the empty string.
authorWerner Koch <wk@gnupg.org>
Fri, 16 Sep 2016 13:06:26 +0000 (15:06 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 16 Sep 2016 14:00:27 +0000 (16:00 +0200)
* src/status-table.c (_gpgme_status_to_string): Return "" for EOF.
* src/engine-gpg.c (read_status): Ditto.  The old code accidently used
GPGME_STATUS_EOF which is the integer 0 and neiteyr NULL nor a string.

Signed-off-by: Werner Koch <wk@gnupg.org>
doc/gpgme.texi
src/engine-gpg.c
src/status-table.c

index dc5a140..18fb6d5 100644 (file)
@@ -4464,12 +4464,13 @@ could not be started.
 @tindex gpgme_interact_cb_t
 The @code{gpgme_interact_cb_t} type is the type of functions which
 @acronym{GPGME} calls if it a key interact operation is on-going.  The
-status keyword @var{status} and the argument line @var{args} are passed
-through by @acronym{GPGME} from the crypto engine.  The file
-descriptor @var{fd} is -1 for normal status messages.  If @var{status}
-indicates a command rather than a status message, the response to the
-command should be written to @var{fd}.  The @var{handle} is provided
-by the user at start of operation.
+status keyword @var{status} and the argument line @var{args} are
+passed through by @acronym{GPGME} from the crypto engine.  An empty
+string represents EOF.  The file descriptor @var{fd} is -1 for normal
+status messages.  If @var{status} indicates a command rather than a
+status message, the response to the command should be written to
+@var{fd}.  The @var{handle} is provided by the user at start of
+operation.
 
 The function should return @code{GPG_ERR_FALSE} if it did not handle
 the status code, @code{0} for success, or any other error value.
index a7431d5..025657a 100644 (file)
@@ -1095,8 +1095,7 @@ read_status (engine_gpg_t gpg)
       err = 0;
       gpg->status.eof = 1;
       if (gpg->status.mon_cb)
-        err = gpg->status.mon_cb (gpg->status.mon_cb_value,
-                                  GPGME_STATUS_EOF, "");
+        err = gpg->status.mon_cb (gpg->status.mon_cb_value, "", "");
       if (gpg->status.fnc)
         {
           char emptystring[1] = {0};
index f44a08f..c9bf357 100644 (file)
@@ -178,6 +178,6 @@ _gpgme_status_to_string (gpgme_status_code_t code)
 
   for (i=0; i < DIM(status_table); i++)
     if (status_table[i].code == code)
-      return status_table[i].name;
+      return status_table[i].name? status_table[i].name : "";
   return "status_code_lost";
 }