From 6d4409d6ec54d83ea6694a223f8f6ec0ea1befe3 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Tue, 24 Sep 2013 11:44:29 -0400
Subject: [PATCH] Have output-translations use the recently improved
 ensure-function for function designators. Fixes lp#1207005.

---
 output-translations.lisp   | 5 +----
 test/test-utilities.script | 6 ++----
 uiop/configuration.lisp    | 6 +-----
 3 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/output-translations.lisp b/output-translations.lisp
index 2b916939..f0c5547a 100644
--- a/output-translations.lisp
+++ b/output-translations.lisp
@@ -197,10 +197,7 @@ and the order is by decreasing length of namestring of the source pathname.")
                   (cond
                     ((location-function-p dst)
                      (funcall collect
-                              (list trusrc
-                                    (if (symbolp (second dst))
-                                        (fdefinition (second dst))
-                                        (eval (second dst))))))
+                              (list trusrc (ensure-function (second dst)))))
                     ((eq dst t)
                      (funcall collect (list trusrc t)))
                     (t
diff --git a/test/test-utilities.script b/test/test-utilities.script
index 7bc8d612..5b67b547 100644
--- a/test/test-utilities.script
+++ b/test/test-utilities.script
@@ -61,10 +61,8 @@
                         (declare (ignore absolute-source))
                         path))
            (function previous-isnt-keyword)
-           (:function f too many arguments)
-           (:function (:lambda isnt lambda))
-           (:function (lambda (too many args) blah))))
- '(t t nil nil nil nil))
+           (:function f too many arguments)))
+ '(t t nil nil))
 
 (initialize-source-registry '())
 
diff --git a/uiop/configuration.lisp b/uiop/configuration.lisp
index edcd57d5..d064c688 100644
--- a/uiop/configuration.lisp
+++ b/uiop/configuration.lisp
@@ -274,11 +274,7 @@ directive.")
   (defun location-function-p (x)
     (and
      (length=n-p x 2)
-     (eq (car x) :function)
-     (or (symbolp (cadr x))
-         (and (consp (cadr x))
-              (eq (caadr x) 'lambda)
-              (length=n-p (cadadr x) 2)))))
+     (eq (car x) :function)))
 
   (defvar *clear-configuration-hook* '())
 
-- 
GitLab