Diff for /gforth/struct.fs between versions 1.15 and 1.21

version 1.15, 1999/03/23 20:24:20 version 1.21, 2003/03/09 15:16:56
Line 1 Line 1
 \ data structures (like C structs)  \ data structures (like C structs)
   
 \ Copyright (C) 1995, 1997 Free Software Foundation, Inc.  \ Copyright (C) 1995,1997,2000,2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 Line 16
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program; if not, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 : naligned ( addr1 n -- addr2 ) \ gforth  : naligned ( addr1 n -- addr2 ) \ gforth
 \g @var{addr2} is the aligned version of @var{addr1} with respect to the  \g @var{addr2} is the aligned version of @var{addr1} with respect to the
Line 44  does> ( name execution: -- ) Line 44  does> ( name execution: -- )
     create field, ;      create field, ;
   
 : field ( align1 offset1 align size "name" --  align2 offset2 ) \ gforth  : field ( align1 offset1 align size "name" --  align2 offset2 ) \ gforth
     \G @code{name} execution: @var{addr1} -- @var{addr2}.      \g Create a field @var{name} with offset @var{offset1}, and the type
       \g given by @var{align size}. @var{offset2} is the offset of the
       \g next field, and @var{align2} is the alignment of all fields.@*
       \g @code{name} execution: @var{addr1} -- @var{addr2}.@*
       \g @var{addr2}=@var{addr1}+@var{offset1}
     2 pick       2 pick 
     if \ field offset <> 0      if \ field offset <> 0
         [IFDEF]  (Field)          [IFDEF]  (Field)
Line 58  does> ( name execution: -- ) Line 62  does> ( name execution: -- )
     field, ;      field, ;
   
 : end-struct ( align size "name" -- ) \ gforth  : end-struct ( align size "name" -- ) \ gforth
 \g @code{name} execution: @var{addr1} -- @var{addr1+offset1}@*  \g Define a structure/type descriptor @var{name} with alignment
 \g Create a field @var{name} with offset @var{offset1}, and the type  \g @var{align} and size @var{size1} (@var{size} rounded up to be a
 \g given by @var{size align}. @var{offset2} is the offset of the  \g multiple of @var{align}).@*
 \g next field, and @var{align2} is the alignment of all fields.  \g @code{name} execution: -- @var{align size1}@*
     over nalign \ pad size to full alignment      over nalign \ pad size to full alignment
     2constant ;      2constant ;
   

Removed from v.1.15  
changed lines
  Added in v.1.21


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>