⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ximwrap.c

📁 早期freebsd实现
💻 C
字号:
/* * $XConsortium: XIMWrap.c,v 11.4 91/04/07 18:59:21 rws Exp $ *//* * Copyright 1991 by the Massachusetts Institute of Technology * Copyright 1991 by the Open Software Foundation * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the names of Open Software Foundation and M.I.T. * not be used in advertising or publicity pertaining to distribution of the * software without specific, written prior permission.  Open Software * Foundation and M.I.T. make no representations about the suitability of this * software for any purpose.  It is provided "as is" without express or * implied warranty. * * OPEN SOFTWARE FOUNDATION AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR M.I.T. BE * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *  *		 M. Collins		OSF   */				#include "Xlibint.h"#include "Xlcint.h"/* * Compile the resource list. (XIMResourceList ---> XIMrmResourceList) */void_XIMCompileResourceList(res, num_res)    register XIMResourceList res;    unsigned int num_res;{    register unsigned int count;#define	xrmres	((XIMrmResourceList) res)    for (count = 0; count < num_res; res++, count++) {	xrmres->xrm_name = XrmPermStringToQuark(res->resource_name);	xrmres->xrm_offset = -res->resource_offset - 1;    }#undef	xrmres}void_XCopyToArg(src, dst, size)    XPointer src;    XPointer *dst;    register unsigned int size;{    if (!*dst) {	union {	    long	longval;	    short	shortval;	    char	charval;	    char*	charptr;	    XPointer	ptr;	} u;	if (size <= sizeof(XPointer)) {	    bcopy((char *)src, (char *)&u, (int)size);	    if (size == sizeof(long))	       *dst = (XPointer)u.longval;	    else if (size == sizeof(short))    *dst = (XPointer)u.shortval;	    else if (size == sizeof(char))     *dst = (XPointer)u.charval;	    else if (size == sizeof(char*))    *dst = (XPointer)u.charptr;	    else if (size == sizeof(XPointer)) *dst = (XPointer)u.ptr;	    else bcopy( (char*)src, (char*)dst, (int)size );	} else {	    bcopy( (char*)src, (char*)dst, (int)size );	}    } else {	bcopy( (char*)src, (char*)*dst, (int)size );    }}/* * Connects to an input method matching current locale specification, creates * a XIM object and return a pointer the newly created XIM back to the caller. */XIM XOpenIM(display, rdb, res_name, res_class)    Display *display;    XrmDatabase rdb;    char *res_name;    char *res_class;{    XLCd lcd = _XlcCurrentLC();    if (!lcd)	return (XIM) NULL;    return (*lcd->methods->open_im) (lcd, display, rdb, res_name, res_class);}/* * Close the connection to the input manager, and free the XIM structure */StatusXCloseIM(im)    XIM im;{    Status s;    XIC ic;      s = (im->methods->close) (im);    for (ic = im->core.ic_chain; ic; ic = ic->core.next)	ic->core.im = (XIM)NULL;    Xfree ((char *) im);    return (s);}/* * Return the Display associated with the input method. */Display *XDisplayOfIM(im)    XIM im;{    return im->core.display;}/* * Return the Locale associated with the input method. */char *XLocaleOfIM(im)    XIM im;{    return im->core.lcd->core.name;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -