From 52ef3ac96a027a87b483694baafdda5f6cdba4c1 Mon Sep 17 00:00:00 2001 From: David Vazquez Date: Mon, 17 Dec 2012 19:11:12 +0000 Subject: [PATCH] Avoid redeclarate variable and functions --- lispstrack.lisp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lispstrack.lisp b/lispstrack.lisp index a9fba97..de2cbf9 100644 --- a/lispstrack.lisp +++ b/lispstrack.lisp @@ -453,12 +453,14 @@ (defun %compile-defvar (name) - (push (make-var-binding name) *env*) - (push (concat "var " (lookup-variable name *env*)) *toplevel-compilations*)) + (unless (lookup-variable name *env*) + (push (make-var-binding name) *env*) + (push (concat "var " (lookup-variable name *env*)) *toplevel-compilations*))) (defun %compile-defun (name) - (push (make-func-binding name) *fenv*) - (push (concat "var " (lookup-variable name *fenv*)) *toplevel-compilations*)) + (unless (lookup-variable name *fenv*) + (push (make-func-binding name) *fenv*) + (push (concat "var " (lookup-variable name *fenv*)) *toplevel-compilations*))) (defun %compile-defmacro (name lambda) (push (cons name (cons 'macro lambda)) *fenv*)) -- 1.7.10.4