[comp.sources.unix] v10i057: X10R4 patches for Sun3/110C, Part01/03

rs@uunet.UU.NET (Rich Salz) (07/16/87)

Submitted-by: rochester!rocksanne!mayer (James L. Mayer)
Posting-Number: Volume 10, Issue 57
Archive-name: x10r4.sunpch/Part01

[  I have neither a Sun3/110C nor X so I haven't tried this.  --r$  ]

This is file 1 of 3 of the Xerox changes to the X Window System.

Over the last month or so, I have made a number of changes to the V10R4
release of the X Window System.  The most important of these changes
allows the X Window System to run on Sun 3/110C color workstations.
Since there has been a fair amount of interest in this on the network,
I would like to make our changes available.  In addition to the Sun
3/110C related changes, I included a number of bug fixes to both the
server and some applications.

Because the Sun sources request that they not be redistributed, this
release contains only the differences (generated by 'diff -c') from an
unmodified X.V10R4 system.  I have packaged the release in three "shar"
format files, all of which are under 64K bytes long.

There are installation instructions in the file "README.Xerox" and an
installation script in the file "MAKE.Xerox".  In addition, a copyright
notice and a disclaimer (since this is NOT a supported product of Xerox
Corporation) is included in the files "README.Xerox" and
"NOTICE.Xerox".

-- Jim

(Grapevine) mayer.wbst			(Arpa) mayer.wbst@Xerox.com
(NS) mayer:wbst128:xerox		(Phone) (716) 422-9407
(UUCP) rochester!rocksanne!mayer

------------------------- CUT HERE ------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	MAKE.Xerox
#	dopatch
#	libsun.1
# This archive created: Mon Jun  8 20:00:11 1987
# By:	James L. Mayer (Xerox Corporation)
export PATH; PATH=/bin:$PATH
echo shar: extracting "'MAKE.Xerox'" '(606 characters)'
if test -f 'MAKE.Xerox'
then
	echo shar: will not over-write existing file "'MAKE.Xerox'"
else
sed 's/^	X//' << \SHAR_EOF > 'MAKE.Xerox'
	X#! /bin/sh
	X#
	X#	Copyright (c) 1987 Xerox Corporation
	X#
	X#	This file installs all of the Xerox changes to the Sun
	X#	X drivers.  To run it, set the current directory to the
	X#	directory containing the modifications, and type
	X#
	X#		MAKE.Xerox destination
	X#
	X#	where "destination" is the name of the top level directory
	X#	containing a copy of the X.V10R4 distribution.
	X#
	Xdest="${1?No destination specified}"
	X
	Xsh dopatch $dest/libsun libsun.1/changes/*.patch
	Xsh dopatch $dest/libsun libsun.2/changes/*.patch
	X
	Xfor dir in . X XMenu Xlib man uwm xclock xcolors xinit
	Xdo
	X	sh dopatch $dest/$dir $dir/changes/*.patch
	Xdone
SHAR_EOF
if test 606 -ne "`wc -c < 'MAKE.Xerox'`"
then
	echo shar: error transmitting "'MAKE.Xerox'" '(should have been 606 characters)'
fi
chmod +x 'MAKE.Xerox'
fi # end of overwriting check
echo shar: extracting "'dopatch'" '(232 characters)'
if test -f 'dopatch'
then
	echo shar: will not over-write existing file "'dopatch'"
else
sed 's/^	X//' << \SHAR_EOF > 'dopatch'
	X#! /bin/sh
	X#
	X#	Install patches
	X#
	X#	dopatch original-directory patch-file...
	X#
	Xoriginal="${1?No orignal directory specified}"
	Xshift
	X
	Xfor patch in $@
	Xdo
	X	base=`basename "$patch" ".patch"`
	X
	X	patch -c -N "$original/$base" "$patch"
	Xdone
SHAR_EOF
if test 232 -ne "`wc -c < 'dopatch'`"
then
	echo shar: error transmitting "'dopatch'" '(should have been 232 characters)'
fi
chmod +x 'dopatch'
fi # end of overwriting check
if test ! -d 'libsun.1'
then
	echo shar: creating directory "'libsun.1'"
	mkdir 'libsun.1'
fi
echo shar: entering directory "'libsun.1'"
cd 'libsun.1'
if test ! -d 'changes'
then
	echo shar: creating directory "'changes'"
	mkdir 'changes'
fi
echo shar: entering directory "'changes'"
cd 'changes'
echo shar: extracting "'Xsun.h.patch'" '(1928 characters)'
if test -f 'Xsun.h.patch'
then
	echo shar: will not over-write existing file "'Xsun.h.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'Xsun.h.patch'
	X*** /usr/src/new/X.V10R4/libsun/Xsun.h	Mon Dec  1 19:24:04 1986
	X--- Xsun.h	Mon Jun  8 14:29:56 1987
	X***************
	X*** 81,91 ****
	X  
	X  #define PDATA(x) ((BITMAP *) x->data)
	X  
	X! #define SUN_FROM_X_OP(func)	(Sun_From_X_Op[func])
	X! #define SUN_FROM_X_OP_INVERT(func)    (Sun_From_X_Op[SSMap[func|0x10]])
	X  extern char SSMap[];
	X  
	X  short Sun_From_X_Op[];
	X  
	X  #define CURSOR_WIDTH	16
	X  #define CURSOR_HEIGHT	16
	X--- 81,95 ----
	X  
	X  #define PDATA(x) ((BITMAP *) x->data)
	X  
	X! #define SUN_FROM_X_OP_DIRECT(func)	(Sun_From_X_Op[func])
	X! #define SUN_FROM_X_OP(func)		(Sun_From_X_Op_Map[func])
	X! #define SUN_FROM_X_OP_INVERT(func)	(Sun_From_X_Op_Map[SSMap[func|0x10]])
	X! #define OP_INVERT(func)			(SSMap[func])
	X  extern char SSMap[];
	X  
	X+ short *Sun_From_X_Op_Map;
	X  short Sun_From_X_Op[];
	X+ short Sun_From_X_Op_Reverse[];
	X  
	X  #define CURSOR_WIDTH	16
	X  #define CURSOR_HEIGHT	16
	X***************
	X*** 100,114 ****
	X      }
	X  
	X  #define	OverLap(x1, y1, w1, h1, x2, y2, w2, h2)	\
	X! 	((x1 < x2+w2) && (y1 < y2+h2) && (x2 < x1+w1) && (y2 < y1+h1))
	X  
	X  #define imin(i,j)	(i<j?i:j)
	X  
	X  #define imax(i,j)	(i>j?i:j)
	X  
	X! #define SetZmask(pr, zm) { \
	X! 	extern private_czmask; \
	X! 	if (*(char *)(zm) != (char)private_czmask) { \
	X! 		pr_putattributes(pr, (zm)); \
	X! 		private_czmask = *(zm); \
	X! 	}}
	X--- 104,128 ----
	X      }
	X  
	X  #define	OverLap(x1, y1, w1, h1, x2, y2, w2, h2)	\
	X! 	((x1 <= x2+w2) && (y1 <= y2+h2) && (x2 <= x1+w1) && (y2 <= y1+h1))
	X  
	X  #define imin(i,j)	(i<j?i:j)
	X  
	X  #define imax(i,j)	(i>j?i:j)
	X  
	X! extern int private_czmask;
	X! 
	X! #define SetZmask(pr, bits) {\
	X! 		if ((*(bits) & 0xffff) != private_czmask) { \
	X! 			private_czmask = *(bits) & 0xffff; \
	X! 			pr_putattributes(pr, &private_czmask); \
	X! 			}} 
	X! 
	X! #define GetZmask(pr, bits) (*(bits) = private_czmask)
	X! 
	X! #define NoZmask(pr) { \
	X! 		if (private_czmask != 0xffff) { \
	X! 			private_czmask = 0xffff; \
	X! 			pr_putattributes(pr, &private_czmask); \
	X! 			}} 
	X! 
SHAR_EOF
if test 1928 -ne "`wc -c < 'Xsun.h.patch'`"
then
	echo shar: error transmitting "'Xsun.h.patch'" '(should have been 1928 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'bitpix.c.patch'" '(2590 characters)'
if test -f 'bitpix.c.patch'
then
	echo shar: will not over-write existing file "'bitpix.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'bitpix.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/bitpix.c	Mon Dec  1 19:24:06 1986
	X--- bitpix.c	Mon Jun  8 14:29:59 1987
	X***************
	X*** 1,5 ****
	X  #ifndef lint
	X! static char *rcsid_bitpix_c = "$Header: bitpix.c,v 10.3 86/11/29 13:47:16 jg Rel $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X--- 1,5 ----
	X  #ifndef lint
	X! static char *rcsid_bitpix_c = "$Header: bitpix.c,v 10.5 87/05/04 17:38:53 mayer Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X***************
	X*** 253,259 ****
	X  	if (PixRect->pr_depth > 8) {
	X  	    pm->data = (caddr_t) Xalloc(WZPixmapSize(pm->width, pm->height));
	X  	} else {
	X! 	    pm->data = (caddr_t) Xalloc(BZPixmapSize(pm->width, pm->height));
	X  	}
	X  	dest = mem_point(pm->width, pm->height, PixRect->pr_depth, pm->data);
	X  	mask = mem_point(pm->width, pm->height, 1, xymask->data);
	X--- 253,261 ----
	X  	if (PixRect->pr_depth > 8) {
	X  	    pm->data = (caddr_t) Xalloc(WZPixmapSize(pm->width, pm->height));
	X  	} else {
	X! 	    int size = BZPixmapSize(pm->width, pm->height);
	X! 	    if (pm->width & 1) size += pm->height;
	X! 	    pm->data = (caddr_t) Xalloc(size);
	X  	}
	X  	dest = mem_point(pm->width, pm->height, PixRect->pr_depth, pm->data);
	X  	mask = mem_point(pm->width, pm->height, 1, xymask->data);
	X***************
	X*** 264,272 ****
	X  	 */
	X          pr_rop(dest, 0, 0, pm->width, pm->height,
	X                          PIX_SRC | PIX_DONTCLIP | PIX_COLOR(back), NULL, 0, 0);
	X!         pr_stencil(dest, 0, 0, pm->width, pm->height,
	X!                         PIX_SRC | PIX_DONTCLIP | PIX_COLOR(fore), 
	X! 			mask, 0, 0, NULL, 0 ,0);
	X          pr_destroy(mask);
	X  	/*
	X  	 * We assume pm->data is NOT freed when dest is destroyed.
	X--- 266,274 ----
	X  	 */
	X          pr_rop(dest, 0, 0, pm->width, pm->height,
	X                          PIX_SRC | PIX_DONTCLIP | PIX_COLOR(back), NULL, 0, 0);
	X!         pr_rop(dest, 0, 0, pm->width, pm->height,
	X!                         (PIX_SRC^PIX_DST) | PIX_DONTCLIP | PIX_COLOR(fore^back), 
	X! 			mask, 0, 0);
	X          pr_destroy(mask);
	X  	/*
	X  	 * We assume pm->data is NOT freed when dest is destroyed.
	X***************
	X*** 311,317 ****
	X  
	X  	    dest = mem_point(width, height, 1, bm->data);
	X  	    CheckCursor(srcx, srcy, width, height);
	X! 	    pr_rop(dest, 0, 0, width, height, PIX_SRC | PIX_DONTCLIP, PixRect, srcx, srcy);
	X  	    pr_destroy(dest);
	X  	    RestoreCursor();
	X  	}
	X--- 313,321 ----
	X  
	X  	    dest = mem_point(width, height, 1, bm->data);
	X  	    CheckCursor(srcx, srcy, width, height);
	X! 	    pr_rop(dest, 0, 0, width, height,
	X! 	    	SUN_FROM_X_OP(GXcopy) | PIX_DONTCLIP,
	X! 		PixRect, srcx, srcy);
	X  	    pr_destroy(dest);
	X  	    RestoreCursor();
	X  	}
SHAR_EOF
if test 2590 -ne "`wc -c < 'bitpix.c.patch'`"
then
	echo shar: error transmitting "'bitpix.c.patch'" '(should have been 2590 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'copy.c.patch'" '(1523 characters)'
if test -f 'copy.c.patch'
then
	echo shar: will not over-write existing file "'copy.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'copy.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/copy.c	Mon Dec  1 19:24:07 1986
	X--- copy.c	Mon Jun  8 14:30:04 1987
	X***************
	X*** 1,5 ****
	X  #ifndef lint
	X! static char *rcsid_copy_c = "$Header: copy.c,v 10.3 86/11/29 13:47:25 jg Rel $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X--- 1,5 ----
	X  #ifndef lint
	X! static char *rcsid_copy_c = "$Header: copy.c,v 10.4 87/05/04 11:07:44 mayer Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X***************
	X*** 55,63 ****
	X  	int func;
	X  	CLIP *clips;
	X  {
	X!     int op = SUN_FROM_X_OP(func);
	X!     int allmask = -1;
	X  
	X      SetZmask(PixRect, &zmask);
	X      do {
	X  	int         cleft, ctop, cwidth, cheight;
	X--- 55,64 ----
	X  	int func;
	X  	CLIP *clips;
	X  {
	X!     int op = SUN_FROM_X_OP_DIRECT(func);
	X!     int old_zmask;
	X  
	X+     GetZmask(PixRect, &old_zmask);
	X      SetZmask(PixRect, &zmask);
	X      do {
	X  	int         cleft, ctop, cwidth, cheight;
	X***************
	X*** 73,82 ****
	X  
	X  	    CheckCursor(tleft, ttop, twidth, theight);
	X  	    CheckCursor(sx, sy, twidth, theight);
	X! 	    pr_rop(PixRect, tleft, ttop, twidth, theight, op | PIX_DONTCLIP, PixRect, sx, sy);
	X  	}
	X      } while (--clipcount > 0);
	X      RestoreCursor();
	X!     SetZmask(PixRect, &allmask);
	X  }
	X  #endif	sun
	X--- 74,85 ----
	X  
	X  	    CheckCursor(tleft, ttop, twidth, theight);
	X  	    CheckCursor(sx, sy, twidth, theight);
	X! 	    pr_rop(PixRect, tleft, ttop, twidth, theight,
	X! 			op | PIX_DONTCLIP, PixRect, sx, sy
	X! 			);
	X  	}
	X      } while (--clipcount > 0);
	X      RestoreCursor();
	X!     SetZmask(PixRect, &old_zmask);
	X  }
	X  #endif	sun
SHAR_EOF
if test 1523 -ne "`wc -c < 'copy.c.patch'`"
then
	echo shar: error transmitting "'copy.c.patch'" '(should have been 1523 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'cursor.c.patch'" '(8757 characters)'
if test -f 'cursor.c.patch'
then
	echo shar: will not over-write existing file "'cursor.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'cursor.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/cursor.c	Wed Dec 17 20:32:48 1986
	X--- cursor.c	Mon Jun  8 14:30:12 1987
	X***************
	X*** 4,19 ****
	X   *
	X   * Sun implementation dependent library
	X   * Copyright (c) 1983, 1984, 1985, 1986 Sun Microsystems, Inc.
	X   *
	X!  * $Author: swick $
	X!  * $Source: /u1/X/libsun/RCS/cursor.c,v $
	X!  * $Revision: 10.5 $
	X!  * $Date: 86/12/17 20:32:30 $
	X   *
	X   */
	X  
	X  #ifndef lint
	X! static char rcs_id[] = "$Header: cursor.c,v 10.5 86/12/17 20:32:30 swick Exp $";
	X  #endif !lint
	X  
	X  #ifdef sun
	X--- 4,20 ----
	X   *
	X   * Sun implementation dependent library
	X   * Copyright (c) 1983, 1984, 1985, 1986 Sun Microsystems, Inc.
	X+  * Copyright (c) 1987 Xerox Corporation
	X   *
	X!  * $Author: mayer $
	X!  * $Source: /usr/src/new/X.V10R4/libsun/RCS/cursor.c,v $
	X!  * $Revision: 10.8 $
	X!  * $Date: 87/05/17 12:54:29 $
	X   *
	X   */
	X  
	X  #ifndef lint
	X! static char rcs_id[] = "$Header: cursor.c,v 10.8 87/05/17 12:54:29 mayer Exp $";
	X  #endif !lint
	X  
	X  #ifdef sun
	X***************
	X*** 34,39 ****
	X--- 35,43 ----
	X   *		Use macros for CheckCursor()
	X   */
	X  
	X+ #include <sys/types.h>
	X+ #include <sys/time.h>
	X+ 
	X  #include "Xsun.h"
	X  
	X  extern struct pixrect *PixRect;
	X***************
	X*** 42,48 ****
	X  extern int vsdev;
	X  CURSOR *CurrentCursor;
	X  int CursorDisplayed;
	X- static struct pixrect *CursorPixrect;
	X  
	X  CURSOR *StoreCursor (func, image, fore, back, mask, xoff, yoff)
	X  BITMAP *image;
	X--- 46,51 ----
	X***************
	X*** 54,59 ****
	X--- 57,63 ----
	X  	
	X  	if (!image)
	X  		return (NULL);
	X+ 	
	X  	cursor = (CURSOR *) Xalloc(sizeof(CURSOR));
	X  	cursor->width = image->width;
	X  	cursor->height = image->height;
	X***************
	X*** 67,84 ****
	X  	cursor->refcnt = 1;
	X  	data = (CursPriv *) Xalloc(sizeof(CursPriv));
	X  	cursor->data = (caddr_t) data;
	X! 	data->top = mem_point(image->width, image->height, 1, image->data);
	X! 	if (fore && back || !fore && !back)
	X! 		if (fore)
	X! 			data->c_func = PIX_SRC | PIX_NOT(PIX_SRC);
	X  		else
	X! 			data->c_func = PIX_SRC & PIX_NOT(PIX_SRC);
	X! 	else if (fore && WhitePixel)
	X! 		data->c_func = SUN_FROM_X_OP(func);
	X  	else
	X! 		data->c_func = SUN_FROM_X_OP_INVERT(func);
	X! 	data->top_bit = image;
	X! 	image->refcnt++;
	X  	if (mask) {
	X  		data->bot = mem_point(mask->width, mask->height, 1, 
	X  				      mask->data);
	X--- 71,124 ----
	X  	cursor->refcnt = 1;
	X  	data = (CursPriv *) Xalloc(sizeof(CursPriv));
	X  	cursor->data = (caddr_t) data;
	X! 
	X! 
	X! 	data->c_func = func;
	X! 
	X! 	if (PixRect->pr_depth == 1)
	X! 	{
	X! 		data->top = mem_point(image->width,
	X! 			image->height, 1, image->data
	X! 			);
	X! 		data->top_bit = image;
	X! 		image->refcnt += 1;
	X! 
	X! 		if (fore != 0 && back != 0)
	X! 			data->c_func = GXset;
	X! 		else if (fore == 0 && back == 0)
	X! 			data->c_func = GXclear;
	X! 		else if (fore != 0 && WhitePixel != 0)
	X! 			data->c_func = func;
	X  		else
	X! 			data->c_func = OP_INVERT(func);
	X! 	}
	X  	else
	X! 	{
	X! 		struct pixrect *bits;
	X! 
	X! 		data->top = mem_create(
	X! 			image->width, image->height, PixRect->pr_depth
	X! 			);
	X! 		data->top_bit = NULL;
	X! 
	X! 		bits = mem_point(
	X! 			image->width, image->height, 1, image->data
	X! 			);
	X! 
	X! 		pr_rop(data->top, 0, 0, image->width, image->height,
	X! 			PIX_SRC|PIX_COLOR(back)|PIX_DONTCLIP,
	X! 			(struct pixrect *)NULL, 0, 0
	X! 			);
	X! 
	X! 		pr_stencil(data->top, 0, 0, image->width, image->height,
	X! 			PIX_SRC|PIX_COLOR(fore)|PIX_DONTCLIP,
	X! 			bits, 0, 0,
	X! 			(struct pixrect *)NULL, 0, 0
	X! 			);
	X! 
	X! 		pr_destroy(bits);
	X! 	}
	X! 
	X  	if (mask) {
	X  		data->bot = mem_point(mask->width, mask->height, 1, 
	X  				      mask->data);
	X***************
	X*** 90,97 ****
	X  	}
	X  	data->sv = mem_create(cursor->width, cursor->height, 
	X  			      PixRect->pr_depth);
	X- 	data->fore = fore;
	X- 	data->back = back;
	X  	return (cursor);
	X  }
	X  
	X--- 130,135 ----
	X***************
	X*** 112,119 ****
	X  	free((caddr_t) cursor);
	X  }
	X  
	X- struct pr_prpos topbatch, botbatch;
	X- 
	X  LoadCursor (cursor)
	X  register CURSOR *cursor;
	X  {
	X--- 150,155 ----
	X***************
	X*** 120,131 ****
	X  	if (CursorDisplayed)
	X  		DisplayCursor(NULL);
	X  	if ((CurrentCursor = cursor) != NULL) {
	X- 		topbatch.pr = CDATA(cursor)->top;
	X- 		topbatch.pos.x = 0;
	X- 		topbatch.pos.y = 0;
	X- 		botbatch.pr = CDATA(cursor)->bot;
	X- 		botbatch.pos.x = 0;
	X- 		botbatch.pos.y = 0;
	X  		DisplayCursor(cursor);
	X  	}
	X  }
	X--- 156,161 ----
	X***************
	X*** 134,219 ****
	X  {
	X  }
	X  
	X! SetCursorPosition(pos)
	X  register vsCursor *pos;
	X  {
	X! 	if (pos->x != (CurrentDevice->mouse->x) || pos->y != (CurrentDevice->mouse->y)) {
	X  		if (CursorDisplayed)
	X  			DisplayCursor(NULL);
	X! 		*(CurrentDevice->mouse) = *pos;
	X  		DisplayCursor(CurrentCursor);
	X- 		win_setmouseposition(vsdev, pos->x, pos->y);
	X  	}
	X  }
	X  
	X! SetMouseCharacteristics (threshold, accelaration)
	X! int threshold, accelaration;
	X  {
	X! 	extern sunthreshold;
	X! 	extern sunaccel;
	X  
	X! 	sunthreshold = threshold;
	X! 	sunaccel = accelaration;
	X  }
	X  
	X  DisplayCursor(cs)
	X  CURSOR *cs;
	X  {
	X  	extern struct pixrect *PixRect;
	X  	vsCursor   *ms = CurrentDevice->mouse;
	X! 	
	X  	if (cs == NULL) {
	X! 		if (CurrentCursor) {
	X  			/* take it out */
	X- 			extern int	private_czmask;
	X- 			int		old_zmask = private_czmask;
	X- 			int		allmask = -1;
	X- 			
	X- 			SetZmask(PixRect, &allmask);
	X  			pr_rop(PixRect, ms->x, ms->y, CurrentCursor->width,
	X  			       CurrentCursor->height, PIX_SRC, 
	X  			       CDATA(CurrentCursor)->sv, 0, 0);
	X- 			SetZmask(PixRect, &old_zmask);
	X  			CursorDisplayed = 0;
	X  		}
	X! 	} else {
	X  		CursPriv   *cp = CDATA(cs);
	X! 		
	X  		/* put it in */
	X! 		pr_rop(cp->sv, 0, 0, cs->width, cs->height, PIX_SRC,
	X! 		       PixRect, ms->x, ms->y);
	X! 		if (PixRect->pr_depth == 1) {
	X! 			if (cp->bot != (struct pixrect *) NULL &&
	X! 			    cp->top != (struct pixrect *) NULL) {
	X! 				    pr_stencil(PixRect, ms->x, ms->y, 
	X! 					       cs->width, cs->height,
	X! 					       cp->c_func,
	X! 					       cp->bot, 0, 0,
	X! 					       cp->top, 0, 0);
	X! 			    }
	X! 		} else {
	X! 			extern int	private_bgcolor;
	X! 			extern int	private_fgcolor;
	X! 			extern int	private_czmask;
	X! 			int	       	old_zmask = private_czmask;
	X! 			
	X! 			private_bgcolor = -1;
	X! 			private_czmask = -1;
	X! 			if (botbatch.pr) {
	X! 				private_fgcolor = cp->back;
	X! 				pr_batchrop(PixRect, ms->x, ms->y,
	X! 					    PIX_SRC | PIX_DST,
	X! 					    &botbatch, 1);
	X! 			}
	X! 			private_fgcolor = cp->fore;
	X! 			if (topbatch.pr)
	X! 				pr_batchrop(PixRect, ms->x, ms->y,
	X! 					    PIX_NOT(PIX_SRC) & PIX_DST,
	X! 					    &topbatch, 1);
	X! 			private_czmask = old_zmask;
	X  		}
	X  		CursorDisplayed = 1;
	X  	}
	X  }
	X  
	X  int
	X--- 164,262 ----
	X  {
	X  }
	X  
	X! 
	X! TrackCursorPosition(pos)
	X  register vsCursor *pos;
	X  {
	X! 	register vsCursor *mouse = CurrentDevice->mouse;
	X! 
	X! 	if (pos->x != mouse->x || pos->y != mouse->y) {
	X  		if (CursorDisplayed)
	X  			DisplayCursor(NULL);
	X! 
	X! 		*mouse = *pos;
	X! 
	X! 		if (mouse->x < 0)
	X! 			mouse->x = 0;
	X! 		else if (mouse->x > CurrentDevice->width)
	X! 			mouse->x = CurrentDevice->width;
	X! 		
	X! 		if (mouse->y < 0)
	X! 			mouse->y = 0;
	X! 		else if (mouse->y > CurrentDevice->height)
	X! 			mouse->y = CurrentDevice->height;
	X! 		
	X  		DisplayCursor(CurrentCursor);
	X  	}
	X  }
	X  
	X! SetCursorPosition(pos)
	X! register vsCursor *pos;
	X  {
	X! 	register vsCursor *mouse = CurrentDevice->mouse;
	X  
	X! 	TrackCursorPosition(pos);
	X! 
	X! 	win_setmouseposition(vsdev, mouse->x, mouse->y);
	X  }
	X  
	X+ SetMouseCharacteristics (threshold, acceleration)
	X+ int threshold, acceleration;
	X+ {
	X+ 	return Set_mouse_params(threshold, acceleration);
	X+ }
	X+ 
	X  DisplayCursor(cs)
	X  CURSOR *cs;
	X  {
	X  	extern struct pixrect *PixRect;
	X  	vsCursor   *ms = CurrentDevice->mouse;
	X! 	int old_zmask;
	X! 
	X! 	GetZmask(PixRect, &old_zmask);
	X! 	NoZmask(PixRect);
	X! 
	X  	if (cs == NULL) {
	X! 		if (CurrentCursor != NULL)
	X! 		{
	X  			/* take it out */
	X  			pr_rop(PixRect, ms->x, ms->y, CurrentCursor->width,
	X  			       CurrentCursor->height, PIX_SRC, 
	X  			       CDATA(CurrentCursor)->sv, 0, 0);
	X  			CursorDisplayed = 0;
	X  		}
	X! 	}
	X! 	else
	X! 	{
	X  		CursPriv   *cp = CDATA(cs);
	X! 
	X  		/* put it in */
	X! 		pr_rop(cp->sv, 0, 0, cs->width, cs->height,
	X! 			PIX_SRC|PIX_DONTCLIP,
	X! 			PixRect, ms->x, ms->y
	X! 			);
	X! 
	X! 		/* image the cursor */
	X! 		if (cp->bot != NULL && cp->top != NULL)
	X! 		{
	X! 			pr_stencil(PixRect, ms->x, ms->y,
	X! 					cs->width, cs->height,
	X! 					SUN_FROM_X_OP(cp->c_func),
	X! 					cp->bot, 0, 0,
	X! 					cp->top, 0, 0
	X! 					);
	X  		}
	X+ 		else if (cp->bot == NULL && cp->top != NULL)
	X+ 		{
	X+ 			pr_rop(PixRect, ms->x, ms->y,
	X+ 					cs->width, cs->height,
	X+ 					SUN_FROM_X_OP(cp->c_func),
	X+ 					cp->top, 0, 0
	X+ 					);
	X+ 		}
	X  		CursorDisplayed = 1;
	X  	}
	X+ 	SetZmask(PixRect, &old_zmask);
	X  }
	X  
	X  int
	X***************
	X*** 230,236 ****
	X  
	X  RestoreCursor()
	X  {
	X! 	if (!CursorDisplayed)
	X  		DisplayCursor(CurrentCursor);
	X  }
	X  #endif	sun
	X--- 273,280 ----
	X  
	X  RestoreCursor()
	X  {
	X! 	if (!CursorDisplayed) {
	X  		DisplayCursor(CurrentCursor);
	X+ 	}
	X  }
	X  #endif	sun
SHAR_EOF
if test 8757 -ne "`wc -c < 'cursor.c.patch'`"
then
	echo shar: error transmitting "'cursor.c.patch'" '(should have been 8757 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'draw.c.patch'" '(1857 characters)'
if test -f 'draw.c.patch'
then
	echo shar: will not over-write existing file "'draw.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'draw.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/draw.c	Mon Dec  1 19:24:10 1986
	X--- draw.c	Mon Jun  8 14:30:14 1987
	X***************
	X*** 1,5 ****
	X  #ifndef lint
	X! static char *rcsid_draw_c = "$Header: draw.c,v 10.3 86/11/29 13:47:42 jg Rel $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X--- 1,5 ----
	X  #ifndef lint
	X! static char *rcsid_draw_c = "$Header: draw.c,v 10.4 87/05/02 14:21:44 mayer Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X***************
	X*** 68,85 ****
	X      CLIP *clips;	/* clipping rectangles */
	X      int zmask;
	X  {
	X!     int allmask = -1;
	X  
	X      SetZmask(PixRect, &zmask);
	X      do {
	X  	struct pixrect *region;
	X  	int         cleft, ctop, cwidth, cheight;
	X! 	register int xp, yp;
	X  	register Vertex *v = verts;
	X  	register int vc = vertcount;
	X  
	X  	GetNextClip(clips, cleft, ctop, cwidth, cheight);
	X  	CheckCursor(cleft, ctop, cwidth, cheight);
	X  	do {
	X  	    register    xo = xp, yo = yp;
	X  
	X--- 68,88 ----
	X      CLIP *clips;	/* clipping rectangles */
	X      int zmask;
	X  {
	X!     int old_zmask;
	X  
	X+     GetZmask(PixRect, &old_zmask);
	X      SetZmask(PixRect, &zmask);
	X+ 
	X      do {
	X  	struct pixrect *region;
	X  	int         cleft, ctop, cwidth, cheight;
	X! 	register int xp = xbase, yp = ybase;
	X  	register Vertex *v = verts;
	X  	register int vc = vertcount;
	X  
	X  	GetNextClip(clips, cleft, ctop, cwidth, cheight);
	X  	CheckCursor(cleft, ctop, cwidth, cheight);
	X+ 
	X  	do {
	X  	    register    xo = xp, yo = yp;
	X  
	X***************
	X*** 119,126 ****
	X  	    v++;
	X  	} while (--vc > 0);
	X      } while (--clipcount > 0);
	X      RestoreCursor();
	X-     SetZmask(PixRect, &allmask);
	X  }
	X  
	X  DrawCurve (verts, vertcount, xbase, ybase, srcpix, altpix, mode,
	X--- 122,131 ----
	X  	    v++;
	X  	} while (--vc > 0);
	X      } while (--clipcount > 0);
	X+ 
	X+     SetZmask(PixRect, &old_zmask);
	X+ 
	X      RestoreCursor();
	X  }
	X  
	X  DrawCurve (verts, vertcount, xbase, ybase, srcpix, altpix, mode,
SHAR_EOF
if test 1857 -ne "`wc -c < 'draw.c.patch'`"
then
	echo shar: error transmitting "'draw.c.patch'" '(should have been 1857 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'events.c.patch'" '(3576 characters)'
if test -f 'events.c.patch'
then
	echo shar: will not over-write existing file "'events.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'events.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/events.c	Wed Dec 17 20:37:01 1986
	X--- events.c	Mon Jun  8 14:30:19 1987
	X***************
	X*** 1,5 ****
	X  #ifndef lint
	X! static char *rcsid_events_c = "$Header: events.c,v 10.4 86/12/17 20:36:45 swick Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X--- 1,5 ----
	X  #ifndef lint
	X! static char *rcsid_events_c = "$Header: events.c,v 10.6 87/05/11 15:13:04 mayer Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X***************
	X*** 74,82 ****
	X  extern int vsdev;
	X  extern DEVICE *CurrentDevice;
	X  
	X- int sunthreshold = 0;
	X- int sunaccel = 0;
	X- 
	X  #ifdef	RAW_KBD
	X  extern unsigned state_mask;
	X  #endif
	X--- 74,79 ----
	X***************
	X*** 320,341 ****
	X  
	X  	unsigned kludgekey = ConvertEvent(&(sunevents[m]), &Xevent);
	X  
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X! 	    if (sunthreshold) {
	X! 		int dx = Xevent.vse_x - CurrentDevice->mouse->x;
	X! 		int dy = Xevent.vse_y - CurrentDevice->mouse->y;
	X! 
	X! 		if (sunthreshold <= (dx > 0 ? dx : -dx) + (dy > 0 ? dy : -dy)) {
	X! 			Xevent.vse_x = CurrentDevice->mouse->x + dx * sunaccel;
	X! 			Xevent.vse_y = CurrentDevice->mouse->y + dy * sunaccel;
	X! 		}
	X! 	
	X! 	    }
	X! 	    SetCursorPosition((vsCursor *) &Xevent);	/* XXX - tacky */
	X  	}
	X  
	X- 	Xevent.vse_key;
	X- 
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X  	    register vsBox *b = CurrentDevice->mbox;
	X  	    register vsCursor *m = CurrentDevice->mouse;
	X--- 317,330 ----
	X  
	X  	unsigned kludgekey = ConvertEvent(&(sunevents[m]), &Xevent);
	X  
	X+ #ifdef notdef
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X! 	    TrackCursorPosition((vsCursor *) &Xevent);	/* XXX - tacky */
	X  	}
	X+ #else
	X+ 	TrackCursorPosition((vsCursor *) &Xevent);
	X+ #endif
	X  
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X  	    register vsBox *b = CurrentDevice->mbox;
	X  	    register vsCursor *m = CurrentDevice->mouse;
	X***************
	X*** 355,361 ****
	X  	}
	X      }
	X  }
	X! #else
	X  static int
	X  SunToXKeyCode(s)
	X  int s;
	X--- 344,350 ----
	X  	}
	X      }
	X  }
	X! #else RAW_KBD
	X  static int
	X  SunToXKeyCode(s)
	X  int s;
	X***************
	X*** 384,390 ****
	X      xe->vse_x = se->ie_locx;
	X      xe->vse_y = se->ie_locy;
	X      /* Map the time stamps */
	X!     xe->vse_time = (se->ie_time.tv_usec/10000 + se->ie_time.tv_sec);
	X      /* Set direction */
	X      xe->vse_direction = (win_inputposevent(se) ? VSE_KBTDOWN : VSE_KBTUP);
	X      /* Sort out the event codes */
	X--- 373,379 ----
	X      xe->vse_x = se->ie_locx;
	X      xe->vse_y = se->ie_locy;
	X      /* Map the time stamps */
	X!     xe->vse_time = (se->ie_time.tv_usec/10000 + se->ie_time.tv_sec*100);
	X      /* Set direction */
	X      xe->vse_direction = (win_inputposevent(se) ? VSE_KBTDOWN : VSE_KBTUP);
	X      /* Sort out the event codes */
	X***************
	X*** 488,506 ****
	X  	int mask;
	X  
	X  	mask = ConvertEvent(&(sunevents[m]), &Xevent);
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X! 	    if (sunthreshold) {
	X! 		int dx = Xevent.vse_x - CurrentDevice->mouse->x;
	X! 		int dy = Xevent.vse_y - CurrentDevice->mouse->y;
	X! 
	X! 		if (sunthreshold <= (dx > 0 ? dx : -dx) + (dy > 0 ? dy : -dy)) {
	X! 			Xevent.vse_x = CurrentDevice->mouse->x + dx * sunaccel;
	X! 			Xevent.vse_y = CurrentDevice->mouse->y + dy * sunaccel;
	X! 		}
	X! 	
	X! 	    }
	X! 	    SetCursorPosition((vsCursor *) &Xevent);	/* XXX - tacky */
	X  	}
	X  
	X  	if (mask != last_mask) {
	X  	    last_mask ^= mask;
	X--- 477,489 ----
	X  	int mask;
	X  
	X  	mask = ConvertEvent(&(sunevents[m]), &Xevent);
	X+ #ifdef notdef
	X  	if (Xevent.vse_type == VSE_MMOTION) {
	X! 	    TrackCursorPosition((vsCursor *) &Xevent);	/* XXX - tacky */
	X  	}
	X+ #else
	X+ 	TrackCursorPosition((vsCursor *) &Xevent);
	X+ #endif
	X  
	X  	if (mask != last_mask) {
	X  	    last_mask ^= mask;
SHAR_EOF
if test 3576 -ne "`wc -c < 'events.c.patch'`"
then
	echo shar: error transmitting "'events.c.patch'" '(should have been 3576 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'fill.c.patch'" '(1394 characters)'
if test -f 'fill.c.patch'
then
	echo shar: will not over-write existing file "'fill.c.patch'"
else
sed 's/^	X//' << \SHAR_EOF > 'fill.c.patch'
	X*** /usr/src/new/X.V10R4/libsun/fill.c	Mon Dec  1 19:24:13 1986
	X--- fill.c	Mon Jun  8 14:30:23 1987
	X***************
	X*** 1,5 ****
	X  #ifndef lint
	X! static char *rcsid_fill_c = "$Header: fill.c,v 10.4 86/11/30 16:06:12 jg Rel $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X--- 1,5 ----
	X  #ifndef lint
	X! static char *rcsid_fill_c = "$Header: fill.c,v 10.5 87/05/02 14:22:21 mayer Exp $";
	X  #endif	lint
	X  #ifdef	sun
	X  /*
	X***************
	X*** 58,66 ****
	X  	CLIP *clips;
	X  {
	X      int         op = SUN_FROM_X_OP(func) | PIX_COLOR(srcpix) | PIX_DONTCLIP;
	X!     int allmask = -1;
	X  
	X      SetZmask(PixRect, &zmask);
	X      if (xymask == NULL) {
	X  	do {
	X  	    int         cleft, ctop, cwidth, cheight;
	X--- 58,68 ----
	X  	CLIP *clips;
	X  {
	X      int         op = SUN_FROM_X_OP(func) | PIX_COLOR(srcpix) | PIX_DONTCLIP;
	X!     int old_zmask;
	X  
	X+     GetZmask(PixRect, &old_zmask);
	X      SetZmask(PixRect, &zmask);
	X+ 
	X      if (xymask == NULL) {
	X  	do {
	X  	    int         cleft, ctop, cwidth, cheight;
	X***************
	X*** 110,116 ****
	X  	} while (--clipcount > 0);
	X      }
	X      RestoreCursor();
	X!     SetZmask(PixRect, &allmask);
	X  }
	X  /*
	X   * the following is bogus on a color sun, but as I know nothing about Suns,
	X--- 112,118 ----
	X  	} while (--clipcount > 0);
	X      }
	X      RestoreCursor();
	X!     SetZmask(PixRect, &old_zmask);
	X  }
	X  /*
	X   * the following is bogus on a color sun, but as I know nothing about Suns,
SHAR_EOF
if test 1394 -ne "`wc -c < 'fill.c.patch'`"
then
	echo shar: error transmitting "'fill.c.patch'" '(should have been 1394 characters)'
fi
fi # end of overwriting check
echo shar: done with directory "'changes'"
cd ..
if test ! -d 'history'
then
	echo shar: creating directory "'history'"
	mkdir 'history'
fi
echo shar: entering directory "'history'"
cd 'history'
echo shar: extracting "'Xsun.h'" '(1226 characters)'
if test -f 'Xsun.h'
then
	echo shar: will not over-write existing file "'Xsun.h'"
else
sed 's/^	X//' << \SHAR_EOF > 'Xsun.h'
	X
	XRCS file:        libsun/RCS/Xsun.h,v;   Working file:    Xsun.h
	Xhead:            1.3
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 3;    selected revisions: 3
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 1.3        
	Xdate: 87/05/04 11:07:33;  author: mayer;  state: Exp;  lines added/del: 6/2
	XChanged to handle plane groups and frame buffers (eg. overlay plane)
	Xthat don't have a color map.
	X----------------------------
	Xrevision 1.2        
	Xdate: 87/05/02 14:20:21;  author: mayer;  state: Exp;  lines added/del: 17/7
	XChanged the definiton of SetZmask, and added macros to get the current
	Xmask (GetZmask), and to set the mask to "all enabled" (NoZmask).
	XI changed things so that routines that modify the mask, always restore
	Xit to what it was before.  They used to set it to "all enabled" when
	Xthey were done.  I originally thought this was a problem (it may not
	Xhave been), but it made me quite uneasy.
	X----------------------------
	Xrevision 1.1        
	Xdate: 87/05/02 14:17:26;  author: mayer;  state: Exp;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1226 -ne "`wc -c < 'Xsun.h'`"
then
	echo shar: error transmitting "'Xsun.h'" '(should have been 1226 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'bitpix.c'" '(1148 characters)'
if test -f 'bitpix.c'
then
	echo shar: will not over-write existing file "'bitpix.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'bitpix.c'
	X
	XRCS file:        libsun/RCS/bitpix.c,v;   Working file:    bitpix.c
	Xhead:            10.5
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 3;    selected revisions: 3
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/04 17:38:53;  author: mayer;  state: Exp;  lines added/del: 7/5
	XChanged "pr_stencil" to "pr_rop" and some fancy color munging.  This is
	Xmuch, much, faster.
	X----------------------------
	Xrevision 10.4        
	Xdate: 87/05/02 14:21:06;  author: mayer;  state: Exp;  lines added/del: 3/1
	XA nasty little bug here.... A Z-format pixmap was being created, and
	Xthen manipulated by the SUN pixrect library.  BZPixmapSize bytes of
	Xstorage were being allocated.  Unfortunaltely, SUN pixmaps always
	Xhave an even number of bytes per row, so not enough storage was being
	Xallocated when the row size was odd.
	X----------------------------
	Xrevision 10.3        
	Xdate: 86/11/29 13:47:16;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1148 -ne "`wc -c < 'bitpix.c'`"
then
	echo shar: error transmitting "'bitpix.c'" '(should have been 1148 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'copy.c'" '(713 characters)'
if test -f 'copy.c'
then
	echo shar: will not over-write existing file "'copy.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'copy.c'
	X
	XRCS file:        libsun/RCS/copy.c,v;   Working file:    copy.c
	Xhead:            10.4
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 2;    selected revisions: 2
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.4        
	Xdate: 87/05/04 11:07:44;  author: mayer;  state: Exp;  lines added/del: 7/4
	XChanged to handle plane groups and frame buffers (eg. overlay plane)
	Xthat don't have a color map.
	X----------------------------
	Xrevision 10.3        
	Xdate: 86/11/29 13:47:25;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 713 -ne "`wc -c < 'copy.c'`"
then
	echo shar: error transmitting "'copy.c'" '(should have been 713 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'cursor.c'" '(1244 characters)'
if test -f 'cursor.c'
then
	echo shar: will not over-write existing file "'cursor.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'cursor.c'
	X
	XRCS file:        libsun/RCS/cursor.c,v;   Working file:    cursor.c
	Xhead:            10.8
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 4;    selected revisions: 4
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.8        
	Xdate: 87/05/17 12:54:29;  author: mayer;  state: Exp;  lines added/del: 4/3
	XAdded copyright notice
	X----------------------------
	Xrevision 10.7        
	Xdate: 87/05/11 15:11:56;  author: mayer;  state: Exp;  lines added/del: 21/13
	XChanged mouse tracking to pretty much blindly follow the SUN mouse.
	XThis may cause some trouble with mouse ahead, but it tracks much beter
	Xand I think the change is worth it.
	XAlso, changed the mouse acceleration code to use the SUN features.
	X----------------------------
	Xrevision 10.6        
	Xdate: 87/05/04 11:07:49;  author: mayer;  state: Exp;  lines added/del: 101/66
	XChanged to handle plane groups and frame buffers (eg. overlay plane)
	Xthat don't have a color map.
	X----------------------------
	Xrevision 10.5        
	Xdate: 86/12/17 20:32:30;  author: swick;  state: Exp;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1244 -ne "`wc -c < 'cursor.c'`"
then
	echo shar: error transmitting "'cursor.c'" '(should have been 1244 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'draw.c'" '(720 characters)'
if test -f 'draw.c'
then
	echo shar: will not over-write existing file "'draw.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'draw.c'
	X
	XRCS file:        libsun/RCS/draw.c,v;   Working file:    draw.c
	Xhead:            10.4
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 2;    selected revisions: 2
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.4        
	Xdate: 87/05/02 14:21:44;  author: mayer;  state: Exp;  lines added/del: 8/3
	XChanged mask handling, and made sure the initial position for the draw
	Xroutine was initialized properly.
	X----------------------------
	Xrevision 10.3        
	Xdate: 86/11/29 13:47:42;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 720 -ne "`wc -c < 'draw.c'`"
then
	echo shar: error transmitting "'draw.c'" '(should have been 720 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'events.c'" '(1221 characters)'
if test -f 'events.c'
then
	echo shar: will not over-write existing file "'events.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'events.c'
	X
	XRCS file:        libsun/RCS/events.c,v;   Working file:    events.c
	Xhead:            10.6
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 3;    selected revisions: 3
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.6        
	Xdate: 87/05/11 15:13:04;  author: mayer;  state: Exp;  lines added/del: 12/61
	XChanged mouse tracking to pretty much blindly follow the SUN mouse.
	XThis may cause some trouble with mouse ahead, but it tracks much beter
	Xand I think the change is worth it.
	XAlso, changed the mouse acceleration code to use the SUN features.
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/02 14:22:01;  author: mayer;  state: Exp;  lines added/del: 41/9
	XChanged mouse acceleration so that:
	X        (1) Really huge mouse movements are limited.
	X        (2) The mouse doesnt get moved off the screen.
	XAlso, I installed "jonah@uwocsd.UUCP"'s bug fix in the event
	Xtime conversion code.
	X----------------------------
	Xrevision 10.4        
	Xdate: 86/12/17 20:36:45;  author: swick;  state: Exp;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1221 -ne "`wc -c < 'events.c'`"
then
	echo shar: error transmitting "'events.c'" '(should have been 1221 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'fill.c'" '(642 characters)'
if test -f 'fill.c'
then
	echo shar: will not over-write existing file "'fill.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'fill.c'
	X
	XRCS file:        libsun/RCS/fill.c,v;   Working file:    fill.c
	Xhead:            10.5
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 2;    selected revisions: 2
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/02 14:22:21;  author: mayer;  state: Exp;  lines added/del: 4/2
	XChanged the mask handling.
	X----------------------------
	Xrevision 10.4        
	Xdate: 86/11/30 16:06:12;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 642 -ne "`wc -c < 'fill.c'`"
then
	echo shar: error transmitting "'fill.c'" '(should have been 642 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'initial.c'" '(1498 characters)'
if test -f 'initial.c'
then
	echo shar: will not over-write existing file "'initial.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'initial.c'
	X
	XRCS file:        libsun/RCS/initial.c,v;   Working file:    initial.c
	Xhead:            10.10
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 5;    selected revisions: 5
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.10        
	Xdate: 87/05/17 12:52:41;  author: mayer;  state: Exp;  lines added/del: 2/1
	XAdded copyright notice.
	X----------------------------
	Xrevision 10.9        
	Xdate: 87/05/11 15:13:22;  author: mayer;  state: Exp;  lines added/del: 62/2
	XAdded code to use the SUN support for mouse acceleration (power mouse).
	XThis works a bit differently from the regular spec, but is more
	Xflexible as it allows access to the multi-tiered power mouse model
	Xthat SUN uses.
	X----------------------------
	Xrevision 10.8        
	Xdate: 87/05/04 17:39:36;  author: mayer;  state: Exp;  lines added/del: 8/4
	XChanged to use private flags provided by the main program.
	X	-u o		Use the overlay plane if available
	X	-u s		Use the 3/160 raster chip if available
	X----------------------------
	Xrevision 10.7        
	Xdate: 87/05/04 11:06:30;  author: mayer;  state: Exp;  lines added/del: 193/45
	XChanged to handle plane groups and frame buffers (eg. overlay plane)
	Xthat don't have a color map.
	X----------------------------
	Xrevision 10.6        
	Xdate: 86/12/17 20:34:22;  author: swick;  state: Exp;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1498 -ne "`wc -c < 'initial.c'`"
then
	echo shar: error transmitting "'initial.c'" '(should have been 1498 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'put.c'" '(1217 characters)'
if test -f 'put.c'
then
	echo shar: will not over-write existing file "'put.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'put.c'
	X
	XRCS file:        libsun/RCS/put.c,v;   Working file:    put.c
	Xhead:            10.6
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 4;    selected revisions: 4
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.6        
	Xdate: 87/05/11 15:09:28;  author: mayer;  state: Exp;  lines added/del: 2/2
	XFixed a syntax error.
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/04 17:41:02;  author: mayer;  state: Exp;  lines added/del: 3/4
	XChanged "pr_stencil" to "pr_rop" and some fancy color munging.  This is
	Xmuch, much, faster.
	X----------------------------
	Xrevision 10.4        
	Xdate: 87/05/02 14:22:40;  author: mayer;  state: Exp;  lines added/del: 40/12
	X(1) Changed mask handling.
	X(2) the FBMap stuff should only be used on monocrome displays.
	X(3) Changed BitsPut to properly convert from one pixel deep to N
	X    pixel deep bitmaps.  The background color has to be put in
	X    explicitly.
	X----------------------------
	Xrevision 10.3        
	Xdate: 86/11/29 13:48:41;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1217 -ne "`wc -c < 'put.c'`"
then
	echo shar: error transmitting "'put.c'" '(should have been 1217 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'text.c'" '(1475 characters)'
if test -f 'text.c'
then
	echo shar: will not over-write existing file "'text.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'text.c'
	X
	XRCS file:        libsun/RCS/text.c,v;   Working file:    text.c
	Xhead:            10.8
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 4;    selected revisions: 4
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.8        
	Xdate: 87/05/17 12:51:30;  author: mayer;  state: Exp;  lines added/del: 5/1
	XAdded copyright notice.
	X----------------------------
	Xrevision 10.7        
	Xdate: 87/05/11 15:10:00;  author: mayer;  state: Exp;  lines added/del: 48/1
	XSpecial cased some more text handling to work well with the menu package.
	X----------------------------
	Xrevision 10.6        
	Xdate: 87/05/02 14:22:55;  author: mayer;  state: Exp;  lines added/del: 241/14
	X(1) Changed mask handling.
	X(2) The FBMap stuff should only be used on monocrome displays.
	X(3) Changed "mem_batchrop" to "Xmem_batchrop".
	X(4) Changed "cg2_batchrop" to "Xcg2_batchrop"
	X(5) Added "Xcg4_batchrop" and support routines.  This version
	X    is written entierly within the pixrect specs, so should work
	X    on ANY sun color display.  For general operations it can be
	X    quite slow, however the special case used by "xterm" (replace
	X    mode, fixed width fonts) is handled moderately efficiently.
	X----------------------------
	Xrevision 10.5        
	Xdate: 86/11/29 13:48:49;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1475 -ne "`wc -c < 'text.c'`"
then
	echo shar: error transmitting "'text.c'" '(should have been 1475 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'tile.c'" '(1998 characters)'
if test -f 'tile.c'
then
	echo shar: will not over-write existing file "'tile.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'tile.c'
	X
	XRCS file:        libsun/RCS/tile.c,v;   Working file:    tile.c
	Xhead:            10.7
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 5;    selected revisions: 5
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.7        
	Xdate: 87/06/01 13:15:44;  author: mayer;  state: Exp;  lines added/del: 12/1
	XAdded check on memory allocation.
	X----------------------------
	Xrevision 10.6        
	Xdate: 87/05/11 15:10:39;  author: mayer;  state: Exp;  lines added/del: 13/3
	Xthe SUN PixRect package seems to have difficulties with negative
	Xbounds and clipping.  There is still something funny going on here,
	Xbut I don't have the time to find out.  It is much harder to crash
	Xthan it used to be.
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/03 06:32:22;  author: mayer;  state: Exp;  lines added/del: 2/2
	XPixrectFill was not aligning the tiles correctly.  The problem showed
	Xup most often with scrollbars in "xterm".  A comment in the code suggested
	Xthat the original author was somewhat confused about the right pixel
	Xalignment to use.  I haven't worked it all out, but the way it works
	Xnow jives better with my intuition and (more importantly) works better.
	X----------------------------
	Xrevision 10.4        
	Xdate: 87/05/02 14:23:22;  author: mayer;  state: Exp;  lines added/del: 11/7
	X(1) Changed mask handling.
	X(2) Fixed a subtle bug in "DrawFilled".  The routine works by copying
	X    a bounding rectangle from the screen into some private memory
	X    (yecch!).  The copy from the screen had PIX_DONTCLIP set.  Now,
	X    the destination was allocated to be the right size, but the source
	X    was not necessarily clipped to the screen!  This caused core dumps
	X    on a 3/110C.
	X----------------------------
	Xrevision 10.3        
	Xdate: 86/11/29 13:49:10;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 1998 -ne "`wc -c < 'tile.c'`"
then
	echo shar: error transmitting "'tile.c'" '(should have been 1998 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'util.c'" '(714 characters)'
if test -f 'util.c'
then
	echo shar: will not over-write existing file "'util.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'util.c'
	X
	XRCS file:        libsun/RCS/util.c,v;   Working file:    util.c
	Xhead:            10.5
	Xlocks:           ;  strict
	Xaccess list:   
	Xsymbolic names:
	Xcomment leader:  " * "
	Xtotal revisions: 2;    selected revisions: 2
	Xdescription:
	XX.V10R4 SUN specific server code
	X----------------------------
	Xrevision 10.5        
	Xdate: 87/05/04 11:07:53;  author: mayer;  state: Exp;  lines added/del: 13/1
	XChanged to handle plane groups and frame buffers (eg. overlay plane)
	Xthat don't have a color map.
	X----------------------------
	Xrevision 10.4        
	Xdate: 86/11/29 13:49:21;  author: jg;  state: Rel;  
	XXerox Webster Research Center SUN 3/110C port
	X=============================================================================
SHAR_EOF
if test 714 -ne "`wc -c < 'util.c'`"
then
	echo shar: error transmitting "'util.c'" '(should have been 714 characters)'
fi
fi # end of overwriting check
echo shar: done with directory "'history'"
cd ..
echo shar: done with directory "'libsun.1'"
cd ..
#	End of shell archive
exit 0

-- 

Rich $alz			"Anger is an energy"
Cronus Project, BBN Labs	rsalz@bbn.com
Moderator, comp.sources.unix	sources@uunet.uu.[] f