Blame lib/Xm/XmosP.h

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 */