#!/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 "printls: " msg >> "/dev/stderr"
	print "usage: printls [-h] (RUN|PFILE|-) LAB" >> "/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 "printls: run or file '" run "' does not exist" >> "/dev/stderr"
	err = 1
	exit 1
}

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

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

	ARGC = 2
}

$1 !=0 && $4 == lab { print substr($0,5) }
