github.com/benhoyt/goawk@v1.8.1/testdata/gawk/ofmt.awk (about)

     1  # From dragon!knorke.saar.de!florian Wed Jul 16 10:47:27 1997
     2  # Return-Path: <dragon!knorke.saar.de!florian>
     3  # Message-ID: <19970716164451.63610@knorke.saar.de>
     4  # Date: Wed, 16 Jul 1997 16:44:51 +0200
     5  # From: Florian La Roche <florian@knorke.saar.de>
     6  # To: bug-gnu-utils@prep.ai.mit.edu
     7  # CC: arnold@gnu.ai.mit.edu
     8  # Subject: bug in gawk 3.0.3
     9  # MIME-Version: 1.0
    10  # Content-Type: text/plain; charset=us-ascii
    11  # X-Mailer: Mutt 0.76
    12  # Status: R
    13  # Content-Length: 1725
    14  # X-Lines: 177
    15  # X-Display-Position: 0
    16  # 
    17  # I have a problem with gawk 3.0.3 on linux with libc 5.4.33.
    18  # The memory is corrupted, if I use OFMT = "%.12g".
    19  # With OFMT = "%.6g" evrything works fine, but I don't have enough
    20  # digits for the computation.
    21  # 
    22  # Thanks a lot,
    23  # Florian La Roche
    24  # 
    25  # Here is the sample awk-Script together with sample data:
    26  # 
    27  BEGIN {
    28  		OFMT = "%.12g"
    29  		big = 99999999999
    30  		lowest = big
    31  		small = 0
    32  		highest = small
    33  		dir = ""
    34  	}
    35  $0 ~ /^[0-9]+$/ {
    36  	# some old awks do not think $0 is numeric, so use $1
    37  	if ($1 < lowest)
    38  		lowest = $1
    39  	if ($1 > highest)
    40  		highest = $1
    41  	next
    42  }
    43  $0 ~ /\/\.:$/ {
    44  	if (dir != "") {
    45  		if (highest != small)
    46  			print dir, highest, lowest
    47  		else
    48  			print dir, "-", "-"
    49  	}
    50  	dir = substr($0, 1, length($0)-3)	# trim off /.:
    51  	lowest = big
    52  	highest = small
    53  }