From 004c0ca28ca7f54f7a1a583d1f666f8186b7ed4e Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 26 Nov 2016 02:51:28 +0300 Subject: channel.scm (channel-stream-set!): New procedure * modules/ssh/channel.scm (channel-stream-set!): New procedure. (channel-set-stream!): Deprecate. * libguile-ssh/channel-func.c (guile_ssh_channel_set_stream_x): Rename to 'gssh_channel_stream_set_x'. * doc/api-channels.texi: Update. * tests/client-server.scm ("channel-stream"): New TC. --- doc/api-channels.texi | 2 +- libguile-ssh/channel-func.c | 13 ++++--------- modules/ssh/channel.scm | 13 ++++++++++++- tests/client-server.scm | 13 +++++++++++++ 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/doc/api-channels.texi b/doc/api-channels.texi index c3666fe..7333505 100644 --- a/doc/api-channels.texi +++ b/doc/api-channels.texi @@ -101,7 +101,7 @@ Change size of the @acronym{PTY} to @var{columns} and @var{rows}. The @var{channel} must be open. Return value is undefined. @end deffn -@deffn {Scheme Procedure} channel-set-stream! channel stream +@deffn {Scheme Procedure} channel-stream-set! channel stream Set default @var{stream} for @var{channel}. @var{stream} must be one of the following symbols: @code{stdout} (default), @code{stderr}. The @var{channel} must be open. Throw @code{guile-ssh-error} on error. Return value is diff --git a/libguile-ssh/channel-func.c b/libguile-ssh/channel-func.c index 319f97a..d292c15 100644 --- a/libguile-ssh/channel-func.c +++ b/libguile-ssh/channel-func.c @@ -391,15 +391,10 @@ eturn value is undefined.\ } #undef FUNC_NAME -SCM_DEFINE (guile_ssh_channel_set_stream_x, - "channel-set-stream!", 2, 0, 0, - (SCM channel, SCM stream_name), - "\ -Set stream STREAM_NAME for channel CHANNEL. STREAM_NAME must be one of the \n\ -following symbols: \"stdout\" (default), \"stderr\".\n\ -Return value is undefined.\ -") -#define FUNC_NAME s_guile_ssh_channel_set_stream_x +SCM_GSSH_DEFINE (gssh_channel_stream_set_x, + "%gssh-channel-stream-set!", 2, + (SCM channel, SCM stream_name)) +#define FUNC_NAME s_gssh_channel_stream_set_x { struct channel_data *cd = _scm_to_channel_data (channel); diff --git a/modules/ssh/channel.scm b/modules/ssh/channel.scm index 5660978..361c14f 100644 --- a/modules/ssh/channel.scm +++ b/modules/ssh/channel.scm @@ -63,7 +63,8 @@ channel-cancel-forward channel-request-send-exit-status channel-set-pty-size! - channel-set-stream! + channel-stream-set! + channel-set-stream! ; deprecated channel-stream channel-get-stream ; deprecated channel-session @@ -105,6 +106,16 @@ Return one of the following symbols: stdout, stderr." "Use 'channel-stream' instead.") (%gssh-channel-stream channel)) +(define (channel-stream-set! channel stream) + "Set stream STREAM for channel CHANNEL. STREAM must be one of the following +symbols: stdout (default), stderr. Return value is undefined." + (%gssh-channel-stream-set! channel stream)) + +(define (channel-set-stream! channel stream) + (issue-deprecation-warning "'channel-get-stream' is deprecated. " + "Use 'channel-stream' instead.") + (%gssh-channel-stream-set! channel stream)) + (define* (channel-open-forward channel #:key (source-host "localhost") local-port diff --git a/tests/client-server.scm b/tests/client-server.scm index ae25039..9c7dbaf 100644 --- a/tests/client-server.scm +++ b/tests/client-server.scm @@ -670,6 +670,19 @@ (not (output-port? channel)) (string=? (read-line channel) str)))))))) +(test-assert-with-log "channel-stream" + (run-client-test + (lambda (server) + (start-server/dt-test server + (lambda (channel) + (let ((str (read-line channel))) + (write-line str channel))))) + (lambda () + (call-with-connected-session/channel-test + (lambda (session) + (let ((c (make-channel/dt-test session))) + (equal? (channel-stream c) 'stdout))))))) + ;;; -- cgit v1.2.3