summaryrefslogtreecommitdiff
path: root/ipl/mprogs/playev.icn
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-01-27 23:51:56 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-01-27 23:51:56 +0000
commit6ab0c0f5bf14ed9c15370407b9ee7e0b4b089ae1 (patch)
tree926065cf45450116098db664e3c61dced9e1f21a /ipl/mprogs/playev.icn
downloadicon-6ab0c0f5bf14ed9c15370407b9ee7e0b4b089ae1.tar.gz
Initial upstream version 9.4.3upstream/9.4.3
Diffstat (limited to 'ipl/mprogs/playev.icn')
-rw-r--r--ipl/mprogs/playev.icn59
1 files changed, 59 insertions, 0 deletions
diff --git a/ipl/mprogs/playev.icn b/ipl/mprogs/playev.icn
new file mode 100644
index 0000000..7fdf595
--- /dev/null
+++ b/ipl/mprogs/playev.icn
@@ -0,0 +1,59 @@
+############################################################################
+#
+# File: playev.icn
+#
+# Subject: Program to play back events
+#
+# Author: Ralph E. Griswold
+#
+# Date: August 16, 1994
+#
+############################################################################
+#
+# This file is in the public domain.
+#
+############################################################################
+#
+# This program plays back events saved by recordev. Since recordev
+# uses image() for recording, some information may be lost.
+#
+# This program is called as
+#
+# playev em <history
+#
+# where history is a file produced by recordev.
+#
+############################################################################
+#
+# Requires: Version 9.0 MT Icon with event monitoring
+#
+############################################################################
+#
+# Links: evinit, ivalue
+#
+############################################################################
+
+link evinit
+link ivalue
+
+procedure main(args)
+ local mask, prog
+
+ prog := load(pop(args), args) | stop("*** cannot EM")
+
+ variable("&eventsource", prog) := &current | stop("no eventsource?")
+
+ mask := @prog # activate EM to get its mask
+
+ while &eventcode := read() do {
+ &eventcode := ivalue(&eventcode) # can fail
+ &eventvalue := read() | break
+ if find(&eventcode, mask) then {
+ &eventvalue := ivalue(&eventvalue) # can fail
+ mask := event(, , prog) # pass event; get mask back
+ }
+ }
+
+ cofail(prog)
+
+end