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