aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/Xp/XpLocale.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/Xp/XpLocale.c')
-rw-r--r--nx-X11/lib/Xp/XpLocale.c269
1 files changed, 0 insertions, 269 deletions
diff --git a/nx-X11/lib/Xp/XpLocale.c b/nx-X11/lib/Xp/XpLocale.c
deleted file mode 100644
index ef7c5fb01..000000000
--- a/nx-X11/lib/Xp/XpLocale.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/* $Xorg: XpLocale.c,v 1.3 2000/08/17 19:46:07 cpqbld Exp $ */
-/******************************************************************************
- ******************************************************************************
- **
- ** (c) Copyright 1996 Hewlett-Packard Company
- ** (c) Copyright 1996 International Business Machines Corp.
- ** (c) Copyright 1996 Sun Microsystems, Inc.
- ** (c) Copyright 1996 Novell, Inc.
- ** (c) Copyright 1996 Digital Equipment Corp.
- ** (c) Copyright 1996 Fujitsu Limited
- ** (c) Copyright 1996 Hitachi, Ltd.
- **
- ** Permission is hereby granted, free of charge, to any person obtaining a copy
- ** of this software and associated documentation files (the "Software"), to deal
- ** in the Software without restriction, including without limitation the rights
- ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- ** copies of the Software, and to permit persons to whom the Software is
- ** furnished to do so, subject to the following conditions:
- **
- ** 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
- ** COPYRIGHT HOLDERS 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 names of the copyright holders shall
- ** not be used in advertising or otherwise to promote the sale, use or other
- ** dealings in this Software without prior written authorization from said
- ** copyright holders.
- **
- ******************************************************************************
- *****************************************************************************/
-/* $XFree86: xc/lib/Xp/XpLocale.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <X11/extensions/Printstr.h>
-#include <X11/Xlibint.h>
-#include "XpExtUtil.h"
-
-#include <X11/Xlocale.h>
-
-
-/*
- * Global hangers for locale hint machinery.
- */
-XPHinterProc _xp_hinter_proc = NULL;
-char *_xp_hinter_desc = NULL;
-int _xp_hinter_init = 1; /* need to init */
-
-
-extern char *_xpstrdup();
-
-
-/******************************************************************************
- *
- * THE DEFAULT LOCALE HINTER
- *
- * Make changes here only.
- */
-static char *_XpLocaleHinter()
-{
-#ifdef hpux
- char lbuf[ LC_BUFSIZ ];
-
- if ( setlocale_r( LC_CTYPE, (char *) NULL, lbuf, LC_BUFSIZ ) ) {
-#else
- char *lbuf;
-
- if ((lbuf = setlocale(LC_CTYPE, (char *) NULL)) == NULL) {
-#endif
- return( _xpstrdup( "" ) );
- }
- else {
- return( _xpstrdup( lbuf ) );
- }
-}
-
-#define _XPLOCALEHINTERDESC NULL
-
-
-/******************************************************************************
- *
- * XpSetLocaleHinter
- */
-void
-XpSetLocaleHinter (
- XPHinterProc hinter_proc,
- char *hinter_desc
-)
-{
-
- _XLockMutex(_Xglobal_lock);
-
- /*
- * Free up existing hinter description.
- */
- if (_xp_hinter_desc)
- XFree( _xp_hinter_desc );
-
- /*
- * Either install the default hinter, or install the
- * one provided by the caller.
- */
- if (!hinter_proc) {
- _xp_hinter_proc = _XpLocaleHinter;
- _xp_hinter_desc = _xpstrdup( _XPLOCALEHINTERDESC );
- _xp_hinter_init = 0;
- }
- else {
- _xp_hinter_proc = hinter_proc;
- _xp_hinter_desc = _xpstrdup( hinter_desc );
- _xp_hinter_init = 0;
- }
-
- _XUnlockMutex(_Xglobal_lock);
-}
-
-
-/******************************************************************************
- *
- * XpGetLocaleHinter
- */
-char *
-XpGetLocaleHinter (
- XPHinterProc *hinter_proc
-)
-{
- char *tmpstr;
-
- _XLockMutex(_Xglobal_lock);
-
- if (_xp_hinter_init) {
- _xp_hinter_proc = _XpLocaleHinter;
- _xp_hinter_desc = _xpstrdup( _XPLOCALEHINTERDESC );
- _xp_hinter_init = 0;
- }
-
- *hinter_proc = _xp_hinter_proc;
- tmpstr = _xpstrdup( _xp_hinter_desc );
-
- _XUnlockMutex(_Xglobal_lock);
-
- return( tmpstr );
-}
-
-
-/******************************************************************************
- *
- * XpGetLocaleNetString
- *
- * this is the routine that uses the locale hint machinery
- * to construct the actual "locale_hint" that is passed in
- * the various protocols and ICCCM-selection requests.
- *
- * A "Locale Net String" is made up of two components, a "locale hint"
- * that is the locale, and a "locale description" that is a description
- * of how the locale was derived.
- *
- * If a locale hint and description are available, then the net string
- * will be the description, and if the description contains the
- * keyword "%locale%", that keyword will be replaced with the locale
- * hint. For example:
- *
- * locale_desc = XOPEN;%locale%;01_00;XFN-001001
- * locale_hint = de_DE
- *
- * result is = XOPEN;de_DE;01_00;XFN-001001
- *
- * If only a locale description is available, then it becomes the
- * entire net string.
- *
- * If only a locale hint is available, then it becomes the
- * entire net string.
- *
- * If neither a hint or description exists, a NULL is returned.
- */
-char *XpGetLocaleNetString()
-{
- XPHinterProc locale_hinter;
-
- char *locale_desc;
- char *locale_hint;
- char *tptr1;
- char *locale_net_string;
-
-
- /*
- * Fetch the current locale hinter machinery.
- */
- locale_desc = XpGetLocaleHinter( &locale_hinter );
-
- /*
- * Run it.
- */
- locale_hint = (locale_hinter)();
-
- /*
- * Use locale_desc and locale_hint to build a full
- * locale net string.
- */
- if (locale_desc && locale_hint) {
- /*
- * Combine the two portions to form locale_net_string.
- *
- * For example:
- */
-
- tptr1 = strstr( locale_desc, "%locale%" );
-
- if (tptr1) {
- /*
- * Insert locale_hint into locale_desc.
- *
- * Note: strlen("%locale%") = 8
- */
- locale_net_string = Xmalloc( strlen(locale_desc) - 8 +
- strlen(locale_hint) + 1 );
-
- /*
- * Copy first portion of locale_desc.
- */
- *tptr1 = '\0';
- strcpy( locale_net_string, locale_desc );
-
- /*
- * Copy middle portion consisting of locale_hint.
- */
- strcat( locale_net_string, locale_hint );
-
- /*
- * Copy first portion of locale_desc.
- */
- tptr1 = tptr1 + 8; /* skip by %Locale% keyword */
-
- strcat( locale_net_string, tptr1 );
-
- /*
- * Free up and return.
- */
- XFree( locale_hint );
- XFree( locale_desc );
- return( locale_net_string );
- }
- else {
- /*
- * Since a locale_desc was given WITHOUT a place to insert
- * the locale_hint, the locale_desc wins out.
- */
- XFree( locale_hint );
- return( locale_desc );
- }
- }
- else if (locale_desc) {
- return( locale_desc );
- }
- else if (locale_hint) {
- return( locale_hint );
- }
- else {
- return( (char *) NULL );
- }
-}
-