diff --git a/collects/racket/cmdline.rkt b/collects/racket/cmdline.rkt index b7ced4103e..a08097f6fa 100644 --- a/collects/racket/cmdline.rkt +++ b/collects/racket/cmdline.rkt @@ -72,6 +72,14 @@ (loop (at-next-keyword (cdr lst)) (cons (list* #'list #`(quote help-labels) pieces) accum))] + [(#:ps) + (for ([x (in-list pieces)]) + (unless (string? (syntax-e x)) + (serror "#:ps clause contains non-string" + x))) + (loop (at-next-keyword (cdr lst)) + (cons (list* #'list #`(quote ps) pieces) + accum))] [(#:once-each #:once-any #:multi #:final) (let ([sublines (let slloop ([sublines pieces]) @@ -239,13 +247,13 @@ (for ([spec (in-list table)]) (unless (and (list? spec) (pair? spec)) (bad-table "spec-set must be a non-empty list: ~a" spec)) - (unless (memq (car spec) '(once-any once-each multi final help-labels)) - (bad-table "spec-set type must be 'once-any, 'once-each, 'multi, 'final, or 'help-labels: ~a" + (unless (memq (car spec) '(once-any once-each multi final help-labels ps)) + (bad-table "spec-set type must be 'once-any, 'once-each, 'multi, 'final, 'help-labels, or 'ps: ~a" (car spec))) (for ([line (in-list (cdr spec))]) - (if (eq? (car spec) 'help-labels) + (if (memq (car spec) '(help-labels ps)) (unless (string? line) - (bad-table "help-labels line must be a string: ~e" line)) + (bad-table "~a line must be a string: ~e" (car spec) line)) (begin (unless (and (list? line) (= (length line) 3)) (bad-table "spec-line must be a list of at three or four items: ~e" line)) @@ -339,7 +347,8 @@ (fprintf sp "~a [