Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!sri-spam!ames!ucbcad!UCBVAX.BERKELEY.EDU!edmoy%opal.Berkeley.EDU From: edmoy%opal.Berkeley.EDU@UCBVAX.BERKELEY.EDU.UUCP Newsgroups: comp.windows.x Subject: V10R4 bug in libqvss Message-ID: <8702061811.AA22513@opal.Berkeley.Edu> Date: Fri, 6-Feb-87 13:11:27 EST Article-I.D.: opal.8702061811.AA22513 Posted: Fri Feb 6 13:11:27 1987 Date-Received: Sun, 8-Feb-87 04:41:01 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 54 In compiling the X server for the qvss, I discovered a problem with ddxfont.c. It has been modified since R3 and now the widths table for non-constant width fonts is incorrect (each position is offset by the amount firstchar). Below is my bug fix. Unfortunately, I haven't test the fix as I can't compile ddxfont.c because the distribution does not have the include file param.h. Does anyone have this and can send it to me? Edward Moy Academic Computing Services University of California Berkeley, CA 94720 edmoy@opal.Berkeley.EDU ucbvax!opal!edmoy --------- cut ------------------------------ cut ------------------------ *** ddxfont.c.old Thu Feb 4 11:56:14 1987 --- ddxfont.c Thu Feb 5 13:49:32 1987 *************** *** 140,146 fpriv->maxwidth = 0; /* convert the leftarray to the width table */ ! for (i = fd->first; i <= fd->last; i++) { width = fpriv->leftarray[i + 1] - fpriv->leftarray[i]; if (width > fpriv->maxwidth) fpriv->maxwidth = width; if (width < 0) { --- 140,146 ----- fpriv->maxwidth = 0; /* convert the leftarray to the width table */ ! for (i = 0, j = fd->last - fd->first + 1; j > 0; i++, j--) { width = fpriv->leftarray[i + 1] - fpriv->leftarray[i]; if (width > fpriv->maxwidth) fpriv->maxwidth = width; if (width < 0) { *************** *** 147,153 width = 0; /* font sanity check */ DeviceError ("Bad font leftarray!\n"); } ! fpriv->widths[i - fd->first] = width; } fd->avg_width = ((fpriv->leftarray[fd->last + 1] - --- 147,153 ----- width = 0; /* font sanity check */ DeviceError ("Bad font leftarray!\n"); } ! fpriv->widths[i] = width; } fd->avg_width = ((fpriv->leftarray[fd->last + 1] -