diff --git a/collects/scribble/text/output.ss b/collects/scribble/text/output.ss index 4e00cda24e..6056ea03b4 100644 --- a/collects/scribble/text/output.ss +++ b/collects/scribble/text/output.ss @@ -137,12 +137,17 @@ (set-mcar! pfxs npfx) (set-mcdr! pfxs 0) (for-each loop c) (set-mcar! pfxs pfx) (set-mcdr! pfxs lpfx))] - [(prefix) + [(prefix) ; maybe call this `add-prefix'? (let* ([pfx (mcar pfxs)] [lpfx (mcdr pfxs)] [npfx (pfx+ (pfx+col (pfx+ pfx lpfx)) (car c))]) (set-mcar! pfxs npfx) (set-mcdr! pfxs 0) (for-each loop (cdr c)) (set-mcar! pfxs pfx) (set-mcdr! pfxs lpfx))] + [(set-prefix) + (let ([pfx (mcar pfxs)] [lpfx (mcdr pfxs)]) + (set-mcar! pfxs (car c)) (set-mcdr! pfxs 0) + (for-each loop (cdr c)) + (set-mcar! pfxs pfx) (set-mcdr! pfxs lpfx))] [(with-writer) (let ([old write]) (set! write (or (car c) write-string)) @@ -195,6 +200,7 @@ (define/provide-special (disable-prefix)) (define/provide-special (restore-prefix)) (define/provide-special (prefix pfx)) +(define/provide-special (set-prefix pfx)) (define/provide-special (with-writer writer)) (define make-spaces ; (efficiently) diff --git a/collects/scribblings/scribble/preprocessor.scrbl b/collects/scribblings/scribble/preprocessor.scrbl index 0b8ebb87b4..b9f993d4ee 100644 --- a/collects/scribblings/scribble/preprocessor.scrbl +++ b/collects/scribblings/scribble/preprocessor.scrbl @@ -1077,7 +1077,7 @@ module's text does. If you find yourself in such a situation, it is better to switch to a Scheme-with-@"@"-expressions file as shown above.) -@;FIXME: add more text on `restore-prefix', and on `with-writer' +@;FIXME: add more text on `restore-prefix', `set-prefix', `with-writer' @;FIXME: add this to the reference section @;@defform[(include filename)]{