[comp.unix.xenix] fix for xenix large model compress

stu@jpusa1.UUCP (Stu Heiss) (02/22/88)

Another bug in the xenix large model version of compress...
This shows up on uncompressing so your compressed files are
probably ok (unless there are other bugs lurking).  Symptoms
are mangled files after zcat'ing or uncompress'ing.  This
patch assumes you have applied the sco-compress diffs and
really only changes the macro de_stack.  I also have the recent
bugfix installed to not unlink when zcat'ing so the patch will
probably fail if you don't.  The relevent line is #define de_stack
if you have trouble with patch.

RCS file: RCS/compress.c,v
retrieving revision 4.3
retrieving revision 4.2
diff -c -r4.3 -r4.2
*** /tmp/,RCSt1a02922	Wed Feb 10 15:29:42 1988
--- /tmp/,RCSt2a02922	Wed Feb 10 15:29:46 1988
***************
*** 127,133
   *		James A. Woods		(decvax!ihnp4!ames!jaw)
   *		Joe Orost		(decvax!vax135!petsd!joe)
   *
!  * $Header: compress.c,v 4.3 88/02/10 15:28:03 stu Exp $
   * $Log:	compress.c,v $
   * Revision 4.3  88/02/10  15:28:03  stu
   * xenix decompress bug fix

--- 127,133 -----
   *		James A. Woods		(decvax!ihnp4!ames!jaw)
   *		Joe Orost		(decvax!vax135!petsd!joe)
   *
!  * $Header: compress.c,v 4.2 88/02/09 09:27:09 stu Exp $
   * $Log:	compress.c,v $
   * Revision 4.2  88/02/09  09:27:09  stu
   * fix to not do error unlink if zcat
***************
*** 129,137
   *
   * $Header: compress.c,v 4.3 88/02/10 15:28:03 stu Exp $
   * $Log:	compress.c,v $
-  * Revision 4.3  88/02/10  15:28:03  stu
-  * xenix decompress bug fix
-  * 
   * Revision 4.2  88/02/09  09:27:09  stu
   * fix to not do error unlink if zcat
   * 

--- 129,134 -----
   *
   * $Header: compress.c,v 4.2 88/02/09 09:27:09 stu Exp $
   * $Log:	compress.c,v $
   * Revision 4.2  88/02/09  09:27:09  stu
   * fix to not do error unlink if zcat
   * 
***************
*** 251,257
   * Add variable bit length output.
   *
   */
! static char rcs_ident[] = "$Header: compress.c,v 4.3 88/02/10 15:28:03 stu Exp $";
  
  #include <stdio.h>
  #include <ctype.h>

--- 248,254 -----
   * Add variable bit length output.
   *
   */
! static char rcs_ident[] = "$Header: compress.c,v 4.2 88/02/09 09:27:09 stu Exp $";
  
  #include <stdio.h>
  #include <ctype.h>
***************
*** 289,295
  
  #define tab_prefixof(i)	codetabof(i)
  # define tab_suffixof(i)	((char_type huge *)(htab))[i]
! # define de_stack		((char_type huge *)&tab_suffixof((code_int)1<<BITS))
  
  code_int free_ent = 0;			/* first unused entry */
  int exit_stat = 0;

--- 286,292 -----
  
  #define tab_prefixof(i)	codetabof(i)
  # define tab_suffixof(i)	((char_type huge *)(htab))[i]
! # define de_stack		((char_type huge *)&tab_suffixof(1<<BITS))
  
  code_int free_ent = 0;			/* first unused entry */
  int exit_stat = 0;
Stu Heiss {spl1,gargoyle,ihnp4}!jpusa1!stu

jfh@killer.UUCP (The Beach Bum) (02/23/88)

[ I swear this isn't another of my famous claims to have compress working.
  This time I really tested it. - jfh ]

I have managed to (finally) get compress to work on all of the brain-dead
Intel chips I could find.  It has been tested (using a 80386 machine)
for 8086, 80286 and 80386 16 bit compression.  All three worked just fine,
didn't require any HUGE or FAR pointers or other features not found in
less expensive compilers.

Unfortunately, I haven't brought compress up to 4.3, the version I have
is 4.0.  It is available from my '386 system.

How to get it:
	First, copy the file rpp386!/usr/spool/uucppublic/archive

Give that a good looking over and figure out what you need, the files
for compress are in rpp386!/usr/spool/archive/compress/compress-[12].

	Second, copy the files you will need.
	Third, edit the makefile to reflect YOUR cpu and do a make.
	Fourth, create a LARGE file, for example, cat both sharchives
		into a single file, then compress and uncompress.

If all has gone well, the output should be the same as the input ;-).

The L.sys lines you should use to get to rpp386 are (and they have
changed since my last posting - the old one still works however)

rpp386 Any ACU 2400 12142506272 in:--in:--in: anonuucp
rpp386 Any ACU 1200 12142506272 "" \r in:-\r-in:-\r-in: anonuucp

The second line is curtesy of someone who swears it's the only way to
reach the machine at 1200 baud.  Note that you may not get a connection
at 2400 baud if someone has called in recently at 1200 baud.  I'm
working on a fix.  Also, the source files for compress have had the
functions re-ordered.  That was part of the fix.  I'm going to put them
back in their original order later.

- John.
-- 
John F. Haugh II                  SNAIL:  HECI Exploration Co. Inc.
UUCP: ...!ihnp4!killer!jfh                11910 Greenville Ave, Suite 600
"You can't threaten us, we're             Dallas, TX. 75243
  the Oil Company!"                       (214) 231-0993 Ext 260