From c4a9b7bbd1f209bee50738a521e467672e7dd496 Mon Sep 17 00:00:00 2001 From: Dirk Herrmann Date: Thu, 25 Jan 2001 17:57:29 +0000 Subject: [PATCH] * Make sure that only open file ports are used as readline ports. --- guile-readline/ChangeLog | 7 +++++++ guile-readline/readline.scm | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/guile-readline/ChangeLog b/guile-readline/ChangeLog index 4c227c692..9bd1bf61c 100644 --- a/guile-readline/ChangeLog +++ b/guile-readline/ChangeLog @@ -1,3 +1,10 @@ +2001-01-25 Dirk Herrmann + + * readline.scm (set-readline-input-port!, + set-readline-output-port!): Make sure that only valid port + parameters are passed. Thanks to Martin Grabmueller for sending + a patch that formed the basis for this change. + 2001-01-18 Neil Jerram * readline.scm (make-readline-port): Make readline port diff --git a/guile-readline/readline.scm b/guile-readline/readline.scm index cbb0c4308..16adca408 100644 --- a/guile-readline/readline.scm +++ b/guile-readline/readline.scm @@ -140,10 +140,24 @@ (set! prompt2 (car rest)))) (define-public (set-readline-input-port! p) - (set! input-port p)) + (cond ((or (not (file-port? p)) (not (input-port? p))) + (scm-error 'wrong-type-arg "set-readline-input-port!" + "Not a file input port: ~S" (list p) #f)) + ((port-closed? p) + (scm-error 'misc-error "set-readline-input-port!" + "Port not open: ~S" (list p) #f)) + (else + (set! input-port p)))) (define-public (set-readline-output-port! p) - (set! output-port p)) + (cond ((or (not (file-port? p)) (not (output-port? p))) + (scm-error 'wrong-type-arg "set-readline-input-port!" + "Not a file output port: ~S" (list p) #f)) + ((port-closed? p) + (scm-error 'misc-error "set-readline-output-port!" + "Port not open: ~S" (list p) #f)) + (else + (set! output-port p)))) (define-public (set-readline-read-hook! h) (set! read-hook h))