if (strmPtr->numBytes > PATH_MAX - 1) PEX_ERR_EXIT(BadLength,0,cntxtPtr);
PEXOpenFont (cntxtPtr, strmPtr)pexContext      *cntxtPtr;pexOpenFontReq  *strmPtr;{    ErrorCode err = Success;    ErrorCode FreePEXFont ();    unsigned char fName[PATH_MAX];    dipexFont *dif;    extern void CopyISOLatin1Lowered();    /* oh, who cares if it's already been opened under this id */	if (!LegalNewID(strmPtr->font,  cntxtPtr->client)) 	    PEX_ERR_EXIT(BadIDChoice,strmPtr->font,cntxtPtr);	/* has this server already loaded this font */	CopyISOLatin1Lowered(	fName, (unsigned char *)(strmPtr+1),				(int)(strmPtr->numBytes));	dif = FindPEXFontEntry(fName);	if (dif) {	    if (dif->refcnt > 0) {		dif->refcnt += 1; }	} else {	    dif = (dipexFont *) xalloc ((unsigned long)sizeof(dipexFont));	    if (!dif) PEX_ERR_EXIT(BadAlloc,0,cntxtPtr);	    dif->ddFont.id = strmPtr->font;	    dif->refcnt = 1;	    err = OpenPEXFont(	(ddULONG)(strmPtr->numBytes), 				(ddUCHAR *)(strmPtr + 1), &(dif->ddFont));	    if (err) {		xfree((pointer)dif);		PEX_ERR_EXIT(err,0,cntxtPtr);	    }	/*         * Note that fonts resources are stored with the type (dipexFont *),         * and they are referenced sometimes in the DD layer as diFontHandle         * (which is a pointer to a ddFontResource).  Since the first part         * of the dipexFont structure consists of a ddFontResource, this         * works.  Even though it is ugly, it's best not to start changing         * all of the font code at this time (right before a public release),         * and hopefully, it will get cleaned up for PEX 6.0.	 */	ADDRESOURCE(strmPtr->font, PEXFontType, dif);	}     return(err);} /* end-PEXOpenFont() */