if (lcd->core->modifiers != (char *)NULL && strlen(lcd->core->modifiers) >= sizeof(buf)) return NULL;
_XimMakeImName(    XLCd	   lcd)#else_XimMakeImName(lcd)    XLCd	   lcd;#endif{    char	   buf[BUFSIZE];    register char *mod;    register int   i = 0;    char	  *ret;    buf[0] = '\0';    if(lcd->core->modifiers != (char *)NULL && *lcd->core->modifiers != '\0') {	mod = _XimStrstr(lcd->core->modifiers, XIMMODIFIER);	if(mod) {	    mod += strlen(XIMMODIFIER);	    while (*mod && *mod != '@')		buf[i++] = *mod++;	    buf[i] = '\0';	}    }    if(!(ret = Xmalloc(i + 1)))	return NULL;    (void)strcpy(ret, buf);    return ret;}