[7331] in Athena Bugs

home help back first fref pref prev next nref lref last post

mips 7.2R: cc2.1

daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Mon Mar 18 06:49:58 1991

Date: Mon, 18 Mar 91 06:45:54 -0500
From: "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>
To: bugs@ATHENA.MIT.EDU

System name:		hodge
Type and version:	KN01 7.2R
Display type:		PM-MONO

What were you trying to do?
	Compile the file below (it's been preprocessed already).

What's wrong:
	It fails.

What should have happened:
	It shouldn't.

Please describe any relevant documentation references:
	/mit/sipbsrc/src/xrn/clientlib.c is what made this file.
	Note: It's got lots of blank lines in it.

--- cut here ---
static char XRNrcsid[] = "$Header: /tmp_mnt/net/opus/mnt/ricks/src/X/xrn/RCS/clientlib.c,v 1.12 90/09/29 01:12:27 ricks Exp Locker: ricks $";


































































































































typedef	unsigned char	u_char;
typedef	unsigned short	u_short;
typedef	unsigned int	u_int;
typedef	unsigned int	uint;		
typedef	unsigned long	u_long;
typedef	unsigned short	ushort;		




typedef	struct	_physadr { int r[1]; } *physadr;




typedef	struct	label_t	{
	int	val[12];
} label_t;


typedef	struct	_quad { long val[2]; } quad;
typedef	long	daddr_t;
typedef	char *	caddr_t;
typedef	u_long	ino_t;
typedef u_long	gno_t;
typedef short	cnt_t;			
typedef	long	swblk_t;
typedef	int	size_t;
typedef	int	time_t;
typedef	short	dev_t;
typedef	int	off_t;
typedef long	paddr_t;		
typedef long	key_t;			
typedef	int	clock_t;		
typedef u_short	mode_t;			
typedef short	nlink_t;		
typedef short	uid_t;			
typedef int	pid_t;			
typedef short	gid_t;			














typedef long	fd_mask;






typedef	struct fd_set {
	fd_mask	fds_bits[	(((64)+(( (sizeof(fd_mask) * 8		)	)-1))/( (sizeof(fd_mask) * 8		)	))];
} fd_set;





























































extern char
	*strcpy(),
	*strncpy(),
	*strcat(),
	*strncat(),
	*strchr(),
	*strrchr(),
	*strpbrk(),
	*strtok(),
	*index(),
	*rindex();
extern int
	strcmp(),
	strncmp(),
	strlen(),
	strspn(),
	strcspn();




























































































































































































































































struct flock {
	short	l_type;
	short	l_whence;
	off_t	l_start;
	off_t	l_len;		
	int	l_pid;
};






















































































































struct timeval {
	long	tv_sec;		
	long	tv_usec;	
};

struct timezone {
	int	tz_minuteswest;	
	int	tz_dsttime;	
};


























struct	itimerval {
	struct	timeval it_interval;	
	struct	timeval it_value;	
};




struct tm {
	int	tm_sec;
	int	tm_min;
	int	tm_hour;
	int	tm_mday;
	int	tm_mon;
	int	tm_year;
	int	tm_wday;
	int	tm_yday;
	int	tm_isdst;
};


extern	struct tm *gmtime(), *localtime();
extern	char *asctime(), *ctime();




extern	char *timezone();








































































extern	struct	_iobuf {
	int	_cnt;
	char	*_ptr;
	char	*_base;
	int	_bufsiz;
	short	_flag;
	char	_file;
} _iob[3];




























extern struct _iobuf	*fopen(), *fdopen(), *freopen(), *popen(), *tmpfile();
extern long	ftell();


extern void	rewind(), setbuf(), setbuffer();
extern int	setlinebuf();	

extern char	*fgets(), *gets(), *ctermid(), *cuserid(), 
		*tempnam(), *tmpnam();

extern char	*sprintf();












































































































































































struct	linger {
	int	l_onoff;		
	int	l_linger;		
};



































struct sockaddr {
	u_short	sa_family;		
	char	sa_data[14];		
};





struct sockproto {
	u_short	sp_family;		
	u_short	sp_protocol;		
};


































struct msghdr {
	caddr_t	msg_name;		
	int	msg_namelen;		
	struct	iovec *msg_iov;		
	int	msg_iovlen;		
	caddr_t	msg_accrights;		
	int	msg_accrightslen;
};





































































































struct in_addr {
	union {
		struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
		struct { u_short s_w1,s_w2; } S_un_w;
		u_long S_addr;
	} S_un;






};






























































struct sockaddr_in {
	short	sin_family;
	u_short	sin_port;
	struct	in_addr sin_addr;
	char	sin_zero[8];
};










u_short	ntohs(), htons();
u_long	ntohl(), htonl();



























struct	hostent {
	char	*h_name;	
	char	**h_aliases;	
	int	h_addrtype;	
	int	h_length;	
	char	**h_addr_list;	

};





struct	netent {
	char		*n_name;	
	char		**n_aliases;	
	int		n_addrtype;	
	unsigned long	n_net;		
};

struct	servent {
	char	*s_name;	
	char	**s_aliases;	
	int	s_port;		
	char	*s_proto;	
};

struct	protoent {
	char	*p_name;	
	char	**p_aliases;	
	int	p_proto;	
};

struct rpcent {
	char    *r_name;        
	char    **r_aliases;    
	int     r_number;       
};

struct hostent	*gethostbyname(), *gethostbyaddr(), *gethostent();
struct netent	*getnetbyname(), *getnetbyaddr(), *getnetent();
struct servent	*getservbyname(), *getservbyport(), *getservent();
struct protoent	*getprotobyname(), *getprotobynumber(), *getprotoent();
struct rpcent	*getrpcbyname(), *getrpcbynumber(), *getrpcent();
int *getsvcorder();







































































































































































































































































































































	
		
	






































































































     




















































































































































































































































































typedef unsigned long XID;

typedef XID Window;
typedef XID Drawable;
typedef XID Font;
typedef XID Pixmap;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;

typedef unsigned long Mask;

typedef unsigned long Atom;

typedef unsigned long VisualID;

typedef unsigned long Time;

typedef unsigned char KeyCode;

































































































































































		       


































































































































































































































































































































































































































































































































































































typedef struct _XExtData {
	int number;		
	struct _XExtData *next;	
	int (*free_private)();	
	char *private_data;	
} XExtData;




typedef struct {		
	int extension;		
	int major_opcode;	
	int first_event;	
	int first_error;	
} XExtCodes;





typedef struct {
    int depth;
    int bits_per_pixel;
    int scanline_pad;
} XPixmapFormatValues;





typedef struct {
	int function;		
	unsigned long plane_mask;
	unsigned long foreground;
	unsigned long background;
	int line_width;		
	int line_style;	 	
	int cap_style;	  	

	int join_style;	 	
	int fill_style;	 	

	int fill_rule;	  	
	int arc_mode;		
	Pixmap tile;		
	Pixmap stipple;		
	int ts_x_origin;	
	int ts_y_origin;
        Font font;	        
	int subwindow_mode;     
	int graphics_exposures;
	int clip_x_origin;	
	int clip_y_origin;
	Pixmap clip_mask;	
	int dash_offset;	
	char dashes;
} XGCValues;








typedef struct _XGC {
    XExtData *ext_data;	
    GContext gid;	
    int rects;		
    int dashes;	
    unsigned long dirty;
    XGCValues values;	
} *GC;





typedef struct {
	XExtData *ext_data;	
	VisualID visualid;	

	int class;		

	unsigned long red_mask, green_mask, blue_mask;	
	int bits_per_rgb;	
	int map_entries;	
} Visual;



	
typedef struct {
	int depth;		
	int nvisuals;		
	Visual *visuals;	
} Depth;




typedef struct {
	XExtData *ext_data;	
	struct _XDisplay *display;
	Window root;		
	int width, height;	
	int mwidth, mheight;	
	int ndepths;		
	Depth *depths;		
	int root_depth;		
	Visual *root_visual;	
	GC default_gc;		
	Colormap cmap;		
	unsigned long white_pixel;
	unsigned long black_pixel;	
	int max_maps, min_maps;	
	int backing_store;	
	int save_unders;	
	long root_input_mask;	
} Screen;




typedef struct {
	XExtData *ext_data;	
	int depth;		
	int bits_per_pixel;	
	int scanline_pad;	
} ScreenFormat;








typedef struct {
    Pixmap background_pixmap;	
    unsigned long background_pixel;	
    Pixmap border_pixmap;	
    unsigned long border_pixel;	
    int bit_gravity;		
    int win_gravity;		
    int backing_store;		
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;		
    long event_mask;		
    long do_not_propagate_mask;	
    int override_redirect;	
    Colormap colormap;		
    Cursor cursor;		
} XSetWindowAttributes;

typedef struct {
    int x, y;			
    int width, height;		
    int border_width;		
    int depth;          	
    Visual *visual;		
    Window root;        	

    int class;			

    int bit_gravity;		
    int win_gravity;		
    int backing_store;		
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;		
    Colormap colormap;		
    int map_installed;		
    int map_state;		
    long all_event_masks;	
    long your_event_mask;	
    long do_not_propagate_mask; 
    int override_redirect;	
    Screen *screen;		
} XWindowAttributes;






typedef struct {
	int family;		
	int length;		
	char *address;		
} XHostAddress;




typedef struct _XImage {
    int width, height;		
    int xoffset;		
    int format;			
    char *data;			
    int byte_order;		
    int bitmap_unit;		
    int bitmap_bit_order;	
    int bitmap_pad;		
    int depth;			
    int bytes_per_line;		
    int bits_per_pixel;		
    unsigned long red_mask;	
    unsigned long green_mask;
    unsigned long blue_mask;
    char *obdata;		
    struct funcs {		
	struct _XImage *(*create_image)();

	int (*destroy_image)        (struct _XImage *);
	unsigned long (*get_pixel)  (struct _XImage *, int, int);
	int (*put_pixel)            (struct _XImage *, int, int, unsigned long);
	struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
	int (*add_pixel)            (struct _XImage *, long);

	} f;
} XImage;




typedef struct {
    int x, y;
    int width, height;
    int border_width;
    Window sibling;
    int stack_mode;
} XWindowChanges;




typedef struct {
	unsigned long pixel;
	unsigned short red, green, blue;
	char flags;  
	char pad;
} XColor;






typedef struct {
    short x1, y1, x2, y2;
} XSegment;

typedef struct {
    short x, y;
} XPoint;
    
typedef struct {
    short x, y;
    unsigned short width, height;
} XRectangle;
    
typedef struct {
    short x, y;
    unsigned short width, height;
    short angle1, angle2;
} XArc;




typedef struct {
        int key_click_percent;
        int bell_percent;
        int bell_pitch;
        int bell_duration;
        int led;
        int led_mode;
        int key;
        int auto_repeat_mode;   
} XKeyboardControl;



typedef struct {
        int key_click_percent;
	int bell_percent;
	unsigned int bell_pitch, bell_duration;
	unsigned long led_mask;
	int global_auto_repeat;
	char auto_repeats[32];
} XKeyboardState;



typedef struct {
        Time time;
	short x, y;
} XTimeCoord;



typedef struct {
 	int max_keypermod;	
 	KeyCode *modifiermap;	
} XModifierKeymap;






typedef struct _XDisplay {
	XExtData *ext_data;	
	struct _XFreeFuncs *free_funcs; 
	int fd;			
	int lock;		
	int proto_major_version;
	int proto_minor_version;
	char *vendor;		
        XID resource_base;	
	XID resource_mask;	
	XID resource_id;	
	int resource_shift;	
	XID (*resource_alloc)(); 
	int byte_order;		
	int bitmap_unit;	
	int bitmap_pad;		
	int bitmap_bit_order;	
	int nformats;		
	ScreenFormat *pixmap_format;	
	int vnumber;		
	int release;		
	struct _XSQEvent *head, *tail;	
	int qlen;		
	unsigned long last_request_read; 
	unsigned long request;	
	char *last_req;		
	char *buffer;		
	char *bufptr;		
	char *bufmax;		
	unsigned max_request_size; 
	struct _XrmHashBucketRec *db;
	int (*synchandler)();	
	char *display_name;	
	int default_screen;	
	int nscreens;		
	Screen *screens;	
	unsigned long motion_buffer;	
	Window current;		
	int min_keycode;	
	int max_keycode;	
	KeySym *keysyms;	
	XModifierKeymap *modifiermap;	
	int keysyms_per_keycode;
	char *xdefaults;	
	char *scratch_buffer;	
	unsigned long scratch_length;	
	int ext_number;		
	struct _XExten *ext_procs; 
	







	int (*event_vec[128])();  
	int (*wire_vec[128])(); 
	KeySym lock_meaning;	   
	struct _XKeytrans *key_bindings; 
	Font cursor_font;	   
	struct _XDisplayAtoms *atoms; 
	struct {		   
	    long sequence_number;
	    int (*old_handler)();
	    int succeeded;
	} reconfigure_wm_window;
	unsigned long flags;	   
	unsigned int mode_switch;  
	struct _XContextDB *context_db; 
	int (**error_vec)();      
	




	struct {
	   caddr_t defaultCCCs;  
	   caddr_t clientCmaps;  
	} cms;
	struct _XIMFilter *im_filters;
} Display;




















typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	unsigned int keycode;	
	int same_screen;	
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	unsigned int button;	
	int same_screen;	
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	char is_hint;		
	int same_screen;	
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	int mode;		
	int detail;
	



	int same_screen;	
	int focus;		
	unsigned int state;	
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;		
	int mode;		
	int detail;
	




} XFocusChangeEvent;
typedef XFocusChangeEvent XFocusInEvent;
typedef XFocusChangeEvent XFocusOutEvent;


typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	char key_vector[32];
} XKeymapEvent;	

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int x, y;
	int width, height;
	int count;		
} XExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Drawable drawable;
	int x, y;
	int width, height;
	int count;		
	int major_code;		
	int minor_code;		
} XGraphicsExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Drawable drawable;
	int major_code;		
	int minor_code;		
} XNoExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int state;		
} XVisibilityEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;		
	Window window;		
	int x, y;		
	int width, height;	
	int border_width;	
	int override_redirect;	
} XCreateWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
} XDestroyWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int from_configure;
} XUnmapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int override_redirect;	
} XMapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
} XMapRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	Window parent;
	int x, y;
	int override_redirect;
} XReparentEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int override_redirect;
} XConfigureEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int x, y;
} XGravityEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int width, height;
} XResizeRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int detail;		
	unsigned long value_mask;
} XConfigureRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int place;		
} XCirculateEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
	int place;		
} XCirculateRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom atom;
	Time time;
	int state;		
} XPropertyEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom selection;
	Time time;
} XSelectionClearEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window owner;
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;
	Time time;
} XSelectionRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;		
	Time time;
} XSelectionEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Colormap colormap;	

	int new;

	int state;		
} XColormapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom message_type;
	int format;
	union {
		char b[20];
		short s[10];
		long l[5];
		} data;
} XClientMessageEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;		
	int request;		

	int first_keycode;	
	int count;		
} XMappingEvent;

typedef struct {
	int type;
	Display *display;	
	XID resourceid;		
	unsigned long serial;	
	unsigned char error_code;	
	unsigned char request_code;	
	unsigned char minor_code;	
} XErrorEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;
	Window window;	
} XAnyEvent;





typedef union _XEvent {
        int type;		
	XAnyEvent xany;
	XKeyEvent xkey;
	XButtonEvent xbutton;
	XMotionEvent xmotion;
	XCrossingEvent xcrossing;
	XFocusChangeEvent xfocus;
	XExposeEvent xexpose;
	XGraphicsExposeEvent xgraphicsexpose;
	XNoExposeEvent xnoexpose;
	XVisibilityEvent xvisibility;
	XCreateWindowEvent xcreatewindow;
	XDestroyWindowEvent xdestroywindow;
	XUnmapEvent xunmap;
	XMapEvent xmap;
	XMapRequestEvent xmaprequest;
	XReparentEvent xreparent;
	XConfigureEvent xconfigure;
	XGravityEvent xgravity;
	XResizeRequestEvent xresizerequest;
	XConfigureRequestEvent xconfigurerequest;
	XCirculateEvent xcirculate;
	XCirculateRequestEvent xcirculaterequest;
	XPropertyEvent xproperty;
	XSelectionClearEvent xselectionclear;
	XSelectionRequestEvent xselectionrequest;
	XSelectionEvent xselection;
	XColormapEvent xcolormap;
	XClientMessageEvent xclient;
	XMappingEvent xmapping;
	XErrorEvent xerror;
	XKeymapEvent xkeymap;
	long pad[24];
} XEvent;







typedef struct {
    short	lbearing;	
    short	rbearing;	
    short	width;		
    short	ascent;		
    short	descent;	
    unsigned short attributes;	
} XCharStruct;





typedef struct {
    Atom name;
    unsigned long card32;
} XFontProp;

typedef struct {
    XExtData	*ext_data;	
    Font        fid;            
    unsigned	direction;	
    unsigned	min_char_or_byte2;
    unsigned	max_char_or_byte2;
    unsigned	min_byte1;	
    unsigned	max_byte1;	
    int	all_chars_exist;
    unsigned	default_char;	
    int         n_properties;   
    XFontProp	*properties;	
    XCharStruct	min_bounds;	
    XCharStruct	max_bounds;	
    XCharStruct	*per_char;	
    int		ascent;		
    int		descent;	
} XFontStruct;




typedef struct {
    char *chars;		
    int nchars;			
    int delta;			
    Font font;			
} XTextItem;

typedef struct {		
    unsigned char byte1;
    unsigned char byte2;
} XChar2b;

typedef struct {
    XChar2b *chars;		
    int nchars;			
    int delta;			
    Font font;			
} XTextItem16;


typedef union { Display *display;
		GC gc;
		Visual *visual;
		Screen *screen;
		ScreenFormat *pixmap_format;
		XFontStruct *font; } XEDataObject;

typedef struct {
    XRectangle      max_ink_extent;
    XRectangle      max_logical_extent;
} XFontSetExtents;

typedef struct _XFontSet *XFontSet;





typedef struct {
    char           *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XmbTextItem;

typedef struct {
    unsigned int        *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XwcTextItem;

typedef void (*XIMProc)();


typedef char *XIMValue;

typedef struct _XIM *XIM;
typedef struct _XIC *XIC;

typedef unsigned short XIMStyle;

typedef struct {
    unsigned short count_styles;
    XIMStyle *supported_styles;
} XIMStyles;













































typedef caddr_t XVaNestedList;


typedef struct {
    XIMValue client_data;
    XIMProc callback;
} XIMCallback;

typedef unsigned char XIMFeedback;








typedef struct _XIMText {
    unsigned short length;
    XIMFeedback *feedback;
    int encoding_is_wchar; 
    union {
	char *multi_byte;
	unsigned int *wide_char;
    } string; 
} XIMText;

typedef struct _XIMPreEditDrawCallbackStruct {
    int caret;		
    int chg_first;	
    int chg_length;	
    XIMText text;
} XIMPreEditDrawCallbackStruct;

typedef enum {
    XIMForwardChar, XIMBackwardChar,
    XIMForwardWord, XIMBackwardWord,
    XIMCaretUp, XIMCaretDown,
    XIMNextLine, XIMPreviousLine,
    XIMLineStart, XIMLineEnd, 
    XIMAbsolutePosition,
    XIMDontChange
} XIMCaretDirection;

typedef enum {
    XIMIsInvisible,	 
    XIMIsPrimary,	
    XIMIsSecondary	
} XIMCaretStyle;

typedef struct _XIMPreEditCaretCallbackStruct {
    int position;		 
    XIMCaretDirection direction; 
    XIMCaretStyle style;	 
} XIMPreEditCaretCallbackStruct;

typedef enum {
    TextType,
    Bitmaptype
} XIMStatusDataType;
	
typedef struct _XIMStatusDrawCallbackStruct {
    XIMStatusDataType type;
    union {
	XIMText text;
	Pixmap  bitmap;
    } data;
} XIMStatusDrawCallbackStruct;



extern XFontStruct *XLoadQueryFont(

    Display*		,
     char*	

);

extern XFontStruct *XQueryFont(

    Display*		,
    XID			

);


extern XTimeCoord *XGetMotionEvents(

    Display*		,
    Window		,
    Time		,
    Time		,
    int*		

);

extern XModifierKeymap *XDeleteModifiermapEntry(

    XModifierKeymap*	,

    unsigned int	,

    int			

);

extern XModifierKeymap	*XGetModifierMapping(

    Display*		

);

extern XModifierKeymap	*XInsertModifiermapEntry(

    XModifierKeymap*	,

    unsigned int	,

    int			    

);

extern XModifierKeymap *XNewModifiermap(

    int			

);

extern XImage *XCreateImage(

    Display*		,
    Visual*		,
    unsigned int	,
    int			,
    int			,
    char*		,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);
extern XImage *XGetImage(

    Display*		,
    Drawable		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    int			

);
extern XImage *XGetSubImage(

    Display*		,
    Drawable		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    int			,
    XImage*		,
    int			,
    int			

);





extern Display *XOpenDisplay(

     char*	

);

extern void XrmInitialize(

    void

);

extern char *XFetchBytes(

    Display*		,
    int*		

);
extern char *XFetchBuffer(

    Display*		,
    int*		,
    int			

);
extern char *XGetAtomName(

    Display*		,
    Atom		

);
extern char *XGetDefault(

    Display*		,
     char*	,
     char*			  

);
extern char *XDisplayName(

     char*	

);
extern char *XKeysymToString(

    KeySym		

);

extern int (*XSynchronize(

    Display*		,
    int		

))();
extern int (*XSetAfterFunction(

    Display*		,
    int (*) (

            )		

))();
extern Atom XInternAtom(

    Display*		,
     char*	,
    int				 

);
extern Colormap XCopyColormapAndFree(

    Display*		,
    Colormap		

);
extern Colormap XCreateColormap(

    Display*		,
    Window		,
    Visual*		,
    int						 

);
extern Cursor XCreatePixmapCursor(

    Display*		,
    Pixmap		,
    Pixmap		,
    XColor*		,
    XColor*		,
    unsigned int	,
    unsigned int				   

);
extern Cursor XCreateGlyphCursor(

    Display*		,
    Font		,
    Font		,
    unsigned int	,
    unsigned int	,
    XColor*		,
    XColor*		

);
extern Cursor XCreateFontCursor(

    Display*		,
    unsigned int	

);
extern Font XLoadFont(

    Display*		,
     char*	

);
extern GC XCreateGC(

    Display*		,
    Drawable		,
    unsigned long	,
    XGCValues*		

);
extern GContext XGContextFromGC(

    GC			

);
extern Pixmap XCreatePixmap(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int			        

);
extern Pixmap XCreateBitmapFromData(

    Display*		,
    Drawable		,
     char*	,
    unsigned int	,
    unsigned int	

);
extern Pixmap XCreatePixmapFromBitmapData(

    Display*		,
    Drawable		,
    char*		,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    unsigned long	,
    unsigned int	

);
extern Window XCreateSimpleWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    unsigned long	

);
extern Window XGetSelectionOwner(

    Display*		,
    Atom		

);
extern Window XCreateWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    int			,
    unsigned int	,
    Visual*		,
    unsigned long	,
    XSetWindowAttributes*	

); 
extern Colormap *XListInstalledColormaps(

    Display*		,
    Window		,
    int*		

);
extern char **XListFonts(

    Display*		,
     char*	,
    int			,
    int*		

);
extern char **XListFontsWithInfo(

    Display*		,
     char*	,
    int			,
    int*		,
    XFontStruct**	

);
extern char **XGetFontPath(

    Display*		,
    int*		

);
extern char **XListExtensions(

    Display*		,
    int*		

);
extern Atom *XListProperties(

    Display*		,
    Window		,
    int*		

);
extern XHostAddress *XListHosts(

    Display*		,
    int*		,
    int*		

);
extern KeySym XKeycodeToKeysym(

    Display*		,

    unsigned int	,

    int			

);
extern KeySym XLookupKeysym(

    XKeyEvent*		,
    int			

);
extern KeySym *XGetKeyboardMapping(

    Display*		,

    unsigned int	,

    int			,
    int*		

);
extern KeySym XStringToKeysym(

     char*	

);
extern long XMaxRequestSize(

    Display*		

);
extern char *XResourceManagerString(

    Display*		

);
extern char *XScreenResourceString(

	Screen*		

);
extern unsigned long XDisplayMotionBufferSize(

    Display*		

);
extern VisualID XVisualIDFromVisual(

    Visual*		

);



extern XExtCodes *XInitExtension(

    Display*		,
     char*	

);

extern XExtCodes *XAddExtension(

    Display*		

);
extern XExtData *XFindOnExtensionList(

    XExtData**		,
    int			

);
extern XExtData **XEHeadOfExtensionList(

    XEDataObject	

);


extern Window XRootWindow(

    Display*		,
    int			

);
extern Window XDefaultRootWindow(

    Display*		

);
extern Window XRootWindowOfScreen(

    Screen*		

);
extern Visual *XDefaultVisual(

    Display*		,
    int			

);
extern Visual *XDefaultVisualOfScreen(

    Screen*		

);
extern GC XDefaultGC(

    Display*		,
    int			

);
extern GC XDefaultGCOfScreen(

    Screen*		

);
extern unsigned long XBlackPixel(

    Display*		,
    int			

);
extern unsigned long XWhitePixel(

    Display*		,
    int			

);
extern unsigned long XAllPlanes(

    void

);
extern unsigned long XBlackPixelOfScreen(

    Screen*		

);
extern unsigned long XWhitePixelOfScreen(

    Screen*		

);
extern unsigned long XNextRequest(

    Display*		

);
extern unsigned long XLastKnownRequestProcessed(

    Display*		

);
extern char *XServerVendor(

    Display*		

);
extern char *XDisplayString(

    Display*		

);
extern Colormap XDefaultColormap(

    Display*		,
    int			

);
extern Colormap XDefaultColormapOfScreen(

    Screen*		

);
extern Display *XDisplayOfScreen(

    Screen*		

);
extern Screen *XScreenOfDisplay(

    Display*		,
    int			

);
extern Screen *XDefaultScreenOfDisplay(

    Display*		

);
extern long XEventMaskOfScreen(

    Screen*		

);

extern int XScreenNumberOfScreen(

    Screen*		

);

typedef int (*XErrorHandler) (	    

    Display*		,
    XErrorEvent*	

);

extern XErrorHandler XSetErrorHandler (

    XErrorHandler	

);


typedef int (*XIOErrorHandler) (    

    Display*		

);

extern XIOErrorHandler XSetIOErrorHandler (

    XIOErrorHandler	

);


extern XPixmapFormatValues *XListPixmapFormats(

    Display*		,
    int*		

);
extern int *XListDepths(

    Display*		,
    int			,
    int*		

);



extern int XReconfigureWMWindow(

    Display*		,
    Window		,
    int			,
    unsigned int	,
    XWindowChanges*	

);

extern int XGetWMProtocols(

    Display*		,
    Window		,
    Atom**		,
    int*		

);
extern int XSetWMProtocols(

    Display*		,
    Window		,
    Atom*		,
    int			

);
extern int XIconifyWindow(

    Display*		,
    Window		,
    int			

);
extern int XWithdrawWindow(

    Display*		,
    Window		,
    int			

);
extern int XGetCommand(

    Display*		,
    Window		,
    char***		,
    int*		

);
extern int XGetWMColormapWindows(

    Display*		,
    Window		,
    Window**		,
    int*		

);
extern int XSetWMColormapWindows(

    Display*		,
    Window		,
    Window*		,
    int			

);
extern void XFreeStringList(

    char**		

);
extern XSetTransientForHint(

    Display*		,
    Window		,
    Window		

);



extern XActivateScreenSaver(

    Display*		

);

extern XAddHost(

    Display*		,
    XHostAddress*	

);

extern XAddHosts(

    Display*		,
    XHostAddress*	,
    int			    

);

extern XAddToExtensionList(

    struct _XExtData**	,
    XExtData*		

);

extern XAddToSaveSet(

    Display*		,
    Window		

);

extern int XAllocColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern int XAllocColorCells(

    Display*		,
    Colormap		,
    int	        ,
    unsigned long*	,
    unsigned int	,
    unsigned long*	,
    unsigned int 	

);

extern int XAllocColorPlanes(

    Display*		,
    Colormap		,
    int		,
    unsigned long*	,
    int			,
    int			,
    int			,
    int			,
    unsigned long*	,
    unsigned long*	,
    unsigned long*	

);

extern int XAllocNamedColor(

    Display*		,
    Colormap		,
     char*	,
    XColor*		,
    XColor*		

);

extern XAllowEvents(

    Display*		,
    int			,
    Time		

);

extern XAutoRepeatOff(

    Display*		

);

extern XAutoRepeatOn(

    Display*		

);

extern XBell(

    Display*		,
    int			

);

extern int XBitmapBitOrder(

    Display*		

);

extern int XBitmapPad(

    Display*		

);

extern int XBitmapUnit(

    Display*		

);

extern int XCellsOfScreen(

    Screen*		

);

extern XChangeActivePointerGrab(

    Display*		,
    unsigned int	,
    Cursor		,
    Time		

);

extern XChangeGC(

    Display*		,
    GC			,
    unsigned long	,
    XGCValues*		

);

extern XChangeKeyboardControl(

    Display*		,
    unsigned long	,
    XKeyboardControl*	

);

extern XChangeKeyboardMapping(

    Display*		,
    int			,
    int			,
    KeySym*		,
    int			

);

extern XChangePointerControl(

    Display*		,
    int		,
    int		,
    int			,
    int			,
    int			

);

extern XChangeProperty(

    Display*		,
    Window		,
    Atom		,
    Atom		,
    int			,
    int			,
     unsigned char*	,
    int			

);

extern XChangeSaveSet(

    Display*		,
    Window		,
    int			

);

extern XChangeWindowAttributes(

    Display*		,
    Window		,
    unsigned long	,
    XSetWindowAttributes* 

);

extern int XCheckIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

             )		,
    char*		

);

extern int XCheckMaskEvent(

    Display*		,
    long		,
    XEvent*		

);

extern int XCheckTypedEvent(

    Display*		,
    int			,
    XEvent*		

);

extern int XCheckTypedWindowEvent(

    Display*		,
    Window		,
    int			,
    XEvent*		

);

extern int XCheckWindowEvent(

    Display*		,
    Window		,
    long		,
    XEvent*		

);

extern XCirculateSubwindows(

    Display*		,
    Window		,
    int			

);

extern XCirculateSubwindowsDown(

    Display*		,
    Window		

);

extern XCirculateSubwindowsUp(

    Display*		,
    Window		

);

extern XClearArea(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int		

);

extern XClearWindow(

    Display*		,
    Window		

);

extern XCloseDisplay(

    Display*		

);

extern XConfigureWindow(

    Display*		,
    Window		,
    unsigned int	,
    XWindowChanges*			 

);

extern int XConnectionNumber(

    Display*		

);

extern XConvertSelection(

    Display*		,
    Atom		,
    Atom 		,
    Atom		,
    Window		,
    Time		

);

extern XCopyArea(

    Display*		,
    Drawable		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XCopyGC(

    Display*		,
    GC			,
    unsigned long	,
    GC			

);

extern XCopyPlane(

    Display*		,
    Drawable		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			,
    unsigned long	

);

extern int XDefaultDepth(

    Display*		,
    int			

);

extern int XDefaultDepthOfScreen(

    Screen*		

);

extern int XDefaultScreen(

    Display*		

);

extern XDefineCursor(

    Display*		,
    Window		,
    Cursor		

);

extern XDeleteProperty(

    Display*		,
    Window		,
    Atom		

);

extern XDestroyWindow(

    Display*		,
    Window		

);

extern XDestroySubwindows(

    Display*		,
    Window		

);

extern int XDoesBackingStore(

    Screen*		    

);

extern int XDoesSaveUnders(

    Screen*		

);

extern XDisableAccessControl(

    Display*		

);


extern int XDisplayCells(

    Display*		,
    int			

);

extern int XDisplayHeight(

    Display*		,
    int			

);

extern int XDisplayHeightMM(

    Display*		,
    int			

);

extern XDisplayKeycodes(

    Display*		,
    int*		,
    int*		

);

extern int XDisplayPlanes(

    Display*		,
    int			

);

extern int XDisplayWidth(

    Display*		,
    int			

);

extern int XDisplayWidthMM(

    Display*		,
    int			

);

extern XDrawArc(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XDrawArcs(

    Display*		,
    Drawable		,
    GC			,
    XArc*		,
    int			

);

extern XDrawImageString(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
     char*	,
    int			

);

extern XDrawImageString16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
     XChar2b*	,
    int			

);

extern XDrawLine(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    int			,
    int			

);

extern XDrawLines(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			

);

extern XDrawPoint(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			

);

extern XDrawPoints(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			

);

extern XDrawRectangle(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XDrawRectangles(

    Display*		,
    Drawable		,
    GC			,
    XRectangle*		,
    int			

);

extern XDrawSegments(

    Display*		,
    Drawable		,
    GC			,
    XSegment*		,
    int			

);

extern XDrawString(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
     char*	,
    int			

);

extern XDrawString16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
     XChar2b*	,
    int			

);

extern XDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XTextItem*		,
    int			

);

extern XDrawText16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XTextItem16*	,
    int			

);

extern XEnableAccessControl(

    Display*		

);

extern int XEventsQueued(

    Display*		,
    int			

);

extern int XFetchName(

    Display*		,
    Window		,
    char**		

);

extern XFillArc(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XFillArcs(

    Display*		,
    Drawable		,
    GC			,
    XArc*		,
    int			

);

extern XFillPolygon(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			,
    int			

);

extern XFillRectangle(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XFillRectangles(

    Display*		,
    Drawable		,
    GC			,
    XRectangle*		,
    int			

);

extern XFlush(

    Display*		

);

extern XForceScreenSaver(

    Display*		,
    int			

);

extern XFree(

    char*		

);

extern XFreeColormap(

    Display*		,
    Colormap		

);

extern XFreeColors(

    Display*		,
    Colormap		,
    unsigned long*	,
    int			,
    unsigned long	

);

extern XFreeCursor(

    Display*		,
    Cursor		

);

extern XFreeExtensionList(

    char**		    

);

extern XFreeFont(

    Display*		,
    XFontStruct*	

);

extern XFreeFontInfo(

    char**		,
    XFontStruct*	,
    int			

);

extern XFreeFontNames(

    char**		

);

extern XFreeFontPath(

    char**		

);

extern XFreeGC(

    Display*		,
    GC			

);

extern XFreeModifiermap(

    XModifierKeymap*	

);

extern XFreePixmap(

    Display*		,
    Pixmap		

);

extern int XGeometry(

    Display*		,
    int			,
     char*	,
     char*	,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    int			,
    int			,
    int*		,
    int*		,
    int*		,
    int*		

);

extern XGetErrorDatabaseText(

    Display*		,
     char*	,
     char*	,
     char*	,
    char*		,
    int			

);

extern XGetErrorText(

    Display*		,
    int			,
    char*		,
    int			

);

extern int XGetFontProperty(

    XFontStruct*	,
    Atom		,
    unsigned long*	

);

extern int XGetGCValues(

    Display*		,
    GC			,
    unsigned long	,
    XGCValues*		

);

extern int XGetGeometry(

    Display*		,
    Drawable		,
    Window*		,
    int*		,
    int*		,
    unsigned int*	,
    unsigned int*	,
    unsigned int*	,
    unsigned int*	

);

extern int XGetIconName(

    Display*		,
    Window		,
    char**		

);

extern XGetInputFocus(

    Display*		,
    Window*		,
    int*		

);

extern XGetKeyboardControl(

    Display*		,
    XKeyboardState*	

);

extern XGetPointerControl(

    Display*		,
    int*		,
    int*		,
    int*		

);

extern int XGetPointerMapping(

    Display*		,
    unsigned char*	,
    int			

);

extern XGetScreenSaver(

    Display*		,
    int*		,
    int*		,
    int*		,
    int*		

);

extern int XGetTransientForHint(

    Display*		,
    Window		,
    Window*		

);

extern int XGetWindowProperty(

    Display*		,
    Window		,
    Atom		,
    long		,
    long		,
    int		,
    Atom		,
    Atom*		,
    int*		,
    unsigned long*	,
    unsigned long*	,
    unsigned char**	

);

extern int XGetWindowAttributes(

    Display*		,
    Window		,
    XWindowAttributes*	

);

extern XGrabButton(

    Display*		,
    unsigned int	,
    unsigned int	,
    Window		,
    int		,
    unsigned int	,
    int			,
    int			,
    Window		,
    Cursor		

);

extern XGrabKey(

    Display*		,
    int			,
    unsigned int	,
    Window		,
    int		,
    int			,
    int			

);

extern int XGrabKeyboard(

    Display*		,
    Window		,
    int		,
    int			,
    int			,
    Time		

);

extern int XGrabPointer(

    Display*		,
    Window		,
    int		,
    unsigned int	,
    int			,
    int			,
    Window		,
    Cursor		,
    Time		

);

extern XGrabServer(

    Display*		

);

extern int XHeightMMOfScreen(

    Screen*		

);

extern int XHeightOfScreen(

    Screen*		

);

extern XIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

             )		,
    char*		

);

extern int XImageByteOrder(

    Display*		

);

extern XInstallColormap(

    Display*		,
    Colormap		

);

extern KeyCode XKeysymToKeycode(

    Display*		,
    KeySym		

);

extern XKillClient(

    Display*		,
    XID			

);

extern unsigned long XLastKnownRequestProcessed(

    Display*		

);

extern int XLookupColor(

    Display*		,
    Colormap		,
     char*	,
    XColor*		,
    XColor*		

);

extern XLowerWindow(

    Display*		,
    Window		

);

extern XMapRaised(

    Display*		,
    Window		

);

extern XMapSubwindows(

    Display*		,
    Window		

);

extern XMapWindow(

    Display*		,
    Window		

);

extern XMaskEvent(

    Display*		,
    long		,
    XEvent*		

);

extern int XMaxCmapsOfScreen(

    Screen*		

);

extern int XMinCmapsOfScreen(

    Screen*		

);

extern XMoveResizeWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XMoveWindow(

    Display*		,
    Window		,
    int			,
    int			

);

extern XNextEvent(

    Display*		,
    XEvent*		

);

extern XNoOp(

    Display*		

);

extern int XParseColor(

    Display*		,
    Colormap		,
     char*	,
    XColor*		

);

extern int XParseGeometry(

     char*	,
    int*		,
    int*		,
    unsigned int*	,
    unsigned int*	

);

extern XPeekEvent(

    Display*		,
    XEvent*		

);

extern XPeekIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

             )		,
    char*		

);

extern int XPending(

    Display*		

);

extern int XPlanesOfScreen(

    Screen*		
    

);

extern int XProtocolRevision(

    Display*		

);

extern int XProtocolVersion(

    Display*		

);


extern XPutBackEvent(

    Display*		,
    XEvent*		

);

extern XPutImage(

    Display*		,
    Drawable		,
    GC			,
    XImage*		,
    int			,
    int			,
    int			,
    int			,
    unsigned int	,
    unsigned int		  

);

extern int XQLength(

    Display*		

);

extern int XQueryBestCursor(

    Display*		,
    Drawable		,
    unsigned int        ,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestSize(

    Display*		,
    int			,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestStipple(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestTile(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern XQueryColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern XQueryColors(

    Display*		,
    Colormap		,
    XColor*		,
    int			

);

extern int XQueryExtension(

    Display*		,
     char*	,
    int*		,
    int*		,
    int*		

);

extern XQueryKeymap(

    Display*		,
    char [32]		

);

extern int XQueryPointer(

    Display*		,
    Window		,
    Window*		,
    Window*		,
    int*		,
    int*		,
    int*		,
    int*		,
    unsigned int*       

);

extern XQueryTextExtents(

    Display*		,
    XID			,
     char*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	    

);

extern XQueryTextExtents16(

    Display*		,
    XID			,
     XChar2b*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern int XQueryTree(

    Display*		,
    Window		,
    Window*		,
    Window*		,
    Window**		,
    unsigned int*	

);

extern XRaiseWindow(

    Display*		,
    Window		

);

extern int XReadBitmapFile(

    Display*		,
    Drawable 		,
     char*	,
    unsigned int*	,
    unsigned int*	,
    Pixmap*		,
    int*		,
    int*		

);

extern XRebindKeysym(

    Display*		,
    KeySym		,
    KeySym*		,
    int			,
     unsigned char*	,
    int			

);

extern XRecolorCursor(

    Display*		,
    Cursor		,
    XColor*		,
    XColor*		

);

extern XRefreshKeyboardMapping(

    XMappingEvent*	    

);

extern XRemoveFromSaveSet(

    Display*		,
    Window		

);

extern XRemoveHost(

    Display*		,
    XHostAddress*	

);

extern XRemoveHosts(

    Display*		,
    XHostAddress*	,
    int			

);

extern XReparentWindow(

    Display*		,
    Window		,
    Window		,
    int			,
    int			

);

extern XResetScreenSaver(

    Display*		

);

extern XResizeWindow(

    Display*		,
    Window		,
    unsigned int	,
    unsigned int	

);

extern XRestackWindows(

    Display*		,
    Window*		,
    int			

);

extern XRotateBuffers(

    Display*		,
    int			

);

extern XRotateWindowProperties(

    Display*		,
    Window		,
    Atom*		,
    int			,
    int			

);

extern int XScreenCount(

    Display*		

);

extern XSelectInput(

    Display*		,
    Window		,
    long		

);

extern int XSendEvent(

    Display*		,
    Window		,
    int		,
    long		,
    XEvent*		

);

extern XSetAccessControl(

    Display*		,
    int			

);

extern XSetArcMode(

    Display*		,
    GC			,
    int			

);

extern XSetBackground(

    Display*		,
    GC			,
    unsigned long	

);

extern XSetClipMask(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetClipOrigin(

    Display*		,
    GC			,
    int			,
    int			

);

extern XSetClipRectangles(

    Display*		,
    GC			,
    int			,
    int			,
    XRectangle*		,
    int			,
    int			

);

extern XSetCloseDownMode(

    Display*		,
    int			

);

extern XSetCommand(

    Display*		,
    Window		,
    char**		,
    int			

);

extern XSetDashes(

    Display*		,
    GC			,
    int			,
     char*	,
    int			

);

extern XSetFillRule(

    Display*		,
    GC			,
    int			

);

extern XSetFillStyle(

    Display*		,
    GC			,
    int			

);

extern XSetFont(

    Display*		,
    GC			,
    Font		

);

extern XSetFontPath(

    Display*		,
    char**		,
    int				     

);

extern XSetForeground(

    Display*		,
    GC			,
    unsigned long	

);

extern XSetFunction(

    Display*		,
    GC			,
    int			

);

extern XSetGraphicsExposures(

    Display*		,
    GC			,
    int		

);

extern XSetIconName(

    Display*		,
    Window		,
     char*	

);

extern XSetInputFocus(

    Display*		,
    Window		,
    int			,
    Time		

);

extern XSetLineAttributes(

    Display*		,
    GC			,
    unsigned int	,
    int			,
    int			,
    int			

);

extern int XSetModifierMapping(

    Display*		,
    XModifierKeymap*	

);

extern XSetPlaneMask(

    Display*		,
    GC			,
    unsigned long	

);

extern int XSetPointerMapping(

    Display*		,
     unsigned char*	,
    int			

);

extern XSetScreenSaver(

    Display*		,
    int			,
    int			,
    int			,
    int			

);

extern XSetSelectionOwner(

    Display*		,
    Atom	        ,
    Window		,
    Time		

);

extern XSetState(

    Display*		,
    GC			,
    unsigned long 	,
    unsigned long	,
    int			,
    unsigned long	

);

extern XSetStipple(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetSubwindowMode(

    Display*		,
    GC			,
    int			

);

extern XSetTSOrigin(

    Display*		,
    GC			,
    int			,
    int			

);

extern XSetTile(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetWindowBackground(

    Display*		,
    Window		,
    unsigned long	

);

extern XSetWindowBackgroundPixmap(

    Display*		,
    Window		,
    Pixmap		

);

extern XSetWindowBorder(

    Display*		,
    Window		,
    unsigned long	

);

extern XSetWindowBorderPixmap(

    Display*		,
    Window		,
    Pixmap		

);

extern XSetWindowBorderWidth(

    Display*		,
    Window		,
    unsigned int	

);

extern XSetWindowColormap(

    Display*		,
    Window		,
    Colormap		

);

extern XStoreBuffer(

    Display*		,
     char*	,
    int			,
    int			

);

extern XStoreBytes(

    Display*		,
     char*	,
    int			

);

extern XStoreColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern XStoreColors(

    Display*		,
    Colormap		,
    XColor*		,
    int			

);

extern XStoreName(

    Display*		,
    Window		,
     char*	

);

extern XStoreNamedColor(

    Display*		,
    Colormap		,
     char*	,
    unsigned long	,
    int			

);

extern XSync(

    Display*		,
    int		

);

extern XTextExtents(

    XFontStruct*	,
     char*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern XTextExtents16(

    XFontStruct*	,
     XChar2b*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern int XTextWidth(

    XFontStruct*	,
     char*	,
    int			

);

extern int XTextWidth16(

    XFontStruct*	,
     XChar2b*	,
    int			

);

extern int XTranslateCoordinates(

    Display*		,
    Window		,
    Window		,
    int			,
    int			,
    int*		,
    int*		,
    Window*		

);

extern XUndefineCursor(

    Display*		,
    Window		

);

extern XUngrabButton(

    Display*		,
    unsigned int	,
    unsigned int	,
    Window		

);

extern XUngrabKey(

    Display*		,
    int			,
    unsigned int	,
    Window		

);

extern XUngrabKeyboard(

    Display*		,
    Time		

);

extern XUngrabPointer(

    Display*		,
    Time		

);

extern XUngrabServer(

    Display*		

);

extern XUninstallColormap(

    Display*		,
    Colormap		

);

extern XUnloadFont(

    Display*		,
    Font		

);

extern XUnmapSubwindows(

    Display*		,
    Window		

);

extern XUnmapWindow(

    Display*		,
    Window		

);

extern int XVendorRelease(

    Display*		

);

extern XWarpPointer(

    Display*		,
    Window		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int				     

);

extern int XWidthMMOfScreen(

    Screen*		

);

extern int XWidthOfScreen(

    Screen*		

);

extern XWindowEvent(

    Display*		,
    Window		,
    long		,
    XEvent*		

);

extern int XWriteBitmapFile(

    Display*		,
     char*	,
    Pixmap		,
    unsigned int	,
    unsigned int	,
    int			,
    int					     

);

extern XFontSet XCreateFontSet(

    Display*		,
     char*	,
    char***		,
    int*		,
    char**		

);

extern void XFreeFontSet(

    Display*		,
    XFontSet		

);

extern void XFreeStringList(

    char**		

);

extern int XFontsOfFontSet(

    Display*		,
    XFontSet		,
    XFontStruct***	,
    char***		

);

extern char *XLocaleOfFontSet(

    Display*		,
    XFontSet		

);

extern XFontSetExtents *XExtentsOfFontSet(

    Display*		,
    XFontSet		

);

extern int XmbTextEscapement(

    Display*		,
    XFontSet		,
     char*	,
    int			

);

extern int XwcTextEscapement(

    Display*		,
    XFontSet		,
    unsigned int*		,
    int			

);

extern int XmbTextExtents(

    Display*		,
    XFontSet		,
     char*	,
    int			,
    XRectangle*		,
    XRectangle*		

);

extern int XwcTextExtents(

    Display*		,
    XFontSet		,
    unsigned int*		,
    int			,
    XRectangle*		,
    XRectangle*		

);

extern int XmbTextPerCharExtents(

    Display*		,
    XFontSet		,
     char*	,
    int			,
    XRectangle*		,
    XRectangle*		,
    int			,
    int*		,
    XRectangle*		,
    XRectangle*		

);

extern int XwcTextPerCharExtents(

    Display*		,
    XFontSet		,
    unsigned int*		,
    int			,
    XRectangle*		,
    XRectangle*		,
    int			,
    int*		,
    XRectangle*		,
    XRectangle*		

);

extern int XmbComputeTextRedraw(

    Display*		,
    XFontSet		,
     char*	,
    int			,
    int			,
    int			,
     char*	,
    int			,
    int*		,
    int*		

);

extern int XwcComputeTextRedraw(

    Display*		,
    XFontSet		,
    unsigned int*		,
    int			,
    int			,
    int			,
    unsigned int*		,
    int			,
    int*		,
    int*		

);

extern void XmbDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XmbTextItem*	,
    int			

);

extern void XwcDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XwcTextItem*	,
    int			

);

extern void XmbDrawString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
     char*	,
    int			

);

extern void XwcDrawString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    unsigned int*		,
    int			

);

extern void XmbDrawImageString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
     char*	,
    int			

);

extern void XwcDrawImageString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    unsigned int*		,
    int			

);

extern XIM XOpenIM(

    Display*			,
    struct _XrmHashBucketRec*	,
    char*			,
    char*			

);

extern int XCloseIM(

    XIM 

);

extern XIC XCreateIC(

);

extern void XDestroyIC(

    XIC 

);

extern void XSetICFocus(

    XIC 

);

extern void XUnsetICFocus(

    XIC 

);

extern unsigned int *XwcResetIC(

    XIC 

);

extern char *XmbResetIC(

    XIC 

);

extern char *XSetICValues(

);

extern char *XGetICValues(

);

extern void XRegisterFilter(

    Display*		,
    Window		,
    unsigned long	,
    int		,
    int (*)(

	     )		,
    XIMValue		

);

extern void XUnregisterFilter(

    Display*		,
    Window		,
    int (*)(

	     )		,
    XIMValue		

);

extern int XFilterEvent(

    XEvent*	,
    Window	

);

extern int XmbLookupString(

    XIC			,
    XKeyPressedEvent*	,
    char*		,
    int			,
    KeySym*		,
    int*		

);

extern int XwcLookupString(

    XIC			,
    XKeyPressedEvent*	,
    unsigned int*		,
    int			,
    KeySym*		,
    int*		

);

extern Display *XDisplayOfIM(

    XIM 

);

extern XIM XIMOfIC(

    XIC 

);

extern char *XLocaleOfIM(

    XIM 

);

extern XVaNestedList XVaCreateNestedList(

);








































































typedef struct {
    	long flags;	
	int x, y;		
	int width, height;	
	int min_width, min_height;
	int max_width, max_height;
    	int width_inc, height_inc;
	struct {
		int x;	
		int y;	
	} min_aspect, max_aspect;
	int base_width, base_height;		
	int win_gravity;			
} XSizeHints;
























typedef struct {
	long flags;	
	int input;	

	int initial_state;	
	Pixmap icon_pixmap;	
	Window icon_window; 	
	int icon_x, icon_y; 	
	Pixmap icon_mask;	
	XID window_group;	
	
} XWMHints;
























			






typedef struct {
    unsigned char *value;		
    Atom encoding;			
    int format;				
    unsigned long nitems;		
} XTextProperty;


typedef struct {
	int min_width, min_height;
	int max_width, max_height;
	int width_inc, height_inc;
} XIconSize;

typedef struct {
	char *res_name;
	char *res_class;
} XClassHint;



















typedef struct _XComposeStatus {
    char *compose_ptr;		
    int chars_matched;		
} XComposeStatus;

























typedef struct _XRegion *Region; 


 



 






typedef struct {
  Visual *visual;
  VisualID visualid;
  int screen;
  int depth;

  int class;

  unsigned long red_mask;
  unsigned long green_mask;
  unsigned long blue_mask;
  int colormap_size;
  int bits_per_rgb;
} XVisualInfo;

















typedef struct {
	Colormap colormap;
	unsigned long red_max;
	unsigned long red_mult;
	unsigned long green_max;
	unsigned long green_mult;
	unsigned long blue_max;
	unsigned long blue_mult;
	unsigned long base_pixel;
	VisualID visualid;		
	XID killid;			
} XStandardColormap;

























typedef int XContext;






extern int XSaveContext(

    Display*		,
    Window		,
    XContext		,
     void*	

);

extern int XFindContext(

    Display*		,
    Window		,
    XContext		,
    caddr_t*		

);

extern int XDeleteContext(

    Display*		,
    Window		,
    XContext		

);


extern XWMHints *XGetWMHints(

    Display*		,
    Window				      

);
extern Region XCreateRegion(

    void

);
extern Region XPolygonRegion(

    XPoint*		,
    int			,
    int			

);

extern XVisualInfo *XGetVisualInfo(

    Display*		,
    long		,
    XVisualInfo*	,
    int*		

);


extern XSizeHints *XAllocSizeHints (

    void

);
extern XStandardColormap *XAllocStandardColormap (

    void

);
extern XWMHints *XAllocWMHints (

    void

);
extern XClassHint *XAllocClassHint (

    void

);
extern XIconSize *XAllocIconSize (

    void

);


extern int XGetWMSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    long*		,
    Atom		

);
extern int XGetWMNormalHints(

    Display*		,
    Window		,
    XSizeHints*		,
    long*		 

);
extern int XGetRGBColormaps(

    Display*		,
    Window		,
    XStandardColormap** ,
    int*		,
    Atom		

);
extern int XGetTextProperty(

    Display*		,
    Window		,
    XTextProperty*	,
    Atom		

);
extern int XGetWMName(

    Display*		,
    Window		,
    XTextProperty*	

);
extern int XGetWMIconName(

    Display*		,
    Window		,
    XTextProperty*	

);
extern int XGetWMClientMachine(

    Display*		,
    Window		,
    XTextProperty*	

);
extern void XSetWMProperties(

    Display*		,
    Window		,
    XTextProperty*	,
    XTextProperty*	,
    char**		,
    int			,
    XSizeHints*		,
    XWMHints*		,
    XClassHint*		

);
extern void XSetWMSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);
extern void XSetWMNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);
extern void XSetRGBColormaps(

    Display*		,
    Window		,
    XStandardColormap*	,
    int			,
    Atom		

);
extern void XSetTextProperty(

    Display*		,
    Window		,
    XTextProperty*	,
    Atom		

);
extern void XSetWMName(

    Display*		,
    Window		,
    XTextProperty*	

);
extern void XSetWMIconName(

    Display*		,
    Window		,
    XTextProperty*	

);
extern void XSetWMClientMachine(

    Display*		,
    Window		,
    XTextProperty*	

);
extern int XStringListToTextProperty(

    char**		,
    int			,
    XTextProperty*	

);
extern int XTextPropertyToStringList(

    XTextProperty*	,
    char***		,
    int*		

);



extern XClipBox(

    Region		,
    XRectangle*		

);

extern XDestroyRegion(

    Region		

);

extern XEmptyRegion(

    Region		

);

extern XEqualRegion(

    Region		,
    Region		

);

extern int XGetClassHint(

    Display*		,
    Window		,
    XClassHint*		

);

extern int XGetIconSizes(

    Display*		,
    Window		,
    XIconSize**		,
    int*		

);

extern int XGetNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern int XGetSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);

extern int XGetStandardColormap(

    Display*		,
    Window		,
    XStandardColormap*	,
    Atom					    

);

extern int XGetZoomHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern XIntersectRegion(

    Region		,
    Region		,
    Region		

);

extern int XLookupString(

    XKeyEvent*		,
    char*		,
    int			,
    KeySym*		,
    XComposeStatus*	

);

extern int XMatchVisualInfo(

    Display*		,
    int			,
    int			,
    int			,
    XVisualInfo*	

);

extern XOffsetRegion(

    Region		,
    int			,
    int			

);

extern int XPointInRegion(

    Region		,
    int			,
    int			

);

extern Region XPolygonRegion(

    XPoint*		,
    int			,
    int			

);

extern int XRectInRegion(

    Region		,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XSetClassHint(

    Display*		,
    Window		,
    XClassHint*		

);

extern XSetIconSizes(

    Display*		,
    Window		,
    XIconSize*		,
    int			    

);

extern XSetNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern XSetSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);

extern XSetStandardProperties(

    Display*		,
    Window		,
     char*	,
     char*	,
    Pixmap		,
    char**		,
    int			,
    XSizeHints*		

);

extern XSetWMHints(

    Display*		,
    Window		,
    XWMHints*		

);

extern XSetRegion(

    Display*		,
    GC			,
    Region		

);

extern void XSetStandardColormap(

    Display*		,
    Window		,
    XStandardColormap*	,
    Atom		

);

extern XSetZoomHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern XShrinkRegion(

    Region		,
    int			,
    int			

);

extern XSubtractRegion(

    Region		,
    Region		,
    Region		

);

extern XUnionRectWithRegion(

    XRectangle*		,
    Region		,
    Region		

);

extern XUnionRegion(

    Region		,
    Region		,
    Region		

);

extern int XWMGeometry(

    Display*		,
    int			,
     char*	,
     char*	,
    unsigned int	,
    XSizeHints*		,
    int*		,
    int*		,
    int*		,
    int*		,
    int*		

);

extern XXorRegion(

    Region		,
    Region		,
    Region		

);





















































































































































extern char *Xpermalloc(

    unsigned int	

);







typedef int     XrmQuark, *XrmQuarkList;


typedef char *XrmString;



extern XrmQuark XrmStringToQuark(

     char* 	

);

extern XrmQuark XrmPermStringToQuark(

     char* 	

);


extern XrmString XrmQuarkToString(

    XrmQuark 		

);

extern XrmQuark XrmUniqueQuark(

    void

);










typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;

extern void XrmStringToQuarkList(

     char*	,
    XrmQuarkList	

);

extern void XrmStringToBindingQuarkList(

     char*	,
    XrmBindingList	,
    XrmQuarkList	

);







typedef XrmQuark     XrmName;
typedef XrmQuarkList XrmNameList;




typedef XrmQuark     XrmClass;
typedef XrmQuarkList XrmClassList;












typedef XrmQuark     XrmRepresentation;



typedef struct {
    unsigned int    size;
    caddr_t	    addr;
} XrmValue, *XrmValuePtr;








typedef struct _XrmHashBucketRec *XrmHashBucket;
typedef XrmHashBucket *XrmHashTable;
typedef XrmHashTable XrmSearchList[];
typedef struct _XrmHashBucketRec *XrmDatabase;


extern void XrmDestroyDatabase(

    XrmDatabase		    

);

extern void XrmQPutResource(

    XrmDatabase*	,
    XrmBindingList	,
    XrmQuarkList	,
    XrmRepresentation	,
    XrmValue*		

);

extern void XrmPutResource(

    XrmDatabase*	,
     char*	,
     char*	,
    XrmValue*		

);

extern void XrmQPutStringResource(

    XrmDatabase*	,
    XrmBindingList      ,
    XrmQuarkList	,
     char*	

);

extern void XrmPutStringResource(

    XrmDatabase*	,
     char*	,
     char*	

);

extern void XrmPutLineResource(

    XrmDatabase*	,
     char*	

);

extern  XrmQGetResource(

    XrmDatabase		,
    XrmNameList		,
    XrmClassList	,
    XrmRepresentation*	,
    XrmValue*		

);

extern int XrmGetResource(

    XrmDatabase		,
     char*	,
     char*	,
    char**		,
    XrmValue*		

);

extern int XrmQGetSearchList(

    XrmDatabase		,
    XrmNameList		,
    XrmClassList	,
    XrmSearchList	,
    int			

);

extern int XrmQGetSearchResource(

    XrmSearchList	,
    XrmName		,
    XrmClass		,
    XrmRepresentation*	,
    XrmValue*		

);







extern void XrmSetDatabase(

    Display*		,
    XrmDatabase		

);

extern XrmDatabase XrmGetDatabase(

    Display*		

);

extern XrmDatabase XrmGetFileDatabase(

     char*	

);

extern int XrmCombineFileDatabase(

     char* 	,
    XrmDatabase*	,
    int		

);

extern XrmDatabase XrmGetStringDatabase(

     char*	  

);

extern void XrmPutFileDatabase(

    XrmDatabase		,
     char*	

);

extern void XrmMergeDatabases(

    XrmDatabase		,
    XrmDatabase*	

);

extern void XrmCombineDatabase(

    XrmDatabase		,
    XrmDatabase*	,
    int		

);




extern int XrmEnumerateDatabase(

    XrmDatabase		,
    XrmNameList		,
    XrmClassList	,
    int			,
    int (*)(

	     )		,
    caddr_t		

);








typedef enum {
    XrmoptionNoArg,	
    XrmoptionIsArg,     
    XrmoptionStickyArg, 
    XrmoptionSepArg,    
    XrmoptionResArg,	
    XrmoptionSkipArg,   
    XrmoptionSkipLine,  
    XrmoptionSkipNArgs	

} XrmOptionKind;

typedef struct {
    char	    *option;	    
    char	    *specifier;     
    XrmOptionKind   argKind;	    
    caddr_t	    value;	    
} XrmOptionDescRec, *XrmOptionDescList;


extern void XrmParseCommand(

    XrmDatabase*	,
    XrmOptionDescList	,
    int			,
     char*	,
    int*		,
    char**				     

);































































typedef char *String;




























typedef struct _WidgetRec *Widget;
typedef Widget *WidgetList;
typedef struct _WidgetClassRec *WidgetClass;
typedef struct _CompositeRec *CompositeWidget;
typedef struct _XtActionsRec *XtActionList;
typedef struct _XtEventRec *XtEventTable;
typedef struct _XtBoundAccActionRec *XtBoundAccActions;

typedef struct _XtAppStruct *XtAppContext;
typedef unsigned long	XtValueMask;
typedef unsigned long	XtIntervalId;
typedef unsigned long	XtInputId;
typedef unsigned long	XtWorkProcId;
typedef unsigned int	XtGeometryMask;
typedef unsigned long	XtGCMask;   
typedef unsigned long	Pixel;	    
typedef int		XtCacheType;



























typedef char		Boolean;
typedef long		XtArgVal;
typedef unsigned char	XtEnum;


typedef unsigned int	Cardinal;
typedef unsigned short	Dimension;  
typedef short		Position;   


typedef char*		XtPointer;


typedef XtPointer	Opaque;


































typedef struct _WidgetClassRec *CoreWidgetClass;
typedef struct _WidgetRec *CoreWidget;
extern WidgetClass coreWidgetClass;


extern WidgetClass widgetClass;



































typedef struct _CompositeClassRec *CompositeWidgetClass;



extern void XtManageChildren(

    WidgetList 		,
    Cardinal 		

);

extern void XtManageChild(

    Widget 		

);

extern void XtUnmanageChildren(

    WidgetList 		,
    Cardinal 		

);

extern void XtUnmanageChild(

    Widget 		

);




extern WidgetClass compositeWidgetClass;


































typedef struct _ConstraintClassRec *ConstraintWidgetClass;


extern WidgetClass constraintWidgetClass;


































typedef struct _ObjectRec *Object;
typedef struct _ObjectClassRec *ObjectClass;


extern WidgetClass objectClass;

































typedef struct _RectObjRec *RectObj;
typedef struct _RectObjClassRec *RectObjClass;


extern WidgetClass rectObjClass;




typedef struct _TranslationData *XtTranslations;
typedef struct _TranslationData *XtAccelerators;
typedef unsigned int Modifiers;

typedef void (*XtActionProc)(

    Widget 		,
    XEvent*		,
    char**		,
    Cardinal*		

);

typedef XtActionProc* XtBoundActions;

typedef struct _XtActionsRec{
    char*	 string;
    XtActionProc proc;
} XtActionsRec;

typedef enum {


    XtAddress,		
    XtBaseOffset,	
    XtImmediate,	
    XtResourceString,	
    XtResourceQuark,	
    XtWidgetBaseOffset,	
    XtProcedureArg	
} XtAddressMode;

typedef struct {
    XtAddressMode   address_mode;
    XtPointer	    address_id;
    Cardinal	    size;
} XtConvertArgRec, *XtConvertArgList;

typedef void (*XtConvertArgProc)(

    Widget 		,
    Cardinal*		,
    XrmValue*		

);

typedef struct {
    XtGeometryMask request_mode;
    Position x, y;
    Dimension width, height, border_width;
    Widget sibling;
    int stack_mode;   
} XtWidgetGeometry;







typedef void (*XtConverter)(

    XrmValue*		,
    Cardinal*		,
    XrmValue*		,
    XrmValue*		

);

typedef Boolean (*XtTypeConverter)(

    Display*		,
    XrmValue*		,
    Cardinal*		,
    XrmValue*		,
    XrmValue*		,
    XtPointer*		

);

typedef void (*XtDestructor)(

    XtAppContext	,
    XrmValue*		,
    XtPointer 		,
    XrmValue*		,
    Cardinal*		

);

typedef Opaque XtCacheRef;

typedef Opaque XtActionHookId;

typedef void (*XtActionHookProc)(

    Widget		,
    XtPointer		,
    char*		,
    XEvent*		,
    char**		,
    Cardinal*		

);

typedef void (*XtKeyProc)(

    Display*		,
    unsigned int 		,
    Modifiers		,
    Modifiers*		,
    KeySym*		

);

typedef void (*XtCaseProc)(

    Display*		,
    KeySym		,
    KeySym*		,
    KeySym*		

);

typedef void (*XtEventHandler)(

    Widget 		,
    XtPointer 		,
    XEvent*		,
    Boolean*		

);
typedef unsigned long EventMask;

typedef enum {XtListHead, XtListTail } XtListPosition;

typedef unsigned long	XtInputMask;





typedef void (*XtTimerCallbackProc)(

    XtPointer 		,
    XtIntervalId*	

);

typedef void (*XtInputCallbackProc)(

    XtPointer 		,
    int*		,
    XtInputId*		

);

typedef struct {
    char*	name;
    XtArgVal	value;
} Arg, *ArgList;

typedef XtPointer	XtVarArgsList;

typedef void (*XtCallbackProc)(

    Widget 		,
    XtPointer 		,	
    XtPointer 			

);

typedef struct _XtCallbackRec {
    XtCallbackProc  callback;
    XtPointer	    closure;
} XtCallbackRec, *XtCallbackList;

typedef enum {
	XtCallbackNoList,
	XtCallbackHasNone,
	XtCallbackHasSome
} XtCallbackStatus;

typedef enum  {
    XtGeometryYes,	  
    XtGeometryNo,	  
    XtGeometryAlmost,	  
    XtGeometryDone	  
} XtGeometryResult;

typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;

typedef struct {
    Widget  shell_widget;
    Widget  enable_widget;
} XtPopdownIDRec, *XtPopdownID;

typedef struct _XtResource {
    char*	resource_name;	
    char*	resource_class;	
    char*	resource_type;	
    Cardinal	resource_size;	
    Cardinal	resource_offset;
    char*	default_type;	
    XtPointer	default_addr;	
} XtResource, *XtResourceList;

typedef void (*XtResourceDefaultProc)(

    Widget	,
    int		,
    XrmValue*	

);

typedef void (*XtErrorMsgHandler)(

    char* 		,
    char*		,
    char*		,
    char*		,
    char**		,
    Cardinal*		

);

typedef void (*XtErrorHandler)(

  char*		

);

typedef void (*XtCreatePopupChildProc)(

    Widget	

);

typedef Boolean (*XtWorkProc)(

    XtPointer 			

);

typedef struct {
    char match;
    char* substitution;
} SubstitutionRec, *Substitution;

typedef Boolean (*XtFilePredicate)(

   char* 

);

typedef XtPointer XtRequestId;














typedef Boolean (*XtConvertSelectionProc)(

    Widget 		,
    Atom*		,
    Atom*		,
    Atom*		,
    XtPointer*		,
    unsigned long*	,
    int*		

);





typedef void (*XtLoseSelectionProc)(

    Widget 		,
    Atom*		

);






typedef void (*XtSelectionDoneProc)(

    Widget 		,
    Atom*		,
    Atom*		

);







typedef void (*XtSelectionCallbackProc)(

    Widget 		,
    XtPointer 		,
    Atom*		,
    Atom*		,
    XtPointer 		,
    unsigned long*	,
    int*		

);

typedef void (*XtLoseSelectionIncrProc)(

    Widget 		,
    Atom*		,
    XtPointer 		

);

typedef void (*XtSelectionDoneIncrProc)(

    Widget 		,
    Atom*		,
    Atom*		,
    XtRequestId*	,
    XtPointer 		

);

typedef Boolean (*XtConvertSelectionIncrProc)(

    Widget 		,
    Atom*		,
    Atom*		,
    Atom*		,
    XtPointer*		,
    unsigned long*	,
    int*		,
    unsigned long*	,
    XtPointer 		,
    XtRequestId*	

);

typedef void (*XtCancelConvertSelectionProc)(

    Widget 		,
    Atom*		,
    Atom*		,
    XtRequestId*	,
    XtPointer 		

);









extern Boolean XtConvertAndStore(

    Widget 		,
     char* 	,
    XrmValue*		,
     char* 	,
    XrmValue*		

);

extern Boolean XtCallConverter(

    Display*		,
    XtTypeConverter 	,
    XrmValuePtr 	,
    Cardinal 		,
    XrmValuePtr 	,
    XrmValue*		,
    XtCacheRef*		

);

extern Boolean XtDispatchEvent(

    XEvent* 		

);

extern Boolean XtCallAcceptFocus(

    Widget 		,
    Time*		

);

extern Boolean XtPeekEvent(

    XEvent*		

);

extern Boolean XtAppPeekEvent(

    XtAppContext 	,
    XEvent*		

);

extern Boolean XtIsSubclass(

    Widget 		,
    WidgetClass 	

);

extern Boolean XtIsObject(

    Widget 		

);

extern Boolean _XtCheckSubclassFlag( 

    Widget		,
    unsigned int		

);

extern Boolean _XtIsSubclassOf( 

    Widget		,
    WidgetClass		,
    WidgetClass		,
    unsigned int		

);

extern Boolean XtIsManaged(

    Widget 		

);

extern Boolean XtIsRealized(

    Widget 		

);

extern Boolean XtIsSensitive(

    Widget 		

);












extern Boolean XtOwnSelection(

    Widget 		,
    Atom 		,
    Time 		,
    XtConvertSelectionProc ,
    XtLoseSelectionProc	,
    XtSelectionDoneProc 

);



extern Boolean XtOwnSelectionIncremental(

    Widget 		,
    Atom 		,
    Time 		,
    XtConvertSelectionIncrProc	,
    XtLoseSelectionIncrProc	,
    XtSelectionDoneIncrProc	,
    XtCancelConvertSelectionProc ,
    XtPointer 		

);

extern XtGeometryResult XtMakeResizeRequest(

    Widget 		,
    unsigned int	,
    unsigned int	,
    Dimension*		,
    Dimension*		

);

extern void XtTranslateCoords(

    Widget 		,
    int		,
    int		,
    Position*		,
    Position*		

);

extern KeySym* XtGetKeysymTable(

    Display*		,
    KeyCode*		,
    int*		

);

extern void XtKeysymToKeycodeList(

    Display*		,
    KeySym 		,
    KeyCode**		,
    Cardinal*		

);

extern void XtStringConversionWarning(

     char*	,	
     char*		

);

extern void XtDisplayStringConversionWarning(

    Display*	 	,
     char*	,	
     char*		

);


extern XtConvertArgRec colorConvertArgs[];
extern XtConvertArgRec screenConvertArg[];


extern void XtAppAddConverter( 

    XtAppContext	,
     char*	,
     char*	,
    XtConverter 	,
    XtConvertArgList	,
    Cardinal 		

);

extern void XtAddConverter( 

     char*	,
     char* 	,
    XtConverter 	,
    XtConvertArgList 	,
    Cardinal 		

);

extern void XtSetTypeConverter(

     char* 	,
     char* 	,
    XtTypeConverter 	,
    XtConvertArgList 	,
    Cardinal 		,
    XtCacheType 	,
    XtDestructor 	

);

extern void XtAppSetTypeConverter(

    XtAppContext 	,
     char* 	,
     char* 	,
    XtTypeConverter 	,
    XtConvertArgList 	,
    Cardinal 		,
    XtCacheType 	,
    XtDestructor 	

);

extern void XtConvert(

    Widget 		,
     char* 	,
    XrmValue*		,
     char* 	,
    XrmValue*		

);

extern void XtDirectConvert(

    XtConverter 	,
    XrmValuePtr 	,
    Cardinal 		,
    XrmValuePtr 	,
    XrmValue*		

);







extern XtTranslations XtParseTranslationTable(

     char*	

);

extern XtAccelerators XtParseAcceleratorTable(

     char*	

);

extern void XtOverrideTranslations(

    Widget 		,
    XtTranslations 	

);

extern void XtAugmentTranslations(

    Widget 		,
    XtTranslations 	

);

extern void XtInstallAccelerators(

    Widget 		,
    Widget		

);

extern void XtInstallAllAccelerators(

    Widget 		,
    Widget		

);

extern void XtUninstallTranslations(

    Widget 		

);

extern void XtAppAddActions(

    XtAppContext 	,
    XtActionList 	,
    Cardinal 		

);

extern void XtAddActions(

    XtActionList 	,
    Cardinal 		

);

extern XtActionHookId XtAppAddActionHook(

    XtAppContext 	,
    XtActionHookProc 	,
    XtPointer 		

);

extern void XtRemoveActionHook(

    XtActionHookId 	

);

extern void XtCallActionProc(

    Widget		,
     char*	,
    XEvent*		,
    char**		,
    Cardinal		

);

extern void XtRegisterGrabAction(

    XtActionProc 	,
    int 		,
    unsigned int 	,
    int			,
    int	 		

);

extern void XtSetMultiClickTime(

    Display*		,
    int 		

);

extern int XtGetMultiClickTime(

    Display*		

);

extern KeySym XtGetActionKeysym(

    XEvent*		,
    Modifiers*		

);







extern void XtTranslateKeycode(

    Display*		,
    unsigned int 		,
    Modifiers 		,
    Modifiers*		,
    KeySym*		

);

extern void XtTranslateKey(

    Display*		,
    unsigned int		,
    Modifiers		,
    Modifiers*		,
    KeySym*		

);

extern void XtSetKeyTranslator(

    Display*		,
    XtKeyProc 		

);

extern void XtRegisterCaseConverter(

    Display*		,
    XtCaseProc 		,
    KeySym 		,
    KeySym 		

);

extern void XtConvertCase(

    Display*		,
    KeySym 		,
    KeySym*		,
    KeySym*		

);












extern void XtInsertEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		,
    XtListPosition 	

);

extern void XtInsertRawEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		,
    XtListPosition 	

);

extern void XtAddEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		

);

extern void XtRemoveEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		

);

extern void XtAddRawEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		

);

extern void XtRemoveRawEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		

);

extern void XtInsertEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		,
    XtListPosition 	

);

extern void XtInsertRawEventHandler(

    Widget 		,
    EventMask 		,
    int 		,
    XtEventHandler 	,
    XtPointer 		,
    XtListPosition 	

);

extern EventMask XtBuildEventMask(

    Widget 		

);

extern void XtAddGrab(

    Widget 		,
    int 		,
    int 		

);

extern void XtRemoveGrab(

    Widget 		

);

extern void XtProcessEvent(

    XtInputMask 		

);

extern void XtAppProcessEvent(

    XtAppContext 		,
    XtInputMask 		

);

extern void XtMainLoop(

    void

);


extern void XtAppMainLoop(

    XtAppContext 		

);

extern void XtAddExposureToRegion(

    XEvent*		,
    Region 		

);

extern void XtSetKeyboardFocus(

    Widget		,
    Widget 		

);

extern Time XtLastTimestampProcessed(

    Display*		

);








extern XtIntervalId XtAddTimeOut(

    unsigned long 	,
    XtTimerCallbackProc ,
    XtPointer 		

);

extern XtIntervalId XtAppAddTimeOut(

    XtAppContext 	,
    unsigned long 	,
    XtTimerCallbackProc ,
    XtPointer 		

);

extern void XtRemoveTimeOut(

    XtIntervalId 	

);

extern XtInputId XtAddInput(

    int 		,
    XtPointer 		,
    XtInputCallbackProc ,
    XtPointer 		

);

extern XtInputId XtAppAddInput(

    XtAppContext       	,
    int 		,
    XtPointer 		,
    XtInputCallbackProc ,
    XtPointer 		

);

extern void XtRemoveInput(

    XtInputId 		

);

extern void XtNextEvent(

    XEvent* 		

);

extern void XtAppNextEvent(

    XtAppContext 	,
    XEvent*		

);






extern XtInputMask XtPending(

    void

);

extern XtInputMask XtAppPending(

    XtAppContext 	

);



























extern void XtRealizeWidget(

    Widget 		

);

void XtUnrealizeWidget(

    Widget 		

);

extern void XtDestroyWidget(

    Widget 		

);

extern void XtSetSensitive(

    Widget 		,
    int 		

);

extern void XtSetMappedWhenManaged(

    Widget 		,
    int 		

);

extern Widget XtNameToWidget(

    Widget 		,
     char*	

);

extern Widget XtWindowToWidget(

    Display*		,
    Window 		

);











extern ArgList XtMergeArgLists(

    ArgList 		,
    Cardinal 		,
    ArgList 		,
    Cardinal 		

);










extern XtVarArgsList XtVaCreateArgsList(

);











extern Display *XtDisplay(

    Widget 		

);

extern Display *XtDisplayOfObject(

    Widget 		

);

extern Screen *XtScreen(

    Widget 		

);

extern Screen *XtScreenOfObject(

    Widget 		

);

extern Window XtWindow(

    Widget 		

);

extern Window XtWindowOfObject(

    Widget 		

);

extern char* XtName(

    Widget 		

);

extern WidgetClass XtSuperclass(

    Widget 		

);

extern WidgetClass XtClass(

    Widget 		

);

extern Widget XtParent(

    Widget 		

);







extern void XtAddCallback(

    Widget 		,
     char* 	,
    XtCallbackProc 	,
    XtPointer 		

);

extern void XtRemoveCallback(

    Widget 		,
     char* 	,
    XtCallbackProc 	,
    XtPointer 		

);

extern void XtAddCallbacks(

    Widget 		,
     char*	,
    XtCallbackList 	

);

extern void XtRemoveCallbacks(

    Widget 		,
     char* 	,
    XtCallbackList 	

);

extern void XtRemoveAllCallbacks(

    Widget 		,
     char* 	

);


extern void XtCallCallbacks(

    Widget 		,
     char* 	,
    XtPointer 		

);

extern void XtCallCallbackList(

    Widget		,
    XtCallbackList 	,
    XtPointer 		

);

extern XtCallbackStatus XtHasCallbacks(

    Widget 		,
     char* 	

);








extern XtGeometryResult XtMakeGeometryRequest(

    Widget 		,
    XtWidgetGeometry*	,
    XtWidgetGeometry*	

);

extern XtGeometryResult XtQueryGeometry(

    Widget 		,
    XtWidgetGeometry*	,
    XtWidgetGeometry*	

);

extern Widget XtCreatePopupShell(

     char*	,
    WidgetClass 	,
    Widget 		,
    ArgList 		,
    Cardinal 		

);

extern Widget XtVaCreatePopupShell(

);

extern void XtPopup(

    Widget 		,
    XtGrabKind 		

);

extern void XtPopupSpringLoaded(

    Widget 		

);

extern void XtCallbackNone(

    Widget 		,
    XtPointer 		,
    XtPointer 		

);

extern void XtCallbackNonexclusive(

    Widget 		,
    XtPointer 		,
    XtPointer 		

);

extern void XtCallbackExclusive(

    Widget 		,
    XtPointer 		,
    XtPointer 		

);

extern void XtPopdown(

    Widget 		

);

extern void XtCallbackPopdown(

    Widget 		,
    XtPointer 		,
    XtPointer 		

);

extern void XtMenuPopupAction(

    Widget 		,
    XEvent*		,
    char**		,
    Cardinal*		

);

extern Widget XtCreateWidget(

     char* 	,
    WidgetClass 	,
    Widget 		,
    ArgList 		,
    Cardinal 		

);

extern Widget XtCreateManagedWidget(

     char* 	,
    WidgetClass 	,
    Widget 		,
    ArgList 		,
    Cardinal 		

);

extern Widget XtVaCreateWidget(

);

extern Widget XtVaCreateManagedWidget(

);

extern Widget XtCreateApplicationShell(

     char* 	,
    WidgetClass 	,
    ArgList 		,
    Cardinal 		

);

extern Widget XtAppCreateShell(

     char*	,
     char*	,
    WidgetClass 	,
    Display*		,
    ArgList 		,
    Cardinal 		

);

extern Widget XtVaAppCreateShell(

);







extern void XtToolkitInitialize(

    void

);

extern void XtDisplayInitialize(

    XtAppContext 	,
    Display*		,
     char*	,
     char*	,
    XrmOptionDescRec* 	,
    Cardinal 		,
    int*		,
    char**		

);

extern Widget XtAppInitialize(

    XtAppContext*	,
     char*	,
    XrmOptionDescList 	,
    Cardinal 		,
    int*		,
    char**		,
    char**		,
    ArgList 		,
    Cardinal 		

);

extern Widget XtVaAppInitialize(

);

extern Widget XtInitialize(

     char* 	,
     char* 	,
    XrmOptionDescRec* 	,
    Cardinal 		,
    int*		,
    char**		

);

extern Display *XtOpenDisplay(

    XtAppContext 	,
     char*	,
     char*	,
     char*	,
    XrmOptionDescRec*	,
    Cardinal 		,
    int*		,
    char**		

);

extern XtAppContext XtCreateApplicationContext(

    void

);

extern void XtAppSetFallbackResources(

    XtAppContext 	,
    char**		

);

extern void XtDestroyApplicationContext(

    XtAppContext 	

);

extern void XtInitializeWidgetClass(

    WidgetClass 	

);

extern XtAppContext XtWidgetToApplicationContext(

    Widget 		

);

extern XtAppContext XtDisplayToApplicationContext(

    Display*		

);

extern XrmDatabase XtDatabase(

    Display*		

);

extern XrmDatabase XtScreenDatabase(

    Screen*		

);

extern void XtCloseDisplay(

    Display*		

);

extern void XtCopyFromParent(

    Widget		,
    int			,
    XrmValue*		

);

extern void XtCopyDefaultDepth(

    Widget		,
    int			,
    XrmValue*		

);

extern void XtCopyDefaultColormap(

    Widget		,
    int			,
    XrmValue*		

);

extern void XtCopyAncestorSensitive(

    Widget		,
    int			,
    XrmValue*		

);

extern void XtCopyScreen(

    Widget		,
    int			,
    XrmValue*		

);

extern void XrmCompileResourceList(

    XtResourceList 	,
    Cardinal 		

);

extern void XtGetApplicationResources(

    Widget 		,
    XtPointer 		,
    XtResourceList 	,
    Cardinal 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaGetApplicationResources(

);

extern void XtGetSubresources(

    Widget 		,
    XtPointer 		,
     char* 	,
     char* 	,
    XtResourceList 	,
    Cardinal 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaGetSubresources(

);

extern void XtSetValues(

    Widget 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaSetValues(

);

extern void XtGetValues(

    Widget 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaGetValues(

);

extern void XtSetSubvalues(

    XtPointer 		,
    XtResourceList 	,
    Cardinal 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaSetSubvalues(

);

extern void XtGetSubvalues(

    XtPointer 		,
    XtResourceList 	,
    Cardinal 		,
    ArgList 		,
    Cardinal 		

);

extern void XtVaGetSubvalues(

);

extern void XtGetResourceList(

    WidgetClass 	,
    XtResourceList*	,
    Cardinal*		

);

extern void XtGetConstraintResourceList(

    WidgetClass 	,
    XtResourceList*	,
    Cardinal*		

);


























extern XtErrorMsgHandler XtAppSetErrorMsgHandler(

    XtAppContext 	,
    XtErrorMsgHandler 	

);

extern void XtSetErrorMsgHandler(

    XtErrorMsgHandler 	

);

extern XtErrorMsgHandler XtAppSetWarningMsgHandler(

    XtAppContext 	,
    XtErrorMsgHandler 	

);

extern void XtSetWarningMsgHandler(

    XtErrorMsgHandler 	

);

extern void XtAppErrorMsg(

    XtAppContext 	,
     char* 	,
     char*	,
     char*	,
     char*	,
    char**		,
    Cardinal*		

);

extern void XtErrorMsg(

     char* 	,
     char*	,
     char*	,
     char*	,
    char**		,
    Cardinal*		

);

extern void XtAppWarningMsg(

    XtAppContext 	,
     char* 	,
     char* 	,
     char* 	,
     char* 	,
    char**		,
    Cardinal*		

);

extern void XtWarningMsg(

     char*	,
     char*	,
     char*	,
     char*	,
    char**		,
    Cardinal*		

);

extern XtErrorHandler XtAppSetErrorHandler(

    XtAppContext 	,
    XtErrorHandler 	

);

extern void XtSetErrorHandler(

    XtErrorHandler 	

);

extern XtErrorHandler XtAppSetWarningHandler(

    XtAppContext 	,
    XtErrorHandler 	

);

extern void XtSetWarningHandler(

    XtErrorHandler 	

);

extern void XtAppError(

    XtAppContext 	,
     char*	

);

extern void XtError(

     char*	

);

extern void XtAppWarning(

    XtAppContext 	,
     char*	

);

extern void XtWarning(

     char*	

);

extern XrmDatabase *XtAppGetErrorDatabase(

    XtAppContext 	

);

extern XrmDatabase *XtGetErrorDatabase(

    void

);

extern void XtAppGetErrorDatabaseText(

    XtAppContext 	,
     char*	,
     char*	,
     char*	,
     char* 	,
    char* 		,
    int 		,
    XrmDatabase 	

);

extern void XtGetErrorDatabaseText(

     char*	,
     char*	,
     char*	,
     char* 	,
    char* 		,
    int 		

);







extern char *XtMalloc(

    Cardinal 		

);

extern char *XtCalloc(

    Cardinal		,
    Cardinal 		

);

extern char *XtRealloc(

    char* 		,
    Cardinal 		

);

extern void XtFree(

    char*		

);













extern XtWorkProcId XtAddWorkProc(

    XtWorkProc 		,
    XtPointer 		

);

extern XtWorkProcId XtAppAddWorkProc(

    XtAppContext 	,
    XtWorkProc 		,
    XtPointer 		

);

extern void  XtRemoveWorkProc(

    XtWorkProcId 	

);







extern GC XtGetGC(

    Widget 		,
    XtGCMask 		,
    XGCValues* 		

);

extern void XtDestroyGC(

    GC 			

);

extern void XtReleaseGC(

    Widget 		,
    GC 			

);



extern void XtReleaseCacheRef(

    XtCacheRef*		

);

extern void XtCallbackReleaseCacheRef(

    Widget 		,
    XtPointer 		,	
    XtPointer 		

);

extern void XtCallbackReleaseCacheRefList(

    Widget 		,
    XtPointer 		,	
    XtPointer 		

);

extern void XtSetWMColormapWindows(

    Widget 		,
    Widget*		,
    Cardinal		

);

extern char* XtFindFile(

     char*	,
    Substitution	,
    Cardinal 		,
    XtFilePredicate	

);

extern char* XtResolvePathname(

    Display*		,
     char*	,
     char*	,
     char*	,
     char*	,
    Substitution	,
    Cardinal		,
    XtFilePredicate 	

);








    






extern void XtDisownSelection(

    Widget 		,
    Atom 		,
    Time 		

);





extern void XtGetSelectionValue(

    Widget 		,
    Atom 		,
    Atom 		,
    XtSelectionCallbackProc ,
    XtPointer 		,
    Time 		

);

extern void XtGetSelectionValues(

    Widget 		,
    Atom 		,
    Atom*		,
    int 		,
    XtSelectionCallbackProc ,
    XtPointer*		,
    Time 		

);




extern void XtAppSetSelectionTimeout(

    XtAppContext 	,
    unsigned long 	

);

extern void XtSetSelectionTimeout(

    unsigned long 	

);

 

extern unsigned int XtAppGetSelectionTimeout(

    XtAppContext 	

);

extern unsigned int XtGetSelectionTimeout(

    void

);

extern XSelectionRequestEvent *XtGetSelectionRequest(

    Widget 		,
    Atom 		,
    XtRequestId 	

);

extern void XtGetSelectionValueIncremental(

    Widget 		,
    Atom 		,
    Atom 		,
    XtSelectionCallbackProc ,
    XtPointer 		,
    Time 		

);

extern void XtGetSelectionValuesIncremental(

    Widget 		,
    Atom 		,
    Atom*		,
    int 		,
    XtSelectionCallbackProc ,
    XtPointer*		,
    Time 		

);

extern void XtGrabKey(

    Widget 		,
    unsigned int 		,
    Modifiers	 	,
    int 		,
    int 		,
    int 		

);

extern void XtUngrabKey(

    Widget 		,
    unsigned int 		,
    Modifiers	 	

);

extern int XtGrabKeyboard(

    Widget 		,
    int 		,
    int 		,
    int 		,
    Time 		

);

extern void XtUngrabKeyboard(

    Widget 		,
    Time 		

);

extern void XtGrabButton(

    Widget 		,
    int 		,
    Modifiers	 	,
    int 		,
    unsigned int	,
    int 		,
    int 		,
    Window 		,
    Cursor 		

);

extern void XtUngrabButton(

    Widget 		,
    unsigned int	,
    Modifiers	 	

);

extern int XtGrabPointer(

    Widget 		,
    int 		,
    unsigned int	,
    int 		,
    int 		,
    Window 		,
    Cursor 		,
    Time 		

);

extern void XtUngrabPointer(

    Widget 		,
    Time 		

);

extern void XtGetApplicationNameAndClass(

    Display*		,
    char**		,
    char**		

);






















typedef int	(*SIG_PF0) ();



extern char *mktemp  (char *);
extern char *strtok  (char *, const char *);
extern char *index  (const char *, int);
extern char *rindex  (const char *, int);
extern char *getenv  (const char *);












extern char *utTrimSpaces  (char *);
extern char *utTildeExpand  (char *);
extern int utSubstring  (char *, char *);
extern void utDowncase  (char *);



extern int utSubjectCompare  (char *, char *);




extern char *re_comp();










struct _iobuf	*ser_rd_fp = 0;
struct _iobuf	*ser_wr_fp = 0;















char *
getserverbyfile(file)
char	*file;
{
    char *cp;
    extern char *getenv  (const char *),
    		*getinfofromfile  (char *filename);
    static char	buf[256];

    if (cp = getenv("NNTPSERVER")) {
	(void) strcpy(buf, cp);
    } else {
	cp = getinfofromfile(file);
	if (cp == 0) {
	    return(0);
	} else {
	    (void) strcpy(buf, cp);
	}
    }
    return (buf);
}














server_init(machine)
char	*machine;
{
	int	sockt_rd, sockt_wr;
	char	line[256];




	sockt_rd = get_tcp_socket(machine);



	if (sockt_rd < 0)
		return (-1);

	







	if ((ser_rd_fp = fdopen(sockt_rd, "r")) == 0) {
		perror("server_init: fdopen #1");
		return (-1);
	}

	sockt_wr = dup(sockt_rd);
	if ((ser_wr_fp = fdopen(sockt_wr, "w")) == 0) {
		perror("server_init: fdopen #2");
		ser_rd_fp = 0;		
		return (-1);
	}


	

	(void) get_server(line, sizeof(line));
	return (atoi(line));
}


















get_tcp_socket(machine)
char	*machine;
{
	int	s;

	register char **cp;

	struct	sockaddr_in sin;
	struct servent *getservbyname  (const char *, const char *),
                       *sp;
	struct hostent *gethostbyname  (const char *), *hp;
	int get_tcp_socket1  (struct sockaddr *);

	(void)  bzero((char *) &sin,  sizeof(sin));
	if ((sp = getservbyname("nntp", "tcp")) ==  0) {
		(void) fprintf((&_iob[2]), "nntp/tcp: Unknown service.\n");
		return (-1);
	}
	sin.sin_port = sp->s_port;
	if ((sin.sin_addr.S_un.S_addr	 = inet_addr(machine)) != -1) {
	    sin.sin_family = 	2		;
	    return(get_tcp_socket1(&sin));
	} else {
	    if ((hp = gethostbyname(machine)) == 0) {
		    (void) fprintf((&_iob[2]), "%s: Unknown host.\n", machine);
		    return (-1);
	    }
	    sin.sin_family = hp->h_addrtype;
	}

	










	

	for (s = 0, cp = hp->h_addr_list; *cp; cp++) {
		if (s < 0)
			(void) fprintf((&_iob[2]),
				       "trying alternate address for %s\n",
				       machine);
		(void)  bcopy( *cp, (char *) &sin.sin_addr,  hp->h_length);
		s = get_tcp_socket1(&sin);
		if (s >= 0)
			return(s);
	}
	(void) fprintf((&_iob[2]), "giving up ...\n");
	return(-1);


}


static
get_tcp_socket1(sp)
	struct sockaddr_in *sp;
{
	int s;

	s = socket(sp->sin_family, 1		, 0);
	if (s < 0) {
		(void) perror("socket");
		return (-1);
	}
	if (connect(s, (struct sockaddr *)sp, sizeof (*sp)) < 0) {
		(void) perror("connect");
		(void) close(s);
		return(-1);
	}
	return(s);
}



































handle_server_response(response, server)
int	response;
char	*server;
{
    switch (response) {
	case 201	:		
    		printf(
	"NOTE: This machine does not have permission to post articles.\n");
		printf(
	"      Please don't waste your time trying.\n\n");

	case 200	:
		return (0);

	case 502	:
		printf(
   "This machine does not have permission to use the %s news server.\n",
		server);
		return (-1);

	default:
		printf("Unexpected response code from %s news server: %d\n",
			server, response);
		return (-1);
    }
	
}




















void
put_server(string)
char *string;
{

	(void) fprintf(ser_wr_fp, "%s\r\n", string);
	(void) fflush(ser_wr_fp);
}















get_server(string, size)
char	*string;
int	size;
{
	register char *cp;

	if (fgets(string, size, ser_rd_fp) == 0)
		return (-1);

	if ((cp = index(string, '\r')) != 0)
		*cp = '\0';
	else if ((cp = index(string, '\n')) != 0)
		*cp = '\0';


	return (0);
}















void
close_server()
{
	char	ser_line[256];

	if (ser_wr_fp == 0 || ser_rd_fp == 0)
		return;

	put_server("QUIT");
	(void) get_server(ser_line, sizeof(ser_line));

	(void) fclose(ser_wr_fp);
	(void) fclose(ser_rd_fp);
}

--- cut here ---

home help back first fref pref prev next nref lref last post