[comp.os.minix] V1.3 posting #9 - command diffs, part 2 of 2

ast@cs.vu.nl (Andy Tanenbaum) (05/30/88)

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin:/usr/ucb
echo Extracting 'od.c.diff'
sed 's/^X//' > 'od.c.diff' << '+ END-OF-FILE ''od.c.diff'
X3c3
X< #include "stdio.h"
X---
X> #include <stdio.h>
X66d65
X< 		fflush(stdout);
X83d81
X<   fflush(stdout);
X111d108
X< 		fflush(stdout);
X282c279
X< 	for (i = 0; i < 7; i++) printf("%c",  ((l>>(18-3*i)) & 07) + '0');
X---
X> 	for (i = 0; i < 7; i++) printf("%c", (int)((l>>(18-3*i)) & 07) + '0');
X284c281
X< 	for (i = 0; i < 7; i++) printf("%c", hexit( ((l>>(24-4*i)) & 0x0F)) );
X---
X> 	for (i = 0; i < 7; i++) printf("%c", hexit( (int)((l>>(24-4*i)) & 0x0F)) );
+ END-OF-FILE od.c.diff
chmod 'u=rw,g=r,o=r' 'od.c.diff'
set `wc -c 'od.c.diff'`
count=$1
case $count in
451)	:;;
*)	echo 'Bad character count in ''od.c.diff' >&2
		echo 'Count should be 451' >&2
esac
echo Extracting 'passwd.c.diff'
sed 's/^X//' > 'passwd.c.diff' << '+ END-OF-FILE ''passwd.c.diff'
X3c3
X< #include "signal.h"
X---
X> #include <signal.h>
X20c20
X< 	char   *getpass (), *crypt ();
X---
X> 	char   *getpass (), *crypt (), *itoa ();
X102,103c102,103
X< 	fclose (fpin);
X< 	fclose (fpout);
X---
X> 	close (fpin);
X> 	close (fpout);
+ END-OF-FILE passwd.c.diff
chmod 'u=rw,g=r,o=r' 'passwd.c.diff'
set `wc -c 'passwd.c.diff'`
count=$1
case $count in
232)	:;;
*)	echo 'Bad character count in ''passwd.c.diff' >&2
		echo 'Count should be 232' >&2
esac
echo Extracting 'pr.c.diff'
sed 's/^X//' > 'pr.c.diff' << '+ END-OF-FILE ''pr.c.diff'
X0a1,2
X> /* pr - print files			Author: Michiel Huisjes */
X> 
X4a7,18
X>  * Modified: Jacob P. Bunschoten.	(30 nov 87)
X>  *	When "columns" is not given and numbering is on:
X>  *		line numbers are correlated with input lines.
X>  *	(try pr [-1] -n file )
X>  *	tabs are accounted for.
X>  *	When numbering is turned on, width know this.
X>  *	automatic line-folding. -f to get the original program.
X>  *	backspaces are accounted for. -b to disable this. 
X>  *	multi-column mode changed.
X>  *	header can be given and used.
X>  *	format changed may occur between printing of several files:
X>  *		pr -l30 file1 -w75 file2 
X10c24
X<  *        -columns : Print files in n-colums.
X---
X>  *        -columns : Print files in n-columns.
X13c27,28
X<  *        -w with  : Take the width of the page to be n instead of default 72
X---
X>  *        -w width  : Take the width of the page to be n instead of default 72
X>  *	  -f : do not fold lines.
X16c31
X< #include "stdio.h"
X---
X> #include <stdio.h>
X18,19d32
X< char *colbuf;
X< 
X21a35,36
X> #define NUM_WIDTH	8
X> #define TAB_WIDTH	8	/* fixed tab_width */
X22a38,40
X> 	/* Used to compute next (fixed) tabstop */
X> #define TO_TAB(x)	(( (x) + TAB_WIDTH ) & ~07 )
X> 
X28a47,53
X> 	/* EAT:	eat rest of input line */
X> #define EAT(fp)		while((c=getc(fp))!='\n' && c!=EOF)
X> 	/* L_BUF: calculate address of pointer to char (string) 
X> 	   used in format 
X> 	*/
X> #define L_BUF(i,j)	* (char **) (line_buf + \
X> 				    (i + j*length)*sizeof(char *))
X32a58,61
X> BOOL ext_header_set = FALSE;	/* external header given */
X> BOOL back_space = TRUE;		/* back space correction in line width */
X> BOOL dont_fold = FALSE;		/* original. If the line does not fit 
X> 				   eat it. */
X37a67
X> char *line_buf;			/* used in format for multi-column output */
X40a71
X> static char *myalloc();
X48c79
X<   int index = 1;
X---
X>   int index = 1;	/* index is one ahead of argc */
X50c81,85
X<   while (argc > index) {
X---
X>   setbuf(stdout, output);
X>   do { 
X> 	if (argc == index ) 	/* No arguments (left) */
X> 		goto pr_files;
X> 
X55,56c90,91
X<   	}
X<   	if (*ptr != '-') {
X---
X>   	} 
X>   	if (*ptr != '-') {	/* no flags */
X58c93
X<   		break;
X---
X> 		goto pr_files;
X62c97,99
X<   		continue;
X---
X> 		if (columns <= 0)
X> 			columns = 1;
X>   		continue;	/* Fetch next flag */
X73a111
X> 				ext_header_set = TRUE;
X76c114,115
X<   				width = atoi(ptr);
X---
X>   				if ((width = atoi(ptr)) <= 0)
X> 					width = DEF_WIDTH;
X80c119,120
X<   				length = atoi(ptr);
X---
X>   				if ((length = atoi(ptr)) <= 0)
X> 					length = DEF_LENGTH;
X82a123,128
X> 			case 'b':	/* back_space correction off */
X> 				back_space = FALSE;
X> 				break;
X> 			case 'f':	/* do not fold lines */
X> 				dont_fold = TRUE;
X> 				break;
X87c133
X<   }
X---
X> 	continue;	/* Scan for next flags */
X89,90c135
X<   if (!no_header)
X<   	length -= 10;
X---
X> 	/* ==============  flags are read. Print the file(s) ========= */
X92,93c137
X<   if (length <= 0)
X<   	length = DEF_LENGTH;
X---
X> pr_files:
X95,106c139,140
X<   if (columns) {
X<   	cwidth = width / columns + 1;
X<   	if (columns > width) {
X<   		fprintf(stderr, "Too many columns for pagewidth.\n");
X<   		exit(1);
X<   	}
X<   	if ((colbuf = (char *) sbrk(cwidth * columns * length)) < 0) {
X<   		fprintf(stderr, "No memory available for a page of %d x %d. Use chmem to allocate more.\n",
X< 			length, cwidth);
X<   		exit(1);
X<   	}
X<   }
X---
X> 	if (!no_header)
X> 		length -= 10;
X108c142,146
X<   setbuf(stdout, output);
X---
X> 	if (length <= 0 ) {
X> 		fprintf(stderr,"Minimal length shuold be %d\n",no_header ?
X> 							1: 11);
X> 		exit(1);
X> 	}
X110,113c148,156
X<   if (argc == index) {
X<   	header = "";
X<   	print(stdin);
X<   }
X---
X> 	if (columns) {
X>   		cwidth = width / columns + 1;
X>   		if (columns > width) {
X>   			fprintf(stderr, "Too many columns for pagewidth.\n");
X>   			exit(1);
X>   		}
X> 		/* allocate piece of mem to hold some pointers */
X> 	  	line_buf = myalloc( length * columns * sizeof(char *) ); 
X> 	}
X115,127c158,160
X<   while (index != argc) {
X<   	if ((file = fopen(argv[index], "r")) == (FILE *) 0) {
X<   		fprintf(stderr, "Cannot open %s\n", argv[index++]);
X<   		continue;
X<   	}
X<   	header = argv[index];
X<   	if (columns)
X<   		format(file);
X<   	else
X<   		print(file);
X<   	fclose(file);
X<   	index++;
X<   }
X---
X> 	while (index <= argc ) {  /* print all files, including stdin */
X> 		if (index < argc && (*argv[index] == '-' || *argv[index] == '+' ))
X> 			break;	/* Format change */
X129,132c162,180
X<   if (columns) {
X<   	if (brk(colbuf) < 0) {
X<   		fprintf(stderr, "Can't reset memory!\n");
X<   		exit(1);
X---
X> 		if ( argc == index ) {	/* no file specified, so stdin */
X> 			if (!ext_header_set )
X> 				header = "";
X> 			file = stdin;
X> 		} else {
X> 			if ((file = fopen(argv[index], "r")) == (FILE *) 0) {
X> 	  			fprintf(stderr, "Cannot open %s\n", argv[index++]);
X> 	  			continue;
X> 	  		}
X> 			if (!ext_header_set)
X> 				header = argv[index];
X> 		}
X> 	  	if (columns)
X> 	  		format(file);
X> 	  	else
X>   			print(file);
X>   		fclose(file);
X> 		if (++index >= argc )
X> 			break;	/* all files (including stdin) done */
X134c182,188
X<   }
X---
X> 	if (index >= argc)
X> 		break;
X> 	/* when control comes here. format changes are to be done.
X> 	 * reinitialize some variables
X> 	 */
X> 	if (!no_header)
X> 		length += 10;
X135a190,195
X> 	start_page = 1;
X> 	ext_header_set = FALSE;
X> 	if (columns)
X> 		free(line_buf);
X>   } while (index <= argc);	/* "pr -l60" should work too */
X> 
X140,141c200,201
X< char skip_page(lines, filep)
X< int lines;
X---
X> char skip_page(lines, width, filep)
X> int lines, width;
X144a205,206
X>   int char_cnt;
X>   int w;
X147c209,230
X<   	while ((c = getc(filep)) != '\n' && c != EOF);
X---
X> 	w = width;
X> 	if (number)	/* first lines are shorter */
X> 		if ( !columns ||	/* called from print(file)  */
X> 		     !(lines%columns))	/* called from format(file) */
X> 			w -= NUM_WIDTH;
X> 
X> 	char_cnt = 0;
X>   	while ((c = getc(filep)) != '\n' && c != EOF && char_cnt < w ) {
X> 		/* 
X> 		 * Calculate if this line is longer 
X> 		 * than "width (w)" characters
X> 		 */
X> 		if (c == '\b' && back_space) {
X> 			if (--char_cnt < 0)
X> 				char_cnt = 0;
X> 		} else if (c == '\t')
X> 			char_cnt = TO_TAB(char_cnt);
X> 		else
X> 			char_cnt++;
X> 	}
X> 	if (dont_fold && c!='\n' &&  c!=EOF)
X> 		EAT(filep);
X149c232
X<   } while (lines && c != EOF);
X---
X>   } while (lines > 0 && c != EOF);
X151c234
X<   return c;
X---
X>   return c;	/* last char read */
X156a240
X>   char  buf[512];
X160a245,246
X>   short wdth;
X>   short line, col;
X163c249
X< /* Check printing of page */
X---
X> 	/* Check printing of page */
X167c253
X<   		c = skip_page(columns * length, filep);
X---
X>   		c = (char) skip_page(columns * length, cwidth, filep);
X170d255
X< 
X175c260,267
X<   	index = 0;
X---
X> 	for(line=0; line < length; line++)
X> 		for(col=0; col < columns; col++) {
X> 			if ( L_BUF(line, col) != NIL_PTR ) 
X> 				free( L_BUF(line, col) );
X> 			L_BUF(line, col) = (char *) NIL_PTR; 
X> 		}
X> 	line = 0;
X> 	col = 0;
X177,178c269,280
X<   		for (i = 0; i < cwidth - 1; i++) {
X<   			if ((c = getc(filep)) == '\n' || c == EOF)
X---
X> 		index = 0;
X> 		wdth = cwidth-1;
X> 		if ( number && ! col )   /* need room for numbers */
X> 			wdth -= NUM_WIDTH;
X> 
X> 		/* intermidiate colums are shortened by 1 char */
X> 		/* last column not */
X> 		if (col+1 == columns)
X> 			wdth++;
X>   		for (i = 0 ; i < wdth - 1; i++) {
X> 			c = getc(filep);
X>   			if ( c == '\n' || c == EOF)
X180c282,298
X<   			colbuf[index++] = c;
X---
X> 
X> 			if (c == '\b' && back_space) {
X> 				buf[index++] = '\b';
X> 				if (--i < 0) {	/* just in case ... */
X> 					i=0;
X> 					index = 0;
X> 				}
X> 			} else if (c == '\t') {
X> 				int cnt, max;
X> 
X> 				max = TO_TAB(i);
X> 				for (cnt = i; cnt < max; cnt++) 
X> 						buf[index++] = ' ';
X> 				i = max -1;
X> 			}
X> 			else
X> 				buf[index++] = (char) c;
X182c300,303
X< 							/* First char is EOF */
X---
X> 		buf[index++] = '\0';
X> 		/* collected enough chars (or eoln, or EOF) */
X> 
X> 			/* First char is EOF */
X185,196c306,322
X< 		while (c != '\n' && c != EOF)
X< 			c = getc(filep);
X<   		colbuf[index++] = '\0';
X<   		while (++i < cwidth)
X<   			index++;
X<   		lines--;
X<   		if (c == EOF) {
X<   			maxcol = columns - lines / length;
X<   			while (lines--)
X<   				for (i = 0; i < cwidth; i++)
X<   					colbuf[index++] = '\0';
X<   		}
X---
X> 
X> 		/* alloc mem to hold this (sub) string */
X> 		L_BUF(line,col) = myalloc(index * sizeof(char));
X> 		strcpy( L_BUF(line, col), buf );
X> 
X> 		line++;
X> 		line %= length;
X> 		if (line == 0) {
X> 			col++;
X> 			col %= columns;
X> 		}
X> 		if (dont_fold && c != '\n' && c != EOF)
X> 			EAT(filep);
X> 		lines--;	/* line ready for output */
X> 		if (c == EOF) {
X> 			maxcol = columns - lines / length;
X> 		}
X198c324
X<   	print_page(colbuf, page_number, maxcol);
X---
X>   	print_page(page_number, maxcol);
X202,203c328
X< print_page(buf, pagenr, maxcol)
X< char buf[];
X---
X> print_page(pagenr, maxcol)
X207a333,334
X>   short width;
X>   char  *p;
X211,213c338,339
X<   for (i = 0; i < length; i++) {
X<   	if (number)
X<   		printf("%d\t", linenr++);
X---
X> 
X>   for (i = 0; i < length; i++)  {
X215,219c341,351
X< 		start = (i + j * length) * cwidth;
X< 		for (pad = 0; pad < cwidth - 1 && buf[start + pad]; pad++)
X< 			putchar (buf[start + pad]);
X< 		if (j < maxcol - 1)		/* Do not pad last column */
X< 			while (pad++ < cwidth - 1)
X---
X> 		width = cwidth;
X>   		if (number && j == 0) {	/* first columns */
X>   			printf("%*.*d ", NUM_WIDTH-1, NUM_WIDTH-1, linenr++);
X> 			width -= NUM_WIDTH;
X> 		}
X> 		pad = 0;
X> 		if (p = (char *) L_BUF(i,j) )
X> 			for (; pad < width - 1 && *p; pad++)
X> 				putchar ( *p++ );	
X> 		if (j < maxcol - 1)
X> 			while (pad++ < width - 1)
X234a367,369
X>   short cnt, i, max;
X>   short w = width;
X>   BOOL pr_number = TRUE; /* only real lines are numbered, not folded parts */
X235a371,373
X>   if (number)
X> 	width -= NUM_WIDTH;
X> 
X237c375
X< /* Check printing of page */
X---
X> 	/* Check printing of page */
X238a377
X> 
X240c379,382
X<   		c = skip_page(length, filep);
X---
X> 		pr_number = FALSE;
X>   		c = skip_page(length, w, filep);
X> 		if (c == '\n')
X> 			pr_number = TRUE;
X243c385
X< 
X---
X> 	
X246a389,392
X> 	linenr = (page_number -1 ) * length + 1;
X>   	if (!no_header)
X>   		out_header(page_number);
X> 
X250,253c396,397
X< /* Print the page */
X<   	lines = length;
X<   	if (!no_header)
X<   		out_header(page_number);
X---
X> 	/* Print the page */
X> 	lines = length;
X255,258c399,419
X<   		if (number)
X<   			printf("%d\t", linenr++);
X< 		while (c != '\n' && c != EOF) {
X<   			putchar(c);
X---
X>   		if (number )
X> 			if (pr_number)
X> 		  		printf("%*.*d ", NUM_WIDTH-1, 
X> 						 NUM_WIDTH-1, linenr++);
X> 			else
X> 				printf("%*c ", NUM_WIDTH-1, ' ');
X> 		pr_number = FALSE;
X> 		cnt = 0;
X> 		while (c != '\n' && c != EOF && cnt < width) {
X> 			if (c=='\t') {
X> 				int i, max;
X> 				max = TO_TAB(cnt);
X> 				for (i = cnt; i < max; i++ )
X> 					putchar(' ');
X> 				cnt = max -1;
X> 			}
X> 			else if (c=='\b' && back_space) {
X> 				putchar('\b');
X> 				cnt--;
X> 			} else
X> 				putchar(c);
X259a421
X> 			cnt++;
X261a424,425
X> 		if (dont_fold && c!= '\n' && c!= EOF)
X> 			EAT(filep);
X263c427,430
X< 		c = getc(filep);
X---
X> 		if ( c == '\n') {
X> 			c = getc(filep);
X> 			pr_number = TRUE;
X> 		}
X269d435
X< /* End of file */
X272c438
X< /* Fill last page */
X---
X>   /* Fill last page */
X278a445,457
X> char *myalloc(size)
X> int size;	/* How many bytes */
X> {
X> 	char *ptr, *malloc();
X> 
X> 	ptr = malloc((unsigned)size);
X> 	if (ptr == (char *) 0) {
X> 		fprintf(stderr,"malloc returned %d\n",ptr);
X> 		exit(1);
X> 	}
X> 	return (char *) ptr;
X> }
X> 
X338c517
X<   printf("\n\n%s %d %0d:%0d %d", moname[month], day + 1, hour + 1, minute, year);
X---
X>   printf("\n\n%s %d %0d:%0d %d", moname[month], day + 1, hour + 0, minute, year);
+ END-OF-FILE pr.c.diff
chmod 'u=rw,g=r,o=r' 'pr.c.diff'
set `wc -c 'pr.c.diff'`
count=$1
case $count in
11668)	:;;
*)	echo 'Bad character count in ''pr.c.diff' >&2
		echo 'Count should be 11668' >&2
esac
echo Extracting 'pwd.c.diff'
sed 's/^X//' > 'pwd.c.diff' << '+ END-OF-FILE ''pwd.c.diff'
X3c3,5
X< #include "stat.h"
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <sys/dir.h>
X5,8d6
X< struct direct {
X<     unsigned short d_ino;
X<     char d_name[14];
X< }
X12c10
X< 	register *n;
X---
X> 	register char *n;
+ END-OF-FILE pwd.c.diff
chmod 'u=rw,g=r,o=r' 'pwd.c.diff'
set `wc -c 'pwd.c.diff'`
count=$1
case $count in
228)	:;;
*)	echo 'Bad character count in ''pwd.c.diff' >&2
		echo 'Count should be 228' >&2
esac
echo Extracting 'readfs.c.diff'
sed 's/^X//' > 'readfs.c.diff' << '+ END-OF-FILE ''readfs.c.diff'
X30,35c30,35
X< #include "fs/const.h"
X< #include "h/type.h"
X< #include "h/const.h"
X< #include "fs/type.h"
X< #include "fs/buf.h"
X< #include "fs/super.h"
X---
X> #include <fs/const.h>
X> #include <minix/type.h>
X> #include <minix/const.h>
X> #include <fs/type.h>
X> #include <fs/buf.h>
X> #include <fs/super.h>
+ END-OF-FILE readfs.c.diff
chmod 'u=rw,g=r,o=r' 'readfs.c.diff'
set `wc -c 'readfs.c.diff'`
count=$1
case $count in
300)	:;;
*)	echo 'Bad character count in ''readfs.c.diff' >&2
		echo 'Count should be 300' >&2
esac
echo Extracting 'rev.c.diff'
sed 's/^X//' > 'rev.c.diff' << '+ END-OF-FILE ''rev.c.diff'
X3c3
X< #include "blocksize.h"
X---
X> #include <minix/blocksize.h>
+ END-OF-FILE rev.c.diff
chmod 'u=rw,g=r,o=r' 'rev.c.diff'
set `wc -c 'rev.c.diff'`
count=$1
case $count in
64)	:;;
*)	echo 'Bad character count in ''rev.c.diff' >&2
		echo 'Count should be 64' >&2
esac
echo Extracting 'rm.c.diff'
sed 's/^X//' > 'rm.c.diff' << '+ END-OF-FILE ''rm.c.diff'
X3c3,5
X< #include "stat.h"
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <sys/dir.h>
X5,9d6
X< struct direct {
X<     unsigned short  d_ino;
X<     char    d_name[14];
X< };
X< 
X91c88
X< 		    strcat (rname, d.d_name);
X---
X> 		    strncat (rname, d.d_name, DIRSIZ);
+ END-OF-FILE rm.c.diff
chmod 'u=rw,g=r,o=r' 'rm.c.diff'
set `wc -c 'rm.c.diff'`
count=$1
case $count in
276)	:;;
*)	echo 'Bad character count in ''rm.c.diff' >&2
		echo 'Count should be 276' >&2
esac
echo Extracting 'rmdir.c.diff'
sed 's/^X//' > 'rmdir.c.diff' << '+ END-OF-FILE ''rmdir.c.diff'
X5,6c5,8
X< #include "../include/signal.h"
X< #include "../include/stat.h"
X---
X> #include <signal.h>
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <sys/dir.h>
X8,11d9
X< struct direct {
X<     unsigned short  d_ino;
X<     char    d_name[14];
X< };
+ END-OF-FILE rmdir.c.diff
chmod 'u=rw,g=r,o=r' 'rmdir.c.diff'
set `wc -c 'rmdir.c.diff'`
count=$1
case $count in
255)	:;;
*)	echo 'Bad character count in ''rmdir.c.diff' >&2
		echo 'Count should be 255' >&2
esac
echo Extracting 'roff.c.diff'
sed 's/^X//' > 'roff.c.diff' << '+ END-OF-FILE ''roff.c.diff'
X18,21c18,22
X< #include "sgtty.h"
X< #include "signal.h"
X< #include "stdio.h"
X< #include "stat.h"
X---
X> #include <sgtty.h>
X> #include <signal.h>
X> #include <stdio.h>
X> #include <sys/types.h>
X> #include <sys/stat.h>
X124c125
X< 			done(1);
X---
X> 			exit(1);
X134c135
X< 	done(0);
X---
X> 	exit(0);
X683c684
X< 		done(1);
X---
X> 		exit(1);
X785c786
X< 		done(1);
X---
X> 		exit(1);
X887c888
X< 		done(1);
X---
X> 		exit(1);
X1214,1222c1215
X< 	done(1);
X< }
X< 
X< done(n)
X< int n;
X< {
X<   fflush(stdout);
X<   _cleanup();
X<   exit(n);
X---
X> 	exit(1);
+ END-OF-FILE roff.c.diff
chmod 'u=rw,g=r,o=r' 'roff.c.diff'
set `wc -c 'roff.c.diff'`
count=$1
case $count in
525)	:;;
*)	echo 'Bad character count in ''roff.c.diff' >&2
		echo 'Count should be 525' >&2
esac
echo Extracting 'shar.c.diff'
sed 's/^X//' > 'shar.c.diff' << '+ END-OF-FILE ''shar.c.diff'
X4c4
X< #include "blocksize.h"
X---
X> #include <minix/blocksize.h>
+ END-OF-FILE shar.c.diff
chmod 'u=rw,g=r,o=r' 'shar.c.diff'
set `wc -c 'shar.c.diff'`
count=$1
case $count in
64)	:;;
*)	echo 'Bad character count in ''shar.c.diff' >&2
		echo 'Count should be 64' >&2
esac
echo Extracting 'size.c.diff'
sed 's/^X//' > 'size.c.diff' << '+ END-OF-FILE ''size.c.diff'
X49c49
X<   if ( (head[0] & 0xFFFF) != MAGIC) {
X---
X>   if ( (head[0] & 0xFFFFL) != MAGIC) {
+ END-OF-FILE size.c.diff
chmod 'u=rw,g=r,o=r' 'size.c.diff'
set `wc -c 'size.c.diff'`
count=$1
case $count in
91)	:;;
*)	echo 'Bad character count in ''size.c.diff' >&2
		echo 'Count should be 91' >&2
esac
echo Extracting 'sort.c.diff'
sed 's/^X//' > 'sort.c.diff' << '+ END-OF-FILE ''sort.c.diff'
X34,35c34,36
X< #include "stat.h"
X< #include "signal.h"
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <signal.h>
X63,66c64
X< typedef enum {				/* Boolean types */
X<   FALSE = 0,
X<   TRUE
X< } BOOL;
X---
X> typedef int BOOL;
X67a66,68
X> #define	FALSE	0
X> #define	TRUE	1
X> 
X280c281
X< 	if (*ptr == '-' && table[*(ptr + 1)] & DIGIT) {
X---
X> 	if (ptr && *ptr == '-' && table[*(ptr + 1)] & DIGIT) {
X314c315
X<   while (argc > 1 && ((ptr = argv[arg_count])[0] == '-' || *ptr == '+')) {
X---
X>   while (arg_count < argc && ((ptr = argv[arg_count])[0] == '-' || *ptr == '+')) {
X467c468
X<   long rest;		/* Rest in memory */
X---
X>   int rest;		/* Rest in memory */
X468a470
X>   long lseek();
X481,482c483,484
X< 			for (size = 0; i + size != MEMORY_SIZE; size++)
X< 				mem_top[size] = mem_top[i + size];
X---
X> 			for (rest = 0; i + rest != MEMORY_SIZE; rest++)
X> 				mem_top[rest] = mem_top[i + rest];
X484c486
X< 			cur_pos = &mem_top[size];
X---
X> 			cur_pos = &mem_top[rest];
X499,500c501,502
X< 	(void) lseek(fd, i - MEMORY_SIZE, 1);	/* Do this next time */
X< 	rest = size - rest - i + MEMORY_SIZE;/* Calculate rest */
X---
X> 	(void) lseek(fd, (long)(i - MEMORY_SIZE), 1);	/* Do this next time */
X> 	size = size - rest - i + MEMORY_SIZE;/* Calculate rest */
X503c505
X< 	get_file(fd, rest);		/* Get rest of file */
X---
X> 	get_file(fd, size);		/* Get rest of file */
X506,507c508,510
X< 	mread(fd, cur_pos, size);
X< 	cur_pos = cur_pos + size;	/* Reassign cur_pos */
X---
X> 	rest = size;
X> 	mread(fd, cur_pos, rest);
X> 	cur_pos = cur_pos + rest;	/* Reassign cur_pos */
X1240c1243
X< register unsigned size;
X---
X> register size;
X1253,1254c1256,1257
X< char *mbrk(size)
X< register unsigned size;
X---
X> char *mbrk(address)
X> char *address;
X1257d1259
X<   register char *address;
X1259c1261
X<   if ((address = brk(size)) < 0)
X---
X>   if ((address = brk(address)) < 0)
+ END-OF-FILE sort.c.diff
chmod 'u=rw,g=r,o=r' 'sort.c.diff'
set `wc -c 'sort.c.diff'`
count=$1
case $count in
1845)	:;;
*)	echo 'Bad character count in ''sort.c.diff' >&2
		echo 'Count should be 1845' >&2
esac
echo Extracting 'split.c.diff'
sed 's/^X//' > 'split.c.diff' << '+ END-OF-FILE ''split.c.diff'
X3c3
X< #include "blocksize.h"
X---
X> #include <minix/blocksize.h>
X60c60
X<   fd = newfile();
X---
X>   fd = -1;
X65a66,67
X> 				if (fd == -1)
X> 					fd = newfile();
X70c72
X<   				fd = newfile();
X---
X>   				fd = -1;
X72a75,78
X> 	if (index == base)
X> 		continue;
X> 	if (fd == -1)
X> 		fd = newfile();
+ END-OF-FILE split.c.diff
chmod 'u=rw,g=r,o=r' 'split.c.diff'
set `wc -c 'split.c.diff'`
count=$1
case $count in
292)	:;;
*)	echo 'Bad character count in ''split.c.diff' >&2
		echo 'Count should be 292' >&2
esac
echo Extracting 'stty.c.diff'
sed 's/^X//' > 'stty.c.diff' << '+ END-OF-FILE ''stty.c.diff'
X3c3
X< #include "sgtty.h"
X---
X> #include <sgtty.h>
X33c33
X< 	option(argv[k], argv[k+1]);
X---
X> 	option(argv[k], k+1 < argc ? argv[k+1] : "");
+ END-OF-FILE stty.c.diff
chmod 'u=rw,g=r,o=r' 'stty.c.diff'
set `wc -c 'stty.c.diff'`
count=$1
case $count in
140)	:;;
*)	echo 'Bad character count in ''stty.c.diff' >&2
		echo 'Count should be 140' >&2
esac
echo Extracting 'su.c.diff'
sed 's/^X//' > 'su.c.diff' << '+ END-OF-FILE ''su.c.diff'
X3,5c3,5
X< #include "sgtty.h"
X< #include "stdio.h"
X< #include "pwd.h"
X---
X> #include <sgtty.h>
X> #include <stdio.h>
X> #include <pwd.h>
X51c51
X< 	execn (shell);
X---
X> 	execl (shell, 0);
+ END-OF-FILE su.c.diff
chmod 'u=rw,g=r,o=r' 'su.c.diff'
set `wc -c 'su.c.diff'`
count=$1
case $count in
183)	:;;
*)	echo 'Bad character count in ''su.c.diff' >&2
		echo 'Count should be 183' >&2
esac
echo Extracting 'sum.c.diff'
sed 's/^X//' > 'sum.c.diff' << '+ END-OF-FILE ''sum.c.diff'
X62c62
X<   int size = 0;
X---
X>   long size = 0;
X64c64
X<   unsigned tmp;
X---
X>   unsigned tmp, blks;
X85c85,86
X<   putd((size+BUFSIZ-1)/BUFSIZ, 6, 0);
X---
X>   blks = (size + (long)BUFSIZ - 1L)/(long)BUFSIZ;
X>   putd(blks, 6, 0);
+ END-OF-FILE sum.c.diff
chmod 'u=rw,g=r,o=r' 'sum.c.diff'
set `wc -c 'sum.c.diff'`
count=$1
case $count in
226)	:;;
*)	echo 'Bad character count in ''sum.c.diff' >&2
		echo 'Count should be 226' >&2
esac
echo Extracting 'tail.c.diff'
sed 's/^X//' > 'tail.c.diff' << '+ END-OF-FILE ''tail.c.diff'
X3c3
X< #include "stdio.h"
X---
X> #include <stdio.h>
X30c30
X<                 done(0) ;
X---
X>                 exit(0) ;
X55c55
X<                 done(1) ;
X---
X>                 exit(1) ;
X63c63
X<                 done(1) ;
X---
X>                 exit(1) ;
X70c70
X<         done(0) ;
X---
X>         exit(0) ;
X112,113c112,113
X< 
X<                 if (lines )             /* lines */
X---
X> 		count++;	/* start counting at 1 */
X>                 if (lines )     /* lines */
X164,172d163
X< 
X< 
X< 
X< done(n)
X< int n;
X< {
X<   _cleanup();			/* flush stdio's internal buffers */
X<   exit(n);
X< }
+ END-OF-FILE tail.c.diff
chmod 'u=rw,g=r,o=r' 'tail.c.diff'
set `wc -c 'tail.c.diff'`
count=$1
case $count in
576)	:;;
*)	echo 'Bad character count in ''tail.c.diff' >&2
		echo 'Count should be 576' >&2
esac
echo Extracting 'tar.c.diff'
sed 's/^X//' > 'tar.c.diff' << '+ END-OF-FILE ''tar.c.diff'
X13c13,15
X< #include "stat.h"
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <sys/dir.h>
X15,19d16
X< struct direct {
X<   unsigned short d_ino;
X<   char d_name[14];
X< };
X< 
X204c201
X<   chmod(file, convert(header.member.m_mode, INT_TYPE));
X---
X>   chmod(file, (int)convert(header.member.m_mode, INT_TYPE));
X471c468
X<   int *argptr = &args;
X---
X>   char *argptr = (char *)&args;
X483c480,481
X< 				scan_ptr = (char *) *argptr;
X---
X> 				scan_ptr = *((char **)argptr);
X> 				argptr += sizeof(char *);
X486c484,485
X< 				scan_ptr = num_out((long) *argptr);
X---
X> 				scan_ptr = num_out((long) *((int *)argptr));
X> 				argptr += sizeof(int);
X492c491
X< 				argptr++;
X---
X> 				argptr += sizeof(long);
X495c494,495
X< 				scan_ptr = num_out((long) *argptr);
X---
X> 				scan_ptr = num_out((long) *((int *)argptr));
X> 				argptr += sizeof(int);
X506d505
X< 		argptr++;
+ END-OF-FILE tar.c.diff
chmod 'u=rw,g=r,o=r' 'tar.c.diff'
set `wc -c 'tar.c.diff'`
count=$1
case $count in
867)	:;;
*)	echo 'Bad character count in ''tar.c.diff' >&2
		echo 'Count should be 867' >&2
esac
echo Extracting 'tee.c.diff'
sed 's/^X//' > 'tee.c.diff' << '+ END-OF-FILE ''tee.c.diff'
X3,4c3,4
X< #include "blocksize.h"
X< #include "signal.h"
X---
X> #include <minix/blocksize.h>
X> #include <signal.h>
+ END-OF-FILE tee.c.diff
chmod 'u=rw,g=r,o=r' 'tee.c.diff'
set `wc -c 'tee.c.diff'`
count=$1
case $count in
112)	:;;
*)	echo 'Bad character count in ''tee.c.diff' >&2
		echo 'Count should be 112' >&2
esac
echo Extracting 'test.c.diff'
sed 's/^X//' > 'test.c.diff' << '+ END-OF-FILE ''test.c.diff'
X2c2,3
X< #include <stat.h>
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X14c15
X< 	unary-operator ::= "-r"|"-w"|"-f"|"-d"|"-s"|"-t"|"-z"|"-n";
X---
X> 	unary-operator ::= "-r"|"-w"|"-x"|"-f"|"-d"|"-s"|"-t"|"-z"|"-n";
X41a43
X> #define FILEX   23
X54a57
X> 	{"-x", FILEX, UNOP},
X182a186,187
X> 	case FILEX:
X> 		return access(nm, 1) == 0;
+ END-OF-FILE test.c.diff
chmod 'u=rw,g=r,o=r' 'test.c.diff'
set `wc -c 'test.c.diff'`
count=$1
case $count in
335)	:;;
*)	echo 'Bad character count in ''test.c.diff' >&2
		echo 'Count should be 335' >&2
esac
echo Extracting 'time.c.diff'
sed 's/^X//' > 'time.c.diff' << '+ END-OF-FILE ''time.c.diff'
X3,4c3,6
X< #include "signal.h"
X< #include "../h/const.h"
X---
X> #include <signal.h>
X> #include <sys/types.h>
X> #include <sys/times.h>
X> #include <minix/const.h>
X9,13d10
X< struct time_buf {
X<   long user, sys;
X<   long childu, childs;
X< };
X< 
X21c18
X<   struct time_buf pre_buf, post_buf;
X---
X>   struct tms pre_buf, post_buf;
X58,59c55,56
X<   print_time("user ", post_buf.childu - pre_buf.childu);
X<   print_time("sys  ", post_buf.childs - pre_buf.childs);
X---
X>   print_time("user ", post_buf.tms_cutime - pre_buf.tms_cutime);
X>   print_time("sys  ", post_buf.tms_cstime - pre_buf.tms_cstime);
+ END-OF-FILE time.c.diff
chmod 'u=rw,g=r,o=r' 'time.c.diff'
set `wc -c 'time.c.diff'`
count=$1
case $count in
591)	:;;
*)	echo 'Bad character count in ''time.c.diff' >&2
		echo 'Count should be 591' >&2
esac
echo Extracting 'touch.c.diff'
sed 's/^X//' > 'touch.c.diff' << '+ END-OF-FILE ''touch.c.diff'
X2,3c2,4
X< #include "stat.h"
X< #include "errno.h"
X---
X> #include <sys/types.h>
X> #include <sys/stat.h>
X> #include <errno.h>
+ END-OF-FILE touch.c.diff
chmod 'u=rw,g=r,o=r' 'touch.c.diff'
set `wc -c 'touch.c.diff'`
count=$1
case $count in
123)	:;;
*)	echo 'Bad character count in ''touch.c.diff' >&2
		echo 'Count should be 123' >&2
esac
echo Extracting 'umount.c.diff'
sed 's/^X//' > 'umount.c.diff' << '+ END-OF-FILE ''umount.c.diff'
X3c3
X< #include "errno.h"
X---
X> #include <errno.h>
X4a5,6
X> #define BUFSIZE 1024
X> 
X5a8,9
X> char *mounttable = "/etc/mtab";
X> char buffer[BUFSIZE], *p = &buffer[0], *q;
X21a26
X>   do_mtab(argv[1]);
X23a29,66
X> 
X> do_mtab(devname)
X> char *devname;
X> {
X> /* Remove an entry from mtab. */
X>   int n, fd;
X>   char line[256];
X> 
X>   /* Read in the mount table and then overwrite the file. */
X>   fd = open(mounttable, 2);
X>   n = read(fd, buffer, BUFSIZE);
X>   close(fd);
X>   q = &buffer[n];
X>   fd = creat(mounttable, 0554);
X> 
X>   n = strlen(devname);
X>   while (getline(line) != 0) {
X> 	if (strncmp(line, devname, n) == 0) continue;
X> 	write(fd, line, strlen(line));
X>   }
X> }
X> 
X> int getline(ptr)
X> char *ptr;
X> {
X>   char c;
X> 
X>   while (p < q) {
X> 	c = *p++;
X> 	*ptr++ = c;
X> 	if (c == '\n') {
X> 		*ptr++ = 0;
X> 		return(1);
X> 	}
X>   }
X>   return(0);
X> }
X> 
+ END-OF-FILE umount.c.diff
chmod 'u=rw,g=r,o=r' 'umount.c.diff'
set `wc -c 'umount.c.diff'`
count=$1
case $count in
857)	:;;
*)	echo 'Bad character count in ''umount.c.diff' >&2
		echo 'Count should be 857' >&2
esac
echo Extracting 'uniq.c.diff'
sed 's/^X//' > 'uniq.c.diff' << '+ END-OF-FILE ''uniq.c.diff'
X16c16
X< #include "stdio.h"
X---
X> #include <stdio.h>
+ END-OF-FILE uniq.c.diff
chmod 'u=rw,g=r,o=r' 'uniq.c.diff'
set `wc -c 'uniq.c.diff'`
count=$1
case $count in
52)	:;;
*)	echo 'Bad character count in ''uniq.c.diff' >&2
		echo 'Count should be 52' >&2
esac
echo Extracting 'update.c.diff'
sed 's/^X//' > 'update.c.diff' << '+ END-OF-FILE ''update.c.diff'
X3c3
X< #include "signal.h"
X---
X> #include <signal.h>
X18,21c18,21
X<   open("/bin", 0);
X<   open("/lib", 0);
X<   open("/etc", 0);
X<   open("/tmp", 0);
X---
X> /*open("/bin", 0);*/
X> /*open("/lib", 0);*/
X> /*open("/etc", 0);*/
X> /*open("/tmp", 0);*/
+ END-OF-FILE update.c.diff
chmod 'u=rw,g=r,o=r' 'update.c.diff'
set `wc -c 'update.c.diff'`
count=$1
case $count in
244)	:;;
*)	echo 'Bad character count in ''update.c.diff' >&2
		echo 'Count should be 244' >&2
esac
echo Extracting 'uudecode.c.diff'
sed 's/^X//' > 'uudecode.c.diff' << '+ END-OF-FILE ''uudecode.c.diff'
X7,9c7,10
X< #include "stdio.h"
X< #include "pwd.h"
X< #include "stat.h"
X---
X> #include <stdio.h>
X> #include <pwd.h>
X> #include <sys/types.h>
X> #include <sys/stat.h>
X32c33
X< 			xit(1);
X---
X> 			exit(1);
X40c41
X< 		xit(2);
X---
X> 		exit(2);
X47c48
X< 			xit(3);
X---
X> 			exit(3);
X65c66
X< 			xit(3);
X---
X> 			exit(3);
X71c72
X< 			xit(4);
X---
X> 			exit(4);
X83c84
X< 		xit(4);
X---
X> 		exit(4);
X91c92
X< 		xit(5);
X---
X> 		exit(5);
X93c94
X< 	xit(0);
X---
X> 	exit(0);
X114c115
X< 			xit(10);
X---
X> 			exit(10);
X203,209d203
X< }
X< 
X< xit(n)
X< int n;
X< {
X<   _cleanup();
X<   exit(n);
+ END-OF-FILE uudecode.c.diff
chmod 'u=rw,g=r,o=r' 'uudecode.c.diff'
set `wc -c 'uudecode.c.diff'`
count=$1
case $count in
559)	:;;
*)	echo 'Bad character count in ''uudecode.c.diff' >&2
		echo 'Count should be 559' >&2
esac
echo Extracting 'uuencode.c.diff'
sed 's/^X//' > 'uuencode.c.diff' << '+ END-OF-FILE ''uuencode.c.diff'
X8,9c8,10
X< #include "stdio.h"
X< #include "stat.h"
X---
X> #include <stdio.h>
X> #include <sys/types.h>
X> #include <sys/stat.h>
X27c28
X< 			xit(1);
X---
X> 			exit(1);
X35c36
X< 		xit(2);
X---
X> 		exit(2);
X46c47
X< 	xit(0);
X---
X> 	exit(0);
X108,114d108
X< }
X< 
X< xit(n)
X< int n;
X< {
X<   _cleanup();
X<   exit(n);
+ END-OF-FILE uuencode.c.diff
chmod 'u=rw,g=r,o=r' 'uuencode.c.diff'
set `wc -c 'uuencode.c.diff'`
count=$1
case $count in
299)	:;;
*)	echo 'Bad character count in ''uuencode.c.diff' >&2
		echo 'Count should be 299' >&2
esac
echo Extracting 'wc.c.diff'
sed 's/^X//' > 'wc.c.diff' << '+ END-OF-FILE ''wc.c.diff'
X3,4c3
X< #include "stdio.h"
X< #define isdigit(c) (c >= '0' && c <= '9)
X---
X> #include <stdio.h>
X130c129
X<   while((c = getc(stdin)) > 0) {
X---
X>   while((c = getc(stdin)) >= 0) {
+ END-OF-FILE wc.c.diff
chmod 'u=rw,g=r,o=r' 'wc.c.diff'
set `wc -c 'wc.c.diff'`
count=$1
case $count in
178)	:;;
*)	echo 'Bad character count in ''wc.c.diff' >&2
		echo 'Count should be 178' >&2
esac
exit 0