V9/jtools/src/sam/misc.c

Compare this file to the similar file:
Show the results in this format:

#include "sam.h"

bcopy(s1, s2, d, dir)
	register uchar *s1, *s2;
	register uchar *d;
	int dir;
{
	register long n=s2-s1;
	extern char *memcpy();
	if(dir<0){
		if(n>0){
			register long m=(n+7)/8;
			d+=n;
			switch((int)(n&7)){
			case 0:	do{	*--d = *--s2;
			case 7:		*--d = *--s2;
			case 6:		*--d = *--s2;
			case 5:		*--d = *--s2;
			case 4:		*--d = *--s2;
			case 3:		*--d = *--s2;
			case 2:		*--d = *--s2;
			case 1:		*--d = *--s2;
				}while(--m>0);
			}
		}
	}else
		memcpy((char *)d, (char *)s1, (int)(s2-s1));
}
Posn
getnum(){
	register Posn n=0;
	register c;
	if((c=nextc())<'0' || '9'<c)	/* no number defaults to 1 */
		return 1;
	while('0'<=(c=getc()) && c<='9')
		n=n*10+c-'0';
	ungetc();
	return n;
}
skipbl(){
	register c;
	do c=getc(); while(c==' ' || c=='\t');
	if(c>=0)
		ungetc();
	return c;
}