diff options
author | Justus Winter <[email protected]> | 2016-11-07 15:59:15 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-11-07 16:01:48 +0000 |
commit | 4d98a72b88cf167295e1ecd6125b9c7a11b6239f (patch) | |
tree | 900e0c9cd4a3172f7af0fc9591107d9abe1cabc8 | |
parent | tests: Move environment creation and teardown into each test. (diff) | |
download | gnupg-4d98a72b88cf167295e1ecd6125b9c7a11b6239f.tar.gz gnupg-4d98a72b88cf167295e1ecd6125b9c7a11b6239f.zip |
gpgscm: Drop 'len' argument from splice.
* tests/gpgscm/ffi.c (do_splice): Drop 'len' argument, no-one uses it.
* tests/gpgscm/lib.scm (splice): Document foreign function.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | tests/gpgscm/ffi.c | 13 | ||||
-rw-r--r-- | tests/gpgscm/lib.scm | 3 |
2 files changed, 5 insertions, 11 deletions
diff --git a/tests/gpgscm/ffi.c b/tests/gpgscm/ffi.c index 8bb26527f..18aff9824 100644 --- a/tests/gpgscm/ffi.c +++ b/tests/gpgscm/ffi.c @@ -1001,29 +1001,20 @@ do_splice (scheme *sc, pointer args) FFI_PROLOG (); int source; int sink; - ssize_t len = -1; char buffer[1024]; ssize_t bytes_read; FFI_ARG_OR_RETURN (sc, int, source, number, args); FFI_ARG_OR_RETURN (sc, int, sink, number, args); - if (args != sc->NIL) - FFI_ARG_OR_RETURN (sc, ssize_t, len, number, args); FFI_ARGS_DONE_OR_RETURN (sc, args); - while (len == -1 || len > 0) + while (1) { - size_t want = sizeof buffer; - if (len > 0 && (ssize_t) want > len) - want = (size_t) len; - - bytes_read = read (source, buffer, want); + bytes_read = read (source, buffer, sizeof buffer); if (bytes_read == 0) break; if (bytes_read < 0) FFI_RETURN_ERR (sc, gpg_error_from_syserror ()); if (write (sink, buffer, bytes_read) != bytes_read) FFI_RETURN_ERR (sc, gpg_error_from_syserror ()); - if (len != -1) - len -= bytes_read; } FFI_RETURN (sc); } diff --git a/tests/gpgscm/lib.scm b/tests/gpgscm/lib.scm index a8ae2f805..7d2d1ebac 100644 --- a/tests/gpgscm/lib.scm +++ b/tests/gpgscm/lib.scm @@ -207,6 +207,9 @@ ;; Get our process id. (ffi-define (getpid)) +;; Copy data from file descriptor SOURCE to SINK. +(ffi-define (splice source sink)) + ;; ;; Random numbers. ;; |