NodeAddScalable(nsFontStretchXlib* aStretch, PRBool aOutlineScaled, PRBool aPrinterBuiltinFont, int aResX, int aResY,
NodeAddScalable(nsFontStretchXlib* aStretch, PRBool aOutlineScaled, #ifdef USE_XPRINT PRBool aPrinterBuiltinFont, int aResX, int aResY, #endif
NodeAddScalable(nsFontStretchXlib* aStretch,                 PRBool aOutlineScaled, PRBool aPrinterBuiltinFont,                int aResX, int aResY,                const char *aDashFoundry, const char *aFamily,                 const char *aWeight,      const char *aSlant,                 const char *aWidth,       const char *aStyle,                 const char *aSpacing,     const char *aCharSet){  // if we have both an outline scaled font and a bitmap   // scaled font pick the outline scaled font  if ((aStretch->mScalable) && (!aStretch->mOutlineScaled)       && (aOutlineScaled)) {    PR_smprintf_free(aStretch->mScalable);    aStretch->mScalable = nsnull;  }  if (!aStretch->mScalable) {    aStretch->mOutlineScaled = aOutlineScaled;    /* Xprint built-in printer fonts are outline-scaled fonts (except     * that we ask explicitly for X/Y resolution instead of using 0/0)     */    if (aPrinterBuiltinFont) {      aStretch->mScalable =           PR_smprintf("%s-%s-%s-%s-%s-%s-%%d-*-%d-%d-%s-*-%s",           aDashFoundry, aFamily, aWeight, aSlant, aWidth, aStyle,           aResX, aResY, aSpacing, aCharSet);            if (!aStretch->mScalable)        return PR_FALSE;    }    else if (aOutlineScaled) {      aStretch->mScalable =           PR_smprintf("%s-%s-%s-%s-%s-%s-%%d-*-0-0-%s-*-%s",           aDashFoundry, aFamily, aWeight, aSlant, aWidth, aStyle,           aSpacing, aCharSet);      if (!aStretch->mScalable)        return PR_FALSE;    }    else {      aStretch->mScalable =           PR_smprintf("%s-%s-%s-%s-%s-%s-%%d-*-*-*-%s-*-%s",           aDashFoundry, aFamily, aWeight, aSlant, aWidth, aStyle,           aSpacing, aCharSet);      if (!aStretch->mScalable)        return PR_FALSE;    }  }   return PR_TRUE;}