diff options
Diffstat (limited to 'pkg/tbtables/tbxwnc.x')
-rw-r--r-- | pkg/tbtables/tbxwnc.x | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pkg/tbtables/tbxwnc.x b/pkg/tbtables/tbxwnc.x new file mode 100644 index 00000000..40997389 --- /dev/null +++ b/pkg/tbtables/tbxwnc.x @@ -0,0 +1,37 @@ +include "tbtables.h" + +# tbxwnc -- X write new columns +# Write new column descriptors into a row-ordered table. +# The table must have already been reorganized (if necessary) to make +# sufficient space for column descriptors or row length. +# +# Phil Hodge, 1-May-1989 Change calling sequence; don't call tbxsiz. +# Phil Hodge, 30-Mar-1993 TB_INDEF is now TY_CHAR rather than TY_REAL. +# Phil Hodge, 14-Apr-1998 Change calling sequence of tbcwcd. + +procedure tbxwnc (tp, colptr, numcols, old_colused) + +pointer tp # i: pointer to table descriptor +pointer colptr[numcols] # i: pointers to descriptors for new columns +int numcols # i: number of new columns +int old_colused # i: previous value of TB_COLUSED +#-- +pointer cp # Pointer to a specific column +int k # Loop index +errchk tbxncn, tbcwcd + +begin + # Assign appropriate indef values in indef record. + do k = 1, numcols + call tbbnll (tp, colptr[k]) + + # Write descriptors of new columns to table. + do k = 1, numcols { + cp = colptr[k] + call tbcwcd (tp, cp) + } + + # Assign indef values for each new column in each existing row. + if (TB_NROWS(tp) > 0) + call tbxncn (tp, old_colused, Memc[TB_INDEF(tp)]) +end |