Blame test/nasty.awk

Packit Service f629e6
#From hankedr@manatee.dms.auburn.edu  Tue Oct 13 22:15:59 1998
Packit Service f629e6
#Return-Path: <hankedr@manatee.dms.auburn.edu>
Packit Service f629e6
#Received: from cssun.mathcs.emory.edu (cssun.mathcs.emory.edu [170.140.150.1])
Packit Service f629e6
#	by dmx.netvision.net.il (8.9.0.Beta5/8.8.6) with ESMTP id PAA03924
Packit Service f629e6
#	for <arobbins@netvision.net.il>; Tue, 13 Oct 1998 15:32:13 +0200 (IST)
Packit Service f629e6
#Received: from mescaline.gnu.org (we-refuse-to-spy-on-our-users@mescaline.gnu.org [158.121.106.21]) by cssun.mathcs.emory.edu (8.7.5/8.6.9-940818.01cssun) with ESMTP id KAA11644 for <arnold@mathcs.emory.edu>; Tue, 13 Oct 1998 10:22:32 -0400 (EDT)
Packit Service f629e6
#Received: from manatee.dms.auburn.edu (manatee.dms.auburn.edu [131.204.53.104])
Packit Service f629e6
#	by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id KAA03250
Packit Service f629e6
#	for <arnold@gnu.org>; Tue, 13 Oct 1998 10:25:32 -0400
Packit Service f629e6
#Received: (from hankedr@localhost)
Packit Service f629e6
#	by manatee.dms.auburn.edu (8.9.1a/8.9.1) id JAA13348;
Packit Service f629e6
#	Tue, 13 Oct 1998 09:22:29 -0500 (CDT)
Packit Service f629e6
#Date: Tue, 13 Oct 1998 09:22:29 -0500 (CDT)
Packit Service f629e6
#Message-Id: <199810131422.JAA13348@manatee.dms.auburn.edu>
Packit Service f629e6
#From: Darrel Hankerson <hankedr@dms.auburn.edu>
Packit Service f629e6
#To: arnold@gnu.org
Packit Service f629e6
#In-reply-to: <199810131313.QAA31784@alpha.netvision.net.il> (message from
Packit Service f629e6
#	Aharon Robbins on Tue, 13 Oct 1998 16:10:36 +0200)
Packit Service f629e6
#Subject: Re: full text of bug report?
Packit Service f629e6
#Mime-Version: 1.0
Packit Service f629e6
#Content-Type: text/plain; charset=US-ASCII
Packit Service f629e6
#X-UIDL: bf3fce492dad4ab030c561e7b2f27d0a
Packit Service f629e6
#Status: RO
Packit Service f629e6
#
Packit Service f629e6
#   Do you have the full text of the	a = a "\n" f() 	bug report?
Packit Service f629e6
#   I can't find it.... I'm not sure there really is a bug.
Packit Service f629e6
#
Packit Service f629e6
#Yes, see below.  
Packit Service f629e6
#
Packit Service f629e6
#His example has unnecessary fragments (in particular, the use of
Packit Service f629e6
#gensub is irrelevant).  As I wrote to you earlier, the interesting
Packit Service f629e6
#question for me is:
Packit Service f629e6
#
Packit Service f629e6
#   Is the concatenation result undefined?  If the result is defined or
Packit Service f629e6
#   implementation-dependent, then gawk has a bug.
Packit Service f629e6
#
Packit Service f629e6
#
Packit Service f629e6
#=== Original report =====================================================
Packit Service f629e6
#From: Attila Torcsvari <arcdev@mail.matav.hu>
Packit Service f629e6
#To: "'bug-gnu-utils@prep.ai.mit.edu'" <bug-gnu-utils@gnu.org>
Packit Service f629e6
#Subject: gawk 3.0.3 bug
Packit Service f629e6
#Date: Thu, 17 Sep 1998 18:12:13 +0200
Packit Service f629e6
#MIME-Version: 1.0
Packit Service f629e6
#Content-Transfer-Encoding: 7bit
Packit Service f629e6
#Resent-From: bug-gnu-utils@gnu.org
Packit Service f629e6
#X-Mailing-List: <bug-gnu-utils@gnu.org> archive/latest/3396
Packit Service f629e6
#X-Loop: bug-gnu-utils@gnu.org
Packit Service f629e6
#Precedence: list
Packit Service f629e6
#Resent-Sender: bug-gnu-utils-request@gnu.org
Packit Service f629e6
#Content-Transfer-Encoding: 7bit
Packit Service f629e6
#Content-Type: text/plain; charset="us-ascii"
Packit Service f629e6
#Content-Length: 618
Packit Service f629e6
#
Packit Service f629e6
#Bug-gnuers,
Packit Service f629e6
#please pass it to the responsible.
Packit Service f629e6
#
Packit Service f629e6
#The following generates something interesting:
Packit Service f629e6
#
Packit Service f629e6
BEGIN{
Packit Service f629e6
a="aaaaa"
Packit Service f629e6
a=a a #10
Packit Service f629e6
a=a a #20
Packit Service f629e6
a=a a #40
Packit Service f629e6
a=a a #80
Packit Service f629e6
a=a a #160
Packit Service f629e6
a=a a # i.e. a is long enough
Packit Service f629e6
Packit Service f629e6
a=a"\n"f() # this causes the trouble
Packit Service f629e6
print a # guess the result
Packit Service f629e6
}
Packit Service f629e6
Packit Service f629e6
function f()
Packit Service f629e6
{
Packit Service f629e6
#print "a before: ", a
Packit Service f629e6
#a=gensub("a","123,","g",a) # 'a' will be just a bit longer (4 times, but still should fit: 4*160=640)
Packit Service f629e6
gsub(/a/, "123", a)
Packit Service f629e6
#print "a after: ", a
Packit Service f629e6
return "X"
Packit Service f629e6
}
Packit Service f629e6
#
Packit Service f629e6
#Possible reason:
Packit Service f629e6
#during f the a is modified,
Packit Service f629e6
#it can be even freed, because gensub modifies its size
Packit Service f629e6
#the printout contains trash.
Packit Service f629e6
#
Packit Service f629e6
#Used version: VC compiled WinNT 32 bit Intel.
Packit Service f629e6
#
Packit Service f629e6
#Regards,
Packit Service f629e6
#
Packit Service f629e6
#Attila Torcsvari
Packit Service f629e6
#Arcanum Development
Packit Service f629e6
#