File: fmtspcl.awk

package info (click to toggle)
gawk 1%3A4.0.1%2Bdfsg-2.1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 10,944 kB
  • sloc: ansic: 38,137; awk: 6,654; yacc: 6,066; sh: 4,807; makefile: 1,802; sed: 112
file content (26 lines) | stat: -rw-r--r-- 518 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function display(x,str,  i,res) {
	for (i = 0; i < n; i++) {
		if ((res = sprintf(formats[i],x)) != str)
			printf "sprintf(%s,%s) = %s (!= %s)\n",
			       formats[i],x,res,str
	}
}

BEGIN {
	nan = sqrt(-1)
	nan_str = sprintf("%f",nan)
	nnan_str = sprintf("%f",-nan)
	inf = -log(0)
	inf_str = sprintf("%f",inf)

	n = 0
	formats[n++] = "%f"
	formats[n++] = "%s"
	formats[n++] = "%g"
	formats[n++] = "%x"
	formats[n++] = "%d"
	display(nan,nan_str)
	display(-nan,nnan_str)
	display(inf,inf)
	display(-inf,"-"inf_str)
}