зеркало из https://github.com/mozilla/pjs.git
bug 7586; need to convert font name from prefs file from UTF-8 to Unicode
so that non-ASCII font names will work on Windows; r=ftang; a=chofmann
This commit is contained in:
Родитель
36e9a8378c
Коммит
3bc71cd5c5
|
@ -24,6 +24,7 @@
|
|||
#include "nsIServiceManager.h"
|
||||
#include "nsFontMetricsWin.h"
|
||||
#include "nsQuickSort.h"
|
||||
#include "nsTextFormater.h"
|
||||
#include "prmem.h"
|
||||
#include "plhash.h"
|
||||
|
||||
|
@ -1499,15 +1500,19 @@ nsFontWin*
|
|||
nsFontMetricsWin::LoadGenericFont(HDC aDC, PRUnichar aChar, char** aName)
|
||||
{
|
||||
if (*aName) {
|
||||
// XXX UTF-8 conversion?
|
||||
nsString* fontName = new nsString(*aName);
|
||||
PRUnichar name[LF_FACESIZE] = { 0 };
|
||||
PRUnichar format[] = { '%', 's', 0 };
|
||||
PRUint32 n = nsTextFormater::snprintf(name, LF_FACESIZE, format, *aName);
|
||||
nsAllocator::Free(*aName);
|
||||
*aName = nsnull;
|
||||
if (fontName) {
|
||||
nsFontWin* font = LoadFont(aDC, fontName);
|
||||
delete fontName;
|
||||
if (font && FONT_HAS_GLYPH(font->mMap, aChar)) {
|
||||
return font;
|
||||
if (n && (n != (PRUint32) -1)) {
|
||||
nsString* fontName = new nsAutoString(name);
|
||||
if (fontName) {
|
||||
nsFontWin* font = LoadFont(aDC, fontName);
|
||||
delete fontName;
|
||||
if (font && FONT_HAS_GLYPH(font->mMap, aChar)) {
|
||||
return font;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче