home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
historic
/
v941.tgz
/
icon.v941src.tar
/
icon.v941src
/
ipl
/
gprocs
/
autopost.icn
< prev
next >
Wrap
Text File
|
2000-07-29
|
2KB
|
72 lines
############################################################################
#
# File: autopost.icn
#
# Subject: Procedures to activate PostScript recorder
#
# Author: Gregg M. Townsend
#
# Date: October 11, 1994
#
############################################################################
#
# This file is in the public domain.
#
############################################################################
#
# These procedures, when linked with an unsuspecting Icon program,
# cause psrecord (q.v) to begin recording PostScript commands when
# an X window is opened. This is done by overloading the built-in
# "open" function.
#
# The results of this may or may not be usable depending on how the
# original program is coded. Psrecord cannot emulate all the X calls
# and works best with programs designed for it.
#
# "stop" and "exit" are also overloaded to try and terminate the
# PostScript file properly. Other program exit paths, notably a
# return from the main procedure, are not caught.
#
############################################################################
#
# Links: psrecord
#
############################################################################
#
# Requires: Version 9 graphics
#
############################################################################
link psrecord
invocable "open", "stop", "exit"
procedure open(args[])
local f
static realfunc
initial realfunc := proc("open", 0)
f := (realfunc ! args) | fail
if args[2] ? upto('gx') then
PSEnable(f)
return f
end
procedure stop(args[])
local f
static realfunc
initial realfunc := proc("stop", 0)
PSDone()
return realfunc ! args
end
procedure exit(args[])
local f
static realfunc
initial realfunc := proc("exit", 0)
PSDone()
return realfunc ! args
end