OpenVMS Source-Code Demos

UNIX_HATER

//--------------------------------------------------------------------------------
// title  : unix_hater.c
// author : Neil Rieck
// created: 2012-11-28
// purpose: does the example program shown in the "UNIX Haters Hand Book" compile?
//--------------------------------------------------------------------------------
//
//	declarations to enable compilation of the same code (not necessarily useful)
//
#include <stdio.h>
#include <stdlib.h>

int e;
int C;
int R;
int you;
int *u;

int P(char* yada){
	printf("%s", yada);
	return(1);
}

main() {
	u = &you;					// initialize pointer

//-----------------------------------------------------------------------------
//	This syntax is from our "UNIX Hater's Hand Book" PDF
//	which does not compile (look at the middle term in the for statement)
//	This happens all the time when copying to/from PDF (the author
//	probably did not double-check after pasting into Adobe Publisher)
//
//	for(; P("\n"),R=; P("|"))
//		for(e=C; e=P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
//-----------------------------------------------------------------------------
//	this syntax is from the web
//		http://soup.fin.io/post/87786406/We-stopped-when-we-got-a-clean
//	and it does compile.
//
	for(; P("\n"),R--;P("|"))
		for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
//-----------------------------------------------------------------------------
}