Tree data array argument may now be supplied in the form of a gridmap, e.g.
xcall XTREE, sr,sc,answer,$grid(),count,exitcode,er,ec,flags...
Either form of gridmap is accepted, although the handling is somewhat different for the two types. In the case of gridmap(int;varstr;varstr), the handling is analogous to CSV mode except without a file. This is more memory efficient but doesn't support AutoFilter.
In the case of gridmap(int;int;varstr), the grid data is expanded out to an array using column widths based on the actual maximum lengths of the data.
In either case, the operation is limited to display and select only; no editing. The application may specify an empty, partial (pseudo columns only), or full coldef. In the empty or partial case, the column headers are extracted from the gridmap—row 1 in the int;int;varstr case). If the app supplies a coldef with any real columns defined, the column names from the gridmap are ignored, and it is up to the app to make sure that the coldef supplied actually matches the layout of the data.