From 990bc3f015a4f8fce2eb918375defcd44980a845 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 8 Jun 2012 09:33:13 +0200 Subject: Used synchronise script to update files --- libX11/src/xlibi18n/IMWrap.c | 408 +++++++++++++++++++++---------------------- 1 file changed, 204 insertions(+), 204 deletions(-) (limited to 'libX11/src/xlibi18n/IMWrap.c') diff --git a/libX11/src/xlibi18n/IMWrap.c b/libX11/src/xlibi18n/IMWrap.c index 0f6ed5593..ef63a6208 100644 --- a/libX11/src/xlibi18n/IMWrap.c +++ b/libX11/src/xlibi18n/IMWrap.c @@ -1,204 +1,204 @@ -/* - * Copyright 1991 by the Open Software Foundation - * Copyright 1993, 1994 by the Sony Corporation - * - * 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 - * Sony Corporation not be used in advertising or publicity pertaining to - * distribution of the software without specific, written prior permission. - * Open Software Foundation and Sony Corporation 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 SONY CORPORATION DISCLAIM ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OPEN - * SOFTWARE FOUNDATIONN OR SONY CORPORATION 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 - * Makoto Wakamatsu Sony Corporation - */ -/* - -Copyright 1991, 1998 The Open Group - -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. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. - -*/ - - -#ifdef HAVE_CONFIG_H -#include -#endif -#include "Xlibint.h" -#include "Xlcint.h" - -/* - * Compile the resource name. (resource_name ---> xrm_name) - */ -void -_XIMCompileResourceList(XIMResourceList res, unsigned int num_res) -{ - register unsigned int count; - - for (count = 0; count < num_res; res++, count++) { - res->xrm_name = XrmStringToQuark(res->resource_name); - } -} - -void -_XCopyToArg(XPointer src, XPointer *dst, unsigned int size) -{ - if (!*dst) { - union { - long longval; -#ifdef LONG64 - int intval; -#endif - short shortval; - char charval; - char* charptr; - XPointer ptr; - } u; - if (size <= sizeof(XPointer)) { - memcpy((char *)&u, (char *)src, (int)size); - if (size == sizeof(long)) *dst = (XPointer)u.longval; -#ifdef LONG64 - else if (size == sizeof(int)) *dst = (XPointer)(long)u.intval; -#endif - else if (size == sizeof(short)) *dst = (XPointer)(long)u.shortval; - else if (size == sizeof(char)) *dst = (XPointer)(long)u.charval; - else if (size == sizeof(char*)) *dst = (XPointer)u.charptr; - else if (size == sizeof(XPointer)) *dst = (XPointer)u.ptr; - else memcpy( (char*)dst, (char*)src, (int)size ); - } else { - memcpy( (char*)dst, (char*)src, (int)size ); - } - } else { - memcpy( (char*)*dst, (char*)src, (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 *display, XrmDatabase rdb, char *res_name, char *res_class) -{ - XLCd lcd = _XOpenLC( (char *)NULL ); - - 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 - */ -Status -XCloseIM(XIM im) -{ - Status s; - XIC ic; - XLCd lcd = im->core.lcd; - - s = (im->methods->close) (im); - for (ic = im->core.ic_chain; ic; ic = ic->core.next) - ic->core.im = (XIM)NULL; - Xfree ((char *) im); - _XCloseLC (lcd); - return (s); -} - -/* - * Return the Display associated with the input method. - */ -Display * -XDisplayOfIM(XIM im) -{ - return im->core.display; -} - -/* - * Return the Locale associated with the input method. - */ -char * -XLocaleOfIM(XIM im) -{ - return im->core.lcd->core->name; -} - -/* - * Register to a input method instantiation callback to prepare the - * on-demand input method instantiation. - */ -Bool -XRegisterIMInstantiateCallback( - Display *display, - XrmDatabase rdb, - char *res_name, - char *res_class, - XIDProc callback, - XPointer client_data) -{ - XLCd lcd = _XOpenLC( (char *)NULL ); - - if( !lcd ) - return( False ); - return( (*lcd->methods->register_callback)( lcd, display, rdb, res_name, - res_class, callback, - client_data ) ); -} - -/* - * Unregister to a input method instantiation callback. - */ -Bool -XUnregisterIMInstantiateCallback( - Display *display, - XrmDatabase rdb, - char *res_name, - char *res_class, - XIDProc callback, - XPointer client_data) -{ - XLCd lcd = _XlcCurrentLC(); - - if( !lcd ) - return( False ); - if( lcd->methods->unregister_callback == NULL ) - return( False ); - return( (*lcd->methods->unregister_callback)( lcd, display, rdb, res_name, - res_class, callback, - client_data ) ); -} - +/* + * Copyright 1991 by the Open Software Foundation + * Copyright 1993, 1994 by the Sony Corporation + * + * 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 + * Sony Corporation not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * Open Software Foundation and Sony Corporation 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 SONY CORPORATION DISCLAIM ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OPEN + * SOFTWARE FOUNDATIONN OR SONY CORPORATION 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 + * Makoto Wakamatsu Sony Corporation + */ +/* + +Copyright 1991, 1998 The Open Group + +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. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +*/ + + +#ifdef HAVE_CONFIG_H +#include +#endif +#include "Xlibint.h" +#include "Xlcint.h" + +/* + * Compile the resource name. (resource_name ---> xrm_name) + */ +void +_XIMCompileResourceList(XIMResourceList res, unsigned int num_res) +{ + register unsigned int count; + + for (count = 0; count < num_res; res++, count++) { + res->xrm_name = XrmStringToQuark(res->resource_name); + } +} + +void +_XCopyToArg(XPointer src, XPointer *dst, unsigned int size) +{ + if (!*dst) { + union { + long longval; +#ifdef LONG64 + int intval; +#endif + short shortval; + char charval; + char* charptr; + XPointer ptr; + } u; + if (size <= sizeof(XPointer)) { + memcpy((char *)&u, (char *)src, (int)size); + if (size == sizeof(long)) *dst = (XPointer)u.longval; +#ifdef LONG64 + else if (size == sizeof(int)) *dst = (XPointer)(long)u.intval; +#endif + else if (size == sizeof(short)) *dst = (XPointer)(long)u.shortval; + else if (size == sizeof(char)) *dst = (XPointer)(long)u.charval; + else if (size == sizeof(char*)) *dst = (XPointer)u.charptr; + else if (size == sizeof(XPointer)) *dst = (XPointer)u.ptr; + else memcpy( (char*)dst, (char*)src, (int)size ); + } else { + memcpy( (char*)dst, (char*)src, (int)size ); + } + } else { + memcpy( (char*)*dst, (char*)src, (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 *display, XrmDatabase rdb, char *res_name, char *res_class) +{ + XLCd lcd = _XOpenLC( (char *)NULL ); + + 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 + */ +Status +XCloseIM(XIM im) +{ + Status s; + XIC ic; + XLCd lcd = im->core.lcd; + + s = (im->methods->close) (im); + for (ic = im->core.ic_chain; ic; ic = ic->core.next) + ic->core.im = (XIM)NULL; + Xfree ((char *) im); + _XCloseLC (lcd); + return (s); +} + +/* + * Return the Display associated with the input method. + */ +Display * +XDisplayOfIM(XIM im) +{ + return im->core.display; +} + +/* + * Return the Locale associated with the input method. + */ +char * +XLocaleOfIM(XIM im) +{ + return im->core.lcd->core->name; +} + +/* + * Register to a input method instantiation callback to prepare the + * on-demand input method instantiation. + */ +Bool +XRegisterIMInstantiateCallback( + Display *display, + XrmDatabase rdb, + char *res_name, + char *res_class, + XIDProc callback, + XPointer client_data) +{ + XLCd lcd = _XOpenLC( (char *)NULL ); + + if( !lcd ) + return( False ); + return( (*lcd->methods->register_callback)( lcd, display, rdb, res_name, + res_class, callback, + client_data ) ); +} + +/* + * Unregister to a input method instantiation callback. + */ +Bool +XUnregisterIMInstantiateCallback( + Display *display, + XrmDatabase rdb, + char *res_name, + char *res_class, + XIDProc callback, + XPointer client_data) +{ + XLCd lcd = _XlcCurrentLC(); + + if( !lcd ) + return( False ); + if( lcd->methods->unregister_callback == NULL ) + return( False ); + return( (*lcd->methods->unregister_callback)( lcd, display, rdb, res_name, + res_class, callback, + client_data ) ); +} + -- cgit v1.2.3