X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-format.lisp;h=7d4095e48c6312b78acdaaa3e8f50f9e4ccbf26f;hb=61dc1d5c0b4988f7e957be876a9abf9f31d51e0a;hp=bd61b58af968212f8c00da0b43cef54935fb3c36;hpb=15e14ef1ccd3ab6f4711632435a40493dc4cdd9d;p=sbcl.git diff --git a/src/code/late-format.lisp b/src/code/late-format.lisp index bd61b58..7d4095e 100644 --- a/src/code/late-format.lisp +++ b/src/code/late-format.lisp @@ -1269,7 +1269,9 @@ (let ((*default-format-error-offset* (1- (format-directive-end iteration)))) (let* ((close (find-directive directives #\} nil)) - (posn (position close directives)) + (posn (or (position close directives) + (error 'format-error + :complaint "no corresponding close brace"))) (remaining (nthcdr (1+ posn) directives))) ;; FIXME: if POSN is zero, the next argument must be ;; a format control (either a function or a string). @@ -1298,6 +1300,7 @@ (unless (format-directive-colonp directive) (incf-both))) ((or (find c "IT%&|_();>") (char= c #\Newline))) + ;; FIXME: check correspondence of ~( and ~) ((char= c #\<) (walk-complex-directive walk-justification)) ((char= c #\[)