head 1.2; access; symbols perseant-exfatfs-base-20261102:1.2 perseant-exfatfs-base-20250801:1.2 perseant-exfatfs-base-20240630:1.2 cjep_sun2x:1.2.0.44 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 cjep_staticlib_x:1.2.0.42 cjep_staticlib_x-base:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 phil-wifi-20200406:1.2 pgoyette-compat-merge-20190127:1.2 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 pgoyette-compat-0728:1.2 pgoyette-compat-0625:1.2 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 pgoyette-compat-0415:1.2 pgoyette-compat-0407:1.2 pgoyette-compat-0330:1.2 pgoyette-compat-0322:1.2 pgoyette-compat-0315:1.2 pgoyette-compat:1.2.0.40 pgoyette-compat-base:1.2 perseant-stdc-iso10646:1.2.0.38 perseant-stdc-iso10646-base:1.2 prg-localcount2-base3:1.2 prg-localcount2-base2:1.2 prg-localcount2-base1:1.2 prg-localcount2:1.2.0.36 prg-localcount2-base:1.2 pgoyette-localcount-20170426:1.2 bouyer-socketcan-base1:1.2 pgoyette-localcount-20170320:1.2 bouyer-socketcan:1.2.0.34 bouyer-socketcan-base:1.2 pgoyette-localcount-20170107:1.2 pgoyette-localcount-20161104:1.2 localcount-20160914:1.2 pgoyette-localcount-20160806:1.2 pgoyette-localcount-20160726:1.2 pgoyette-localcount:1.2.0.32 pgoyette-localcount-base:1.2 netbsd-5-2-3-RELEASE:1.2 netbsd-5-1-5-RELEASE:1.2 yamt-pagecache-base9:1.2 yamt-pagecache-tag8:1.2 tls-earlyentropy:1.2.0.28 tls-earlyentropy-base:1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2 riastradh-drm2-base3:1.2 netbsd-5-2-2-RELEASE:1.2 netbsd-5-1-4-RELEASE:1.2 netbsd-5-2-1-RELEASE:1.2 netbsd-5-1-3-RELEASE:1.2 agc-symver:1.2.0.30 agc-symver-base:1.2 tls-maxphys-base:1.2 yamt-pagecache-base8:1.2 netbsd-5-2:1.2.0.26 yamt-pagecache-base7:1.2 netbsd-5-2-RELEASE:1.2 netbsd-5-2-RC1:1.2 yamt-pagecache-base6:1.2 yamt-pagecache-base5:1.2 yamt-pagecache-base4:1.2 netbsd-5-1-2-RELEASE:1.2 netbsd-5-1-1-RELEASE:1.2 yamt-pagecache-base3:1.2 yamt-pagecache-base2:1.2 yamt-pagecache:1.2.0.24 yamt-pagecache-base:1.2 bouyer-quota2-nbase:1.2 bouyer-quota2:1.2.0.22 bouyer-quota2-base:1.2 matt-nb5-pq3:1.2.0.20 matt-nb5-pq3-base:1.2 netbsd-5-1:1.2.0.18 netbsd-5-1-RELEASE:1.2 netbsd-5-1-RC4:1.2 netbsd-5-1-RC3:1.2 netbsd-5-1-RC2:1.2 netbsd-5-1-RC1:1.2 netbsd-5-0-2-RELEASE:1.2 netbsd-5-0-1-RELEASE:1.2 jym-xensuspend-nbase:1.2 netbsd-5-0:1.2.0.16 netbsd-5-0-RELEASE:1.2 netbsd-5-0-RC4:1.2 netbsd-5-0-RC3:1.2 netbsd-5-0-RC2:1.2 jym-xensuspend:1.2.0.14 jym-xensuspend-base:1.2 netbsd-5-0-RC1:1.2 netbsd-5:1.2.0.12 netbsd-5-base:1.2 mjf-devfs2:1.2.0.10 mjf-devfs2-base:1.2 yamt-pf42-base4:1.2 yamt-pf42-base3:1.2 hpcarm-cleanup-nbase:1.2 yamt-pf42-base2:1.2 yamt-pf42:1.2.0.8 yamt-pf42-base:1.2 keiichi-mipv6:1.2.0.6 keiichi-mipv6-base:1.2 cube-autoconf:1.2.0.4 cube-autoconf-base:1.2 hpcarm-cleanup:1.2.0.2 hpcarm-cleanup-base:1.2 gawk-3-1-3-before-remove:1.1.1.1 gawk-3-1-3:1.1.1.1 FSF:1.1.1; locks; strict; comment @# @; 1.2 date 2004.03.26.17.16.30; author jdolecek; state dead; branches; next 1.1; 1.1 date 2003.10.06.16.00.42; author wiz; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2003.10.06.16.00.42; author wiz; state Exp; branches; next ; desc @@ 1.2 log @delete GNU gawk 3.1.3 sources. they are available in cvs with "cvs co -r gawk-3-1-3-before-remove src/gnu/dist/gawk". @ text @#From vp@@dmat.uevora.pt Thu Jun 18 09:10 EDT 1998 #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 JAA23649 for ; Thu, 18 Jun 1998 09:10:54 -0400 (EDT) #Received: from khromeleque.dmat.uevora.pt by mescaline.gnu.org (8.8.5/8.6.12GNU) with ESMTP id JAA21732 for ; Thu, 18 Jun 1998 09:11:19 -0400 #Received: from khromeleque.dmat.uevora.pt (vp@@localhost [127.0.0.1]) # by khromeleque.dmat.uevora.pt (8.8.8/8.8.8/Debian/GNU) with ESMTP id OAA11817 # for ; Thu, 18 Jun 1998 14:13:57 +0100 #Message-Id: <199806181313.OAA11817@@khromeleque.dmat.uevora.pt> #To: arnold@@gnu.org #Subject: concatenation bug in gawk 3.0.3 #Date: Thu, 18 Jun 1998 14:13:57 +0200 #From: Vasco Pedro #Content-Type: text #Content-Length: 2285 #Status: RO # #Hi, # #The gawk program '{print NR " " 10/NR}' will print: # #1 10 #5 5 #3 3.33333 #2 2.5 #2 2 #1 1.66667 # #instead of the correct: # #1 10 #2 5 #3 3.33333 #4 2.5 #5 2 #6 1.66667 # #You'll notice, on the incorrect output, that the first column is #the first digit of the second. # #I think the problem comes from the way builtin variables are handled. #Since the items to be concatenated are processed in reverse order and #the return value of tree_eval(``NR'') is a pointer to the value part #of `NR_node', the `unref()' of `NR_node' due to its second occurrence #will leave a dangling pointer in `strlist'. The reason that it doesn't #reuse the freed space with objects of the same type. (Using Electric #Fence with EF_PROTECT_FREE set confirms that freed space is being #accessed.) # #The enclosed patch (hack would be a better word to describe it) is #all I could come up with. With it installed, things seem to work ok, #but I doubt this is the correct way to do it. (If I treated the #case for `Node_field_spec' as the I did others, `make check' would #fail in several places.) # #Regards, #vasco # #*** eval.c~ Tue May 6 21:39:55 1997 #--- eval.c Thu Jun 18 13:39:25 1998 #*************** #*** 685,697 **** # return func_call(tree->rnode, tree->lnode); # # /* unary operations */ # case Node_NR: # case Node_FNR: # case Node_NF: # case Node_FIELDWIDTHS: # case Node_FS: # case Node_RS: #- case Node_field_spec: # case Node_subscript: # case Node_IGNORECASE: # case Node_OFS: #--- 685,700 ---- # return func_call(tree->rnode, tree->lnode); # # /* unary operations */ #+ case Node_field_spec: #+ lhs = get_lhs(tree, (Func_ptr *) NULL); #+ return *lhs; #+ # case Node_NR: # case Node_FNR: # case Node_NF: # case Node_FIELDWIDTHS: # case Node_FS: # case Node_RS: # case Node_subscript: # case Node_IGNORECASE: # case Node_OFS: #*************** #*** 699,705 **** # case Node_OFMT: # case Node_CONVFMT: # lhs = get_lhs(tree, (Func_ptr *) NULL); #! return *lhs; # # case Node_var_array: # fatal("attempt to use array `%s' in a scalar context", #--- 702,710 ---- # case Node_OFMT: # case Node_CONVFMT: # lhs = get_lhs(tree, (Func_ptr *) NULL); #! r = dupnode(*lhs); #! r->flags |= TEMP; #! return r; # # case Node_var_array: # fatal("attempt to use array `%s' in a scalar context", # { print NR " " 10/NR } @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @Initial import of gawk-3.1.3. Seven releases since the last import, so the ChangeLog is quite big; please refer to the NEWS file included in the import for details. Among others, this also addresses PR 23054. @ text @@