View Raw SPL
_collist(serstr, ncstr, comflag)
{
local i, s = "", p, nc, scom, def, isvalid;
if (argc < 1)
{
ser = current;
nc = numcols(ser);
}
else
{
if (_isser(serstr))
{
nc = _collist_iswin(serstr) ? numcols(eval(serstr)) : 1
}
else
{
nc = 1;
}
}
if (argc > 1)
{
setvname(ncstr, nc);
}
if (argc > 2)
{
def = getwksattrib("defaultcomment");
isvalid = _collist_validwin(serstr);
loop (i = 1..nc)
{
if (strlen(s) > 0) s = strcat(s, strescape("\n"));
if (isvalid)
{
scom = eval(sprintf("getcomment(%s, 1, %d)", serstr, i));
if (scom == def || strlen(scom) == 0)
{
scom = eval(sprintf("getvunits(%s, 1, %d)", serstr, i));
}
p = sprintf("%d: %s", i, scom);
s = strcat(s, p);
}
}
}
else
{
loop (i = 1..nc)
{
if (strlen(s) > 0) s = strcat(s, strescape("\n"));
p = sprintf("%d", i);
s = strcat(s, p);
}
}
return(s);
}
_collist_iswin(serstr)
{
local wnum;
wnum = castint(serstr);
return(wnum <= numwindows);
}
_collist_length(serstr)
{
return(eval(sprintf("length(%s)", serstr)));
}
_collist_validwin(serstr)
{
local status = 0;
if (_collist_iswin(serstr))
{
status = _collist_length(serstr) > 0;
}
return(status);
}