Please enable JavaScript to view this site.

A-Shell Development History

Compiler enhancement (edit 633): new compile-time function:

.OFFSIZ$(struct.member)

This is a variation of the .OFFSET() function (see 6.1.1350.0) which returns the combination of the specified structure member's offset and size, as a string formatted as "offset~size". While the combination of the two values in a string may seem unusual, since the offset and size are often used together, the combined format eliminates the need to specify the struct.member name twice, which invites discrepancy, and lends itself to use in runtime functions that may parse out the two values and combine them with other information.

Here are some examples using the structure given in the description of .OFFSET() in 6.1.1350.0 below:

? "Offset~size of FLD1 in ST_1: "; .OFFSIZ$(ST_1.FLD1)   ! "1~10"

? "Offset~size of FLD2 in VAR: "; .OFFSIZ$(VAR.FLD2)    ! "11~13"

? "Offset~size of FLD3 in VX(): "; .OFFSIZ$(VX().FLD3()) ! "24~6"

.OFFSIZ$() is particularly handy in building XTREE coldefs, e.g.:

coldef$ += .OFFSIZ$(ST_1.FLD1) + "~Field~S~~"   ! 1~10~Field 1~S~~

or, using a hypothetical function to build the entire definition for an XTREE column:

coldef$ += Fn'Coldef$(.OFFSIZ$(ST_1.FLD1), title$, cformat$, option$)