diff options
author | Marcus Brinkmann <[email protected]> | 2008-02-15 23:07:29 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2008-02-15 23:07:29 +0000 |
commit | 8b834710797fa68c168b67df409a792af4752d88 (patch) | |
tree | f96f194b9ce3163cb9c0f7cbd87e359dc6d148ed | |
parent | Add item. (diff) | |
download | gpgme-8b834710797fa68c168b67df409a792af4752d88.tar.gz gpgme-8b834710797fa68c168b67df409a792af4752d88.zip |
2008-02-15 Marcus Brinkmann <[email protected]>
* engine-gpgconf.c (gpgconf_read): Fix end-of-line handline.
-rw-r--r-- | gpgme/ChangeLog | 4 | ||||
-rw-r--r-- | gpgme/engine-gpgconf.c | 10 |
2 files changed, 9 insertions, 5 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 9ac1f61f..2a5c7191 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,7 @@ +2008-02-15 Marcus Brinkmann <[email protected]> + + * engine-gpgconf.c (gpgconf_read): Fix end-of-line handline. + 2008-02-14 Werner Koch <[email protected]> * w32-io.c (_gpgme_io_spawn): Add arg R_PID to return the pid. diff --git a/gpgme/engine-gpgconf.c b/gpgme/engine-gpgconf.c index 26cd45f4..ab03e9d7 100644 --- a/gpgme/engine-gpgconf.c +++ b/gpgme/engine-gpgconf.c @@ -232,24 +232,24 @@ gpgconf_read (void *engine, char *arg1, char *arg2, nread = _gpgme_io_read (rp[0], &line[linelen], LINELENGTH - linelen - 1); if (nread > 0) { - line[linelen + nread] = '\0'; linelen += nread; + line[linelen] = '\0'; while ((mark = strchr (line, '\n'))) { char *eol = mark; - if (eol > &line[0] && *eol == '\r') + if (eol > line && eol[-1] == '\r') eol--; *eol = '\0'; - + /* Got a full line. */ err = (*cb) (hook, line); if (err) break; - linelen -= mark - line; - memmove (line, eol + 1, linelen); + linelen -= mark + 1 - line; + memmove (line, mark + 1, linelen); } } } |