rem: wwarning("could not load any fonts. Make sure your font installation" "and locale settings are correct.");
add: wwarning(_("could not load any fonts. Make sure your font installation" "and locale settings are correct."));
context: WMCreateScreenWithRContext(Display *display, int screen, RContext *context){    W_Screen *scrPtr;    XGCValues gcv;    Pixmap stipple;    static int initialized = 0;    static char *atomNames[] = {	"_GNUSTEP_WM_ATTR",	    "WM_DELETE_WINDOW",	    "WM_PROTOCOLS",	    "CLIPBOARD",	    "XdndAware",	    "XdndSelection",	    "XdndEnter",	    "XdndLeave",	    "XdndPosition",	    "XdndDrop",	    "XdndFinished",	    "XdndTypeList",	    "XdndActionCopy",	    "XdndActionMove",	    "XdndActionLink",	    "XdndActionAsk",	    "XdndActionPrivate",	    "XdndStatus",	    "_WINGS_DND_MOUSE_OFFSET",	    "WM_STATE"    };    Atom atoms[sizeof(atomNames)/sizeof(char*)];    int i;    if (!initialized) {	initialized = 1;	W_ReadConfigurations();	assert(W_ApplicationInitialized());    }        scrPtr = malloc(sizeof(W_Screen));    if (!scrPtr)	return NULL;    memset(scrPtr, 0, sizeof(W_Screen));        scrPtr->aflags.hasAppIcon = 1;        scrPtr->display = display;    scrPtr->screen = screen;    scrPtr->rcontext = context;    scrPtr->depth = context->depth;    scrPtr->visual = context->visual;    scrPtr->lastEventTime = 0;    scrPtr->colormap = context->cmap;    scrPtr->rootWin = RootWindow(display, screen);    scrPtr->fontCache = WMCreateHashTable(WMStringPointerHashCallbacks);    /* Create missing CUT_BUFFERs */    {        Atom *rootWinProps;        int exists[8] = {0, 0, 0, 0, 0, 0, 0, 0};        int count;        rootWinProps = XListProperties(display, scrPtr->rootWin, &count);        for (i=0; i<count; i++) {            switch(rootWinProps[i]) {            case XA_CUT_BUFFER0:                exists[0] = 1; break;            case XA_CUT_BUFFER1:                exists[1] = 1; break;            case XA_CUT_BUFFER2:                exists[2] = 1; break;            case XA_CUT_BUFFER3:                exists[3] = 1; break;            case XA_CUT_BUFFER4:                exists[4] = 1; break;            case XA_CUT_BUFFER5:                exists[5] = 1; break;            case XA_CUT_BUFFER6:                exists[6] = 1; break;            case XA_CUT_BUFFER7:                exists[7] = 1; break;            default:                break;            }        }        if (rootWinProps) {            XFree(rootWinProps);        }        for (i=0; i<8; i++) {            if (!exists[i]) {                XStoreBuffer(display, "", 0, i);            }        }    }    scrPtr->ignoredModifierMask = 0;    {	int i;	XModifierKeymap *modmap;	KeyCode nlock, slock;	static int mask_table[8] = {	    ShiftMask,LockMask,ControlMask,Mod1Mask,		Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask	};	unsigned int numLockMask, scrollLockMask;		nlock = XKeysymToKeycode(display, XK_Num_Lock);	slock = XKeysymToKeycode(display, XK_Scroll_Lock);		/*	 * Find out the masks for the NumLock and ScrollLock modifiers,	 * so that we can bind the grabs for when they are enabled too.	 */	modmap = XGetModifierMapping(display);		if (modmap!=NULL && modmap->max_keypermod>0) {	    for (i=0; i<8*modmap->max_keypermod; i++) {		if (modmap->modifiermap[i]==nlock && nlock!=0)		    numLockMask = mask_table[i/modmap->max_keypermod];		else if (modmap->modifiermap[i]==slock && slock!=0)		    scrollLockMask = mask_table[i/modmap->max_keypermod];	    }	}		if (modmap)	    XFreeModifiermap(modmap);			scrPtr->ignoredModifierMask = numLockMask|scrollLockMask|LockMask;    }        /* initially allocate some colors */    WMWhiteColor(scrPtr);    WMBlackColor(scrPtr);    WMGrayColor(scrPtr);    WMDarkGrayColor(scrPtr);        gcv.graphics_exposures = False;        gcv.function = GXxor;    gcv.foreground = W_PIXEL(scrPtr->white);    if (gcv.foreground == 0) gcv.foreground = 1;    scrPtr->xorGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction			      |GCGraphicsExposures|GCForeground, &gcv);    gcv.function = GXxor;    gcv.foreground = W_PIXEL(scrPtr->gray);    gcv.subwindow_mode = IncludeInferiors;    scrPtr->ixorGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction			       |GCGraphicsExposures|GCForeground			       |GCSubwindowMode, &gcv);    gcv.function = GXcopy;    scrPtr->copyGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction			       |GCGraphicsExposures, &gcv);    scrPtr->clipGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction			       |GCGraphicsExposures, &gcv);        stipple = XCreateBitmapFromData(display, W_DRAWABLE(scrPtr), 				    STIPPLE_BITS, STIPPLE_WIDTH, STIPPLE_HEIGHT);    gcv.foreground = W_PIXEL(scrPtr->darkGray);    gcv.background = W_PIXEL(scrPtr->gray);    gcv.fill_style = FillStippled;    gcv.stipple = stipple;    scrPtr->stippleGC = XCreateGC(display, W_DRAWABLE(scrPtr),				  GCForeground|GCBackground|GCStipple				  |GCFillStyle|GCGraphicsExposures, &gcv);    gcv.foreground = W_PIXEL(scrPtr->black);    gcv.background = W_PIXEL(scrPtr->white);    scrPtr->textFieldGC = XCreateGC(display, W_DRAWABLE(scrPtr),				    GCForeground|GCBackground, &gcv);    /* we need a 1bpp drawable for the monoGC, so borrow this one */    scrPtr->monoGC = XCreateGC(display, stipple, 0, NULL);    scrPtr->stipple = stipple;    scrPtr->useMultiByte = WINGsConfiguration.useMultiByte;    scrPtr->normalFont = WMSystemFontOfSize(scrPtr, 		WINGsConfiguration.defaultFontSize);    scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr, 		WINGsConfiguration.defaultFontSize);    if (!scrPtr->boldFont)	scrPtr->boldFont = scrPtr->normalFont;    if (!scrPtr->normalFont) {	wwarning("could not load any fonts. Make sure your font installation"		 "and locale settings are correct.");	return NULL;    }    scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON,					    CHECK_BUTTON_ON_WIDTH,					    CHECK_BUTTON_ON_HEIGHT, False);    scrPtr->checkButtonImageOff = makePixmap(scrPtr, CHECK_BUTTON_OFF,					    CHECK_BUTTON_OFF_WIDTH,					    CHECK_BUTTON_OFF_HEIGHT, False);    scrPtr->radioButtonImageOn = makePixmap(scrPtr, RADIO_BUTTON_ON,					    RADIO_BUTTON_ON_WIDTH,					    RADIO_BUTTON_ON_HEIGHT, False);    scrPtr->radioButtonImageOff = makePixmap(scrPtr, RADIO_BUTTON_OFF,					    RADIO_BUTTON_OFF_WIDTH,					    RADIO_BUTTON_OFF_HEIGHT, False);    scrPtr->buttonArrow = makePixmap(scrPtr, BUTTON_ARROW, 				     BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, 				     False);    scrPtr->pushedButtonArrow = makePixmap(scrPtr, BUTTON_ARROW2,			           BUTTON_ARROW2_WIDTH, BUTTON_ARROW2_HEIGHT, 				   False);    scrPtr->scrollerDimple = makePixmap(scrPtr, SCROLLER_DIMPLE,					SCROLLER_DIMPLE_WIDTH,					SCROLLER_DIMPLE_HEIGHT, False);    scrPtr->upArrow = makePixmap(scrPtr, SCROLLER_ARROW_UP,				 SCROLLER_ARROW_UP_WIDTH,				 SCROLLER_ARROW_UP_HEIGHT, True);    scrPtr->downArrow = makePixmap(scrPtr, SCROLLER_ARROW_DOWN,				   SCROLLER_ARROW_DOWN_WIDTH,				   SCROLLER_ARROW_DOWN_HEIGHT, True);    scrPtr->leftArrow = makePixmap(scrPtr, SCROLLER_ARROW_LEFT,				   SCROLLER_ARROW_LEFT_WIDTH,				   SCROLLER_ARROW_LEFT_HEIGHT, True);    scrPtr->rightArrow = makePixmap(scrPtr, SCROLLER_ARROW_RIGHT,				    SCROLLER_ARROW_RIGHT_WIDTH,				    SCROLLER_ARROW_RIGHT_HEIGHT, True);    scrPtr->hiUpArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_UP,				 SCROLLER_ARROW_UP_WIDTH,				 SCROLLER_ARROW_UP_HEIGHT, True);    scrPtr->hiDownArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_DOWN,				   SCROLLER_ARROW_DOWN_WIDTH,				   SCROLLER_ARROW_DOWN_HEIGHT, True);    scrPtr->hiLeftArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_LEFT,				   SCROLLER_ARROW_LEFT_WIDTH,				   SCROLLER_ARROW_LEFT_HEIGHT, True);    scrPtr->hiRightArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_RIGHT,				    SCROLLER_ARROW_RIGHT_WIDTH,				    SCROLLER_ARROW_RIGHT_HEIGHT, True);    scrPtr->popUpIndicator = makePixmap(scrPtr, POPUP_INDICATOR,					POPUP_INDICATOR_WIDTH,					POPUP_INDICATOR_HEIGHT, True);    scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR,					   PULLDOWN_INDICATOR_WIDTH,					   PULLDOWN_INDICATOR_HEIGHT, True);    scrPtr->checkMark = makePixmap(scrPtr, CHECK_MARK,				   CHECK_MARK_WIDTH,				   CHECK_MARK_HEIGHT, True);    loadPixmaps(scrPtr);    scrPtr->defaultCursor = XCreateFontCursor(display, XC_left_ptr);    scrPtr->textCursor = XCreateFontCursor(display, XC_xterm);    {	XColor bla;	Pixmap blank;		blank = XCreatePixmap(display, scrPtr->stipple, 1, 1, 1);	XSetForeground(display, scrPtr->monoGC, 0);	XFillRectangle(display, blank, scrPtr->monoGC, 0, 0, 1, 1);	scrPtr->invisibleCursor = XCreatePixmapCursor(display, blank, blank,						      &bla, &bla, 0, 0);	XFreePixmap(display, blank);    }#ifdef HAVE_XINTERNATOMS    XInternAtoms(display, atomNames, sizeof(atomNames)/sizeof(char*), False,		 atoms);#else    for (i = 0; i < sizeof(atomNames)/sizeof(char*); i++) {        atoms[i] = XInternAtom(display, atomNames[i], False);    }#endif    i = 0;    scrPtr->attribsAtom = atoms[i++];    scrPtr->deleteWindowAtom = atoms[i++];    scrPtr->protocolsAtom = atoms[i++];        scrPtr->clipboardAtom = atoms[i++];    scrPtr->xdndAwareAtom = atoms[i++];    scrPtr->xdndSelectionAtom = atoms[i++];    scrPtr->xdndEnterAtom = atoms[i++];    scrPtr->xdndLeaveAtom = atoms[i++];    scrPtr->xdndPositionAtom = atoms[i++];    scrPtr->xdndDropAtom = atoms[i++];    scrPtr->xdndFinishedAtom = atoms[i++];    scrPtr->xdndTypeListAtom = atoms[i++];    scrPtr->xdndStatusAtom = atoms[i++];    scrPtr->xdndActionCopy = atoms[i++];    scrPtr->xdndActionMove = atoms[i++];    scrPtr->xdndActionLink = atoms[i++];    scrPtr->xdndActionAsk = atoms[i++];    scrPtr->xdndActionPrivate = atoms[i++];    scrPtr->wmIconDragOffsetAtom = atoms[i++];    scrPtr->wmStateAtom = atoms[i++];    scrPtr->rootView = W_CreateRootView(scrPtr);    scrPtr->balloon = W_CreateBalloon(scrPtr);    W_InitApplication(scrPtr);    return scrPtr;}