🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #2045

Re: GCC 1.31 Sun4, Sys4-3.2 & X.V11R3

#2045
From: Keith McNeill
Date: Mon, 05 Dec 1988 16:44
3288 lines
35628 bytes
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  miarc.part.i
# Wrapped by mcneill@eplrx7 on Mon Dec  5 11:42:31 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'miarc.part.i' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'miarc.part.i'\"
else
echo shar: Extracting \"'miarc.part.i'\" \(27753 characters\)
sed "s/^X//" >'miarc.part.i' <<'END_OF_FILE'
X# 1 "miarc.c"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../.././X11/X.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef unsigned long XID;
X
Xtypedef XID Window;
Xtypedef XID Drawable;
Xtypedef XID Font;
Xtypedef XID Pixmap;
Xtypedef XID Cursor;
Xtypedef XID Colormap;
Xtypedef XID GContext;
Xtypedef XID KeySym;
X
Xtypedef unsigned long Mask;
X
Xtypedef unsigned long Atom;
X
Xtypedef unsigned long VisualID;
X
Xtypedef unsigned long Time;
X
Xtypedef unsigned char KeyCode;
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X		       
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 311 "../../.././X11/X.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 27 "miarc.c"
X
X# 1 "../../.././X11/Xprotostr.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../.././X11/Xmd.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef long           INT32;
Xtypedef short          INT16;
Xtypedef char           INT8;
X
Xtypedef unsigned long CARD32;
Xtypedef unsigned short CARD16;
Xtypedef unsigned char  CARD8;
X
Xtypedef unsigned long		BITS32;
Xtypedef unsigned short		BITS16;
Xtypedef unsigned char		BYTE;
X
Xtypedef unsigned char            BOOL;
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X  
X
X
X
X
X# 28 "../../.././X11/Xprotostr.h"
X
X
X
X
Xtypedef struct _xSegment {
X    INT16 x1 , y1 , x2 , y2 ;
X} xSegment;
X
X
X
Xtypedef struct _xPoint {
X	INT16		x , y ;
X} xPoint;
X
Xtypedef struct _xRectangle {
X    INT16 x , y ;
X    CARD16  width , height ;
X} xRectangle;
X
X
X
Xtypedef struct _xArc {
X    INT16 x , y ;
X    CARD16   width , height ;
X    INT16   angle1 , angle2 ;
X} xArc;
X
X
X# 28 "miarc.c"
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xextern unsigned long globalSerialNumber;
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef unsigned char *pointer;
Xtypedef int Bool;
Xtypedef unsigned long PIXEL;
Xtypedef unsigned long ATOM;
X
X
X
X
X
X
X# 1 "../../include/os.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 117 "../../include/misc.h"
X
X# 29 "../../include/os.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef pointer	FID;
Xtypedef struct _FontPathRec *FontPathPtr;
Xtypedef struct _NewClientRec *NewClientPtr;
X
X
X
X
X
X
X
X
X
X
X# 69 "../../include/os.h"
X
X
X
X
X
X
X
X
X
Xchar *alloca();
X
X
X
X
X
X# 92 "../../include/os.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xchar		*ReadRequestFromClient();
Xchar		*strcat();
Xchar		*strncat();
Xchar		*strcpy();
Xchar		*strncpy();
XBool		CloseDownConnection();
XFontPathPtr	GetFontPath();
XFontPathPtr	ExpandFontNamePattern();
XFID		FiOpenForRead();
Xvoid		CreateWellKnownSockets();
Xvoid		SetDefaultFontPath();
Xvoid		FreeFontRecord();
Xvoid		SetFontPath();
Xvoid		ErrorF();
Xvoid		Error();
Xvoid		FatalError();
Xvoid		ProcessCommandLine();
Xvoid		Xfree();
Xvoid		FlushAllOutput();
Xvoid		FlushIfCriticalOutputPending();
Xunsigned long	*Xalloc();
Xunsigned long	*Xrealloc();
Xlong		GetTimeInMillis();
X
X
X# 58 "../../include/misc.h"
X
X
X
X
X
X
X    
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _DDXPoint *DDXPointPtr;
Xtypedef struct _Box *BoxPtr;
X
X
X# 29 "miarc.c"
X
X# 1 "../../include/gcstruct.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/gc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _GCInterest *GCInterestPtr;
Xtypedef struct _GC    *GCPtr;
Xextern void  ValidateGC();
Xextern int ChangeGC();
Xextern GCPtr CreateGC();
Xextern int CopyGC();
Xextern int FreeGC();
Xextern void SetGCMask();
Xextern GCPtr GetScratchGC();
Xextern void  FreeScratchGC();
X
X# 29 "../../include/gcstruct.h"
X
X
X# 1 "../../include/miscstruct.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 117 "../../include/misc.h"
X
X# 28 "../../include/miscstruct.h"
X
X
Xextern unsigned long globalSerialNumber;
Xtypedef struct _DDXPoint {
X    short x, y;
X} DDXPointRec;
X
Xtypedef struct _Box {
X    short x1, y1, x2, y2;
X} BoxRec;
X
X# 31 "../../include/gcstruct.h"
X
X# 1 "../../include/region.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _Region *RegionPtr;
X
Xextern int SingleRectRegionEqual();
X
X
X
X
X
X
X# 32 "../../include/gcstruct.h"
X
X# 1 "../../include/pixmap.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _DrawInfo *DrawablePtr;	
Xtypedef struct _Pixmap *PixmapPtr;
X
X# 33 "../../include/gcstruct.h"
X
X# 1 "../../include/screenint.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _PixmapFormat *PixmapFormatPtr;
Xtypedef struct _Visual *VisualPtr;
Xtypedef struct _Depth  *DepthPtr;
Xtypedef struct _Screen *ScreenPtr;
X
X
X# 34 "../../include/gcstruct.h"
X
X# 1 "../../include/dixfont.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _DIXFontProp *DIXFontPropPtr;
Xtypedef struct _Font *FontPtr;
X
X
X
X
Xtypedef enum {Linear8Bit, TwoD8Bit, Linear16Bit, TwoD16Bit} FontEncoding;
Xtypedef struct _FontData *FontDataPtr;
X
Xextern FontPtr OpenFont();
X
X# 35 "../../include/gcstruct.h"
X
X
Xtypedef struct _GCInterest {
X    struct _GCInterest	*pNextGCInterest;
X    struct _GCInterest	*pLastGCInterest;
X    int			length;		
X    ATOM		owner;		
X    unsigned long	ValInterestMask;
X    void		(* ValidateGC) ();
X    unsigned long	ChangeInterestMask;
X    int			(* ChangeGC) ();
X    void		(* CopyGCSource) ();
X    void		(* CopyGCDest) ();
X    void		(* DestroyGC) ();
X    pointer		extPriv;	
X} GCInterestRec;
X
Xtypedef struct _GC{
X    ScreenPtr	pScreen;		
X    pointer	devPriv;		
X    pointer	devBackingStore;	
X    int         depth;    
X    unsigned long        serialNumber;
X    GCInterestPtr	pNextGCInterest;
X    GCInterestPtr	pLastGCInterest;
X    int		alu;
X    unsigned long	planemask;
X    unsigned long	fgPixel, bgPixel;
X    int		lineWidth;          
X    int		lineStyle;
X    int		capStyle;
X    int		joinStyle;
X    int		fillStyle;
X    int		fillRule;
X    int		arcMode;
X    PixmapPtr	tile;
X    PixmapPtr	stipple;
X    DDXPointRec	patOrg;			
X    FontPtr	font;
X    int		subWindowMode;
X    Bool	graphicsExposures;
X    DDXPointRec	clipOrg;
X    pointer	clientClip;
X    int		clientClipType;		
X    int		dashOffset;
X    int		numInDashList;		
X    unsigned char *dash;		
X
X    unsigned long	stateChanges;	
X    DDXPointRec	lastWinOrg;		
X    int		miTranslate:1;		
X
X    void (* FillSpans)();
X    void (* SetSpans)();
X
X    void (* PutImage)();
X    RegionPtr (* CopyArea)();
X    RegionPtr (* CopyPlane)();
X    void (* PolyPoint)();
X    void (* Polylines)();
X    void (* PolySegment)();
X    void (* PolyRectangle)();
X    void (* PolyArc)();
X    void (* FillPolygon)();
X    void (* PolyFillRect)();
X    void (* PolyFillArc)();
X    int (* PolyText8)();
X    int (* PolyText16)();
X    void (* ImageText8)();
X    void (* ImageText16)();
X    void (* ImageGlyphBlt)();
X    void (* PolyGlyphBlt)();
X    void (* PushPixels)();
X    void (* LineHelper)();
X    void (* ChangeClip) ();
X    void (* DestroyClip) ();
X    void (* CopyClip)();
X} GC;
X
X
X# 30 "miarc.c"
X
X# 1 "../../include/scrnintstr.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/screenint.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 33 "../../include/screenint.h"
X
X# 28 "../../include/scrnintstr.h"
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 117 "../../include/misc.h"
X
X# 29 "../../include/scrnintstr.h"
X
X# 1 "../../include/region.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 41 "../../include/region.h"
X
X
X
X
X
X# 30 "../../include/scrnintstr.h"
X
X# 1 "../../include/pixmap.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 45 "../../include/pixmap.h"
X
X# 31 "../../include/scrnintstr.h"
X
X# 1 "../../include/gc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 65 "../../include/gc.h"
X
X# 32 "../../include/scrnintstr.h"
X
X# 1 "../../include/colormap.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 55 "../../include/colormap.h"
X
X
X
X
X
X
X
X
X
Xtypedef unsigned long	Pixel;
Xtypedef struct _CMEntry *EntryPtr;
Xtypedef struct _ColormapRec *ColormapPtr;
X
Xextern int CreateColormap();
Xextern Pixel FindColor();
Xextern int FreeColormap();
Xextern int TellNoMap();
Xextern int TellLostMap();
Xextern int TellGainedMap();
Xextern int IsMapInstalled();
Xextern void UninstallColormap();
X
X
X# 33 "../../include/scrnintstr.h"
X
X
X
Xtypedef struct _PixmapFormat {
X    unsigned char	depth;
X    unsigned char	bitsPerPixel;
X    unsigned char	scanlinePad;
X    } PixmapFormatRec;
X    
Xtypedef struct _Visual {
X    unsigned long	vid;
X    short	screen;    
X    short       class;
X    unsigned long	redMask, greenMask, blueMask;
X    int		offsetRed, offsetGreen, offsetBlue;
X    short       bitsPerRGBValue;
X    short	ColormapEntries;
X    short	nplanes;	
X
X
X  } VisualRec;
X
Xtypedef struct _Depth {
X    int		depth;
X    int		numVids;
X    unsigned long	*vids;    
X  } DepthRec;
X
Xtypedef struct _Screen {
X    int			myNum;	
X    ATOM id;
X    short		width, height;
X    short		mmWidth, mmHeight;
X    short		numDepths;
X    DepthPtr       	allowedDepths;
X    short       	rootDepth;
X    unsigned long      	rootVisual;
X    unsigned long	defColormap;
X    short		minInstalledCmaps, maxInstalledCmaps;
X    char                backingStoreSupport, saveUnderSupport;
X    unsigned long	whitePixel, blackPixel;
X    unsigned long	rgf;	
X    GCPtr		GCperDepth[8+1];
X			
X
X
X
X
X
X
X    PixmapPtr		PixmapPerDepth[1];
X    pointer		devPrivate;
X    short       	numVisuals;
X    VisualPtr		visuals;
X
X    
X
X    Bool (* CloseScreen)();		
X    void (* QueryBestSize)();		
X    Bool (* SaveScreen)();		
X    void (* GetImage)();		
X
X    unsigned int  *(* GetSpans)();	
X
X    void (* PointerNonInterestBox)();	
X
X    
X
X    Bool (* CreateWindow)();		
X    Bool (* DestroyWindow)();		
X    Bool (* PositionWindow)();		
X    Bool (* ChangeWindowAttributes)();	
X    Bool (* RealizeWindow)();		
X    Bool (* UnrealizeWindow)();		
X    int  (* ValidateTree)();		
X    void (* WindowExposures)();       
X
X    
X
X    PixmapPtr (* CreatePixmap)(); 	
X    Bool (* DestroyPixmap)();		
X
X    
X
X    Bool (* RealizeFont)();		
X    Bool (* UnrealizeFont)();		
X
X    
X    void (* ConstrainCursor)();   	
X    void (* CursorLimits)();		
X    Bool (* DisplayCursor)();		
X    Bool (* RealizeCursor)();		
X    Bool (* UnrealizeCursor)();		
X    void (* RecolorCursor)();		
X    Bool (* SetCursorPosition)();	
X
X    
X
X    Bool (* CreateGC)();		
X
X    
X
X    void (* CreateColormap)();		
X    void (* DestroyColormap)();		
X    void (* InstallColormap)();		
X    void (* UninstallColormap)();	
X    int (* ListInstalledColormaps) (); 	
X    void (* StoreColors)();		
X    void (* ResolveColor)();		
X
X    
X
X    RegionPtr (* RegionCreate)(); 	
X    void (* RegionCopy)();		
X    void (* RegionDestroy)();		
X    int (* Intersect)();		
X    int (* Union)();			
X    int (* Subtract)();			
X    int (* Inverse)();			
X    void (* RegionReset)();		
X    void (* TranslateRegion)();		
X    int (* RectIn)();			
X    Bool (* PointInRegion)();		
X    Bool (* RegionNotEmpty)();      	
X    void (* RegionEmpty)();        	
X    BoxPtr (*RegionExtents)(); 		
X    void (* SendGraphicsExpose)();	
X
X    
X    void (* BlockHandler)();		
X    void (* WakeupHandler)();		
X    pointer blockData;
X    pointer wakeupData;
X} ScreenRec;
X
Xtypedef struct _ScreenInfo {
X    int		imageByteOrder;
X    int		bitmapScanlineUnit;
X    int		bitmapScanlinePad;
X    int		bitmapBitOrder;
X    int		numPixmapFormats;
X    PixmapFormatRec
X		formats[8];
X    int		arraySize;
X    int		numScreens;
X    ScreenPtr	screen;
X} ScreenInfo;
X
Xextern ScreenInfo screenInfo;
X
X# 31 "miarc.c"
X
X# 1 "../../include/pixmapstr.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/pixmap.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 45 "../../include/pixmap.h"
X
X# 28 "../../include/pixmapstr.h"
X
X# 1 "../../include/screenint.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 33 "../../include/screenint.h"
X
X# 29 "../../include/pixmapstr.h"
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 117 "../../include/misc.h"
X
X# 30 "../../include/pixmapstr.h"
X
X
X
Xtypedef struct _DrawInfo {
X    short	type;
X    ScreenPtr	pScreen;     
X    int         depth;          
X    unsigned long        serialNumber;
X} DrawableRec;
X
X
X
X
Xtypedef struct _Pixmap {
X    DrawableRec drawable;
X    int width, height;
X    int refcnt;
X    int devKind;		
X    pointer devPrivate;		
X    } PixmapRec;
X
X# 32 "miarc.c"
X
X# 1 "../../include/windowstr.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/window.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _BackingStore *BackingStorePtr;
Xtypedef struct _Window *WindowPtr;
X
X
X# 29 "../../include/windowstr.h"
X
X# 1 "../../include/pixmapstr.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 50 "../../include/pixmapstr.h"
X
X# 30 "../../include/windowstr.h"
X
X# 1 "../../include/region.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 41 "../../include/region.h"
X
X
X
X
X
X# 31 "../../include/windowstr.h"
X
X# 1 "../../include/cursor.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _Cursor *CursorPtr;
Xtypedef struct _CursorMetric *CursorMetricPtr;
X
Xextern CursorPtr rootCursor;
X
X# 32 "../../include/windowstr.h"
X
X# 1 "../../include/property.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _Property *PropertyPtr;
X
X# 33 "../../include/windowstr.h"
X
X# 1 "../../include/resource.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/misc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 117 "../../include/misc.h"
X
X# 27 "../../include/resource.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xunsigned short CreateNewResourceType();
Xshort CreateNewResourceClass();
Xunsigned long FakeClientID();
Xvoid AddResource();
Xvoid FreeResource();
Xvoid FreeClientResources();
Xpointer LookupID();
X
X
X# 34 "../../include/windowstr.h"
X
X# 1 "../../include/dix.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/gc.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 65 "../../include/gc.h"
X
X# 29 "../../include/dix.h"
X
X# 1 "../../include/window.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 53 "../../include/window.h"
X
X# 30 "../../include/dix.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _TimeStamp *TimeStampPtr;
Xtypedef struct _Client *ClientPtr;
Xextern ClientPtr requestingClient;
Xextern ClientPtr *clients;
Xextern ClientPtr serverClient;
Xextern int currentMaxClients;
X
Xextern int ProcAllowEvents();
Xextern int ProcBell();
Xextern int ProcChangeActivePointerGrab();
Xextern int ProcChangeKeyboardControl();
Xextern int ProcChangePointerControl();
Xextern int ProcGetKeyboardMapping();
Xextern int ProcGetPointerMapping();
Xextern int ProcGetInputFocus();
Xextern int ProcGetKeyboardControl();
Xextern int ProcGetMotionEvents();
Xextern int ProcGetPointerControl();
Xextern int ProcGrabButton();
Xextern int ProcGrabKey();
Xextern int ProcGrabKeyboard();
Xextern int ProcGrabPointer();
Xextern int ProcQueryKeymap();
Xextern int ProcQueryPointer();
Xextern int ProcSetInputFocus();
Xextern int ProcSetKeyboardMapping();
Xextern int ProcSetPointerMapping();
Xextern int ProcSendEvent();
Xextern int ProcUngrabButton();
Xextern int ProcUngrabKey();
Xextern int ProcUngrabKeyboard();
Xextern int ProcUngrabPointer();
Xextern int ProcWarpPointer();
Xextern int ProcRecolorCursor();
X
Xextern WindowPtr LookupWindow();
Xextern pointer LookupDrawable();
X
Xextern void NoopDDA();
X
X
X# 35 "../../include/windowstr.h"
X
X# 1 "../../include/miscstruct.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 38 "../../include/miscstruct.h"
X
X# 36 "../../include/windowstr.h"
X
X# 1 "../../.././X11/Xprotostr.h"
X
X# 55 "../../.././X11/Xprotostr.h"
X
X# 37 "../../include/windowstr.h"
X
X
X
X
X
Xtypedef struct _BackingStore {
X    RegionPtr obscured;
X    DDXPointRec oldAbsCorner;	    
X    void (* SaveDoomedAreas)();
X    RegionPtr  (* RestoreAreas)();
X    void (* ExposeCopy)();  	    
X    void (* TranslateBackingStore)(); 
X
X    void (* ClearToBackground)();
X    void (* DrawGuarantee)();
X} BackingStoreRec;
X
X
X
X
X
X
Xtypedef struct _Window {
X
X	DrawableRec drawable;		
X
X	VisualID visual;
X
X	struct _Window *parent;	        
X	struct _Window *nextSib;	        
X	struct _Window *prevSib;	        
X	struct _Window *firstChild;	
X	struct _Window *lastChild;	
X
X	CursorPtr cursor;                 
X
X	ClientPtr client;		
X	Window wid;                        
X
X	RegionPtr clipList;               
X	RegionPtr winSize;                
X
X	RegionPtr borderClip;             
X	RegionPtr borderSize;             
X        RegionPtr exposed;                
X
X
X
X	
X	RegionPtr borderExposed;
X	xRectangle clientWinSize;       
X
X	DDXPointRec  absCorner;
X	DDXPointRec  oldAbsCorner;      
X	int class;                    
X	Mask eventMask;
X	Mask dontPropagateMask;
X	Mask allEventMasks;
X	Mask deliverableEvents;
X	pointer otherClients;		
X	pointer passiveGrabs;		
X
X	PropertyPtr userProps;            
X
X	XID nolongerused; 
X	PixmapPtr backgroundTile;
X	unsigned long backgroundPixel;
X	PixmapPtr borderTile;
X	unsigned long borderPixel;
X	int borderWidth;
X        void (* PaintWindowBackground)();
X        void (* PaintWindowBorder)();
X	void (* CopyWindow)();
X	void (* ClearToBackground)();
X
X	unsigned long backingBitPlanes;
X	unsigned long backingPixel;
X	int  backingStore;           
X	BackingStorePtr backStorage;
X
X	char  bitGravity;
X        char  winGravity;
X	Colormap colormap;
X		
X                        
X                     
X	Bool	saveUnder:1;
X        unsigned  visibility:2;		      
X	unsigned mapped:1;
X	unsigned realized:1;            
X	unsigned viewable:1;            
X	unsigned overrideRedirect:1;
X	unsigned marked:1;
X
X	pointer devBackingStore;		
X	pointer devPrivate;			
X} WindowRec;
X
Xextern int DeleteWindow();
Xextern int ChangeWindowAttributes();
Xextern int WalkTree();
Xextern CreateRootWindow();
Xextern WindowPtr CreateWindow();
Xextern int DeleteWindow();
Xextern int DestroySubwindows();
Xextern int ChangeWindowAttributes();
Xextern int GetWindowAttributes();
Xextern int ConfigureWindow();
Xextern int ReparentWindow();
Xextern int MapWindow();
Xextern int MapSubwindow();
Xextern int UnmapWindow();
Xextern int UnmapSubwindow();
Xextern RegionPtr NotClippedByChildren();
X
X
X
X# 33 "miarc.c"
X
X# 1 "mifpoly.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _SppPoint {
X	double	x, y;
X} SppPointRec, *SppPointPtr;
X
Xtypedef struct _SppArc {
X	double	x, y, width, height;
X	double	angle1, angle2;
X} SppArcRec, *SppArcPtr;
X
Xextern SppPointRec miExtendSegment();
X# 34 "miarc.c"
X
X# 1 "../../include/mi.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 1 "../../include/region.h"
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X# 41 "../../include/region.h"
X
X
X
X
X
X# 27 "../../include/mi.h"
X
X
Xtypedef struct _miDash *miDashPtr;
X
X
X
Xextern void  miPutImage();
Xextern void  miGetImage();
Xextern RegionPtr  miCopyArea();
Xextern RegionPtr  miCopyPlane();
Xextern void  miClearToBackground();
Xextern int   miValidateTree();
Xextern void  miPolySegment();
Xextern void  miPolyRectangle();
Xextern void  miFillPolygon();
Xextern int   miPolyText8();
Xextern int   miPolyText16();
Xextern void  miImageText8();
Xextern void  miImageText16();
Xextern int   miFillConvexPoly();
Xextern int   miFillGeneralPoly();
Xextern void miNotMiter();
Xextern void miMiter();
Xextern void miWideLine();
Xextern void miWideDash();
Xextern void  miPolyArc();
Xextern void miPolyFillRect();
Xextern void miPolyFillArc();
Xextern void  miPolyGlyphBlt();
Xextern void  miImageGlyphBlt();
Xextern void  miZeroLine();
Xextern void  miPaintWindow();
Xextern miDashPtr   miDashLine();
Xextern void  miPushPixels();
Xextern void  miGetPts(), miRoundCap(), miOneSegWide();
Xextern int   miPtToAngle();
Xextern    RegionPtr miRegionCreate();
Xextern    void miRegionCopy();
Xextern    void miRegionDestroy();
Xextern    int miIntersect();
Xextern    int miInverse();
Xextern    int miUnion();
Xextern    int miSubtract();
Xextern    void miRegionReset();
Xextern    void miTranslateRegion();
Xextern    int miRectIn();
Xextern	RegionPtr miRectsToRegion();
Xextern    Bool miPointInRegion();
Xextern    Bool miRegionNotEmpty();
Xextern    void miRegionEmpty();
Xextern    int miNumberRectsInRegion();
Xextern    void miWindowExposures();    
Xextern    BoxPtr miRegionExtents();
Xextern    void miSendGraphicsExpose();
Xextern    RegionPtr miHandleExposures();
X
X
X# 35 "miarc.c"
X
X
Xextern double sqrt(), cos(), sin(), atan();
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Xtypedef struct _miArcJoin {
X	int	arcIndex0, arcIndex1;
X	int	phase0, phase1;
X	int	end0, end1;
X} miArcJoinRec, *miArcJoinPtr;
X
Xtypedef struct _miArcCap {
X	int		arcIndex;
X	int		end;		
X} miArcCapRec, *miArcCapPtr;
X
Xtypedef struct _miArcFace {
X	SppPointRec	clock;
X	SppPointRec	center;
X	SppPointRec	counterClock;
X} miArcFaceRec, *miArcFacePtr;
X
X
X
X
X
X
Xtypedef struct _miArcData {
X	xArc		arc;
X	int		render;		
X	int		join;		
X	int		cap;		
X	miArcFaceRec	bounds[2];
X	double		x0, y0, x1, y1;
X} miArcDataRec, *miArcDataPtr;
X
Xtypedef struct _miPolyArc {
X	int		narcs;
X	miArcDataPtr	arcs;
X	int		ncaps;
X	miArcCapPtr	caps;
X	int		njoins;
X	miArcJoinPtr	joins;
X} miPolyArcRec, *miPolyArcPtr;
X
Xstatic miPolyArcPtr miComputeArcs ();
X
X
X
X
X
X
X
X
X
Xstatic CARD32 gcvals[6];
X
X
X
X
X
Xstruct arcData {
X	double	x0, y0, x1, y1;
X	int	selfJoin;
X};
X
X
Xstatic miPolyArcPtr
XmiComputeArcs (parcs, narcs, isDashed, isDoubleDash, pDash, nDashes, dashOffset)
X	xArc	*parcs;
X	int	narcs;
X	int	isDashed, isDoubleDash;
X	unsigned char	*pDash;
X	int	nDashes, dashOffset;
X{
X	miPolyArcPtr	arcs;
X	int		start, i, j, k, nexti, nextk;
X	int		joinSize[2];
X	int		capSize[2];
X	int		arcSize[2];
X	int		angle2;
X	double		x0, y0, x1, y1, a0, a1, xc, yc;
X	struct arcData	*data;
X	miArcDataPtr	arc;
X	xArc		xarc;
X	int		iphase, prevphase, joinphase;
X	int		arcsJoin;
X
X	int		iDash, dashRemaining;
X	int		iDashStart, dashRemainingStart, iphaseStart;
X	int		startAngle, spanAngle, endAngle, backwards;
X	int		prevDashAngle, dashAngle;
X	static int	computeAngleFromPath ();
X
X	arcs = (miPolyArcPtr) Xalloc (sizeof (*arcs) * (isDoubleDash ? 2 : 1));
X	data = (struct arcData *) alloca((int)(narcs * sizeof (struct arcData)));
X
X	for (i = 0; i < narcs; i++) {
X		a0 = (((double) (parcs[i].angle1)) / 64.0 * 3.14159265358979323846/180.0);
X		angle2 = parcs[i].angle2;
X		if (angle2 > (64 * 360))
X			angle2 = (64 * 360);
X		else if (angle2 < -(64 * 360))
X			angle2 = -(64 * 360);
X		data[i].selfJoin = angle2 == (64 * 360) || angle2 == -(64 * 360);
X		a1 = (((double) (parcs[i].angle1 + angle2)) / 64.0 * 3.14159265358979323846/180.0);
X		data[i].x0 = parcs[i].x + (double) parcs[i].width / 2 * (1 + cos (a0));
X		data[i].y0 = parcs[i].y + (double) parcs[i].height / 2 * (1 - sin (a0));
X		data[i].x1 = parcs[i].x + (double) parcs[i].width / 2 * (1 + cos (a1));
X		data[i].y1 = parcs[i].y + (double) parcs[i].height / 2 * (1 - sin (a1));
X	}
X
X	for (iphase = 0; iphase < (isDoubleDash ? 2 : 1); iphase++) {
X		arcs[iphase].njoins = 0;
X		arcs[iphase].joins = 0;
X		joinSize[iphase] = 0;
X		
X		arcs[iphase].ncaps = 0;
X		arcs[iphase].caps = 0;
X		capSize[iphase] = 0;
X		
X		arcs[iphase].narcs = 0;
X		arcs[iphase].arcs = 0;
X		arcSize[iphase] = 0;
X	}
X
X	iphase = 0;
X	if (isDashed) {
X		iDash = 0;
X		dashRemaining = pDash[0];
X	 	while (dashOffset > 0) {
X			if (dashOffset >= dashRemaining) {
X				dashOffset -= dashRemaining;
X				iphase = iphase ? 0 : 1;
X				iDash++;
X				dashRemaining = pDash[iDash];
X			} else {
X				dashRemaining -= dashOffset;
X				dashOffset = 0;
X			}
X		}
X		iDashStart = iDash;
X		dashRemainingStart = dashRemaining;
X	}
X	iphaseStart = iphase;
X
X	for (i = narcs - 1; i >= 0; i--) {
X		j = i + 1;
X		if (j == narcs)
X			j = 0;
X		if (!data[i].selfJoin && 
X		     (((((data[i].x1) - ( data[j].x0)) > 0.0 ? ((data[i].x1) - ( data[j].x0)) : -((data[i].x1) - ( data[j].x0)))	 > 0.000001) ||
X		      ((((data[i].y1) - ( data[j].y0)) > 0.0 ? ((data[i].y1) - ( data[j].y0)) : -((data[i].y1) - ( data[j].y0)))	 > 0.000001)))
X 		{
X			if (iphase == 0 || isDoubleDash)
X				addCap (&arcs[iphase].caps, &arcs[iphase].ncaps,
X	 				&capSize[iphase], 0, 0);
X			break;
X		}
X	}
X	start = i + 1;
X	if (start == narcs)
X		start = 0;
X	i = start;
X	for (;;) {
X		j = i + 1;
X		if (j == narcs)
X			j = 0;
X		nexti = i+1;
X		if (nexti == narcs)
X			nexti = 0;
X		if (isDashed) {
X			startAngle = parcs[i].angle1;
X			spanAngle = parcs[i].angle2;
X			if (spanAngle > (64 * 360))
X				spanAngle = (64 * 360);
X			else if (spanAngle < -(64 * 360))
X				spanAngle = -(64 * 360);
X			if (startAngle < 0)
X				startAngle = (64 * 360) - (-startAngle) % (64 * 360);
X			if (startAngle >= (64 * 360))
X				startAngle = startAngle % (64 * 360);
X			endAngle = startAngle + spanAngle;
X			backwards = spanAngle < 0;
X			prevDashAngle = startAngle;
X			while (prevDashAngle != endAngle) {
X				dashAngle = computeAngleFromPath
X 						(prevDashAngle, endAngle,
X		 				  parcs[i].width, parcs[i].height,
X						  &dashRemaining, backwards);
X				if (iphase == 0 || isDoubleDash) {
X					xarc = parcs[i];
X					xarc.angle1 = prevDashAngle;
X					if (backwards) {
X						spanAngle = dashAngle - prevDashAngle;
X						if (dashAngle > prevDashAngle)
X							spanAngle = - 360 * 64 + spanAngle;
X					} else {
X						spanAngle = dashAngle - prevDashAngle;
X						if (dashAngle < prevDashAngle)
X							spanAngle = 360 * 64 + spanAngle;
X					}
X					xarc.angle2 = spanAngle;
X					arc = addArc (&arcs[iphase].arcs, &arcs[iphase].narcs,
X 							&arcSize[iphase], xarc);
X					if (!isDoubleDash) {
X						if (prevDashAngle != startAngle) {
X							addCap (&arcs[iphase].caps,
X 								&arcs[iphase].ncaps,
X 								&capSize[iphase], 0,
X 								arc - arcs[iphase].arcs);
X							
X						}
X						if (dashAngle != endAngle) {
X							addCap (&arcs[iphase].caps,
X 								&arcs[iphase].ncaps,
X 								&capSize[iphase], 1,
X 								arc - arcs[iphase].arcs);
X						}
X					}
X					arc->cap = arcs[iphase].ncaps;
X					arc->join = arcs[iphase].njoins;
X					arc->render = 0;
X				}
X				prevphase = iphase;
X				if (dashRemaining <= 0) {
X					++iDash;
X					if (iDash == nDashes)
X						iDash = 0;
X					iphase = iphase ? 0:1;
X					dashRemaining = pDash[iDash];
X				}
X				prevDashAngle = dashAngle;
X			}
X		} else {
X			arc = addArc (&arcs[iphase].arcs, &arcs[iphase].narcs,
X 				      &arcSize[iphase], parcs[i]);
X			arc->join = arcs[iphase].njoins;
X			arc->cap = arcs[iphase].ncaps;
X			prevphase = iphase;
X		}
X		if (prevphase == 0 || isDoubleDash)
X			k = arcs[prevphase].narcs - 1;
X		if (iphase == 0 || isDoubleDash)
X			nextk = arcs[iphase].narcs;
X		if (nexti == start) {
X			nextk = 0;
X			if (isDashed) {
X				iDash = iDashStart;
X				iphase = iphaseStart;
X				dashRemaining = dashRemainingStart;
X			}
X		}
X		arcsJoin = narcs > 1 && 
X	 		    ((((data[i].x1) - ( data[j].x0)) > 0.0 ? ((data[i].x1) - ( data[j].x0)) : -((data[i].x1) - ( data[j].x0)))	 <= 0.000001) &&
X			    ((((data[i].y1) - ( data[j].y0)) > 0.0 ? ((data[i].y1) - ( data[j].y0)) : -((data[i].y1) - ( data[j].y0)))	 <= 0.000001);
X		if (arcsJoin)
X			arc->render = 0;
X		else
X			arc->render = 1;
X		if (arcsJoin &&
X		    (prevphase == 0 || isDoubleDash) &&
X		    (iphase == 0 || isDoubleDash))
X 		{
X			joinphase = iphase;
X			if (isDoubleDash) {
X				if (nexti == start)
X					joinphase = iphaseStart;
X				
X
X
X
X
X
X
X				if (joinphase != prevphase)
X					joinphase = 0;
X			}
X			if (joinphase == 0 || isDoubleDash) {
X				addJoin (&arcs[joinphase].joins,
X 					 &arcs[joinphase].njoins,
X 					 &joinSize[joinphase],
X	 				 1, k, prevphase,
X	 				 0, nextk, iphase);
X				arc->join = arcs[prevphase].njoins;
X			}
X		} else {
X			if ((prevphase == 0 || isDoubleDash) &&
X			    !data[i].selfJoin)
X			{
X				addCap (&arcs[prevphase].caps, &arcs[prevphase].ncaps,
X 					&capSize[prevphase], 1, k);
X				arc->cap = arcs[prevphase].ncaps;
X			}
X			if (isDashed && !arcsJoin) {
X				iDash = iDashStart;
X				iphase = iphaseStart;
X				dashRemaining = dashRemainingStart;
X			}
X			nextk = arcs[iphase].narcs;
X			if (nexti == start) {
X				nextk = 0;
X				iDash = iDashStart;
X				iphase = iphaseStart;
X				dashRemaining = dashRemainingStart;
X			}
X			
X
X
X
X
X
X
X
X
X			if ((iphase == 0 || isDoubleDash) &&
X			    (nexti != start || arcsJoin && isDashed) &&
X 			    !data[j].selfJoin)
X				addCap (&arcs[iphase].caps, &arcs[iphase].ncaps,
X 					&capSize[iphase], 0, nextk);
X		}
X		i = nexti;
X		if (i == start)
X			break;
X	}
X	
X
X
X	for (iphase = 0; iphase < (isDoubleDash ? 2 : 1); iphase++)
X		if (arcs[iphase].narcs > 0) {
X			arcs[iphase].arcs[arcs[iphase].narcs-1].render = 1;
X			arcs[iphase].arcs[arcs[iphase].narcs-1].join =
X			         arcs[iphase].njoins;
X			arcs[iphase].arcs[arcs[iphase].narcs-1].cap =
X			         arcs[iphase].ncaps;
X		}
X	return arcs;
X}
X
END_OF_FILE
if test 27753 -ne `wc -c <'miarc.part.i'`; then
    echo shar: \"'miarc.part.i'\" unpacked with wrong size!
fi
# end of 'miarc.part.i'
fi
echo shar: End of shell archive.
exit 0
Technical Details
Message-ID: <8812051644.AA08474@chip_and_dips.com>
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!mcdchg!rutgers!tut.cis.ohio-state.edu!UUNET.UU.NET!eplrx7!mcneill

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!mcdchg!rutgers!tut.cis.ohio-state.edu!UUNET.UU.NET!eplrx7!mcneill
From: eplrx7!mcneill@UUNET.UU.NET (Keith McNeill)
Newsgroups: gnu.gcc.bug
Subject: Re: GCC 1.31 Sun4, Sys4-3.2 & X.V11R3
Message-ID: <8812051644.AA08474@chip_and_dips.com>
Date: 5 Dec 88 16:44:52 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 3288