View Raw SPL
#include
static cbvarname = "";
/* copy series/object from clipboard file to window - called internally */
_cbcopydata(vfile = "", vname = "", w = refwindow(w0), f = -1)
{
local iswin = 0;
cbvarname = vname;
/* delete existing file */
if (fileexists(vfile))
{
delfile(vfile);
}
if (iswindow(w))
{
iswin = getwnum(w);
f = getfocus(w);
/* status message */
printf(_cbrdstr_cping, getwnum(w));
}
/* save series (possibly an object), use reflocal for macro circumvention */
eval(sprintf("setvar('%s', refobject(reflocalvar('w'), %d))", vname, f));
/* save to clipboard file */
savevar(vfile, vname);
/* delete clipboard variable */
eval(sprintf("clear('%s')", vname));
cbvarname = "";
if (iswin)
{
printf(_cbrdstr_cpied, iswin);
}
}
/* error handler */
_cbcopydata_error(errnum, errmes)
{
if (strlen(cbvarname) > 0)
{
eval(sprintf("clear('%s')", cbvarname));
cbvarname = "";
}
error(errmes);
}