Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!ukc!harrier.ukc.ac.uk!iau From: iau@ukc.ac.uk (I.A.Utting) Newsgroups: comp.text Subject: Re: dvips/MusicTeX Message-ID: <3598@harrier.ukc.ac.uk> Date: 10 Jan 90 10:42:25 GMT References: <1990Jan9.232351.6570@Neon.Stanford.EDU> Reply-To: iau@ukc.ac.uk (I.A.Utting) Organization: Computing Lab, University of Kent at Canterbury, UK. Lines: 57 We had a similar sounding problem here. Note heads were not printed via dvips running on Vaxen and MIPS machines, but were OK on Sun3s and Sun386i, and by other back-ends. There turned out to be an endianism assumption in repack.c (all versions including 4.21). The diffs below costs a little speed, but are portable and seems to work. Your line-numbers may differ. Ian Utting. ---- *** repack.c Wed Dec 20 18:34:18 1989 --- ../dvips4.0/repack.c Wed Dec 20 16:54:46 1989 *************** *** 400,417 **** } putlong(a, i) register char *a ; ! register long i ; { ! *a++ = (i >> 24); ! *a++ = (i >> 16); ! *a++ = (i >> 8); ! *a++ = i; } long getlong(a) register char *a ; { ! register long t ; ! t = a[0] << 24 | a[1] << 16 | a[2] << 8 | a[3]; return(t) ; } --- 400,424 ---- } putlong(a, i) register char *a ; ! long i ; { ! register char *b = (char *)&i ; ! ! a[0] = b[0] ; ! a[1] = b[1] ; ! a[2] = b[2] ; ! a[3] = b[3] ; } long getlong(a) register char *a ; { ! long t ; ! register char *b ; ! b = (char *)&t ; ! b[0] = a[0] ; ! b[1] = a[1] ; ! b[2] = a[2] ; ! b[3] = a[3] ; return(t) ; }