Artifact 2bc27b6709ac51a9514fa27f186e3128f75f3b1b:


0000: 0a 0a 0a 56 41 43 41 4c 4c 28 33 29 20 20 20 20  ...VACALL(3)    
0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0030: 20 20 20 20 20 20 20 20 20 20 20 56 41 43 41 4c             VACAL
0040: 4c 28 33 29 0a 0a 0a 4e 08 4e 41 08 41 4d 08 4d  L(3)...N.NA.AM.M
0050: 45 08 45 0a 20 20 20 20 20 20 20 76 61 63 61 6c  E.E.       vacal
0060: 6c 20 2d 20 43 20 66 75 6e 63 74 69 6f 6e 73 20  l - C functions 
0070: 63 61 6c 6c 65 64 20 77 69 74 68 20 76 61 72 69  called with vari
0080: 61 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 0a 0a  able arguments..
0090: 53 08 53 59 08 59 4e 08 4e 4f 08 4f 50 08 50 53  S.SY.YN.NO.OP.PS
00a0: 08 53 49 08 49 53 08 53 0a 20 20 20 20 20 20 20  .SI.IS.S.       
00b0: 23 08 23 69 08 69 6e 08 6e 63 08 63 6c 08 6c 75  #.#i.in.nc.cl.lu
00c0: 08 75 64 08 64 65 08 65 20 3c 08 3c 76 08 76 61  .ud.de.e <.<v.va
00d0: 08 61 63 08 63 61 08 61 6c 08 6c 6c 08 6c 2e 08  .ac.ca.al.ll.l..
00e0: 2e 68 08 68 3e 08 3e 0a 0a 20 20 20 20 20 20 20  .h.h>.>..       
00f0: 65 08 65 78 08 78 74 08 74 65 08 65 72 08 72 6e  e.ex.xt.te.er.rn
0100: 08 6e 20 76 08 76 6f 08 6f 69 08 69 64 08 64 2a  .n v.vo.oi.id.d*
0110: 08 2a 20 76 08 76 61 08 61 63 08 63 61 08 61 6c  .* v.va.ac.ca.al
0120: 08 6c 6c 08 6c 5f 08 5f 66 08 66 75 08 75 6e 08  .ll.l_._f.fu.un.
0130: 6e 63 08 63 74 08 74 69 08 69 6f 08 6f 6e 08 6e  nc.ct.ti.io.on.n
0140: 3b 08 3b 0a 0a 20 20 20 20 20 20 20 76 08 76 6f  ;.;..       v.vo
0150: 08 6f 69 08 69 64 08 64 20 5f 08 66 5f 08 75 5f  .oi.id.d _.f_.u_
0160: 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f 08  .n_.c_.t_.i_.o_.
0170: 6e 20 28 08 28 5f 08 61 5f 08 6c 5f 08 69 5f 08  n (.(_.a_.l_.i_.
0180: 73 5f 08 74 29 08 29 0a 20 20 20 20 20 20 20 20  s_.t).).        
0190: 20 76 08 76 61 08 61 5f 08 5f 61 08 61 6c 08 6c   v.va.a_._a.al.l
01a0: 69 08 69 73 08 73 74 08 74 20 5f 08 61 5f 08 6c  i.is.st.t _.a_.l
01b0: 5f 08 69 5f 08 73 5f 08 74 3b 08 3b 0a 20 20 20  _.i_.s_.t;.;.   
01c0: 20 20 20 20 7b 08 7b 0a 20 20 20 20 20 20 20 20      {.{.        
01d0: 20 76 08 76 61 08 61 5f 08 5f 73 08 73 74 08 74   v.va.a_._s.st.t
01e0: 61 08 61 72 08 72 74 08 74 5f 08 5f 5f 08 74 5f  a.ar.rt.t_.__.t_
01f0: 08 79 5f 08 70 5f 08 65 28 08 28 5f 08 61 5f 08  .y_.p_.e(.(_.a_.
0200: 6c 5f 08 69 5f 08 73 5f 08 74 5b 08 5b 2c 08 2c  l_.i_.s_.t[.[,.,
0210: 20 5f 08 72 5f 08 65 5f 08 74 5f 08 75 5f 08 72   _.r_.e_.t_.u_.r
0220: 5f 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f  _.n_.__.t_.y_.p_
0230: 08 65 5d 08 5d 29 08 29 3b 08 3b 0a 20 20 20 20  .e].]).);.;.    
0240: 20 20 20 20 20 5f 08 61 5f 08 72 5f 08 67 20 3d       _.a_.r_.g =
0250: 08 3d 20 76 08 76 61 08 61 5f 08 5f 61 08 61 72  .= v.va.a_._a.ar
0260: 08 72 67 08 67 5f 08 5f 5f 08 74 5f 08 79 5f 08  .rg.g_.__.t_.y_.
0270: 70 5f 08 65 28 08 28 5f 08 61 5f 08 6c 5f 08 69  p_.e(.(_.a_.l_.i
0280: 5f 08 73 5f 08 74 5b 08 5b 2c 08 2c 20 5f 08 61  _.s_.t[.[,., _.a
0290: 5f 08 72 5f 08 67 5f 08 5f 5f 08 74 5f 08 79 5f  _.r_.g_.__.t_.y_
02a0: 08 70 5f 08 65 5d 08 5d 29 08 29 3b 08 3b 0a 20  .p_.e].]).);.;. 
02b0: 20 20 20 20 20 20 20 20 76 08 76 61 08 61 5f 08          v.va.a_.
02c0: 5f 72 08 72 65 08 65 74 08 74 75 08 75 72 08 72  _r.re.et.tu.ur.r
02d0: 6e 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f  n.n_.__.t_.y_.p_
02e0: 08 65 28 08 28 5f 08 61 5f 08 6c 5f 08 69 5f 08  .e(.(_.a_.l_.i_.
02f0: 73 5f 08 74 5b 08 5b 5b 08 5b 2c 08 2c 20 5f 08  s_.t[.[[.[,., _.
0300: 72 5f 08 65 5f 08 74 5f 08 75 5f 08 72 5f 08 6e  r_.e_.t_.u_.r_.n
0310: 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f 08 65 5d  _.__.t_.y_.p_.e]
0320: 08 5d 2c 08 2c 20 5f 08 72 5f 08 65 5f 08 74 5f  .],., _.r_.e_.t_
0330: 08 75 5f 08 72 5f 08 6e 5f 08 5f 5f 08 76 5f 08  .u_.r_.n_.__.v_.
0340: 61 5f 08 6c 5f 08 75 5f 08 65 5d 08 5d 29 08 29  a_.l_.u_.e].]).)
0350: 3b 08 3b 0a 20 20 20 20 20 20 20 7d 08 7d 0a 0a  ;.;.       }.}..
0360: 20 20 20 20 20 20 20 76 08 76 61 08 61 63 08 63         v.va.ac.c
0370: 61 08 61 6c 08 6c 6c 08 6c 5f 08 5f 66 08 66 75  a.al.ll.l_._f.fu
0380: 08 75 6e 08 6e 63 08 63 74 08 74 69 08 69 6f 08  .un.nc.ct.ti.io.
0390: 6f 6e 08 6e 20 3d 08 3d 20 5f 08 26 5f 08 66 5f  on.n =.= _.&_.f_
03a0: 08 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08  .u_.n_.c_.t_.i_.
03b0: 6f 5f 08 6e 3b 08 3b 0a 0a 20 20 20 20 20 20 20  o_.n;.;..       
03c0: 5f 08 76 5f 08 61 5f 08 6c 20 3d 08 3d 20 28 08  _.v_.a_.l =.= (.
03d0: 28 28 08 28 5f 08 72 5f 08 65 5f 08 74 5f 08 75  ((.(_.r_.e_.t_.u
03e0: 5f 08 72 5f 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f  _.r_.n_.__.t_.y_
03f0: 08 70 5f 08 65 20 28 08 28 2a 08 2a 29 08 29 20  .p_.e (.(*.*).) 
0400: 28 08 28 29 08 29 29 08 29 20 76 08 76 61 08 61  (.().)).) v.va.a
0410: 63 08 63 61 08 61 6c 08 6c 6c 08 6c 29 08 29 20  c.ca.al.ll.l).) 
0420: 28 08 28 5f 08 61 5f 08 72 5f 08 67 5f 08 31 2c  (.(_.a_.r_.g_.1,
0430: 08 2c 5f 08 61 5f 08 72 5f 08 67 5f 08 32 2c 08  .,_.a_.r_.g_.2,.
0440: 2c 5f 08 2e 5f 08 2e 5f 08 2e 29 08 29 3b 08 3b  ,_.._.._..).);.;
0450: 0a 0a 44 08 44 45 08 45 53 08 53 43 08 43 52 08  ..D.DE.ES.SC.CR.
0460: 52 49 08 49 50 08 50 54 08 54 49 08 49 4f 08 4f  RI.IP.PT.TI.IO.O
0470: 4e 08 4e 0a 20 20 20 20 20 20 20 54 68 69 73 20  N.N.       This 
0480: 20 73 65 74 20 20 6f 66 20 20 6d 61 63 72 6f 73   set  of  macros
0490: 20 20 70 65 72 6d 69 74 20 20 61 20 43 20 66 75    permit  a C fu
04a0: 6e 63 74 69 6f 6e 20 5f 08 66 5f 08 75 5f 08 6e  nction _.f_.u_.n
04b0: 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f 08 6e 20  _.c_.t_.i_.o_.n 
04c0: 74 6f 20 62 65 0a 20 20 20 20 20 20 20 63 61 6c  to be.       cal
04d0: 6c 65 64 20 77 69 74 68 20 76 61 72 69 61 62 6c  led with variabl
04e0: 65 20 20 61 72 67 75 6d 65 6e 74 73 20 20 61 6e  e  arguments  an
04f0: 64 20 20 74 6f 20 20 72 65 74 75 72 6e 20 20 76  d  to  return  v
0500: 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 72  ariable.       r
0510: 65 74 75 72 6e 20 76 61 6c 75 65 73 2e 20 20 54  eturn values.  T
0520: 68 69 73 20 69 73 20 6d 75 63 68 20 6c 69 6b 65  his is much like
0530: 20 74 68 65 20 76 08 76 61 08 61 72 08 72 61 08   the v.va.ar.ra.
0540: 61 72 08 72 67 08 67 73 08 73 28 33 29 20 66 61  ar.rg.gs.s(3) fa
0550: 63 69 6c 69 74 79 2c 0a 20 20 20 20 20 20 20 62  cility,.       b
0560: 75 74 20 61 6c 73 6f 20 61 6c 6c 6f 77 73 20 74  ut also allows t
0570: 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20  he return value 
0580: 74 6f 20 62 65 20 20 73 70 65 63 69 66 69 65 64  to be  specified
0590: 20 20 61 74 20 20 72 75 6e 0a 20 20 20 20 20 20    at  run.      
05a0: 20 74 69 6d 65 2e 0a 0a 20 20 20 20 20 20 20 46   time...       F
05b0: 75 6e 63 74 69 6f 6e 20 20 63 61 6c 6c 69 6e 67  unction  calling
05c0: 20 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 64 69    conventions di
05d0: 66 66 65 72 20 63 6f 6e 73 69 64 65 72 61 62 6c  ffer considerabl
05e0: 79 20 6f 6e 20 64 69 66 2d 0a 20 20 20 20 20 20  y on dif-.      
05f0: 20 66 65 72 65 6e 74 20 6d 61 63 68 69 6e 65 73   ferent machines
0600: 2c 20 20 61 6e 64 20 20 5f 08 76 5f 08 61 5f 08  ,  and  _.v_.a_.
0610: 63 5f 08 61 5f 08 6c 5f 08 6c 20 20 61 74 74 65  c_.a_.l_.l  atte
0620: 6d 70 74 73 20 20 74 6f 20 20 70 72 6f 76 69 64  mpts  to  provid
0630: 65 20 20 73 6f 6d 65 0a 20 20 20 20 20 20 20 64  e  some.       d
0640: 65 67 72 65 65 20 6f 66 20 69 73 6f 6c 61 74 69  egree of isolati
0650: 6f 6e 20 66 72 6f 6d 20 73 75 63 68 20 61 72 63  on from such arc
0660: 68 69 74 65 63 74 75 72 65 20 64 65 70 65 6e 64  hitecture depend
0670: 65 6e 63 69 65 73 2e 0a 0a 20 20 20 20 20 20 20  encies...       
0680: 54 68 65 20 20 66 75 6e 63 74 69 6f 6e 20 20 74  The  function  t
0690: 68 61 74 20 63 61 6e 20 62 65 20 63 61 6c 6c 65  hat can be calle
06a0: 64 20 77 69 74 68 20 61 6e 79 20 6e 75 6d 62 65  d with any numbe
06b0: 72 20 61 6e 64 20 74 79 70 65 0a 20 20 20 20 20  r and type.     
06c0: 20 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61    of arguments a
06d0: 6e 64 20 77 68 69 63 68 20 77 69 6c 6c 20 20 72  nd which will  r
06e0: 65 74 75 72 6e 20 20 61 6e 79 20 20 74 79 70 65  eturn  any  type
06f0: 20 20 6f 66 20 20 72 65 74 75 72 6e 0a 20 20 20    of  return.   
0700: 20 20 20 20 76 61 6c 75 65 20 69 73 20 76 08 76      value is v.v
0710: 61 08 61 63 08 63 61 08 61 6c 08 6c 6c 08 6c 2e  a.ac.ca.al.ll.l.
0720: 20 20 49 74 20 77 69 6c 6c 20 64 6f 20 73 6f 6d    It will do som
0730: 65 20 6d 61 67 69 63 20 61 6e 64 20 63 61 6c 6c  e magic and call
0740: 20 74 68 65 20 66 75 6e 63 2d 0a 20 20 20 20 20   the func-.     
0750: 20 20 74 69 6f 6e 20 73 74 6f 72 65 64 20 69 6e    tion stored in
0760: 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 76 08   the variable v.
0770: 76 61 08 61 63 08 63 61 08 61 6c 08 6c 6c 08 6c  va.ac.ca.al.ll.l
0780: 5f 08 5f 66 08 66 75 08 75 6e 08 6e 63 08 63 74  _._f.fu.un.nc.ct
0790: 08 74 69 08 69 6f 08 6f 6e 08 6e 2e 20 20 49 66  .ti.io.on.n.  If
07a0: 20 79 6f 75 20 20 77 61 6e 74 0a 20 20 20 20 20   you  want.     
07b0: 20 20 74 6f 20 6d 61 6b 65 20 6d 6f 72 65 20 74    to make more t
07c0: 68 61 6e 20 6f 6e 65 20 75 73 65 20 6f 66 20 5f  han one use of _
07d0: 08 76 5f 08 61 5f 08 63 5f 08 61 5f 08 6c 5f 08  .v_.a_.c_.a_.l_.
07e0: 6c 2c 20 75 73 65 20 74 68 65 20 5f 08 74 5f 08  l, use the _.t_.
07f0: 72 5f 08 61 5f 08 6d 5f 08 70 5f 08 6f 5f 08 6c  r_.a_.m_.p_.o_.l
0800: 5f 08 69 5f 08 6e 5f 08 65 28 33 29 0a 20 20 20  _.i_.n_.e(3).   
0810: 20 20 20 20 66 61 63 69 6c 69 74 79 20 74 6f 20      facility to 
0820: 20 73 74 6f 72 65 20 20 5f 08 26 5f 08 66 5f 08   store  _.&_.f_.
0830: 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f  u_.n_.c_.t_.i_.o
0840: 5f 08 6e 20 20 69 6e 74 6f 20 20 76 08 76 61 08  _.n  into  v.va.
0850: 61 63 08 63 61 08 61 6c 08 6c 6c 08 6c 5f 08 5f  ac.ca.al.ll.l_._
0860: 66 08 66 75 08 75 6e 08 6e 63 08 63 74 08 74 69  f.fu.un.nc.ct.ti
0870: 08 69 6f 08 6f 6e 08 6e 20 20 6a 75 73 74 0a 20  .io.on.n  just. 
0880: 20 20 20 20 20 20 62 65 66 6f 72 65 20 63 61 6c        before cal
0890: 6c 69 6e 67 20 76 08 76 61 08 61 63 08 63 61 08  ling v.va.ac.ca.
08a0: 61 6c 08 6c 6c 08 6c 2e 0a 0a 20 20 20 20 20 20  al.ll.l...      
08b0: 20 57 69 74 68 69 6e 20 20 5f 08 66 5f 08 75 5f   Within  _.f_.u_
08c0: 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f 08  .n_.c_.t_.i_.o_.
08d0: 6e 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  n, the following
08e0: 20 6d 61 63 72 6f 73 20 63 61 6e 20 62 65 20 75   macros can be u
08f0: 73 65 64 20 74 6f 20 77 61 6c 6b 0a 20 20 20 20  sed to walk.    
0900: 20 20 20 74 68 72 6f 75 67 68 20 74 68 65 20 61     through the a
0910: 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 61 6e 64  rgument list and
0920: 20 73 70 65 63 69 66 79 20 61 20 72 65 74 75 72   specify a retur
0930: 6e 20 76 61 6c 75 65 3a 0a 0a 20 20 20 20 20 20  n value:..      
0940: 20 76 08 76 61 08 61 5f 08 5f 73 08 73 74 08 74   v.va.a_._s.st.t
0950: 61 08 61 72 08 72 74 08 74 5f 08 5f 5f 08 74 5f  a.ar.rt.t_.__.t_
0960: 08 79 5f 08 70 5f 08 65 28 08 28 5f 08 61 5f 08  .y_.p_.e(.(_.a_.
0970: 6c 5f 08 69 5f 08 73 5f 08 74 5b 08 5b 2c 08 2c  l_.i_.s_.t[.[,.,
0980: 20 5f 08 72 5f 08 65 5f 08 74 5f 08 75 5f 08 72   _.r_.e_.t_.u_.r
0990: 5f 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f  _.n_.__.t_.y_.p_
09a0: 08 65 5d 08 5d 29 08 29 3b 08 3b 0a 20 20 20 20  .e].]).);.;.    
09b0: 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 73            starts
09c0: 20 74 68 65 20 77 61 6c 6b 20 74 68 72 6f 75 67   the walk throug
09d0: 68 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c  h the argument l
09e0: 69 73 74 20 61 6e 64 20 73 70 65 63 2d 0a 20 20  ist and spec-.  
09f0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 69 65              ifie
0a00: 73 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70  s the return typ
0a10: 65 2e 0a 0a 20 20 20 20 20 20 20 5f 08 61 5f 08  e...       _.a_.
0a20: 72 5f 08 67 20 3d 08 3d 20 76 08 76 61 08 61 5f  r_.g =.= v.va.a_
0a30: 08 5f 61 08 61 72 08 72 67 08 67 5f 08 5f 5f 08  ._a.ar.rg.g_.__.
0a40: 74 5f 08 79 5f 08 70 5f 08 65 28 08 28 5f 08 61  t_.y_.p_.e(.(_.a
0a50: 5f 08 6c 5f 08 69 5f 08 73 5f 08 74 5b 08 5b 2c  _.l_.i_.s_.t[.[,
0a60: 08 2c 20 5f 08 61 5f 08 72 5f 08 67 5f 08 5f 5f  ., _.a_.r_.g_.__
0a70: 08 74 5f 08 79 5f 08 70 5f 08 65 5d 08 5d 29 08  .t_.y_.p_.e].]).
0a80: 29 3b 08 3b 0a 20 20 20 20 20 20 20 20 20 20 20  );.;.           
0a90: 20 20 20 66 65 74 63 68 65 73 20 74 68 65 20 6e     fetches the n
0aa0: 65 78 74 20 61 72 67 75 6d 65 6e 74 20 66 72 6f  ext argument fro
0ab0: 6d 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c  m the argument l
0ac0: 69 73 74 2e 0a 0a 20 20 20 20 20 20 20 76 08 76  ist...       v.v
0ad0: 61 08 61 5f 08 5f 72 08 72 65 08 65 74 08 74 75  a.a_._r.re.et.tu
0ae0: 08 75 72 08 72 6e 08 6e 5f 08 5f 5f 08 74 5f 08  .ur.rn.n_.__.t_.
0af0: 79 5f 08 70 5f 08 65 28 08 28 5f 08 61 5f 08 6c  y_.p_.e(.(_.a_.l
0b00: 5f 08 69 5f 08 73 5f 08 74 5b 08 5b 5b 08 5b 2c  _.i_.s_.t[.[[.[,
0b10: 08 2c 20 5f 08 72 5f 08 65 5f 08 74 5f 08 75 5f  ., _.r_.e_.t_.u_
0b20: 08 72 5f 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08  .r_.n_.__.t_.y_.
0b30: 70 5f 08 65 5d 08 5d 2c 08 2c 20 5f 08 72 5f 08  p_.e].],., _.r_.
0b40: 65 5f 08 74 5f 08 75 5f 08 72 5f 08 6e 5f 08 5f  e_.t_.u_.r_.n_._
0b50: 5f 08 76 5f 08 61 5f 08 6c 5f 08 75 5f 08 65 5d  _.v_.a_.l_.u_.e]
0b60: 08 5d 29 08 29 3b 08 3b 0a 20 20 20 20 20 20 20  .]).);.;.       
0b70: 20 20 20 20 20 20 20 65 6e 64 73 20 20 74 68 65         ends  the
0b80: 20 77 61 6c 6b 20 74 68 72 6f 75 67 68 20 74 68   walk through th
0b90: 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20  e argument list 
0ba0: 61 6e 64 20 73 70 65 63 69 2d 0a 20 20 20 20 20  and speci-.     
0bb0: 20 20 20 20 20 20 20 20 20 66 69 65 73 20 74 68           fies th
0bc0: 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 2e 0a  e return value..
0bd0: 0a 20 20 20 20 20 20 20 54 68 65 20 5f 08 74 5f  .       The _.t_
0be0: 08 79 5f 08 70 5f 08 65 20 69 6e 20 76 08 76 61  .y_.p_.e in v.va
0bf0: 08 61 5f 08 5f 73 08 73 74 08 74 61 08 61 72 08  .a_._s.st.ta.ar.
0c00: 72 74 08 74 5f 08 5f 5f 08 74 5f 08 79 5f 08 70  rt.t_.__.t_.y_.p
0c10: 5f 08 65 20 61 6e 64 20 76 08 76 61 08 61 5f 08  _.e and v.va.a_.
0c20: 5f 72 08 72 65 08 65 74 08 74 75 08 75 72 08 72  _r.re.et.tu.ur.r
0c30: 6e 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f  n.n_.__.t_.y_.p_
0c40: 08 65 20 73 68 61 6c 6c 20 62 65 20 20 6f 6e 65  .e shall be  one
0c50: 0a 0a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
0c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 31 34 20               14 
0c70: 4a 61 6e 75 61 72 79 20 32 30 30 31 20 20 20 20  January 2001    
0c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c90: 20 20 20 20 31 0a 0a 0a 0a 0a 0a 56 41 43 41 4c      1......VACAL
0ca0: 4c 28 33 29 20 20 20 20 20 20 20 20 20 20 20 20  L(3)            
0cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cd0: 20 20 20 56 41 43 41 4c 4c 28 33 29 0a 0a 0a 20     VACALL(3)... 
0ce0: 20 20 20 20 20 20 6f 66 20 76 08 76 6f 08 6f 69        of v.vo.oi
0cf0: 08 69 64 08 64 2c 20 69 08 69 6e 08 6e 74 08 74  .id.d, i.in.nt.t
0d00: 2c 20 75 08 75 69 08 69 6e 08 6e 74 08 74 2c 20  , u.ui.in.nt.t, 
0d10: 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 2c 20 75 08  l.lo.on.ng.g, u.
0d20: 75 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 2c 20 6c  ul.lo.on.ng.g, l
0d30: 08 6c 6f 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f 08  .lo.on.ng.gl.lo.
0d40: 6f 6e 08 6e 67 08 67 2c 20 75 08 75 6c 08 6c 6f  on.ng.g, u.ul.lo
0d50: 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f 08 6f 6e 08  .on.ng.gl.lo.on.
0d60: 6e 67 08 67 2c 20 64 08 64 6f 08 6f 75 08 75 2d  ng.g, d.do.ou.u-
0d70: 08 2d 0a 20 20 20 20 20 20 20 62 08 62 6c 08 6c  .-.       b.bl.l
0d80: 65 08 65 2c 20 73 08 73 74 08 74 72 08 72 75 08  e.e, s.st.tr.ru.
0d90: 75 63 08 63 74 08 74 2c 20 70 08 70 74 08 74 72  uc.ct.t, p.pt.tr
0da0: 08 72 20 6f 72 20 28 66 6f 72 20 41 4e 53 49 20  .r or (for ANSI 
0db0: 43 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e  C calling conven
0dc0: 74 69 6f 6e 73 20 20 6f 6e 6c 79 29 0a 20 20 20  tions  only).   
0dd0: 20 20 20 20 63 08 63 68 08 68 61 08 61 72 08 72      c.ch.ha.ar.r
0de0: 2c 20 73 08 73 63 08 63 68 08 68 61 08 61 72 08  , s.sc.ch.ha.ar.
0df0: 72 2c 20 75 08 75 63 08 63 68 08 68 61 08 61 72  r, u.uc.ch.ha.ar
0e00: 08 72 2c 20 73 08 73 68 08 68 6f 08 6f 72 08 72  .r, s.sh.ho.or.r
0e10: 74 08 74 2c 20 75 08 75 73 08 73 68 08 68 6f 08  t.t, u.us.sh.ho.
0e20: 6f 72 08 72 74 08 74 2c 20 66 08 66 6c 08 6c 6f  or.rt.t, f.fl.lo
0e30: 08 6f 61 08 61 74 08 74 2c 20 64 65 70 65 6e 64  .oa.at.t, depend
0e40: 69 6e 67 20 6f 6e 20 74 68 65 0a 20 20 20 20 20  ing on the.     
0e50: 20 20 63 6c 61 73 73 20 6f 66 20 5f 08 72 5f 08    class of _.r_.
0e60: 65 5f 08 74 5f 08 75 5f 08 72 5f 08 6e 5f 08 5f  e_.t_.u_.r_.n_._
0e70: 5f 08 74 5f 08 79 5f 08 70 5f 08 65 2e 0a 0a 20  _.t_.y_.p_.e... 
0e80: 20 20 20 20 20 20 54 68 65 20 5f 08 74 5f 08 79        The _.t_.y
0e90: 5f 08 70 5f 08 65 20 73 70 65 63 69 66 69 65 72  _.p_.e specifier
0ea0: 73 20 69 6e 20 20 76 08 76 61 08 61 5f 08 5f 73  s in  v.va.a_._s
0eb0: 08 73 74 08 74 61 08 61 72 08 72 74 08 74 5f 08  .st.ta.ar.rt.t_.
0ec0: 5f 5f 08 74 5f 08 79 5f 08 70 5f 08 65 20 20 61  __.t_.y_.p_.e  a
0ed0: 6e 64 20 20 76 08 76 61 08 61 5f 08 5f 72 08 72  nd  v.va.a_._r.r
0ee0: 65 08 65 74 08 74 75 08 75 72 08 72 6e 08 6e 5f  e.et.tu.ur.rn.n_
0ef0: 08 5f 5f 08 74 5f 08 79 5f 08 70 5f 08 65 0a 20  .__.t_.y_.p_.e. 
0f00: 20 20 20 20 20 20 6d 75 73 74 20 20 62 65 20 20        must  be  
0f10: 74 68 65 20 20 73 61 6d 65 2e 20 20 54 68 65 20  the  same.  The 
0f20: 5f 08 72 5f 08 65 5f 08 74 5f 08 75 5f 08 72 5f  _.r_.e_.t_.u_.r_
0f30: 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08 70 5f 08  .n_.__.t_.y_.p_.
0f40: 65 20 73 70 65 63 69 66 69 65 72 73 20 70 61 73  e specifiers pas
0f50: 73 65 64 20 74 6f 0a 20 20 20 20 20 20 20 76 08  sed to.       v.
0f60: 76 61 08 61 5f 08 5f 73 08 73 74 08 74 61 08 61  va.a_._s.st.ta.a
0f70: 72 08 72 74 08 74 5f 08 5f 5f 08 74 5f 08 79 5f  r.rt.t_.__.t_.y_
0f80: 08 70 5f 08 65 20 61 6e 64 20 76 08 76 61 08 61  .p_.e and v.va.a
0f90: 5f 08 5f 72 08 72 65 08 65 74 08 74 75 08 75 72  _._r.re.et.tu.ur
0fa0: 08 72 6e 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08  .rn.n_.__.t_.y_.
0fb0: 70 5f 08 65 20 6d 75 73 74 20 62 65 20 74 68 65  p_.e must be the
0fc0: 20 73 61 6d 65 2e 0a 0a 20 20 20 20 20 20 20 54   same...       T
0fd0: 68 65 20 5f 08 74 5f 08 79 5f 08 70 5f 08 65 20  he _.t_.y_.p_.e 
0fe0: 69 6e 20 76 08 76 61 08 61 5f 08 5f 61 08 61 72  in v.va.a_._a.ar
0ff0: 08 72 67 08 67 5f 08 5f 5f 08 74 5f 08 79 5f 08  .rg.g_.__.t_.y_.
1000: 70 5f 08 65 20 73 68 61 6c 6c 20 62 65 20 6f 6e  p_.e shall be on
1010: 65 20 6f 66 20 69 08 69 6e 08 6e 74 08 74 2c 20  e of i.in.nt.t, 
1020: 20 75 08 75 69 08 69 6e 08 6e 74 08 74 2c 20 20   u.ui.in.nt.t,  
1030: 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 2c 0a 20 20  l.lo.on.ng.g,.  
1040: 20 20 20 20 20 75 08 75 6c 08 6c 6f 08 6f 6e 08       u.ul.lo.on.
1050: 6e 67 08 67 2c 20 20 6c 08 6c 6f 08 6f 6e 08 6e  ng.g,  l.lo.on.n
1060: 67 08 67 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 2c  g.gl.lo.on.ng.g,
1070: 20 20 75 08 75 6c 08 6c 6f 08 6f 6e 08 6e 67 08    u.ul.lo.on.ng.
1080: 67 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 2c 20 20  gl.lo.on.ng.g,  
1090: 64 08 64 6f 08 6f 75 08 75 62 08 62 6c 08 6c 65  d.do.ou.ub.bl.le
10a0: 08 65 2c 20 73 08 73 74 08 74 72 08 72 75 08 75  .e, s.st.tr.ru.u
10b0: 63 08 63 74 08 74 2c 20 70 08 70 74 08 74 72 08  c.ct.t, p.pt.tr.
10c0: 72 20 6f 72 20 28 66 6f 72 0a 20 20 20 20 20 20  r or (for.      
10d0: 20 41 4e 53 49 20 43 20 20 63 61 6c 6c 69 6e 67   ANSI C  calling
10e0: 20 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 20 6f    conventions  o
10f0: 6e 6c 79 29 20 20 63 08 63 68 08 68 61 08 61 72  nly)  c.ch.ha.ar
1100: 08 72 2c 20 20 73 08 73 63 08 63 68 08 68 61 08  .r,  s.sc.ch.ha.
1110: 61 72 08 72 2c 20 20 75 08 75 63 08 63 68 08 68  ar.r,  u.uc.ch.h
1120: 61 08 61 72 08 72 2c 0a 20 20 20 20 20 20 20 73  a.ar.r,.       s
1130: 08 73 68 08 68 6f 08 6f 72 08 72 74 08 74 2c 20  .sh.ho.or.rt.t, 
1140: 20 75 08 75 73 08 73 68 08 68 6f 08 6f 72 08 72   u.us.sh.ho.or.r
1150: 74 08 74 2c 20 66 08 66 6c 08 6c 6f 08 6f 61 08  t.t, f.fl.lo.oa.
1160: 61 74 08 74 2c 20 64 65 70 65 6e 64 69 6e 67 20  at.t, depending 
1170: 6f 6e 20 74 68 65 20 63 6c 61 73 73 20 6f 66 20  on the class of 
1180: 5f 08 61 5f 08 72 5f 08 67 5f 08 5f 5f 08 74 5f  _.a_.r_.g_.__.t_
1190: 08 79 5f 08 70 5f 08 65 2e 0a 0a 20 20 20 20 20  .y_.p_.e...     
11a0: 20 20 49 6e 20 76 08 76 61 08 61 5f 08 5f 73 08    In v.va.a_._s.
11b0: 73 74 08 74 61 08 61 72 08 72 74 08 74 5f 08 5f  st.ta.ar.rt.t_._
11c0: 73 08 73 74 08 74 72 08 72 75 08 75 63 08 63 74  s.st.tr.ru.uc.ct
11d0: 08 74 28 08 28 5f 08 61 5f 08 6c 5f 08 69 5f 08  .t(.(_.a_.l_.i_.
11e0: 73 5f 08 74 2c 08 2c 20 20 5f 08 72 5f 08 65 5f  s_.t,.,  _.r_.e_
11f0: 08 74 5f 08 75 5f 08 72 5f 08 6e 5f 08 5f 5f 08  .t_.u_.r_.n_.__.
1200: 74 5f 08 79 5f 08 70 5f 08 65 2c 08 2c 20 20 5f  t_.y_.p_.e,.,  _
1210: 08 73 5f 08 70 5f 08 6c 5f 08 69 5f 08 74 5f 08  .s_.p_.l_.i_.t_.
1220: 74 5f 08 61 5f 08 62 5f 08 6c 5f 08 65 29 08 29  t_.a_.b_.l_.e).)
1230: 3b 08 3b 20 20 74 68 65 0a 20 20 20 20 20 20 20  ;.;  the.       
1240: 5f 08 73 5f 08 70 5f 08 6c 5f 08 69 5f 08 74 5f  _.s_.p_.l_.i_.t_
1250: 08 74 5f 08 61 5f 08 62 5f 08 6c 5f 08 65 20 20  .t_.a_.b_.l_.e  
1260: 66 6c 61 67 20 20 73 70 65 63 69 66 69 65 73 20  flag  specifies 
1270: 77 68 65 74 68 65 72 20 74 68 65 20 73 74 72 75  whether the stru
1280: 63 74 20 5f 08 72 5f 08 65 5f 08 74 5f 08 75 5f  ct _.r_.e_.t_.u_
1290: 08 72 5f 08 6e 5f 08 5f 5f 08 74 5f 08 79 5f 08  .r_.n_.__.t_.y_.
12a0: 70 5f 08 65 0a 20 20 20 20 20 20 20 63 61 6e 20  p_.e.       can 
12b0: 62 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 72  be returned in r
12c0: 65 67 69 73 74 65 72 73 20 73 75 63 68 20 74 68  egisters such th
12d0: 61 74 20 65 76 65 72 79 20 73 74 72 75 63 74 20  at every struct 
12e0: 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 66 69   field.       fi
12f0: 74 73 20 65 6e 74 69 72 65 6c 79 20 69 6e 20 61  ts entirely in a
1300: 20 73 69 6e 67 6c 65 20 72 65 67 69 73 74 65 72   single register
1310: 2e 20 54 68 69 73 20 6e 65 65 64 73 20 74 6f 20  . This needs to 
1320: 62 65 20 73 70 65 63 2d 0a 20 20 20 20 20 20 20  be spec-.       
1330: 69 66 69 65 64 20 66 6f 72 20 73 74 72 75 63 74  ified for struct
1340: 73 20 6f 66 20 73 69 7a 65 20 32 2a 73 69 7a 65  s of size 2*size
1350: 6f 66 28 6c 6f 6e 67 29 2e 20 46 6f 72 20 20 73  of(long). For  s
1360: 74 72 75 63 74 73 20 20 6f 66 0a 20 20 20 20 20  tructs  of.     
1370: 20 20 73 69 7a 65 20 3c 3d 20 73 69 7a 65 6f 66    size <= sizeof
1380: 28 6c 6f 6e 67 29 2c 20 5f 08 73 5f 08 70 5f 08  (long), _.s_.p_.
1390: 6c 5f 08 69 5f 08 74 5f 08 74 5f 08 61 5f 08 62  l_.i_.t_.t_.a_.b
13a0: 5f 08 6c 5f 08 65 20 69 73 20 69 67 6e 6f 72 65  _.l_.e is ignore
13b0: 64 20 61 6e 64 20 61 73 73 75 6d 65 64 20 74 6f  d and assumed to
13c0: 0a 20 20 20 20 20 20 20 62 65 20 31 2e 20 46 6f  .       be 1. Fo
13d0: 72 20 73 74 72 75 63 74 73 20 6f 66 20 73 69 7a  r structs of siz
13e0: 65 20 3e 20 32 2a 73 69 7a 65 6f 66 28 6c 6f 6e  e > 2*sizeof(lon
13f0: 67 29 2c 20 5f 08 73 5f 08 70 5f 08 6c 5f 08 69  g), _.s_.p_.l_.i
1400: 5f 08 74 5f 08 74 5f 08 61 5f 08 62 5f 08 6c 5f  _.t_.t_.a_.b_.l_
1410: 08 65 20 20 69 73 0a 20 20 20 20 20 20 20 69 67  .e  is.       ig
1420: 6e 6f 72 65 64 20 20 61 6e 64 20 20 61 73 73 75  nored  and  assu
1430: 6d 65 64 20 74 6f 20 62 65 20 30 2e 20 54 68 65  med to be 0. The
1440: 72 65 20 61 72 65 20 73 6f 6d 65 20 68 61 6e 64  re are some hand
1450: 79 20 6d 61 63 72 6f 73 0a 20 20 20 20 20 20 20  y macros.       
1460: 66 6f 72 20 74 68 69 73 3a 0a 20 20 20 20 20 20  for this:.      
1470: 20 76 08 76 61 08 61 5f 08 5f 77 08 77 6f 08 6f   v.va.a_._w.wo.o
1480: 72 08 72 64 08 64 5f 08 5f 73 08 73 70 08 70 6c  r.rd.d_._s.sp.pl
1490: 08 6c 69 08 69 74 08 74 74 08 74 61 08 61 62 08  .li.it.tt.ta.ab.
14a0: 62 6c 08 6c 65 08 65 5f 08 5f 31 08 31 20 28 08  bl.le.e_._1.1 (.
14b0: 28 5f 08 74 5f 08 79 5f 08 70 5f 08 65 5f 08 31  (_.t_.y_.p_.e_.1
14c0: 29 08 29 0a 20 20 20 20 20 20 20 76 08 76 61 08  ).).       v.va.
14d0: 61 5f 08 5f 77 08 77 6f 08 6f 72 08 72 64 08 64  a_._w.wo.or.rd.d
14e0: 5f 08 5f 73 08 73 70 08 70 6c 08 6c 69 08 69 74  _._s.sp.pl.li.it
14f0: 08 74 74 08 74 61 08 61 62 08 62 6c 08 6c 65 08  .tt.ta.ab.bl.le.
1500: 65 5f 08 5f 32 08 32 20 28 08 28 5f 08 74 5f 08  e_._2.2 (.(_.t_.
1510: 79 5f 08 70 5f 08 65 5f 08 31 2c 08 2c 20 5f 08  y_.p_.e_.1,., _.
1520: 74 5f 08 79 5f 08 70 5f 08 65 5f 08 32 29 08 29  t_.y_.p_.e_.2).)
1530: 0a 20 20 20 20 20 20 20 76 08 76 61 08 61 5f 08  .       v.va.a_.
1540: 5f 77 08 77 6f 08 6f 72 08 72 64 08 64 5f 08 5f  _w.wo.or.rd.d_._
1550: 73 08 73 70 08 70 6c 08 6c 69 08 69 74 08 74 74  s.sp.pl.li.it.tt
1560: 08 74 61 08 61 62 08 62 6c 08 6c 65 08 65 5f 08  .ta.ab.bl.le.e_.
1570: 5f 33 08 33 20 28 08 28 5f 08 74 5f 08 79 5f 08  _3.3 (.(_.t_.y_.
1580: 70 5f 08 65 5f 08 31 2c 08 2c 20 5f 08 74 5f 08  p_.e_.1,., _.t_.
1590: 79 5f 08 70 5f 08 65 5f 08 32 2c 08 2c 20 5f 08  y_.p_.e_.2,., _.
15a0: 74 5f 08 79 5f 08 70 5f 08 65 5f 08 33 29 08 29  t_.y_.p_.e_.3).)
15b0: 0a 20 20 20 20 20 20 20 76 08 76 61 08 61 5f 08  .       v.va.a_.
15c0: 5f 77 08 77 6f 08 6f 72 08 72 64 08 64 5f 08 5f  _w.wo.or.rd.d_._
15d0: 73 08 73 70 08 70 6c 08 6c 69 08 69 74 08 74 74  s.sp.pl.li.it.tt
15e0: 08 74 61 08 61 62 08 62 6c 08 6c 65 08 65 5f 08  .ta.ab.bl.le.e_.
15f0: 5f 34 08 34 20 28 08 28 5f 08 74 5f 08 79 5f 08  _4.4 (.(_.t_.y_.
1600: 70 5f 08 65 5f 08 31 2c 08 2c 20 5f 08 74 5f 08  p_.e_.1,., _.t_.
1610: 79 5f 08 70 5f 08 65 5f 08 32 2c 08 2c 20 5f 08  y_.p_.e_.2,., _.
1620: 74 5f 08 79 5f 08 70 5f 08 65 5f 08 33 2c 08 2c  t_.y_.p_.e_.3,.,
1630: 20 5f 08 74 5f 08 79 5f 08 70 5f 08 65 5f 08 34   _.t_.y_.p_.e_.4
1640: 29 08 29 0a 20 20 20 20 20 20 20 46 6f 72 20 61  ).).       For a
1650: 20 73 74 72 75 63 74 20 77 69 74 68 20 74 68 72   struct with thr
1660: 65 65 20 73 6c 6f 74 73 0a 20 20 20 20 20 20 20  ee slots.       
1670: 73 08 73 74 08 74 72 08 72 75 08 75 63 08 63 74  s.st.tr.ru.uc.ct
1680: 08 74 20 7b 08 7b 20 5f 08 74 5f 08 79 5f 08 70  .t {.{ _.t_.y_.p
1690: 5f 08 65 5f 08 31 20 5f 08 69 5f 08 64 5f 08 31  _.e_.1 _.i_.d_.1
16a0: 3b 08 3b 20 5f 08 74 5f 08 79 5f 08 70 5f 08 65  ;.; _.t_.y_.p_.e
16b0: 5f 08 32 20 5f 08 69 5f 08 64 5f 08 32 3b 08 3b  _.2 _.i_.d_.2;.;
16c0: 20 5f 08 74 5f 08 79 5f 08 70 5f 08 65 5f 08 33   _.t_.y_.p_.e_.3
16d0: 20 5f 08 69 5f 08 64 5f 08 33 3b 08 3b 20 7d 08   _.i_.d_.3;.; }.
16e0: 7d 0a 20 20 20 20 20 20 20 79 6f 75 20 63 61 6e  }.       you can
16f0: 20 73 70 65 63 69 66 79 20 5f 08 73 5f 08 70 5f   specify _.s_.p_
1700: 08 6c 5f 08 69 5f 08 74 5f 08 74 5f 08 61 5f 08  .l_.i_.t_.t_.a_.
1710: 62 5f 08 6c 5f 08 65 20 61 73 20 76 08 76 61 08  b_.l_.e as v.va.
1720: 61 5f 08 5f 77 08 77 6f 08 6f 72 08 72 64 08 64  a_._w.wo.or.rd.d
1730: 5f 08 5f 73 08 73 70 08 70 6c 08 6c 69 08 69 74  _._s.sp.pl.li.it
1740: 08 74 74 08 74 61 08 61 62 08 62 6c 08 6c 65 08  .tt.ta.ab.bl.le.
1750: 65 5f 08 5f 33 08 33 20 28 08 28 5f 08 74 5f 08  e_._3.3 (.(_.t_.
1760: 79 5f 08 70 5f 08 65 5f 08 31 2c 08 2c 0a 20 20  y_.p_.e_.1,.,.  
1770: 20 20 20 20 20 5f 08 74 5f 08 79 5f 08 70 5f 08       _.t_.y_.p_.
1780: 65 5f 08 32 2c 08 2c 20 5f 08 74 5f 08 79 5f 08  e_.2,., _.t_.y_.
1790: 70 5f 08 65 5f 08 33 29 08 29 20 2e 0a 0a 0a 4e  p_.e_.3).) ....N
17a0: 08 4e 4f 08 4f 54 08 54 45 08 45 53 08 53 0a 20  .NO.OT.TE.ES.S. 
17b0: 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 73 20        Functions 
17c0: 20 77 68 69 63 68 20 77 61 6e 74 20 74 6f 20 65   which want to e
17d0: 6d 75 6c 61 74 65 20 4b 65 72 6e 69 67 68 61 6e  mulate Kernighan
17e0: 20 26 20 52 69 74 63 68 69 65 20 73 74 79 6c 65   & Ritchie style
17f0: 0a 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e  .       function
1800: 73 20 28 69 2e 65 2e 2c 20 69 6e 20 41 4e 53 49  s (i.e., in ANSI
1810: 20 20 43 2c 20 20 66 75 6e 63 74 69 6f 6e 73 20    C,  functions 
1820: 20 77 69 74 68 6f 75 74 20 20 61 20 20 74 79 70   without  a  typ
1830: 65 64 0a 20 20 20 20 20 20 20 61 72 67 75 6d 65  ed.       argume
1840: 6e 74 20 20 6c 69 73 74 29 20 20 63 61 6e 6e 6f  nt  list)  canno
1850: 74 20 20 75 73 65 20 20 74 68 65 20 5f 08 74 5f  t  use  the _.t_
1860: 08 79 5f 08 70 5f 08 65 20 76 61 6c 75 65 73 20  .y_.p_.e values 
1870: 63 08 63 68 08 68 61 08 61 72 08 72 2c 20 73 08  c.ch.ha.ar.r, s.
1880: 73 63 08 63 68 08 68 61 08 61 72 08 72 2c 0a 20  sc.ch.ha.ar.r,. 
1890: 20 20 20 20 20 20 75 08 75 63 08 63 68 08 68 61        u.uc.ch.ha
18a0: 08 61 72 08 72 2c 20 73 08 73 68 08 68 6f 08 6f  .ar.r, s.sh.ho.o
18b0: 72 08 72 74 08 74 2c 20 75 08 75 73 08 73 68 08  r.rt.t, u.us.sh.
18c0: 68 6f 08 6f 72 08 72 74 08 74 2c 20 66 08 66 6c  ho.or.rt.t, f.fl
18d0: 08 6c 6f 08 6f 61 08 61 74 08 74 2e 20 20 41 73  .lo.oa.at.t.  As
18e0: 20 70 72 65 73 63 72 69 62 65 64 20 62 79 20 74   prescribed by t
18f0: 68 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20  he default.     
1900: 20 20 4b 26 52 20 20 43 20 65 78 70 72 65 73 73    K&R  C express
1910: 69 6f 6e 20 70 72 6f 6d 6f 74 69 6f 6e 73 2c 20  ion promotions, 
1920: 74 68 65 79 20 68 61 76 65 20 74 6f 20 75 73 65  they have to use
1930: 20 69 08 69 6e 08 6e 74 08 74 20 69 6e 73 74 65   i.in.nt.t inste
1940: 61 64 0a 20 20 20 20 20 20 20 6f 66 20 63 08 63  ad.       of c.c
1950: 68 08 68 61 08 61 72 08 72 2c 20 73 08 73 63 08  h.ha.ar.r, s.sc.
1960: 63 68 08 68 61 08 61 72 08 72 2c 20 75 08 75 63  ch.ha.ar.r, u.uc
1970: 08 63 68 08 68 61 08 61 72 08 72 2c 20 73 08 73  .ch.ha.ar.r, s.s
1980: 68 08 68 6f 08 6f 72 08 72 74 08 74 2c 20 75 08  h.ho.or.rt.t, u.
1990: 75 73 08 73 68 08 68 6f 08 6f 72 08 72 74 08 74  us.sh.ho.or.rt.t
19a0: 20 61 6e 64 20 64 08 64 6f 08 6f 75 08 75 62 08   and d.do.ou.ub.
19b0: 62 6c 08 6c 65 08 65 20 69 6e 73 74 65 61 64 20  bl.le.e instead 
19c0: 6f 66 0a 20 20 20 20 20 20 20 66 08 66 6c 08 6c  of.       f.fl.l
19d0: 6f 08 6f 61 08 61 74 08 74 2e 0a 0a 20 20 20 20  o.oa.at.t...    
19e0: 20 20 20 54 68 65 20 20 20 6d 61 63 72 6f 73 20     The   macros 
19f0: 20 20 76 08 76 61 08 61 5f 08 5f 73 08 73 74 08    v.va.a_._s.st.
1a00: 74 61 08 61 72 08 72 74 08 74 5f 08 5f 6c 08 6c  ta.ar.rt.t_._l.l
1a10: 6f 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f 08 6f 6e  o.on.ng.gl.lo.on
1a20: 08 6e 67 08 67 28 08 28 29 08 29 2c 20 20 76 08  .ng.g(.().),  v.
1a30: 76 61 08 61 5f 08 5f 73 08 73 74 08 74 61 08 61  va.a_._s.st.ta.a
1a40: 72 08 72 74 08 74 5f 08 5f 75 08 75 6c 08 6c 6f  r.rt.t_._u.ul.lo
1a50: 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f 08 6f 6e 08  .on.ng.gl.lo.on.
1a60: 6e 67 08 67 28 08 28 29 08 29 2c 0a 20 20 20 20  ng.g(.().),.    
1a70: 20 20 20 76 08 76 61 08 61 5f 08 5f 72 08 72 65     v.va.a_._r.re
1a80: 08 65 74 08 74 75 08 75 72 08 72 6e 08 6e 5f 08  .et.tu.ur.rn.n_.
1a90: 5f 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 6c 08 6c  _l.lo.on.ng.gl.l
1aa0: 6f 08 6f 6e 08 6e 67 08 67 28 08 28 29 08 29 2c  o.on.ng.g(.().),
1ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76                 v
1ac0: 08 76 61 08 61 5f 08 5f 72 08 72 65 08 65 74 08  .va.a_._r.re.et.
1ad0: 74 75 08 75 72 08 72 6e 08 6e 5f 08 5f 75 08 75  tu.ur.rn.n_._u.u
1ae0: 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f  l.lo.on.ng.gl.lo
1af0: 08 6f 6e 08 6e 67 08 67 28 08 28 29 08 29 2c 0a  .on.ng.g(.().),.
1b00: 20 20 20 20 20 20 20 76 08 76 61 08 61 5f 08 5f         v.va.a_._
1b10: 61 08 61 72 08 72 67 08 67 5f 08 5f 6c 08 6c 6f  a.ar.rg.g_._l.lo
1b20: 08 6f 6e 08 6e 67 08 67 6c 08 6c 6f 08 6f 6e 08  .on.ng.gl.lo.on.
1b30: 6e 67 08 67 28 08 28 29 08 29 20 20 61 6e 64 20  ng.g(.().)  and 
1b40: 76 08 76 61 08 61 5f 08 5f 61 08 61 72 08 72 67  v.va.a_._a.ar.rg
1b50: 08 67 5f 08 5f 75 08 75 6c 08 6c 6f 08 6f 6e 08  .g_._u.ul.lo.on.
1b60: 6e 67 08 67 6c 08 6c 6f 08 6f 6e 08 6e 67 08 67  ng.gl.lo.on.ng.g
1b70: 28 08 28 29 08 29 20 77 6f 72 6b 20 6f 6e 6c 79  (.().) work only
1b80: 20 69 66 20 74 68 65 0a 20 20 20 20 20 20 20 43   if the.       C
1b90: 20 63 6f 6d 70 69 6c 65 72 20 68 61 73 20 61 20   compiler has a 
1ba0: 77 6f 72 6b 69 6e 67 20 6c 08 6c 6f 08 6f 6e 08  working l.lo.on.
1bb0: 6e 67 08 67 20 6c 08 6c 6f 08 6f 6e 08 6e 67 08  ng.g l.lo.on.ng.
1bc0: 67 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 72  g 64-bit integer
1bd0: 20 74 79 70 65 2e 0a 0a 20 20 20 20 20 20 20 54   type...       T
1be0: 68 65 20 73 74 72 75 63 74 20 74 79 70 65 73 20  he struct types 
1bf0: 75 73 65 64 20 69 6e 20 76 08 76 61 08 61 5f 08  used in v.va.a_.
1c00: 5f 73 08 73 74 08 74 61 08 61 72 08 72 74 08 74  _s.st.ta.ar.rt.t
1c10: 5f 08 5f 73 08 73 74 08 74 72 08 72 75 08 75 63  _._s.st.tr.ru.uc
1c20: 08 63 74 08 74 28 08 28 29 08 29 20 61 6e 64 20  .ct.t(.().) and 
1c30: 76 08 76 61 08 61 5f 08 5f 73 08 73 74 08 74 72  v.va.a_._s.st.tr
1c40: 08 72 75 08 75 63 08 63 74 08 74 28 08 28 29 08  .ru.uc.ct.t(.().
1c50: 29 0a 20 20 20 20 20 20 20 6d 75 73 74 20 20 6f  ).       must  o
1c60: 6e 6c 79 20 20 63 6f 6e 74 61 69 6e 20 20 28 73  nly  contain  (s
1c70: 69 67 6e 65 64 20 20 6f 72 20 75 6e 73 69 67 6e  igned  or unsign
1c80: 65 64 29 20 69 6e 74 2c 20 6c 6f 6e 67 2c 20 6c  ed) int, long, l
1c90: 6f 6e 67 0a 20 20 20 20 20 20 20 6c 6f 6e 67 20  ong.       long 
1ca0: 6f 72 20 70 6f 69 6e 74 65 72 20 66 69 65 6c 64  or pointer field
1cb0: 73 2e 20 20 53 74 72 75 63 74 20 74 79 70 65 73  s.  Struct types
1cc0: 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 20 28 73    containing  (s
1cd0: 69 67 6e 65 64 0a 20 20 20 20 20 20 20 6f 72 20  igned.       or 
1ce0: 20 75 6e 73 69 67 6e 65 64 29 20 20 63 68 61 72   unsigned)  char
1cf0: 2c 20 73 68 6f 72 74 2c 20 66 6c 6f 61 74 2c 20  , short, float, 
1d00: 64 6f 75 62 6c 65 20 6f 72 20 6f 74 68 65 72 20  double or other 
1d10: 73 74 72 75 63 74 73 0a 20 20 20 20 20 20 20 61  structs.       a
1d20: 72 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64  re not supported
1d30: 2e 0a 0a 0a 0a 0a 0a 20 20 20 20 20 20 20 20 20  .......         
1d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d50: 31 34 20 4a 61 6e 75 61 72 79 20 32 30 30 31 20  14 January 2001 
1d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d70: 20 20 20 20 20 20 20 32 0a 0a 0a 0a 0a 0a 56 41         2......VA
1d80: 43 41 4c 4c 28 33 29 20 20 20 20 20 20 20 20 20  CALL(3)         
1d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db0: 20 20 20 20 20 20 56 41 43 41 4c 4c 28 33 29 0a        VACALL(3).
1dc0: 0a 0a 45 08 45 58 08 58 41 08 41 4d 08 4d 50 08  ..E.EX.XA.AM.MP.
1dd0: 50 4c 08 4c 45 08 45 0a 20 20 20 20 20 20 20 54  PL.LE.E.       T
1de0: 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 61 20 70  his example, a p
1df0: 6f 73 73 69 62 6c 65 20 69 6d 70 6c 65 6d 65 6e  ossible implemen
1e00: 74 61 74 69 6f 6e 20 6f 66 20 65 08 65 78 08 78  tation of e.ex.x
1e10: 65 08 65 63 08 63 6c 08 6c 28 33 29 20 6f 6e 20  e.ec.cl.l(3) on 
1e20: 74 6f 70 0a 20 20 20 20 20 20 20 6f 66 20 65 08  top.       of e.
1e30: 65 78 08 78 65 08 65 63 08 63 76 08 76 28 32 29  ex.xe.ec.cv.v(2)
1e40: 20 75 73 69 6e 67 20 76 08 76 61 08 61 72 08 72   using v.va.ar.r
1e50: 61 08 61 72 08 72 67 08 67 73 08 73 28 33 29 2c  a.ar.rg.gs.s(3),
1e60: 0a 0a 20 20 20 20 20 20 20 23 08 23 69 08 69 6e  ..       #.#i.in
1e70: 08 6e 63 08 63 6c 08 6c 75 08 75 64 08 64 65 08  .nc.cl.lu.ud.de.
1e80: 65 20 3c 08 3c 76 08 76 61 08 61 72 08 72 61 08  e <.<v.va.ar.ra.
1e90: 61 72 08 72 67 08 67 73 08 73 2e 08 2e 68 08 68  ar.rg.gs.s...h.h
1ea0: 3e 08 3e 0a 20 20 20 20 20 20 20 23 08 23 64 08  >.>.       #.#d.
1eb0: 64 65 08 65 66 08 66 69 08 69 6e 08 6e 65 08 65  de.ef.fi.in.ne.e
1ec0: 20 4d 08 4d 41 08 41 58 08 58 41 08 41 52 08 52   M.MA.AX.XA.AR.R
1ed0: 47 08 47 53 08 53 20 31 08 31 30 08 30 30 08 30  G.GS.S 1.10.00.0
1ee0: 0a 20 20 20 20 20 20 20 2f 08 2f 2a 08 2a 20 65  .       /./*.* e
1ef0: 08 65 78 08 78 65 08 65 63 08 63 6c 08 6c 20 69  .ex.xe.ec.cl.l i
1f00: 08 69 73 08 73 20 63 08 63 61 08 61 6c 08 6c 6c  .is.s c.ca.al.ll
1f10: 08 6c 65 08 65 64 08 64 20 62 08 62 79 08 79 20  .le.ed.d b.by.y 
1f20: 65 08 65 78 08 78 65 08 65 63 08 63 6c 08 6c 28  e.ex.xe.ec.cl.l(
1f30: 08 28 66 08 66 69 08 69 6c 08 6c 65 08 65 2c 08  .(f.fi.il.le.e,.
1f40: 2c 20 61 08 61 72 08 72 67 08 67 31 08 31 2c 08  , a.ar.rg.g1.1,.
1f50: 2c 20 61 08 61 72 08 72 67 08 67 32 08 32 2c 08  , a.ar.rg.g2.2,.
1f60: 2c 20 2e 08 2e 2e 08 2e 2e 08 2e 2c 08 2c 20 28  , .........,., (
1f70: 08 28 63 08 63 68 08 68 61 08 61 72 08 72 20 2a  .(c.ch.ha.ar.r *
1f80: 08 2a 29 08 29 30 08 30 29 08 29 3b 08 3b 20 2a  .*).)0.0).);.; *
1f90: 08 2a 2f 08 2f 0a 20 20 20 20 20 20 20 69 08 69  .*/./.       i.i
1fa0: 6e 08 6e 74 08 74 20 65 08 65 78 08 78 65 08 65  n.nt.t e.ex.xe.e
1fb0: 63 08 63 6c 08 6c 20 28 08 28 76 08 76 61 08 61  c.cl.l (.(v.va.a
1fc0: 5f 08 5f 61 08 61 6c 08 6c 69 08 69 73 08 73 74  _._a.al.li.is.st
1fd0: 08 74 29 08 29 0a 20 20 20 20 20 20 20 20 20 76  .t).).         v
1fe0: 08 76 61 08 61 5f 08 5f 64 08 64 63 08 63 6c 08  .va.a_._d.dc.cl.
1ff0: 6c 0a 20 20 20 20 20 20 20 7b 08 7b 0a 20 20 20  l.       {.{.   
2000: 20 20 20 20 20 20 76 08 76 61 08 61 5f 08 5f 6c        v.va.a_._l
2010: 08 6c 69 08 69 73 08 73 74 08 74 20 61 08 61 70  .li.is.st.t a.ap
2020: 08 70 3b 08 3b 0a 20 20 20 20 20 20 20 20 20 63  .p;.;.         c
2030: 08 63 68 08 68 61 08 61 72 08 72 2a 08 2a 20 66  .ch.ha.ar.r*.* f
2040: 08 66 69 08 69 6c 08 6c 65 08 65 3b 08 3b 0a 20  .fi.il.le.e;.;. 
2050: 20 20 20 20 20 20 20 20 63 08 63 68 08 68 61 08          c.ch.ha.
2060: 61 72 08 72 2a 08 2a 20 61 08 61 72 08 72 67 08  ar.r*.* a.ar.rg.
2070: 67 73 08 73 5b 08 5b 4d 08 4d 41 08 41 58 08 58  gs.s[.[M.MA.AX.X
2080: 41 08 41 52 08 52 47 08 47 53 08 53 5d 08 5d 3b  A.AR.RG.GS.S].];
2090: 08 3b 0a 20 20 20 20 20 20 20 20 20 69 08 69 6e  .;.         i.in
20a0: 08 6e 74 08 74 20 61 08 61 72 08 72 67 08 67 6e  .nt.t a.ar.rg.gn
20b0: 08 6e 6f 08 6f 20 3d 08 3d 20 30 08 30 3b 08 3b  .no.o =.= 0.0;.;
20c0: 0a 20 20 20 20 20 20 20 20 20 76 08 76 61 08 61  .         v.va.a
20d0: 5f 08 5f 73 08 73 74 08 74 61 08 61 72 08 72 74  _._s.st.ta.ar.rt
20e0: 08 74 20 28 08 28 61 08 61 70 08 70 29 08 29 3b  .t (.(a.ap.p).);
20f0: 08 3b 0a 20 20 20 20 20 20 20 20 20 66 08 66 69  .;.         f.fi
2100: 08 69 6c 08 6c 65 08 65 20 3d 08 3d 20 76 08 76  .il.le.e =.= v.v
2110: 61 08 61 5f 08 5f 61 08 61 72 08 72 67 08 67 28  a.a_._a.ar.rg.g(
2120: 08 28 61 08 61 70 08 70 2c 08 2c 20 63 08 63 68  .(a.ap.p,., c.ch
2130: 08 68 61 08 61 72 08 72 2a 08 2a 29 08 29 3b 08  .ha.ar.r*.*).);.
2140: 3b 0a 20 20 20 20 20 20 20 20 20 77 08 77 68 08  ;.         w.wh.
2150: 68 69 08 69 6c 08 6c 65 08 65 20 28 08 28 28 08  hi.il.le.e (.((.
2160: 28 61 08 61 72 08 72 67 08 67 73 08 73 5b 08 5b  (a.ar.rg.gs.s[.[
2170: 61 08 61 72 08 72 67 08 67 6e 08 6e 6f 08 6f 5d  a.ar.rg.gn.no.o]
2180: 08 5d 20 3d 08 3d 20 76 08 76 61 08 61 5f 08 5f  .] =.= v.va.a_._
2190: 61 08 61 72 08 72 67 08 67 28 08 28 61 08 61 70  a.ar.rg.g(.(a.ap
21a0: 08 70 2c 08 2c 20 63 08 63 68 08 68 61 08 61 72  .p,., c.ch.ha.ar
21b0: 08 72 2a 08 2a 29 08 29 29 08 29 20 21 08 21 3d  .r*.*).)).) !.!=
21c0: 08 3d 20 28 08 28 63 08 63 68 08 68 61 08 61 72  .= (.(c.ch.ha.ar
21d0: 08 72 20 2a 08 2a 29 08 29 30 08 30 29 08 29 0a  .r *.*).)0.0).).
21e0: 20 20 20 20 20 20 20 20 20 20 20 61 08 61 72 08             a.ar.
21f0: 72 67 08 67 6e 08 6e 6f 08 6f 2b 08 2b 2b 08 2b  rg.gn.no.o+.++.+
2200: 3b 08 3b 0a 20 20 20 20 20 20 20 20 20 76 08 76  ;.;.         v.v
2210: 61 08 61 5f 08 5f 65 08 65 6e 08 6e 64 08 64 20  a.a_._e.en.nd.d 
2220: 28 08 28 61 08 61 70 08 70 29 08 29 3b 08 3b 0a  (.(a.ap.p).);.;.
2230: 20 20 20 20 20 20 20 20 20 72 08 72 65 08 65 74           r.re.et
2240: 08 74 75 08 75 72 08 72 6e 08 6e 20 65 08 65 78  .tu.ur.rn.n e.ex
2250: 08 78 65 08 65 63 08 63 76 08 76 28 08 28 66 08  .xe.ec.cv.v(.(f.
2260: 66 69 08 69 6c 08 6c 65 08 65 2c 08 2c 20 61 08  fi.il.le.e,., a.
2270: 61 72 08 72 67 08 67 73 08 73 29 08 29 3b 08 3b  ar.rg.gs.s).);.;
2280: 0a 20 20 20 20 20 20 20 7d 08 7d 0a 0a 20 20 20  .       }.}..   
2290: 20 20 20 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74      looks like t
22a0: 68 69 73 20 75 73 69 6e 67 20 76 08 76 61 08 61  his using v.va.a
22b0: 63 08 63 61 08 61 6c 08 6c 6c 08 6c 28 33 29 3a  c.ca.al.ll.l(3):
22c0: 0a 0a 20 20 20 20 20 20 20 23 08 23 69 08 69 6e  ..       #.#i.in
22d0: 08 6e 63 08 63 6c 08 6c 75 08 75 64 08 64 65 08  .nc.cl.lu.ud.de.
22e0: 65 20 3c 08 3c 76 08 76 61 08 61 63 08 63 61 08  e <.<v.va.ac.ca.
22f0: 61 6c 08 6c 6c 08 6c 2e 08 2e 68 08 68 3e 08 3e  al.ll.l...h.h>.>
2300: 0a 20 20 20 20 20 20 20 23 08 23 64 08 64 65 08  .       #.#d.de.
2310: 65 66 08 66 69 08 69 6e 08 6e 65 08 65 20 4d 08  ef.fi.in.ne.e M.
2320: 4d 41 08 41 58 08 58 41 08 41 52 08 52 47 08 47  MA.AX.XA.AR.RG.G
2330: 53 08 53 20 31 08 31 30 08 30 30 08 30 0a 20 20  S.S 1.10.00.0.  
2340: 20 20 20 20 20 2f 08 2f 2a 08 2a 20 65 08 65 78       /./*.* e.ex
2350: 08 78 65 08 65 63 08 63 6c 08 6c 20 69 08 69 73  .xe.ec.cl.l i.is
2360: 08 73 20 63 08 63 61 08 61 6c 08 6c 6c 08 6c 65  .s c.ca.al.ll.le
2370: 08 65 64 08 64 20 62 08 62 79 08 79 20 76 08 76  .ed.d b.by.y v.v
2380: 61 08 61 63 08 63 61 08 61 6c 08 6c 6c 08 6c 28  a.ac.ca.al.ll.l(
2390: 08 28 66 08 66 69 08 69 6c 08 6c 65 08 65 2c 08  .(f.fi.il.le.e,.
23a0: 2c 20 61 08 61 72 08 72 67 08 67 31 08 31 2c 08  , a.ar.rg.g1.1,.
23b0: 2c 20 61 08 61 72 08 72 67 08 67 32 08 32 2c 08  , a.ar.rg.g2.2,.
23c0: 2c 20 2e 08 2e 2e 08 2e 2e 08 2e 2c 08 2c 20 28  , .........,., (
23d0: 08 28 63 08 63 68 08 68 61 08 61 72 08 72 20 2a  .(c.ch.ha.ar.r *
23e0: 08 2a 29 08 29 30 08 30 29 08 29 3b 08 3b 20 2a  .*).)0.0).);.; *
23f0: 08 2a 2f 08 2f 0a 20 20 20 20 20 20 20 76 08 76  .*/./.       v.v
2400: 6f 08 6f 69 08 69 64 08 64 20 65 08 65 78 08 78  o.oi.id.d e.ex.x
2410: 65 08 65 63 08 63 6c 08 6c 20 28 08 28 61 08 61  e.ec.cl.l (.(a.a
2420: 70 08 70 29 08 29 0a 20 20 20 20 20 20 20 20 20  p.p).).         
2430: 76 08 76 61 08 61 5f 08 5f 61 08 61 6c 08 6c 69  v.va.a_._a.al.li
2440: 08 69 73 08 73 74 08 74 20 61 08 61 70 08 70 3b  .is.st.t a.ap.p;
2450: 08 3b 0a 20 20 20 20 20 20 20 7b 08 7b 0a 20 20  .;.       {.{.  
2460: 20 20 20 20 20 20 20 63 08 63 68 08 68 61 08 61         c.ch.ha.a
2470: 72 08 72 2a 08 2a 20 66 08 66 69 08 69 6c 08 6c  r.r*.* f.fi.il.l
2480: 65 08 65 3b 08 3b 0a 20 20 20 20 20 20 20 20 20  e.e;.;.         
2490: 63 08 63 68 08 68 61 08 61 72 08 72 2a 08 2a 20  c.ch.ha.ar.r*.* 
24a0: 61 08 61 72 08 72 67 08 67 73 08 73 5b 08 5b 4d  a.ar.rg.gs.s[.[M
24b0: 08 4d 41 08 41 58 08 58 41 08 41 52 08 52 47 08  .MA.AX.XA.AR.RG.
24c0: 47 53 08 53 5d 08 5d 3b 08 3b 0a 20 20 20 20 20  GS.S].];.;.     
24d0: 20 20 20 20 69 08 69 6e 08 6e 74 08 74 20 61 08      i.in.nt.t a.
24e0: 61 72 08 72 67 08 67 6e 08 6e 6f 08 6f 20 3d 08  ar.rg.gn.no.o =.
24f0: 3d 20 30 08 30 3b 08 3b 0a 20 20 20 20 20 20 20  = 0.0;.;.       
2500: 20 20 69 08 69 6e 08 6e 74 08 74 20 72 08 72 65    i.in.nt.t r.re
2510: 08 65 74 08 74 76 08 76 61 08 61 6c 08 6c 3b 08  .et.tv.va.al.l;.
2520: 3b 0a 20 20 20 20 20 20 20 20 20 76 08 76 61 08  ;.         v.va.
2530: 61 5f 08 5f 73 08 73 74 08 74 61 08 61 72 08 72  a_._s.st.ta.ar.r
2540: 74 08 74 5f 08 5f 69 08 69 6e 08 6e 74 08 74 20  t.t_._i.in.nt.t 
2550: 28 08 28 61 08 61 70 08 70 29 08 29 3b 08 3b 0a  (.(a.ap.p).);.;.
2560: 20 20 20 20 20 20 20 20 20 66 08 66 69 08 69 6c           f.fi.il
2570: 08 6c 65 08 65 20 3d 08 3d 20 76 08 76 61 08 61  .le.e =.= v.va.a
2580: 5f 08 5f 61 08 61 72 08 72 67 08 67 5f 08 5f 70  _._a.ar.rg.g_._p
2590: 08 70 74 08 74 72 08 72 28 08 28 61 08 61 70 08  .pt.tr.r(.(a.ap.
25a0: 70 2c 08 2c 20 63 08 63 68 08 68 61 08 61 72 08  p,., c.ch.ha.ar.
25b0: 72 2a 08 2a 29 08 29 3b 08 3b 0a 20 20 20 20 20  r*.*).);.;.     
25c0: 20 20 20 20 77 08 77 68 08 68 69 08 69 6c 08 6c      w.wh.hi.il.l
25d0: 65 08 65 20 28 08 28 28 08 28 61 08 61 72 08 72  e.e (.((.(a.ar.r
25e0: 67 08 67 73 08 73 5b 08 5b 61 08 61 72 08 72 67  g.gs.s[.[a.ar.rg
25f0: 08 67 6e 08 6e 6f 08 6f 5d 08 5d 20 3d 08 3d 20  .gn.no.o].] =.= 
2600: 76 08 76 61 08 61 5f 08 5f 61 08 61 72 08 72 67  v.va.a_._a.ar.rg
2610: 08 67 5f 08 5f 70 08 70 74 08 74 72 08 72 28 08  .g_._p.pt.tr.r(.
2620: 28 61 08 61 70 08 70 2c 08 2c 20 63 08 63 68 08  (a.ap.p,., c.ch.
2630: 68 61 08 61 72 08 72 2a 08 2a 29 08 29 29 08 29  ha.ar.r*.*).)).)
2640: 20 21 08 21 3d 08 3d 20 28 08 28 63 08 63 68 08   !.!=.= (.(c.ch.
2650: 68 61 08 61 72 08 72 20 2a 08 2a 29 08 29 30 08  ha.ar.r *.*).)0.
2660: 30 29 08 29 0a 20 20 20 20 20 20 20 20 20 20 20  0).).           
2670: 61 08 61 72 08 72 67 08 67 6e 08 6e 6f 08 6f 2b  a.ar.rg.gn.no.o+
2680: 08 2b 2b 08 2b 3b 08 3b 0a 20 20 20 20 20 20 20  .++.+;.;.       
2690: 20 20 72 08 72 65 08 65 74 08 74 76 08 76 61 08    r.re.et.tv.va.
26a0: 61 6c 08 6c 20 3d 08 3d 20 65 08 65 78 08 78 65  al.l =.= e.ex.xe
26b0: 08 65 63 08 63 76 08 76 28 08 28 66 08 66 69 08  .ec.cv.v(.(f.fi.
26c0: 69 6c 08 6c 65 08 65 2c 08 2c 20 61 08 61 72 08  il.le.e,., a.ar.
26d0: 72 67 08 67 73 08 73 29 08 29 3b 08 3b 0a 20 20  rg.gs.s).);.;.  
26e0: 20 20 20 20 20 20 20 76 08 76 61 08 61 5f 08 5f         v.va.a_._
26f0: 72 08 72 65 08 65 74 08 74 75 08 75 72 08 72 6e  r.re.et.tu.ur.rn
2700: 08 6e 5f 08 5f 69 08 69 6e 08 6e 74 08 74 20 28  .n_._i.in.nt.t (
2710: 08 28 61 08 61 70 08 70 2c 08 2c 20 72 08 72 65  .(a.ap.p,., r.re
2720: 08 65 74 08 74 76 08 76 61 08 61 6c 08 6c 29 08  .et.tv.va.al.l).
2730: 29 3b 08 3b 0a 20 20 20 20 20 20 20 7d 08 7d 0a  );.;.       }.}.
2740: 20 20 20 20 20 20 20 76 08 76 61 08 61 63 08 63         v.va.ac.c
2750: 61 08 61 6c 08 6c 6c 08 6c 5f 08 5f 66 08 66 75  a.al.ll.l_._f.fu
2760: 08 75 6e 08 6e 63 08 63 74 08 74 69 08 69 6f 08  .un.nc.ct.ti.io.
2770: 6f 6e 08 6e 20 3d 08 3d 20 26 08 26 65 08 65 78  on.n =.= &.&e.ex
2780: 08 78 65 08 65 63 08 63 6c 08 6c 3b 08 3b 0a 0a  .xe.ec.cl.l;.;..
2790: 0a 53 08 53 45 08 45 45 08 45 20 41 08 41 4c 08  .S.SE.EE.E A.AL.
27a0: 4c 53 08 53 4f 08 4f 0a 20 20 20 20 20 20 20 76  LS.SO.O.       v
27b0: 08 76 61 08 61 72 08 72 61 08 61 72 08 72 67 08  .va.ar.ra.ar.rg.
27c0: 67 73 08 73 28 33 29 2c 20 74 08 74 72 08 72 61  gs.s(3), t.tr.ra
27d0: 08 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08  .am.mp.po.ol.li.
27e0: 69 6e 08 6e 65 08 65 28 33 29 2c 20 63 08 63 61  in.ne.e(3), c.ca
27f0: 08 61 6c 08 6c 6c 08 6c 62 08 62 61 08 61 63 08  .al.ll.lb.ba.ac.
2800: 63 6b 08 6b 28 33 29 2e 0a 0a 0a 42 08 42 55 08  ck.k(3)....B.BU.
2810: 55 47 08 47 53 08 53 0a 20 20 20 20 20 20 20 54  UG.GS.S.       T
2820: 68 65 20 20 63 75 72 72 65 6e 74 20 20 69 6d 70  he  current  imp
2830: 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 68 61 76  lementations hav
2840: 65 20 62 65 65 6e 20 74 65 73 74 65 64 20 6f 6e  e been tested on
2850: 20 61 20 73 65 6c 65 63 2d 0a 20 20 20 20 20 20   a selec-.      
2860: 20 74 69 6f 6e 20 6f 66 20 63 6f 6d 6d 6f 6e 20   tion of common 
2870: 63 61 73 65 73 20 62 75 74 20 74 68 65 72 65 20  cases but there 
2880: 20 61 72 65 20 20 70 72 6f 62 61 62 6c 79 20 20   are  probably  
2890: 73 74 69 6c 6c 20 20 6d 61 6e 79 0a 20 20 20 20  still  many.    
28a0: 20 20 20 62 75 67 73 2e 0a 0a 20 20 20 20 20 20     bugs...      
28b0: 20 54 68 65 72 65 20 20 61 72 65 20 20 74 79 70   There  are  typ
28c0: 69 63 61 6c 6c 79 20 20 62 75 69 6c 74 2d 69 6e  ically  built-in
28d0: 20 20 6c 69 6d 69 74 73 20 6f 6e 20 74 68 65 20    limits on the 
28e0: 73 69 7a 65 20 6f 66 20 74 68 65 0a 0a 0a 0a 20  size of the.... 
28f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2900: 20 20 20 20 20 20 20 20 31 34 20 4a 61 6e 75 61          14 Janua
2910: 72 79 20 32 30 30 31 20 20 20 20 20 20 20 20 20  ry 2001         
2920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33                 3
2930: 0a 0a 0a 0a 0a 0a 56 41 43 41 4c 4c 28 33 29 20  ......VACALL(3) 
2940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 41                VA
2970: 43 41 4c 4c 28 33 29 0a 0a 0a 20 20 20 20 20 20  CALL(3)...      
2980: 20 61 72 67 75 6d 65 6e 74 2d 6c 69 73 74 2c 20   argument-list, 
2990: 77 68 69 63 68 20 6d 61 79 20 61 6c 73 6f 20 20  which may also  
29a0: 69 6e 63 6c 75 64 65 20 20 74 68 65 20 20 73 69  include  the  si
29b0: 7a 65 20 20 6f 66 20 20 61 6e 79 0a 20 20 20 20  ze  of  any.    
29c0: 20 20 20 73 74 72 75 63 74 75 72 65 20 61 72 67     structure arg
29d0: 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 20 20  uments...       
29e0: 54 68 65 20 20 64 65 63 69 73 69 6f 6e 20 77 68  The  decision wh
29f0: 65 74 68 65 72 20 61 20 73 74 72 75 63 74 20 69  ether a struct i
2a00: 73 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64  s to be returned
2a10: 20 69 6e 20 72 65 67 69 73 2d 0a 20 20 20 20 20   in regis-.     
2a20: 20 20 74 65 72 73 20 6f 72 20 69 6e 20 6d 65 6d    ters or in mem
2a30: 6f 72 79 20 63 6f 6e 73 69 64 65 72 73 20 6f 6e  ory considers on
2a40: 6c 79 20 20 74 68 65 20 20 73 74 72 75 63 74 27  ly  the  struct'
2a50: 73 20 20 73 69 7a 65 20 20 61 6e 64 0a 20 20 20  s  size  and.   
2a60: 20 20 20 20 61 6c 69 67 6e 6d 65 6e 74 2e 20 20      alignment.  
2a70: 54 68 69 73 20 20 69 73 20 69 6e 61 63 63 75 72  This  is inaccur
2a80: 61 74 65 3a 20 66 6f 72 20 65 78 61 6d 70 6c 65  ate: for example
2a90: 2c 20 67 63 63 20 6f 6e 20 6d 36 38 6b 2d 0a 20  , gcc on m68k-. 
2aa0: 20 20 20 20 20 20 6e 65 78 74 20 72 65 74 75 72        next retur
2ab0: 6e 73 20 73 08 73 74 08 74 72 08 72 75 08 75 63  ns s.st.tr.ru.uc
2ac0: 08 63 74 08 74 20 7b 08 7b 20 20 63 08 63 68 08  .ct.t {.{  c.ch.
2ad0: 68 61 08 61 72 08 72 20 20 61 08 61 2c 08 2c 62  ha.ar.r  a.a,.,b
2ae0: 08 62 2c 08 2c 63 08 63 3b 08 3b 20 20 7d 08 7d  .b,.,c.c;.;  }.}
2af0: 20 20 69 6e 20 20 72 65 67 69 73 74 65 72 73 20    in  registers 
2b00: 20 61 6e 64 0a 20 20 20 20 20 20 20 73 08 73 74   and.       s.st
2b10: 08 74 72 08 72 75 08 75 63 08 63 74 08 74 20 20  .tr.ru.uc.ct.t  
2b20: 7b 08 7b 20 63 08 63 68 08 68 61 08 61 72 08 72  {.{ c.ch.ha.ar.r
2b30: 20 61 08 61 5b 08 5b 33 08 33 5d 08 5d 3b 08 3b   a.a[.[3.3].];.;
2b40: 20 7d 08 7d 20 69 6e 20 6d 65 6d 6f 72 79 2c 20   }.} in memory, 
2b50: 61 6c 74 68 6f 75 67 68 20 62 6f 74 68 20 74 79  although both ty
2b60: 70 65 73 20 68 61 76 65 0a 20 20 20 20 20 20 20  pes have.       
2b70: 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 6e  the same size an
2b80: 64 20 74 68 65 20 73 61 6d 65 20 61 6c 69 67 6e  d the same align
2b90: 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 20 20 3c 08  ment...       <.
2ba0: 3c 76 08 76 61 08 61 63 08 63 61 08 61 6c 08 6c  <v.va.ac.ca.al.l
2bb0: 6c 08 6c 2e 08 2e 68 08 68 3e 08 3e 20 20 63 61  l.l...h.h>.>  ca
2bc0: 6e 6e 6f 74 20 20 62 65 20 20 69 6e 63 6c 75 64  nnot  be  includ
2bd0: 65 64 20 20 20 77 68 65 6e 20 20 20 3c 08 3c 76  ed   when   <.<v
2be0: 08 76 61 08 61 72 08 72 61 08 61 72 08 72 67 08  .va.ar.ra.ar.rg.
2bf0: 67 73 08 73 2e 08 2e 68 08 68 3e 08 3e 20 20 20  gs.s...h.h>.>   
2c00: 6f 72 0a 20 20 20 20 20 20 20 3c 08 3c 73 08 73  or.       <.<s.s
2c10: 74 08 74 64 08 64 61 08 61 72 08 72 67 08 67 2e  t.td.da.ar.rg.g.
2c20: 08 2e 68 08 68 3e 08 3e 20 69 73 20 69 6e 63 6c  ..h.h>.> is incl
2c30: 75 64 65 64 2e 20 20 28 4e 61 6d 65 20 63 6c 61  uded.  (Name cla
2c40: 73 68 20 66 6f 72 20 76 08 76 61 08 61 5f 08 5f  sh for v.va.a_._
2c50: 61 08 61 6c 08 6c 69 08 69 73 08 73 74 08 74 2e  a.al.li.is.st.t.
2c60: 29 0a 0a 20 20 20 20 20 20 20 54 68 65 20 61 72  )..       The ar
2c70: 67 75 6d 65 6e 74 20 6c 69 73 74 20 63 61 6e 20  gument list can 
2c80: 6f 6e 6c 79 20 62 65 20 77 61 6c 6b 65 64 20 6f  only be walked o
2c90: 6e 63 65 2e 0a 0a 20 20 20 20 20 20 20 54 68 65  nce...       The
2ca0: 20 20 75 73 65 20 20 6f 66 20 20 74 68 65 20 20    use  of  the  
2cb0: 67 6c 6f 62 61 6c 20 20 76 61 72 69 61 62 6c 65  global  variable
2cc0: 20 76 08 76 61 08 61 63 08 63 61 08 61 6c 08 6c   v.va.ac.ca.al.l
2cd0: 6c 08 6c 5f 08 5f 66 08 66 75 08 75 6e 08 6e 63  l.l_._f.fu.un.nc
2ce0: 08 63 74 08 74 69 08 69 6f 08 6f 6e 08 6e 20 69  .ct.ti.io.on.n i
2cf0: 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 72 65 65  s not.       ree
2d00: 6e 74 72 61 6e 74 2e 20 54 68 69 73 20 69 73 20  ntrant. This is 
2d10: 66 69 78 65 64 20 69 6e 20 74 68 65 20 63 08 63  fixed in the c.c
2d20: 61 08 61 6c 08 6c 6c 08 6c 62 08 62 61 08 61 63  a.al.ll.lb.ba.ac
2d30: 08 63 6b 08 6b 28 33 29 20 70 61 63 6b 61 67 65  .ck.k(3) package
2d40: 2e 0a 0a 0a 50 08 50 4f 08 4f 52 08 52 54 08 54  ....P.PO.OR.RT.T
2d50: 49 08 49 4e 08 4e 47 08 47 0a 20 20 20 20 20 20  I.IN.NG.G.      
2d60: 20 4b 6e 6f 77 6c 65 64 67 65 20 61 62 6f 75 74   Knowledge about
2d70: 20 61 72 67 75 6d 65 6e 74 20 70 61 73 73 69 6e   argument passin
2d80: 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 63 61  g conventions ca
2d90: 6e 20 62 65 20 20 66 6f 75 6e 64 0a 20 20 20 20  n be  found.    
2da0: 20 20 20 69 6e 20 20 74 68 65 20 20 67 63 63 20     in  the  gcc 
2db0: 73 6f 75 72 63 65 2c 20 66 69 6c 65 20 67 63 63  source, file gcc
2dc0: 2d 32 2e 36 2e 33 2f 63 6f 6e 66 69 67 2f 5f 08  -2.6.3/config/_.
2dd0: 63 5f 08 70 5f 08 75 2f 5f 08 63 5f 08 70 5f 08  c_.p_.u/_.c_.p_.
2de0: 75 2e 68 2c 20 73 65 63 2d 0a 20 20 20 20 20 20  u.h, sec-.      
2df0: 20 74 69 6f 6e 20 22 53 74 61 63 6b 20 6c 61 79   tion "Stack lay
2e00: 6f 75 74 3b 20 66 75 6e 63 74 69 6f 6e 20 65 6e  out; function en
2e10: 74 72 79 2c 20 65 78 69 74 20 61 6e 64 20 63 61  try, exit and ca
2e20: 6c 6c 69 6e 67 2e 22 0a 0a 20 20 20 20 20 20 20  lling."..       
2e30: 54 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  The implementati
2e40: 6f 6e 20 6f 66 20 76 61 72 61 72 67 73 20 66 6f  on of varargs fo
2e50: 72 20 67 63 63 20 63 61 6e 20 62 65 20 66 6f 75  r gcc can be fou
2e60: 6e 64 20 69 6e 20 20 74 68 65 0a 20 20 20 20 20  nd in  the.     
2e70: 20 20 67 63 63 20 73 6f 75 72 63 65 2c 20 66 69    gcc source, fi
2e80: 6c 65 73 20 67 63 63 2d 32 2e 36 2e 33 2f 67 69  les gcc-2.6.3/gi
2e90: 6e 63 6c 75 64 65 2f 76 61 2a 2e 68 2e 0a 0a 20  nclude/va*.h... 
2ea0: 20 20 20 20 20 20 67 63 63 27 73 20 20 5f 5f 62        gcc's  __b
2eb0: 75 69 6c 74 69 6e 5f 73 61 76 65 72 65 67 73 28  uiltin_saveregs(
2ec0: 29 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64 65  ) function is de
2ed0: 66 69 6e 65 64 20 69 6e 20 74 68 65 20 67 63 63  fined in the gcc
2ee0: 0a 20 20 20 20 20 20 20 73 6f 75 72 63 65 2c 20  .       source, 
2ef0: 66 69 6c 65 20 67 63 63 2d 32 2e 36 2e 33 2f 6c  file gcc-2.6.3/l
2f00: 69 62 67 63 63 32 2e 63 2e 0a 0a 0a 41 08 41 55  ibgcc2.c....A.AU
2f10: 08 55 54 08 54 48 08 48 4f 08 4f 52 08 52 0a 20  .UT.TH.HO.OR.R. 
2f20: 20 20 20 20 20 20 42 72 75 6e 6f 20 48 61 69 62        Bruno Haib
2f30: 6c 65 20 3c 62 72 75 6e 6f 40 63 6c 69 73 70 2e  le <bruno@clisp.
2f40: 6f 72 67 3e 0a 0a 0a 41 08 41 43 08 43 4b 08 4b  org>...A.AC.CK.K
2f50: 4e 08 4e 4f 08 4f 57 08 57 4c 08 4c 45 08 45 44  N.NO.OW.WL.LE.ED
2f60: 08 44 47 08 47 45 08 45 4d 08 4d 45 08 45 4e 08  .DG.GE.EM.ME.EN.
2f70: 4e 54 08 54 53 08 53 0a 20 20 20 20 20 20 20 4d  NT.TS.S.       M
2f80: 61 6e 79 20 69 64 65 61 73 20 61 6e 64 20 61 20  any ideas and a 
2f90: 6c 6f 74 20 6f 66 20 63 6f 64 65 20 77 65 72 65  lot of code were
2fa0: 20 20 63 72 69 62 62 65 64 20 20 66 72 6f 6d 20    cribbed  from 
2fb0: 20 74 68 65 20 20 67 63 63 0a 20 20 20 20 20 20   the  gcc.      
2fc0: 20 73 6f 75 72 63 65 2e 0a 0a 0a 0a 0a 0a 0a 0a   source.........
2fd0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 20 20  ............    
2fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2ff0: 20 20 20 20 20 31 34 20 4a 61 6e 75 61 72 79 20       14 January 
3000: 32 30 30 31 20 20 20 20 20 20 20 20 20 20 20 20  2001            
3010: 20 20 20 20 20 20 20 20 20 20 20 20 34 0a 0a 0a              4...