[net.sources.bugs] xbin on 16bit machines

jimb@amdcad.UUCP (Jim Budler) (03/31/85)

The following context diff will allow xbin to be
used on a machine with 16bit int's.  I sent a copy to
the author, Dave Johnson, and he suggested I post it 
here.

*** xbin.c.old	Sat Mar 30 17:08:07 1985
--- xbin.c	Sun Mar 31 00:39:24 1985
***************
*** 99,104
   * revised ddj 03/17/85 -- extend new features to older formats: -l, stdin
   * revised ddj 03/24/85 -- check for filename truncation, allow multiple files
   * revised ddj 03/26/85 -- fixed USG botches, many problems w/multiple files
   */
  char usage[] = "usage: \"xbin [-v] [-l] [-o] [-n name] [-] filename\"\n";
  

--- 99,105 -----
   * revised ddj 03/17/85 -- extend new features to older formats: -l, stdin
   * revised ddj 03/24/85 -- check for filename truncation, allow multiple files
   * revised ddj 03/26/85 -- fixed USG botches, many problems w/multiple files
+  * revised jcb 03/30/85 -- revised for compatibility with 16-bit int
   */
  char usage[] = "usage: \"xbin [-v] [-l] [-o] [-n name] [-] filename\"\n";
  
***************
*** 255,262
  	printf("author: %.4s, ", mh.m_author);
  	printf("flags: 0x%x\n", mh.m_flags);
  	if (qformat) {
! 		printf("data length: %d, ", mh.m_datalen);
! 		printf("rsrc length: %d\n", mh.m_rsrclen);
  	}
  	if (!pre_beta) {
  		printf("create time: %s", ctime(&mh.m_createtime));

--- 256,263 -----
  	printf("author: %.4s, ", mh.m_author);
  	printf("flags: 0x%x\n", mh.m_flags);
  	if (qformat) {
! 		printf("data length: %ld, ", mh.m_datalen);
! 		printf("rsrc length: %ld\n", mh.m_rsrclen);
  	}
  	if (!pre_beta) {
  		printf("create time: %s", ctime(&mh.m_createtime));
***************
*** 412,418
  
  do_q_fork(fname, len)
  char *fname;
! register int len;
  {
  	FILE *outf;
  	register int c, i;

--- 413,419 -----
  
  do_q_fork(fname, len)
  char *fname;
! register long len;
  {
  	FILE *outf;
  	register int c, i;
***************
*** 490,497
  get4q()
  {
  	register int c, i;
! 	long value = 0;
! 
  	for (i = 0; i < 4; i++) {
  		c = getq();
  		value <<= 8;

--- 491,497 -----
  get4q()
  {
  	register int c, i;
! 	long value = 0L;
  	for (i = 0; i < 4; i++) {
  		c = getq();
  		value <<= 8;
***************
*** 626,632
  register unsigned int c;
  {
  	register int i;
! 	register unsigned int temp = crc;
  
  	for (i=0; i<8; i++) {
  		c <<= 1;

--- 626,632 -----
  register unsigned int c;
  {
  	register int i;
! 	register long temp = crc;
  
  	for (i=0; i<8; i++) {
  		c <<= 1;
***************
*** 693,698
  	int forks = 0, found_crc = 0;
  	int calc_crc, file_crc;
  	int n;
  
  	crc = 0;	/* calculate a crc for both forks */
  

--- 693,699 -----
  	int forks = 0, found_crc = 0;
  	int calc_crc, file_crc;
  	int n;
+ 	long make_file();
  
  	crc = 0;	/* calculate a crc for both forks */
  
***************
*** 737,743
  		exit(3);
  	}
  }
! 
  make_file(fname, compressed)
  char *fname;
  int compressed;

--- 738,744 -----
  		exit(3);
  	}
  }
! long
  make_file(fname, compressed)
  char *fname;
  int compressed;
***************
*** 745,751
  	register int n;
  	char ibuf[BUFSIZ];
  	FILE *outf;
! 	int nbytes = 0;
  
  	outf = fopen(fname, "w");
  	if (outf == NULL) {

--- 746,752 -----
  	register int n;
  	char ibuf[BUFSIZ];
  	FILE *outf;
! 	long nbytes = 0L;
  
  	outf = fopen(fname, "w");
  	if (outf == NULL) {
-- 
 Jim Budler
 Advanced Micro Devices, Inc.
 (408) 749-5806
 UUCPnet: {ucbvax,decwrl,ihnp4,allegra,intelca}!amdcad!jimb
 Compuserve:	72415,1200