From 218aa941f803fbbd3cc4d5a3d3da2a616cec430f Mon Sep 17 00:00:00 2001 From: jgarcia Date: Sat, 20 May 2006 22:13:47 +0000 Subject: [PATCH] DEFPACKAGE failed to import symbol NIL when specified in :IMPORT-FROM clauses --- src/CHANGELOG | 2 ++ src/lsp/defpackage.lsp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CHANGELOG b/src/CHANGELOG index 36d713efa..4f148d22d 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -204,6 +204,8 @@ ECL 0.9i - The compiler now admits THE forms with type (VALUES ...), though they are ignored. + - (DEFPACKAGE ... (:IMPORT NIL)) failed to import symbol NIL. + * Documentation: - The HTML manuals now use CSS for a more appealing look. diff --git a/src/lsp/defpackage.lsp b/src/lsp/defpackage.lsp index 9a1bc8d04..ad902e9da 100644 --- a/src/lsp/defpackage.lsp +++ b/src/lsp/defpackage.lsp @@ -207,7 +207,9 @@ (dolist (item imported-from-symbol-names-list) (let ((package (find-package (first item)))) (dolist (name (rest item)) - (import (find-or-make-symbol name package))))) + ;; IMPORT can accept a list as argument, hence if we want to + ;; import symbol NIL, we have to enclose it in a list. + (import (or (find-or-make-symbol name package) (list NIL)))))) (mapc #'intern interned-symbol-names) (export (mapcar #'intern exported-symbol-names)) (dolist (package exported-from-package-names)