From 89046d68216c164d98ccb95b82216e5bebe65efe Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Mon, 1 Sep 2008 19:33:44 +0200 Subject: [PATCH] The previous version of streams.lsp failed to properly redefine CLOS and other functions --- src/clos/streams.lsp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/clos/streams.lsp b/src/clos/streams.lsp index 1e875dd8d..c99f95f6d 100644 --- a/src/clos/streams.lsp +++ b/src/clos/streams.lsp @@ -611,10 +611,11 @@ (let ((x (si::package-lock "COMMON-LISP" nil))) (loop for cl-symbol in '#.+conflicting-symbols+ with gray-package = (find-package "GRAY") - do (let ((gray-symbol (find-symbol (symbol-name cl-symbol) gray-package))) - (setf (fdefinition cl-symbol) (fdefinition gray-symbol)) - (unintern gray-symbol gray-package) - (import cl-symbol gray-package) - (export cl-symbol gray-package))) + do (unless (typep (fdefinition cl-symbol) 'generic-function) + (let ((gray-symbol (find-symbol (symbol-name cl-symbol) gray-package))) + (setf (fdefinition cl-symbol) (fdefinition gray-symbol)) + (unintern gray-symbol gray-package) + (import cl-symbol gray-package) + (export cl-symbol gray-package)))) (si::package-lock "COMMON-LISP" x) nil))