Implement CDR 7: Clarification Proposal for CLHS Section 22.3

(The second case)
This commit is contained in:
Daniel Kochmański 2016-11-05 21:12:50 +01:00
parent 17f8b1f81d
commit ff00f80ace
2 changed files with 12 additions and 8 deletions

View file

@ -48,6 +48,9 @@ arity dependent on platform) is also possible.
whenever termination should be forced or not.
** Enhancements
- Implemented CDR-7
https://common-lisp.net/project/cdr/document/7/index.html
- Implemented CDRs: CDR-1, CDR-5, CDR-14
Both CDR-1 and CDR-5 were already implemented, CDR-14 made us to list them
in =*features*=

View file

@ -22,7 +22,8 @@
(in-package "SYS")
(push :formatter *features*)
(pushnew :cdr-7 *features*)
(pushnew :formatter *features*)
;;;; Float printing.
@ -2819,13 +2820,13 @@
(def-format-interpreter #\/ (string start end colonp atsignp params)
(let ((symbol (extract-user-function-name string start end)))
(collect ((args))
(dolist (param-and-offset params)
(let ((param (cdr param-and-offset)))
(case param
(:arg (let ((x (next-arg))) (when x (args x))))
(:remaining (args (length args)))
(t (args param)))))
(apply (fdefinition symbol) stream (next-arg) colonp atsignp (args)))))
(dolist (param-and-offset params)
(let ((param (cdr param-and-offset)))
(case param
(:arg (args (next-arg)))
(:remaining (args (length args)))
(t (args param)))))
(apply (fdefinition symbol) stream (next-arg) colonp atsignp (args)))))
(defun extract-user-function-name (string start end)
(declare (si::c-local))