pdp11v/usr/man/tools/funny.c

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

#include	<stdio.h>
#include	<ctype.h>

main(argc,argv)
int	argc;
char	*argv[];
{
	register int	c;
	register char	*letter;
	register int	cnt = NULL;
	register int	loop;
	int	newline = NULL;
	int	filename = NULL;
	FILE	*fopen(), *fptr = NULL;

	if(argc == 1) {
		fptr = stdin;
	}
	else if(argc > 2) {
		filename++;
	}

	for(loop=1; loop < argc; ++loop) {
		if(fptr == NULL) {
			if((fptr=fopen(argv[loop],"r")) == NULL) {
	                        printf("cannot open %s\n",argv[loop]);
				continue;
			}
		}


		newline = 1;
		cnt = 0;
		while((c=fgetc(fptr)) != EOF) {
			cnt++;
			c &= 0377;
			if(c == '\n') {
				newline++;
				continue;
			}
			if(! isprint(c) && ! isspace(c)) {
				switch (c) {
					case 000:
						letter = "nul";
						break;
					case 001:
						letter = "soh";
						break;
					case 002:
						letter = "stx";
						break;
					case 003:
						letter = "etx";
						break;
					case 004:
						letter = "eot";
						break;
					case 005:
						letter = "enq";
						break;
					case 006:
						letter = "ack";
						break;
					case 007:
						letter = "bel";
						break;
					case 010:
						letter = "bs";
						break;
					case 016:
						letter = "so";
						break;
					case 017:
						letter = "si";
						break;
					case 020:
						letter = "dle";
						break;
					case 021:
						letter = "dc1";
						break;
					case 022:
						letter = "dc2";
						break;
					case 023:
						letter = "dc3";
						break;
					case 024:
						letter = "dc4";
						break;
					case 025:
						letter = "nak";
						break;
					case 026:
						letter = "syn";
						break;
					case 027:
						letter = "etb";
						break;
					case 030:
						letter = "can";
						break;
					case 031:
						letter = "em";
						break;
					case 032:
						letter = "sub";
						break;
					case 033:
						letter = "esc";
						break;
					case 034:
						letter = "fs";
						break;
					case 035:
						letter = "gs";
						break;
					case 036:
						letter = "rs";
						break;
					case 037:
						letter = "us";
						break;
					case 0177:
						letter = "del";
						break;
					default:
						letter = "unknown";
						break;
				}
		if(filename) printf("%s: ",argv[loop]);
				printf("line/char=%d/%d: %#3.3o (%s)\n",
					newline,cnt,c,letter);
			}
		}
		fclose(fptr);
		fptr = NULL;
	}
}
/*	@(#)funny.c	5.2 of 5/19/82	*/