summaryrefslogtreecommitdiffstats
path: root/Tscript.scm
diff options
context:
space:
mode:
authorJames LewisMoss <dres@debian.org>2000-03-12 09:04:17 -0500
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
commit8cfce36c6a4fc2e0a0ab6ef2db66a23cbe462693 (patch)
tree17427e4f777ca85990a449fe939fbae29770b346 /Tscript.scm
parenta47af30d2f0e96afcd1f14b1984575c359faa3d6 (diff)
parent3278b75942bdbe706f7a0fba87729bb1e935b68b (diff)
downloadscm-8cfce36c6a4fc2e0a0ab6ef2db66a23cbe462693.tar.gz
scm-8cfce36c6a4fc2e0a0ab6ef2db66a23cbe462693.zip
Import Debian changes 5d2-3debian/5d2-3
scm (5d2-3) unstable frozen; urgency=low * Fix libncurses4-dev -> libncurses5-dev build depend (Closes: #58435) * Fix libreadline2-dev -> libreadline4-dev build depend. * Fix license location in copyright file (lintian warning) * Add tetex-bin as a build depend (needs makeinfo) (Closes: #53197) * Add -isp option to dpkg-gencontrol (lintian error) * Move scm to section interpreters. scm (5d2-2) unstable; urgency=low * Apply patch from upstream for bug in eval.c. (Picked up from comp.lang.scheme) * Add Build-Depends on slib, librx1g-dev, libncurses4-dev, libreadlineg2-dev. * Up standards version. * Correct description: this is an R5RS implementation now * Make sure no optimizations are done on m68k. (Closes: #52434) scm (5d2-1) unstable; urgency=low * New upstream. scm (5d1-2) unstable; urgency=low * Remove TAGS on clean (cut the diff back down to reasonable size). scm (5d1-1) unstable; urgency=low * New upstream. * move stuff to /usr/share. scm (5d0-3) unstable; urgency=low * Change scmlit call to ./scmlit call (missed one) (Fixes bugs #37455 and #35545) * Change man file permissions to 644 (fixes lintian warning) scm (5d0-2) unstable; urgency=low * Removed call to add_final in init_crs. lendwin doesn't do anything and scm was crashing when quit everytime in final_scm. * Changed copyright to reflect new source. scm (5d0-1) unstable; urgency=low * New upstream. * Changed (terms) to access "/usr/doc/copyright/GPL". * Changed regex to use -lrx scm (5c3-6) unstable; urgency=low * New maintainer.
Diffstat (limited to 'Tscript.scm')
-rw-r--r--Tscript.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/Tscript.scm b/Tscript.scm
new file mode 100644
index 0000000..22b80ea
--- /dev/null
+++ b/Tscript.scm
@@ -0,0 +1,60 @@
+(define transcript-on #f)
+(define transcript-off #f)
+
+(let ((*transcript-stack* '()))
+ (define (trans-on filename)
+ (let ((trans (open-output-file filename))
+ (inp (current-input-port))
+ (outp (current-output-port))
+ (errp (current-error-port)))
+ (define (clone-port port)
+ (make-soft-port
+ (vector (and (output-port? port)
+ (lambda (c)
+ (write-char c port)
+ (write-char c trans)))
+ (and (output-port? port)
+ (lambda (s)
+ (display s port)
+ (display s trans)))
+ (and (output-port? port)
+ (lambda ()
+ (force-output port)
+ (force-output trans)))
+ (and (input-port? port)
+ (lambda ()
+ (let ((c (read-char port)))
+ (write-char c trans)
+ c)))
+ (lambda ()
+ (close-port port)))
+ (if (input-port? port)
+ (if (output-port? port) "r+" "r")
+ "w")))
+
+ (set! *transcript-stack*
+ (cons (list trans
+ (current-input-port)
+ (current-output-port)
+ (current-error-port))
+ *transcript-stack*))
+ (set-current-input-port (clone-port inp))
+ (set-current-output-port (clone-port outp))
+ (set-current-error-port (clone-port errp))))
+
+ (define (trans-off)
+ (cond ((pair? *transcript-stack*)
+ (apply (lambda (trans inp outp errp)
+ (close-port trans)
+ (set-current-input-port inp)
+ (set-current-output-port outp)
+ (set-current-error-port errp))
+ (car *transcript-stack*))
+ (set! *transcript-stack* (cdr *transcript-stack*)))
+ (else
+ (error "No transcript active"))))
+
+ (set! transcript-on trans-on)
+ (set! transcript-off trans-off))
+
+(provide 'transcript) \ No newline at end of file