diff options
Diffstat (limited to 'pkg/tbtables/tbzcp.x')
-rw-r--r-- | pkg/tbtables/tbzcp.x | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/pkg/tbtables/tbzcp.x b/pkg/tbtables/tbzcp.x new file mode 100644 index 00000000..6157d18a --- /dev/null +++ b/pkg/tbtables/tbzcp.x @@ -0,0 +1,149 @@ +include "tbtables.h" + +# tbzcp[tbirds] -- put values into a column +# This procedure puts elements into an internal buffer corresponding +# to values in a text file. +# +# Phil Hodge, 3-Feb-1992 Subroutines created. +# Phil Hodge, 31-Mar-1993 Include short datatype. +# Phil Hodge, 4-Mar-1998 Remove calls to tbtwer. +# Phil Hodge, 5-Mar-1998 In tbzcpt, remove lenstr from call to tbzptt. + +procedure tbzcpb (tp, cp, buffer, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +bool buffer[ARB] # i: buffer containing values to be put +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzptb + +begin + k = 1 + do row = firstrow, lastrow { + call tbzptb (tp, cp, row, buffer[k]) + k = k + 1 + } +end + +procedure tbzcpd (tp, cp, buffer, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +double buffer[ARB] # i: buffer containing values to be put +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzptd + +begin + if (COL_DTYPE(cp) == TBL_TY_DOUBLE) { + k = 1 + do row = firstrow, lastrow { + Memd[COL_OFFSET(cp) + row - 1] = buffer[k] + k = k + 1 + } + + } else { + k = 1 + do row = firstrow, lastrow { + call tbzptd (tp, cp, row, buffer[k]) + k = k + 1 + } + } +end + +procedure tbzcpr (tp, cp, buffer, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +real buffer[ARB] # i: buffer containing values to be put +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzptr + +begin + k = 1 + do row = firstrow, lastrow { + call tbzptr (tp, cp, row, buffer[k]) + k = k + 1 + } +end + +procedure tbzcpi (tp, cp, buffer, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +int buffer[ARB] # i: buffer containing values to be put +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzpti + +begin + if (COL_DTYPE(cp) == TBL_TY_INT) { + k = 1 + do row = firstrow, lastrow { + Memi[COL_OFFSET(cp) + row - 1] = buffer[k] + k = k + 1 + } + + } else { + k = 1 + do row = firstrow, lastrow { + call tbzpti (tp, cp, row, buffer[k]) + k = k + 1 + } + } +end + +procedure tbzcps (tp, cp, buffer, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +short buffer[ARB] # i: buffer containing values to be put +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzpts + +begin + k = 1 + do row = firstrow, lastrow { + call tbzpts (tp, cp, row, buffer[k]) + k = k + 1 + } +end + +procedure tbzcpt (tp, cp, buffer, lenstr, firstrow, lastrow) + +pointer tp # i: pointer to table descriptor +pointer cp # i: pointer to column descriptor +char buffer[lenstr,ARB] # i: buffer containing values to be put +int lenstr # i: size of each element +int firstrow # i: number of first row to put +int lastrow # i: number of last row to put +#-- +int row # loop index for row number +int k # index into buffer +errchk tbzptt + +begin + k = 1 + do row = firstrow, lastrow { + call tbzptt (tp, cp, row, buffer[1,k]) + k = k + 1 + } +end |