weening@GANG-OF-FOUR.STANFORD.EDU (Joe Weening) (12/01/88)
GCC 1.31 aborts in insn_extract() on the following program, on a
VAX-11/750 running 4.3bsd. The code below is cpp output of part of
the file clients/x10tox11/proto1.c in the X11R3 distribution. You
need to compile with -O to get the error. Here is a stack trace of
the crash:
% adb /usr/local/lib/gcc-cc1 core
$c
_kill(69b,4) from _abort+39
_abort() from _insn_extract+17
_insn_extract(5caac) from _regclass+ee
_regclass(5bd1c,2e) from 17c2
_rest_of_compilation(a4ff8) from _finish_function+63
_finish_function() from 5aca
_yyparse() from eaa
_set_float_handler(7fffeac7) from 2285
_main(8,7fffea64,7fffea88) from start+3d
%
Here is the code:
# 1 "tmp.c"
# 1 "resource.h"
# 1 "../.././X11/Xos.h"
# 1 "/usr/include/sys/types.h"
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef struct _physadr { int r[1]; } *physadr;
typedef struct label_t {
int val[14];
} label_t;
typedef struct _quad { long val[2]; } quad;
typedef long daddr_t;
typedef char * caddr_t;
typedef u_long ino_t;
typedef long swblk_t;
typedef long size_t;
typedef long time_t;
typedef short dev_t;
typedef long off_t;
typedef u_int uid_t;
typedef u_int gid_t;
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[(((256)+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) ))];
} fd_set;
# 37 "../.././X11/Xos.h"
# 1 "/usr/include/strings.h"
char *strcat();
char *strncat();
int strcmp();
int strncmp();
char *strcpy();
char *strncpy();
int strlen();
char *index();
char *rindex();
# 68 "../.././X11/Xos.h"
# 1 "/usr/include/sys/file.h"
# 34 "/usr/include/sys/file.h"
# 122 "/usr/include/sys/file.h"
# 79 "../.././X11/Xos.h"
# 1 "/usr/include/sys/time.h"
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;
};
# 1 "/usr/include/time.h"
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();
# 55 "/usr/include/sys/time.h"
# 96 "../.././X11/Xos.h"
# 28 "resource.h"
# 1 "../.././X11/Xlib.h"
# 1 "/usr/include/sys/types.h"
# 74 "/usr/include/sys/types.h"
# 34 "../.././X11/Xlib.h"
# 1 "../.././X11/X.h"
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;
# 311 "../.././X11/X.h"
# 37 "../.././X11/Xlib.h"
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 _XExten {
struct _XExten *next;
XExtCodes codes;
int (*create_GC)();
int (*copy_GC)();
int (*flush_GC)();
int (*free_GC)();
int (*create_Font)();
int (*free_Font)();
int (*close_display)();
int (*error)();
int (*error_string)();
} _XExtension;
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)();
unsigned long (*get_pixel)();
int (*put_pixel)();
struct _XImage *(*sub_image)();
int (*add_pixel)();
} 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;
XModifierKeymap *XNewModifiermap(),
*XGetModifierMapping(),
*XDeleteModifiermapEntry(),
*XInsertModifiermapEntry();
typedef struct _XDisplay {
XExtData *ext_data;
struct _XDisplay *next;
int fd;
int lock;
int proto_major_version;
int proto_minor_version;
char *vendor;
long resource_base;
long resource_mask;
long 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;
_XExtension *ext_procs;
int (*event_vec[128])();
int (*wire_vec[128])();
KeySym lock_meaning;
struct XKeytrans *key_bindings;
Font cursor_font;
} 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 _XSQEvent {
struct _XSQEvent *next;
XEvent event;
} _XQEvent;
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;
XFontStruct *XLoadQueryFont(), *XQueryFont();
XTimeCoord *XGetMotionEvents();
typedef union { Display *display;
GC gc;
Visual *visual;
Screen *screen;
ScreenFormat *pixmap_format;
XFontStruct *font; } XEDataObject;
Display *XOpenDisplay();
char *XFetchBytes();
char *XFetchBuffer();
char *XGetAtomName();
char *XGetDefault();
char *XDisplayName();
char *XKeysymToString();
int (*XSynchronize())();
int (*XSetAfterFunction())();
Atom XInternAtom();
Colormap XCopyColormapAndFree(), XCreateColormap();
Cursor XCreatePixmapCursor(), XCreateGlyphCursor(), XCreateFontCursor();
Font XLoadFont();
GC XCreateGC();
GContext XGContextFromGC();
Pixmap XCreatePixmap();
Pixmap XCreateBitmapFromData(), XCreatePixmapFromBitmapData();
Window XCreateSimpleWindow(), XGetSelectionOwner();
Window XCreateWindow();
Colormap *XListInstalledColormaps();
char **XListFonts(), **XListFontsWithInfo(), **XGetFontPath();
char **XListExtensions();
Atom *XListProperties();
XImage *XCreateImage(), *XGetImage(), *XGetSubImage();
XHostAddress *XListHosts();
KeySym XKeycodeToKeysym(), XLookupKeysym(), *XGetKeyboardMapping();
KeySym XStringToKeysym();
long XMaxRequestSize();
char *XResourceManagerString();
unsigned long XDisplayMotionBufferSize();
VisualID XVisualIDFromVisual();
XExtCodes *XInitExtension();
int (*XESetCreateGC())(), (*XESetCopyGC())(), (*XESetFlushGC())(),
(*XESetFreeGC())(), (*XESetCreateFont())(), (*XESetFreeFont())(),
(*XESetCloseDisplay())(),
(*XESetError())(), (*XESetErrorString())();
int (*XESetWireToEvent())();
int (*XESetEventToWire())();
XExtCodes *XAddExtension();
XExtData *XFindOnExtensionList();
XExtData **XEHeadOfExtensionList();
Window XRootWindow(), XDefaultRootWindow(), XRootWindowOfScreen();
Visual *XDefaultVisual(), *XDefaultVisualOfScreen();
GC XDefaultGC(), XDefaultGCOfScreen();
unsigned long XBlackPixel(), XWhitePixel(), XAllPlanes();
unsigned long XBlackPixelOfScreen(), XWhitePixelOfScreen();
unsigned long XNextRequest(), XLastKnownRequestProcessed();
char *XServerVendor(), *XDisplayString();
Colormap XDefaultColormap(), XDefaultColormapOfScreen();
Display *XDisplayOfScreen();
Screen *XScreenOfDisplay(), *XDefaultScreenOfDisplay();
long XEventMaskOfScreen();
# 29 "resource.h"
# 1 "debug.h"
# 99 "debug.h"
# 30 "resource.h"
# 1 "X10struct.h"
# 1 "../.././X11/copyright.h"
# 27 "X10struct.h"
# 62 "X10struct.h"
typedef struct _ColorDef {
unsigned short pixel ;
unsigned short red , green , blue ;
} X10ColorDef;
typedef struct _X10Req {
unsigned char code;
unsigned char func;
unsigned short mask ;
Window windowId;
union {
long l[4];
short s[8];
unsigned short u[8];
char b[16];
} param;
} X10Req;
typedef struct _X10Rep {
long code;
union {
long l[5];
short s[10];
unsigned short u[10];
char b[20];
} param;
} X10Rep;
typedef struct _X10Vertex {
short x, y;
unsigned short flags;
} X10Vertex;
# 144 "X10struct.h"
# 31 "resource.h"
typedef struct _SerialList SerialList, *SerialListptr;
typedef struct _RequestSerial {
unsigned long *serial;
int count;
} RequestSerial, *RequestSerialptr;
typedef struct _WinInfo *WinInfoptr;
typedef struct _WinInfo {
Window id;
Window icon;
Pixmap tile;
unsigned long mask;
unsigned long grabmask;
RequestSerial mapReq;
RequestSerial configureReq;
Window unmapTransparent;
Window originalParent;
short width;
short height;
short borderWidth;
short x, y;
int transparent;
int hasTransparency;
int drawThrough;
int mapped;
int mapRequested;
int foriegn;
int tileModeRelative;
int isIcon;
int neverMapped;
Pixmap savedPixmap;
unsigned short configured;
WinInfoptr sibling;
WinInfoptr child;
WinInfoptr parent;
Window gcWin;
GC gc;
int client;
} WinInfo;
typedef struct _PixmapInfo *PixmapInfoptr;
typedef struct _PixmapInfo {
Pixmap id;
XID bitmapid;
unsigned int width;
unsigned int height;
unsigned int depth;
GC gc;
PixmapInfoptr next;
int isSavedPixmap;
int isBackingStore;
short x, y;
} PixmapInfo;
typedef struct _FontInfo *FontInfoptr;
typedef struct _FontInfo {
Font id;
XFontStruct *info;
FontInfoptr next;
unsigned int ascent;
unsigned int descent;
} FontInfo;
# 132 "resource.h"
typedef struct _sequencelist *SequenceListptr;
typedef struct _sequencelist {
X10Req *req;
unsigned long *x11seq;
int last;
int head;
int tail;
} SequenceList;
PixmapInfoptr GetTextPixmap();
PixmapInfoptr CreatePixmap();
PixmapInfoptr PixmapLookup();
PixmapInfoptr BitmapLookup();
PixmapInfoptr StorePixmapOrBitmap();
FontInfoptr FontLookup();
WinInfoptr WinLookup();
WinInfoptr AddWin();
WinInfoptr FindDrawableParent();
typedef struct _Client {
Display *dpy;
PixmapInfoptr pixmaps;
PixmapInfoptr textBackground;
FontInfoptr fontinfo;
Window grabwin;
SequenceList seq;
XEvent buffer;
u_char pendingFlags;
GC opaqueClippedGC;
GC opaqueUnclippedGC;
GC clearClippedGC;
GC clearUnclippedGC;
GC bitmapGC;
GC pixmapGC;
RequestSerial unmapTransReq;
unsigned long lastEventDispatched;
} Client, *Clientptr;
typedef struct _FontMap {
char *fontname;
int fontindex;
} FontMap, *FontMapptr;
int AfterFunction();
char **X11FontNames();
char *ToLower();
char *Xalloc();
char *Xrealloc();
char *StaticAlloc();
char *X10ProcPixmapGet();
int WindowMapped();
int CausedByRequest();
int InvalidHost();
unsigned long X10toX11EventMask();
unsigned long X11toX10EventMask();
unsigned long X11toX10KeyButState();
unsigned long X10ButtonMaskToX11KeyMask();
unsigned long X10ButtonMaskToX11Button();
unsigned long X10toX11pixel();
void InvalidateClips();
void SendEventsToX10Client();
void SetClipMode();
void SetTileMode();
void UpdateWinTree();
void FreePixmapInfo();
void FreeFontInfo();
void FreeWinInfo();
void FreeClientWindows();
void Reparent();
void ResetCache();
void SetCacheSize();
void ShowCachePerformance();
void ShowWinTree();
void RaiseLowestChild();
void LowerHighestChild();
void LowerWindow();
void RaiseWindow();
void MarkMappedWinTree();
void DeleteUnmapTransparentRequest();
void AddRequestSerial();
void ClearUnmappedTransparentTree();
void ClearUnmappedTransparent();
void MarkWindowDeleted();
XImage *CreateX10Image();
extern Clientptr clist[];
extern u_char GXFunctionInvert[];
extern u_char Xstatus;
extern int LockToggleMode;
extern int GrabUnviewable;
extern int OverrideRedirect;
extern int FocusKeyboardAllowed;
extern int Bigendian;
extern int NoTransform;
extern int DoSync;
extern int GrabServerAllowed;
extern int ServerGrabbed;
extern int GrabMouseAllowed;
extern int MinimumTileSize;
extern int FileDescriptors;
extern int WindowsUnmappedTransparent;
extern unsigned int BestWidth;
extern unsigned int BestHeight;
extern Colormap ScreenColormap;
extern Visual *ScreenVisual;
extern unsigned long ScreenWhitePixel;
extern unsigned long ScreenBlackPixel;
extern int ScreenColorCells;
extern int ScreenDepth;
extern char *VisualClassNames[];
extern Time LastKnownServerTime;
extern Display *PrimaryConnection;
extern int PrimaryClient;
extern char *X11EventNames[];
extern char *program;
char *sprintf();
char *strncpy();
char *strcpy();
int strlen();
# 27 "tmp.c"
# 1 "../.././X11/Xatom.h"
# 28 "tmp.c"
# 1 "../.././X11/Xutil.h"
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;
} 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 {
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;
} XStandardColormap;
typedef int XContext;
extern int XSaveContext();
extern int XFindContext();
extern int XDeleteContext();
XWMHints *XGetWMHints();
Region XCreateRegion(), XPolygonRegion();
XImage *XCreateImage();
XVisualInfo *XGetVisualInfo();
# 29 "tmp.c"
int X10ProcGrabMouse(client, req)
int client;
X10Req *req;
{
int status,
result = 0;
unsigned long mask = req->param.l[1];
Cursor cursor = req->param.l[0];
Clientptr cp = clist[ client ];
Display *dpy = cp->dpy;
Window w = req->windowId;
WinInfoptr wp = WinLookup(client, w); if ( wp == 0) { Xstatus = 3 ; return(0); };
if (! GrabMouseAllowed)
return(1);
mask = 0x0004
| 0x0008
| 0x0010
| 0x0020
| 0x0040
| 0x0400
| 0x0800
| 0x1000 ;
mask = (req->param.l[1] & mask) | (wp->mask & ~mask);
if (! WindowMapRequested(wp)) {
GrabUnviewable = client;
w = (((dpy)->screens[(dpy)->default_screen]).root);
} else
GrabUnviewable = 0;
status = XGrabPointer(dpy,
w,
1,
(unsigned int)(X10toX11EventMask(mask)
| ( (1L<<15) | (1L<<17) | (1L<<4) | (1L<<5) )),
1, 1,
0L ,
cursor == 0 ? 0L : cursor,
0L );
return(result);
}