Index: /branches/ide-1.0/ccl/lib/arglist.lisp
===================================================================
--- /branches/ide-1.0/ccl/lib/arglist.lisp	(revision 6616)
+++ /branches/ide-1.0/ccl/lib/arglist.lisp	(revision 6617)
@@ -56,8 +56,4 @@
               (ignore-errors (values (read stream nil eof))))
             (when errorp
-	      #+help-file ; %HEL temporarily avoiding reference to help file
-              (if use-help-file
-                (return-from %arglist 
-                  (%arglist sym include-bindings temp-cons-p nil)))
               (push '&rest res)
               (push ':unparseable res)
@@ -171,4 +167,36 @@
             (values (nreverse res) t))
           (values nil (zerop ncells)))))))
+
+(defun arg-names-from-map (lfun)
+  (multiple-value-bind (nreq nopt restp nkeys allow-other-keys
+                             optinit lexprp
+                             ncells nclosed)
+      (function-args lfun)
+    (declare (ignore optinit ncells allow-other-keys))
+    (collect ((req)
+              (opt)
+              (keys))
+      (let* ((rest nil)
+             (map (car (function-symbol-map lfun))))
+        (if map
+          (let ((total (+ nreq nopt (if (or restp lexprp) 1 0) (or nkeys 0)))
+                (idx (- (length map) nclosed)))
+            (unless (zerop total)
+              (progn
+                (dotimes (x nreq)
+                  (declare (fixnum x))
+                  (req (if (> idx 0) (elt map (decf idx)) (make-arg "ARG" x))))
+                (when (neq nopt 0)
+                  (dotimes (x (the fixnum nopt))
+                    (opt (if (> idx 0) (elt map (decf idx)) (make-arg "OPT" x)))))
+                (when nkeys
+                  (dotimes (i (the fixnum nkeys))
+                    (keys (if (> idx 0) (elt map (decf idx)) (make-arg "KEY" i)))))
+                (when (or restp lexprp)
+                  (setq rest (if (> idx 0) (elt map (decf idx)) 'the-rest)))))))
+        (values (not (null map)) (req) (opt) rest (keys))))))
+              
+              
+
 
 (defvar *req-arg-names*
