|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/* $TOG: XmosP.h /main/15 1997/03/25 14:45:55 dbl $ */
|
|
Packit |
b099d7 |
/* (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
|
|
Packit |
b099d7 |
#ifndef _XmosP_h
|
|
Packit |
b099d7 |
#define _XmosP_h
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Some SVR4 systems don't have bzero. */
|
|
Packit |
b099d7 |
#include <Xm/Xmfuncs.h> /* for bzero et al */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Fix for 8975 - using LOGNAME instead of USER on SYSV and SVR4
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef USER_VAR
|
|
Packit |
b099d7 |
#if defined(SYSV) || defined(SVR4)
|
|
Packit |
b099d7 |
#define USER_VAR "LOGNAME"
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
#define USER_VAR "USER"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Fix for 5222 - if NO_MEMMOVE is defined, some systems will still
|
|
Packit |
b099d7 |
* require stdlib.h.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifdef NO_MEMMOVE
|
|
Packit |
b099d7 |
#ifdef bcopy
|
|
Packit |
b099d7 |
#undef bcopy
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#ifdef memmove
|
|
Packit |
b099d7 |
#undef memmove
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#define memmove( p1, p2, p3 ) bcopy( p2, p1, p3 )
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef X_NOT_STDC_ENV
|
|
Packit |
b099d7 |
#include <stdlib.h> /* Needed for MB_CUR_MAX, mbtowc, mbstowcs and mblen */
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* On Sun systems, mblen is broken. It doesn't return 0 when the
|
|
Packit |
b099d7 |
string is empty. Here's a patch. NOTE: On Sun systems, mblen
|
|
Packit |
b099d7 |
is a macro wrapper around mbtowc. Hence the implementation below. */
|
|
Packit |
b099d7 |
#if defined(sun)
|
|
Packit |
b099d7 |
#undef mblen
|
|
Packit |
b099d7 |
#define mblen(ptr, size) \
|
|
Packit |
b099d7 |
((ptr && *(ptr) == '\0') ? 0 : mbtowc((wchar_t *)0, (ptr), (size)))
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <limits.h> /* for MB_LEN_MAX et al */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef INT_MAX
|
|
Packit |
b099d7 |
#define INT_MAX 2147483647
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#ifndef LONG_MAX
|
|
Packit |
b099d7 |
#define LONG_MAX 2147483647
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#ifdef BOGUS_MB_MAX /* some systems don't properly set MB_[CUR|LEN]_MAX */
|
|
Packit |
b099d7 |
#undef MB_LEN_MAX
|
|
Packit |
b099d7 |
#define MB_LEN_MAX 1 /* temp fix for ultrix */
|
|
Packit |
b099d7 |
#undef MB_CUR_MAX
|
|
Packit |
b099d7 |
#define MB_CUR_MAX 1 /* temp fix for ultrix */
|
|
Packit |
b099d7 |
#endif /* BOGUS_MB_MAX */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/**********************************************************************/
|
|
Packit |
b099d7 |
/* here we duplicate Xtos.h, since we can't include this private file */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if defined(INCLUDE_ALLOCA_H) || defined(HAVE_ALLOCA_H)
|
|
Packit |
b099d7 |
#include <alloca.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef CRAY
|
|
Packit |
b099d7 |
#define WORD64
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Don't Use Alloca On Solaris */
|
|
Packit |
b099d7 |
#if defined(sun)
|
|
Packit |
b099d7 |
#define NO_ALLOCA
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* stolen from server/include/os.h */
|
|
Packit |
b099d7 |
#ifndef NO_ALLOCA
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* os-dependent definition of local allocation and deallocation
|
|
Packit |
b099d7 |
* If you want something other than XtMalloc/XtFree for ALLOCATE/DEALLOCATE
|
|
Packit |
b099d7 |
* LOCAL then you add that in here.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#if defined(__HIGHC__)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if HCVERSION < 21003
|
|
Packit |
b099d7 |
#define ALLOCATE_LOCAL(size) alloca(size)
|
|
Packit |
b099d7 |
pragma on(alloca);
|
|
Packit |
b099d7 |
#else /* HCVERSION >= 21003 */
|
|
Packit |
b099d7 |
#define ALLOCATE_LOCAL(size) _Alloca(size)
|
|
Packit |
b099d7 |
#endif /* HCVERSION < 21003 */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define DEALLOCATE_LOCAL(ptr) /* as nothing */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* defined(__HIGHC__) */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __GNUC__
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef alloca /* gnu itself might have done that already */
|
|
Packit |
b099d7 |
#define alloca __builtin_alloca
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define ALLOCATE_LOCAL(size) alloca(size)
|
|
Packit |
b099d7 |
#define DEALLOCATE_LOCAL(ptr) /* as nothing */
|
|
Packit |
b099d7 |
#else /* ! __GNUC__ */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* warning: mips alloca is unsuitable, do not use.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#if defined(vax) || defined(sun) || defined(apollo) || defined(stellar)
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Some System V boxes extract alloca.o from libPW.a; if you
|
|
Packit |
b099d7 |
* decide that you don't want to use alloca, you might want to fix it here.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
char *alloca();
|
|
Packit |
b099d7 |
#define ALLOCATE_LOCAL(size) alloca(size)
|
|
Packit |
b099d7 |
#define DEALLOCATE_LOCAL(ptr) /* as nothing */
|
|
Packit |
b099d7 |
#endif /* who does alloca */
|
|
Packit |
b099d7 |
#endif /* __GNUC__ */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* NO_ALLOCA */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef ALLOCATE_LOCAL
|
|
Packit |
b099d7 |
#define ALLOCATE_LOCAL(size) XtMalloc(size)
|
|
Packit |
b099d7 |
#define DEALLOCATE_LOCAL(ptr) XtFree(ptr)
|
|
Packit |
b099d7 |
#endif /* ALLOCATE_LOCAL */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* End of Xtos.h */
|
|
Packit |
b099d7 |
/*****************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/XmP.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* For padding structures in Mrm we need to know how big pointers are. */
|
|
Packit |
b099d7 |
#if !defined(CRAY) && !defined(__alpha)
|
|
Packit |
b099d7 |
#define MrmShortPtr
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
extern "C" {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define MATCH_CHAR 'P' /* referenced in InitPath strings and in the files
|
|
Packit |
b099d7 |
that uses it (ImageCache.c and Mrmhier.c) */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* OS-dependent file info for VirtKeys */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define XMBINDDIR "XMBINDDIR"
|
|
Packit |
b099d7 |
#ifndef XMBINDDIR_FALLBACK
|
|
Packit Service |
1f15c3 |
#define XMBINDDIR_FALLBACK "/usr/lib/Xm/bindings"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#define XMBINDFILE "xmbind.alias"
|
|
Packit |
b099d7 |
#define MOTIFBIND ".motifbind"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef enum {
|
|
Packit |
b099d7 |
XmOS_METHOD_NULL,
|
|
Packit |
b099d7 |
XmOS_METHOD_DEFAULTED,
|
|
Packit |
b099d7 |
XmOS_METHOD_REPLACED
|
|
Packit |
b099d7 |
} XmOSMethodStatus;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef XmDirection (*XmCharDirectionProc)(XtPointer /* char */,
|
|
Packit |
b099d7 |
XmTextType /* type */,
|
|
Packit |
b099d7 |
XmStringTag /* locale */);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef Status (*XmInitialDirectionProc)(XtPointer /* chars */,
|
|
Packit |
b099d7 |
XmTextType /* type */,
|
|
Packit |
b099d7 |
XmStringTag /* locale */,
|
|
Packit |
b099d7 |
unsigned int * /* num_bytes */,
|
|
Packit |
b099d7 |
XmDirection * /* direction */);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** Private Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
extern XmOSMethodStatus XmOSGetMethod(Widget w,
|
|
Packit |
b099d7 |
String method_name,
|
|
Packit |
b099d7 |
XtPointer * method,
|
|
Packit |
b099d7 |
XtPointer * os_data);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** End Private Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
} /* Close scope of 'extern "C"' declaration which encloses file. */
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* _XmosP_h */
|
|
Packit |
b099d7 |
/* DON'T ADD ANYTHING AFTER THIS #endif */
|