Update of /project/climacs/cvsroot/esa In directory clnet:/tmp/cvs-serv518
Modified Files: esa-command-parser.lisp Log Message: Fixed handling of *unsupplied-argument-marker* for commands with >1 arguments.
Previously, every argument would be treated as if it was *unsupplied-argument-marker* if just a single one was. Was this on purpose? It looked like a slight oversight regarding the behavior of DO.
--- /project/climacs/cvsroot/esa/esa-command-parser.lisp 2006/05/10 09:52:05 1.1 +++ /project/climacs/cvsroot/esa/esa-command-parser.lisp 2006/05/16 14:45:58 1.2 @@ -108,11 +108,13 @@ (let (result) ;; only required args for now. (do ((required-args required-args (cdr required-args)) - (arg (car required-args) (car required-args)) + (arg (car required-args) (cadr required-args)) (command-args command-args (cdr command-args)) - (command-arg (car command-args) (car command-args))) + (command-arg (car command-args) (cadr command-args))) ((null required-args) (cons command-name (nreverse result))) (destructuring-bind (name ptype &rest args) arg - (push (esa-parse-one-arg stream name ptype args command-arg) + (push (if (eq command-arg *unsupplied-argument-marker*) + (esa-parse-one-arg stream name ptype args command-arg) + command-arg) result) (maybe-clear-input)))))))))