Xref: utzoo comp.sys.ibm.pc.rt:1136 comp.windows.x:14693 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!bloom-beacon!athena.mit.edu!jfc From: jfc@athena.mit.edu (John F Carr) Newsgroups: comp.sys.ibm.pc.rt,comp.windows.x Subject: Re: X11 Release 3 Announcement, IBM/4.3 fixes Keywords: V1.17 X11r3 contributed software Message-ID: <15481@bloom-beacon.MIT.EDU> Date: 28 Oct 89 22:04:19 GMT References: <2708@ibmpa.UUCP> <28586@shemp.CS.UCLA.EDU> Sender: daemon@bloom-beacon.MIT.EDU Reply-To: jfc@athena.mit.edu (John F Carr) Followup-To: comp.sys.ibm.pc.rt Organization: Massachusetts Institute of Technology Lines: 172 >Does anybody have additional patches for the RT for X11R3 ? These are the patches we have since the May 89 archive on expo. The usual disclaimers apply (use at your own risk, etc.), but this is the code we build for the RTs at Athena. Patches are delimited by "++++++++++++++++"; the name of the file to be patched is in parentheses on the line after this (filename relative to $(TOP)/server/ddx/ibm). Bugs fixed: Poly point requests on the megapel no longer crash the server. Cursor code on multiple screens is more reliable (the server won't attempt to draw the cursor if it is off the screen). Drawing of partially obscured text is now done correctly. A bug in the HC compiler caused dashed lines off the edge of the screen to crash the server. ++++++++++++++++ (mpel/mpelPolyPt.c) *** /tmp/,RCSt1015368 Sat Oct 28 17:36:32 1989 --- /tmp/,RCSt2015368 Sat Oct 28 17:36:35 1989 *************** *** 89,95 **** &box ) ; ppt++ ) /* Do Nothing */ ; ! for ( mpt = ppt ; npt-- ; ppt++ ) if ( (* PointInRegion)( pRegion, ppt->x, ppt->y, &box ) ) *mpt++ = *ppt ; --- 89,95 ---- &box ) ; ppt++ ) /* Do Nothing */ ; ! for ( mpt = ppt ; npt-- > 0; ppt++ ) if ( (* PointInRegion)( pRegion, ppt->x, ppt->y, &box ) ) *mpt++ = *ppt ; ++++++++++++++++ (mpel/mpelIO.c) *** /tmp/,RCSt1015413 Sat Oct 28 17:37:58 1989 --- /tmp/,RCSt2015413 Sat Oct 28 17:38:02 1989 *************** *** 76,81 **** --- 76,82 ---- ppcCommonScreenInit( pScreen, index, &mpelScreenRec ) ; mpelCursorInit( index ) ; + mpelInitPlaneMask() ; return 1 ; } ++++++++++++++++ (mpel/mpelCursor.c) *** /tmp/,RCSt1015351 Sat Oct 28 17:36:07 1989 --- /tmp/,RCSt2015351 Sat Oct 28 17:36:11 1989 *************** *** 97,102 **** --- 97,104 ---- if ( ibmScreenState( screen_index ) != SCREEN_ACTIVE ) return ; curCursor = ibmCurrentCursor( screen_index ) ; + if (x >= MPEL_WIDTH || (x + curCursor->width) < 0) + return; /* off the screen, don't bother */ fSrc = (unsigned short int *) forePtrn ; bSrc = (unsigned short int *) backPtrn ; ++++++++++++++++ (apa16/apa16Line.c) *** /tmp/,RCSt1015478 Sat Oct 28 17:45:09 1989 --- /tmp/,RCSt2015478 Sat Oct 28 17:45:11 1989 *************** *** 630,636 **** --- 630,641 ---- { if (pdash->newLine) { + #if HCVERSION > 1 + pt1Orig = *pptInit; + pt1 = *pptInit++; + #else pt1Orig = pt1 = *pptInit++; + #endif pt2 = *pptInit; adx = pt2.x - pt1.x; ady = pt2.y - pt1.y; ++++++++++++++++ (apa16/apa16Text.c) *** /tmp/,RCSt1015504 Sat Oct 28 17:47:24 1989 --- /tmp/,RCSt2015504 Sat Oct 28 17:47:26 1989 *************** *** 423,429 **** --- 423,431 ---- charsOut++; tmpCinfo++; } + break; case rgnOUT: + x += info.overallWidth; break; case rgnPART: QUEUE_RESET(); ++++++++++++++++ (apa16/apa16Curs.c) *** /tmp/,RCSt1015539 Sat Oct 28 17:54:31 1989 --- /tmp/,RCSt2015539 Sat Oct 28 17:54:33 1989 *************** *** 221,230 **** --- 221,232 ---- if ( ibmScreenState(ibmCurrentScreen)!= SCREEN_ACTIVE) { return; } + APA16_GET_CMD(ROP_RECT_COPY,GXcopy,cmd); if (xAPA16_WIDTH-CURSOR_WIDTH+ibmCursorHotX(ibmCurrentScreen)) { offset= x-APA16_WIDTH-ibmCursorHotX(ibmCurrentScreen)+CURSOR_WIDTH; apa16ClearCursor(ACTIVE_CURSOR); + if (offset < CURSOR_WIDTH) { QUEUE_RESET(); COPY_RECT(cmd, AND_EDGE(ACTIVE_CURSOR), CURSOR_AREA_BOTTOM, AND_EDGE(currentCursor)-offset, CURSOR_AREA_BOTTOM, *************** *** 246,251 **** --- 250,256 ---- COPY_RECT(cmd, XOR_EDGE(ACTIVE_CURSOR), CURSOR_AREA_BOTTOM, XOR_EDGE(currentCursor)-offset, CURSOR_AREA_BOTTOM, CURSOR_WIDTH-offset, CURSOR_HEIGHT); + } CURSOR_X= APA16_WIDTH-48; CURSOR_Y= y-ibmCursorHotY(ibmCurrentScreen); obscured= TRUE; ++++++++++++++++ --John Carr (jfc@athena.mit.edu) Project Athena Systems Development