#!/usr/bin/awk -f

function check_lang(prg, cfmt,x,y,lang,m1,m2) {
	cfmt = CONVFMT
	lang = ENVIRON["LANG"]
	CONVFMT = "%+.3e"
	x = 1.23
	y = "" x
	if("+1.230e+00"!=y) {
		# try to change language to "C" at run time
		ENVIRON["LANG"] = "C"
		x = 1.23
		y = "" x
		if("+1.230e+00"!=y) {
			m1 = ": numeric format of language '"
			m2 = "' not supported"
			print prg m1 lang m2 >> "/dev/stderr"
			m1 = ": set the environment variable LANG to C before running "
			print prg m1 prg >> "/dev/stderr"
			err = 1
			exit 1
		}
	}
	CONVFMT = cfmt
}

function print_usage(msg) {
	if(msg!="") print "printcols: " msg >> "/dev/stderr"
	print "usage: printcols [-h] (RUN|PFILE|-)" >> "/dev/stderr"
	err = 1
	exit 1
}

function exists(fname, status) {
	status = getline < fname
	close(fname)
	return ( status != -1 )
}

function run_name(run, fname) {
	if(run == "-") return run
	
	fname = "data/p." run
	if(exists(fname)) return fname
	
	fname = run
	if(exists(fname)) return fname
	
	print "printcols: run or file '" run "' does not exist" >> "/dev/stderr"
	err = 1
	exit 1
}

BEGIN {
	check_lang("printcols")
	
	if(ARGC < 2 || ARGV[1] == "-h") print_usage()

	ARGV[1] = run_name(ARGV[1])
	
	if(ARGC > 2) print_usage("too many arguments")

	N    = 0
	ARGC = 2
}

$0 == "" { next }

$1 == 0 {
	for(i=1; i<=N; ++i) delete cols[i]
	N = NF
	for(i=1; i<=N; ++i) cols[i]=$(i)
}

$1 != 0 {
	col = 1
	for(i=5; i<=N; ++i) {
		if( cols[i]=="MAX" || cols[i]=="MIN" ) {
			printf "%3d : %s %s\n", col, cols[i], cols[i+1]
			++i
		} else {
			printf "%3d : %s\n", col, cols[i]
		}
		++col
	}
	exit 0
}
