From decwrl!labrea!rutgers!tut.cis.ohio-state.edu!cwjcc!hal!ncoast!allbery Sun Oct 30 15:05:36 PST 1988 Article 681 of comp.sources.misc: Path: granite!decwrl!labrea!rutgers!tut.cis.ohio-state.edu!cwjcc!hal!ncoast!allbery From: jetroff@pcrat.UUCP Newsgroups: comp.sources.misc Subject: v05i004: JetRoff Version 1.1, Patch01 Message-ID: <8810220654.AA10545@uunet.UU.NET> Date: 28 Oct 88 02:21:01 GMT Sender: allbery@ncoast.UUCP Reply-To: jetroff@pcrat.UUCP Lines: 154 Approved: allbery@ncoast.UUCP Posting-number: Volume 5, Issue 4 Submitted-by: "A. Nonymous" Archive-name: jetroff/Patch01 JetRoff, Usenet version 1.1, Patch 01. 10/03/88. This patch was contributed by Lou Salkind (Thanks, Lou!). This bug rears its ugly head on 3B2's for sure. Apply this patch this way: cd root_of_JetRoff_source patch -p storage[pk_loc++]); } ! short pk_short() { ! register short a = pk_byte(); return (a*256 + pk_byte()); } long pk_long() { register long a = pk_short(); ! if (a > 32767) a -= 65536; ! return (a*65536 + pk_short()); } /* --- 134,160 ---- int pk_loc; unsigned char pk_byte() { return (pk[npk]->storage[pk_loc++]); } ! ! pk_sbyte() { ! register int a = pk_byte(); ! if (a > 127) a -= 256; ! return(a); ! } ! pk_short() ! { ! register short a = pk_sbyte(); return (a*256 + pk_byte()); } + uint pk_ushort() + { + register ushort a = pk_byte(); + return (a*256 + pk_byte()); + } long pk_long() { register long a = pk_short(); ! return (a*65536 + pk_ushort()); } /* *************** *** 268,275 **** /* dy = 0; not used */ w = pk_byte(); h = pk_byte(); ! hoff = (char) pk_byte(); ! voff = (char) pk_byte(); } if (cc < 0 || cc > 127) error(1, "character code out of range"); --- 279,286 ---- /* dy = 0; not used */ w = pk_byte(); h = pk_byte(); ! hoff = pk_sbyte(); ! voff = pk_sbyte(); } if (cc < 0 || cc > 127) error(1, "character code out of range"); *** font/devjet/makeDESC.c.bak Tue Sep 27 04:50:00 1988 --- font/devjet/makeDESC.c Thu Sep 29 01:20:55 1988 *************** *** 120,135 **** int pk_loc; unsigned char pk_byte() { return (pk[npk]->storage[pk_loc++]); } ! short pk_short() { ! register short a = pk_byte(); return (a*256 + pk_byte()); } long pk_long() { register long a = pk_short(); ! if (a > 32767) a -= 65536; ! return (a*65536 + pk_short()); } /* --- 120,146 ---- int pk_loc; unsigned char pk_byte() { return (pk[npk]->storage[pk_loc++]); } ! ! pk_sbyte() { ! register int a = pk_byte(); ! if (a > 127) a -= 256; ! return(a); ! } ! pk_short() ! { ! register short a = pk_sbyte(); return (a*256 + pk_byte()); } + uint pk_ushort() + { + register ushort a = pk_byte(); + return (a*256 + pk_byte()); + } long pk_long() { register long a = pk_short(); ! return (a*65536 + pk_ushort()); } /* *************** *** 254,261 **** dy = 0; w = pk_byte(); h = pk_byte(); ! hoff = (char) pk_byte(); ! voff = (char) pk_byte(); } if (cc < 0 || cc > 127) error(1, "character code %d out of range", cc); --- 265,272 ---- dy = 0; w = pk_byte(); h = pk_byte(); ! hoff = pk_sbyte(); ! voff = pk_sbyte(); } if (cc < 0 || cc > 127) error(1, "character code %d out of range", cc);