(entrynamelength < MAXFONTNAMELEN) &&
transfer_values_to_alias(entryname, entrynamelength, resolvedname,			 aliasName, vals)    char		*entryname;    int			entrynamelength;    char		*resolvedname;    char		**aliasName;    FontScalablePtr	vals;{    static char		aliasname[MAXFONTNAMELEN];    int			nameok = 1, len;    char		lowerName[MAXFONTNAMELEN];    *aliasName = resolvedname;    if ((len = strlen(*aliasName)) <= MAXFONTNAMELEN &&	FontFileCountDashes (*aliasName, len) == 14)    {	FontScalableRec tmpVals;	FontScalableRec tmpVals2;	tmpVals2 = *vals;	/* If we're aliasing a scalable name, transfer values	   from the name into the destination alias, multiplying	   by matrices that appear in the alias. */	CopyISOLatin1Lowered (lowerName, entryname,			      entrynamelength);	lowerName[entrynamelength] = '\0';	if (FontParseXLFDName(lowerName, &tmpVals,			      FONT_XLFD_REPLACE_NONE) &&	    !tmpVals.values_supplied &&	    FontParseXLFDName(*aliasName, &tmpVals,			      FONT_XLFD_REPLACE_NONE))	{	    double *matrix = 0, tempmatrix[4];	    /* Use a matrix iff exactly one is defined */	    if ((tmpVals.values_supplied & PIXELSIZE_MASK) ==		PIXELSIZE_ARRAY &&		!(tmpVals.values_supplied & POINTSIZE_MASK))		matrix = tmpVals.pixel_matrix;	    else if ((tmpVals.values_supplied & POINTSIZE_MASK) ==		     POINTSIZE_ARRAY &&		     !(tmpVals.values_supplied & PIXELSIZE_MASK))		matrix = tmpVals.point_matrix;	    /* If matrix given in the alias, compute new point	       and/or pixel matrices */	    if (matrix)	    {		/* Complete the XLFD name to avoid potential		   gotchas */		if (FontFileCompleteXLFD(&tmpVals2, &tmpVals2))		{		    double hypot();		    tempmatrix[0] =			matrix[0] * tmpVals2.point_matrix[0] +			matrix[1] * tmpVals2.point_matrix[2];		    tempmatrix[1] =			matrix[0] * tmpVals2.point_matrix[1] +			matrix[1] * tmpVals2.point_matrix[3];		    tempmatrix[2] =			matrix[2] * tmpVals2.point_matrix[0] +			matrix[3] * tmpVals2.point_matrix[2];		    tempmatrix[3] =			matrix[2] * tmpVals2.point_matrix[1] +			matrix[3] * tmpVals2.point_matrix[3];		    tmpVals2.point_matrix[0] = tempmatrix[0];		    tmpVals2.point_matrix[1] = tempmatrix[1];		    tmpVals2.point_matrix[2] = tempmatrix[2];		    tmpVals2.point_matrix[3] = tempmatrix[3];		    tempmatrix[0] =			matrix[0] * tmpVals2.pixel_matrix[0] +			matrix[1] * tmpVals2.pixel_matrix[2];		    tempmatrix[1] =			matrix[0] * tmpVals2.pixel_matrix[1] +			matrix[1] * tmpVals2.pixel_matrix[3];		    tempmatrix[2] =			matrix[2] * tmpVals2.pixel_matrix[0] +			matrix[3] * tmpVals2.pixel_matrix[2];		    tempmatrix[3] =			matrix[2] * tmpVals2.pixel_matrix[1] +			matrix[3] * tmpVals2.pixel_matrix[3];		    tmpVals2.pixel_matrix[0] = tempmatrix[0];		    tmpVals2.pixel_matrix[1] = tempmatrix[1];		    tmpVals2.pixel_matrix[2] = tempmatrix[2];		    tmpVals2.pixel_matrix[3] = tempmatrix[3];		    tmpVals2.values_supplied =			(tmpVals2.values_supplied &			 ~(PIXELSIZE_MASK | POINTSIZE_MASK)) |			PIXELSIZE_ARRAY | POINTSIZE_ARRAY;		}		else		    nameok = 0;	    }	    CopyISOLatin1Lowered (aliasname, *aliasName, len + 1);	    if (nameok && FontParseXLFDName(aliasname, &tmpVals2,				  FONT_XLFD_REPLACE_VALUE))		/* Return a version of the aliasname that has		   had the vals stuffed into it.  To avoid		   memory leak, this alias name lives in a		   static buffer.  The caller needs to be done		   with this buffer before this procedure is		   called again to avoid reentrancy problems. */		    *aliasName = aliasname;	}    }    return nameok;}