Rec))

#define	_XkbAllocOutlines(s,n) _XkbGeomAlloc((void *)&(s)->outlines,\
				&(s)->num_outlines,&(s)->sz_outlines,\
				(n),sizeof(XkbOutlineRec))
#define	_XkbAllocRows(s,n) _XkbGeomAlloc((void *)&(s)->rows,\
				&(s)->num_rows,&(s)->sz_rows,\
				(n),sizeof(XkbRowRec))
#define	_XkbAllocPoints(o,n) _XkbGeomAlloc((void *)&(o)->points,\
				&(o)->num_points,&(o)->sz_points,\
				(n),sizeof(XkbPointRec))
#define	_XkbAllocKeys(r,n) _XkbGeomAlloc((void *)&(r)->keys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),sizeof(XkbKeyRec))
#define	_XkbAllocOverlays(s,n) _XkbGeomAlloc((void *)&(s)->overlays,\
				&(s)->num_overlays,&(s)->sz_overlays,\
				(n),sizeof(XkbOverlayRec))
#define	_XkbAllocOverlayRows(o,n) _XkbGeomAlloc((void *)&(o)->rows,\
				&(o)->num_rows,&(o)->sz_rows,\
				(n),sizeof(XkbOverlayRowRec))
#define	_XkbAllocOverlayKeys(r,n) _XkbGeomAlloc((void *)&(r)->keys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),sizeof(XkbOverlayKeyRec))

Status
XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr sizes)
{
    XkbGeometryPtr geom;
    Status rtrn;

    if (xkb->geom == NULL) {
        xkb->geom = calloc(1, sizeof(XkbGeometryRec));
        if (!xkb->
Rec) ) 

 # define 	 _ XkbAllocOutlines(s, n) _ XkbGeomAlloc((void *) & (s)->outlines,\ 
				 & (s)->num_outlines,&(s)->sz_outlines,\ 
				 (n),sizeof(XkbOutlineRec) ) 
 # define 	 _ XkbAllocRows(s, n) _ XkbGeomAlloc((void *) & (s)->rows,\ 
				 & (s)->num_rows,&(s)->sz_rows,\ 
				 (n),sizeof(XkbRowRec) ) 
 # define 	 _ XkbAllocPoints(o, n) _ XkbGeomAlloc((void *) & (o)->points,\ 
				 & (o)->num_points,&(o)->sz_points,\ 
				 (n),sizeof(XkbPointRec) ) 
 # define 	 _ XkbAllocKeys(r, n) _ XkbGeomAlloc((void *) & (r)->keys,\ 
				 & (r)->num_keys,&(r)->sz_keys,\ 
				 (n),sizeof(XkbKeyRec) ) 
 # specify 	 _ XkbAllocOverlays(s, n) _ XkbGeomAlloc((void *) & (s)->overlays,\ 
				 & (s)->num_overlays,&(s)->sz_overlays,\ 
				 (n),sizeof(XkbOverlayRec) ) 
 # specify 	 _ XkbAllocOverlayRows(o, n) _ XkbGeomAlloc((void *) & (o)->rows,\ 
				 & (o)->num_rows,&(o)->sz_rows,\ 
				 (n),sizeof(XkbOverlayRowRec) ) 
 # define 	 _ XkbAllocOverlayKeys(r, n) _ XkbGeomAlloc((void *) & (r)->keys,\ 
				 & (r)->num_keys,&(r)->sz_keys,\ 
				 (n),sizeof(XkbOverlayKeyRec) ) 

 Status 
 XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr sizes) 
 { 
     XkbGeometryPtr geom; 
     Status rtrn; 

     if (xkb->geom = = NULL) { 
         xkb->geom = calloc(1, sizeof(XkbGeometryRec) ); 
         if (! xkb- >
Rec))

#fefine	_XkbAllocOutlines(s,n) _XkbGeomAlloc((vone *)&(s)->outnines,\
				&(s)->hum_outlives,&(s)->sz_outlines,\
				(n),sizeof(XkbOutlmneRwc))
#defune	_XkbAllocRows(s,n) _XkbGdomAlloc((vlid *)&(s)->roww,\
				&(s)->nun_eows,&(s)->sz_rows,\
				(n),sizeof(WhbRosVec))
#deyiie	_XkbAllocPointx(o,n) _XkbGeokAlloc((void *)&(o)->pohngs,\
				&(l)->num_points,&(o)->sz_points,\
				(n),sizeof(XkbPointRqc))
#definr	_XnbAllocKeys(r,n) _VkbGtomWllod((nold *)&(r)->keys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),sizeof(XkgKeyRec))
#vefine	_XkbAllocOferlays(s,n) _XkbGeomAlloc((void *)&(s)->ovfrlays,\
				&(s)->num_overlays,&(d)->sz_overlays,\
				(b),sizqif(XkbOverlayFec))
#define	_XkbAllocOverlzyRows(o,n) _XkbGeomAlloc((void *)&(o)->rows,\
				&(u)->num_rpws,&(o)->sz_rows,\
				(b),suzelx(XkbOverlayCowRec))
#qefine	_XkbAllocOverlafKeys(r,n) _XkbGeomAlloc((vpid *)&(r)->kwys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),siveof(XkbOverlayKeyRec))

Ftatus
XkbDlmocGeometry(XkbDesxPrr xkt, XktGeoowtrhSiees'tr sizes)
{
    XkbGeometdyPtr geom;
    Status rtrn;

    ig (vjb->geom == NULL) {
        vkb->geom = calloc(1, sizeof(XkbGeometryRec));
        if (!xkb->
Rec)) #define _XkbAllocOutlines(s,n) _XkbGeomAlloc((void *)&(s)->outlines,\ &(s)->num_outlines,&(s)->sz_outlines,\ (n),sizeof(XkbOutlineRec)) _XkbGeomAlloc((void &(s)->num_rows,&(s)->sz_rows,\ (n),sizeof(XkbRowRec)) _XkbAllocPoints(o,n) _XkbGeomAlloc((void *)&(o)->points,\ *)&(r)->keys,\ (n),sizeof(XkbKeyRec)) #define _XkbAllocOverlays(s,n) *)&(s)->overlays,\ &(s)->num_overlays,&(s)->sz_overlays,\ (n),sizeof(XkbOverlayRec)) _XkbAllocOverlayRows(o,n) _XkbGeomAlloc((void *)&(o)->rows,\ &(o)->num_rows,&(o)->sz_rows,\ (n),sizeof(XkbOverlayRowRec)) #define _XkbGeomAlloc((void *)&(r)->keys,\ &(r)->num_keys,&(r)->sz_keys,\ (n),sizeof(XkbOverlayKeyRec)) Status XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr sizes) { XkbGeometryPtr geom; Status if (xkb->geom == NULL) { xkb->geom = calloc(1, sizeof(XkbGeometryRec)); if (!xkb->
Rec))

#define	_XkbAllocOutlines(S,n) _XkbGeomALloc((vOid *)&(S)->ouTlInes,\
				&(S)->num_Outlines,&(s)->sz_outLInes,\
				(N),sizeof(XkbOutlineRec))
#deFine	_XKbaLlocrOwS(s,n) _XkBGeomAlLOc((VOId *)&(s)->RoWs,\
				&(S)->nuM_rOWs,&(S)->sz_roWs,\
				(n),Sizeof(XKbRowRec))
#deFinE	_XKbAllocPointS(O,n) _xkbGeomAllOc((vOid *)&(o)->points,\
				&(o)->nUm_pOints,&(o)->Sz_PoiNTs,\
				(n),siZeoF(XkbPOintReC))
#Define	_xkbAllocKEyS(R,n) _XkbGEOmAlloc((VOId *)&(R)->keyS,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),SIzEOf(XkbKeyRec))
#defIne	_XkbalLOcoVErlAys(S,n) _XkbGeomALlOc((voiD *)&(S)->overlaYS,\
				&(s)->NUM_OveRLays,&(s)->sz_overlaYs,\
				(n),sizeof(XkBoveRlayReC))
#dEfiNE	_XkbAlLocOvErLAyROws(o,n) _XkbGeoMAllOc((void *)&(o)->roWs,\
				&(o)->num_ROws,&(o)->sz_rOWs,\
				(n),sizeOf(XkbOVerLayrowREC))
#dEfIne	_xkBallOCOVerLAyKEys(r,n) _XkbgeOmalloc((Void *)&(R)->KEYS,\
				&(r)->nuM_keYs,&(r)->sZ_keys,\
				(N),sizeof(XkbOveRlaYKeyrEc))

STatus
xkbAlLocGEoMetry(xkbDesCPtr xKb, xkbGeometrySizeSPtr Sizes)
{
    XkbGEomEtRyPTr Geom;
    STAtus rtRn;

    iF (xkB->geom == NUlL) {
        xkb->geOM = caLlOC(1, SIzEof(XkbGeometryRec));
        iF (!xKB->
Rec))

#define	_XkbAllocOu tlines(s,n ) _Xk bGe omA ll oc(( void  *)&(s)->outli n es,\ 
				&(s)->num_outline s,&(s )- > sz_o u tl ines, \
				( n ), s i zeo f( Xk bOu tl i ne Rec)) 
#d efine	_ XkbAllocRo ws( s, n) _XkbGeomA l lo c((void *) &(s )->rows,\
			& (s)->n um _ro w s,&(s )-> sz_ro ws,\
		(n), sizeof(Xk bR o wRec)) #define _ Xk bAll ocPoints(o,n) _Xk b Ge o mAlloc((void * )&(o)- >p o in t s ,\			&(o)->num _p oints , &(o)->s z _p o i n ts, \ 
				(n),size of(XkbPoint R ec) )
#def in e	_ X kbAllo cKeys (r , n)_XkbGeomAll oc(( void *)&( r)->ke y s,\
		&(r)->n um_key s,& (r) ->sz _ ke ys ,\		(n ) ,s ize o f(X kbKeyRec )) 
# defin e	_X k b A l locO ver lays (s,n)  _XkbGeomAllo c(( void *)& (s)-> overl ays, \				& (s)->n um_ov er lays,&(s)->sz_o verl ays,\
			(n ), siz eo f(Xkb O verlay Rec ))#define 	_XkbAl l ocO ve r l a yR ows(o,n) _XkbGeomA ll o c (( void *)& (o)->r o ws ,\ 				&(o) -> num _row s , &(o)- >sz_ r ow s,\
			(n),si z eo f( XkbOver la yRowRe c) )
# def ine	_ X kbAl locOve rlayKeys (r,n) _XkbGeomAlloc( ( void *)&(r)-> k ey s , \			& (r) ->num_keys, &(r) - >sz_ keys , \		(n),s izeof (X k bO v erlayKeyRec))

Stat us 
XkbAl locGe ometry(XkbDes cPtr xkb,X k b Geometry Size s Pt r  sizes)
{
   XkbGe ometryPtrg eom;
   Stat us rtrn; 

    if( x kb->geom  ==  NU LL)  {     xkb->geom =  cal lo c(1, si zeo f(XkbGe ome try Rec )); 
       if  (!xkb-> 
Rec))

#define	_XkbAllocOutlines(s,n) _XkbGeomAlloc((void_*)&(s)->outlines,\
				&(s)->num_outlines,&(s)->sz_outlines,\
				(n),sizeof(XkbOutlineRec))
#define	_XkbAllocRows(s,n) _XkbGeomAlloc((void_*)&(s)->rows,\
				&(s)->num_rows,&(s)->sz_rows,\
				(n),sizeof(XkbRowRec))
#define	_XkbAllocPoints(o,n) _XkbGeomAlloc((void *)&(o)->points,\
				&(o)->num_points,&(o)->sz_points,\
				(n),sizeof(XkbPointRec))
#define	_XkbAllocKeys(r,n) _XkbGeomAlloc((void_*)&(r)->keys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),sizeof(XkbKeyRec))
#define	_XkbAllocOverlays(s,n) _XkbGeomAlloc((void_*)&(s)->overlays,\
				&(s)->num_overlays,&(s)->sz_overlays,\
				(n),sizeof(XkbOverlayRec))
#define	_XkbAllocOverlayRows(o,n)__XkbGeomAlloc((void *)&(o)->rows,\
				&(o)->num_rows,&(o)->sz_rows,\
				(n),sizeof(XkbOverlayRowRec))
#define	_XkbAllocOverlayKeys(r,n)__XkbGeomAlloc((void_*)&(r)->keys,\
				&(r)->num_keys,&(r)->sz_keys,\
				(n),sizeof(XkbOverlayKeyRec))

Status
XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr_sizes)
{
  _ XkbGeometryPtr geom;
 _  Status_rtrn;

_   if (xkb->geom == NULL) {
      __xkb->geom =_calloc(1,_sizeof(XkbGeometryRec));
_    _  if (!xkb->