Blame test/pipeio2.awk

Packit Service f629e6
# From: megaadm@rina.quantum.de
Packit Service f629e6
# Subject: Bug report - closing down pipes which read from shell com
Packit Service f629e6
# To: bug-gnu-utils@prep.ai.mit.edu
Packit Service f629e6
# Date: Thu, 27 Feb 1997 23:19:16 +0100 (CET)
Packit Service f629e6
# CC: arnold@gnu.ai.mit.edu
Packit Service f629e6
# 
Packit Service f629e6
# Hello people,
Packit Service f629e6
# 
Packit Service f629e6
# i think i found a bug or something mysterious behaviour in
Packit Service f629e6
# gawk Version 3.0 patchlevel 0.
Packit Service f629e6
# 
Packit Service f629e6
# I am running on linux 2.0.25 under bash.
Packit Service f629e6
# 
Packit Service f629e6
# Could you please have a look at the following awk program
Packit Service f629e6
# an let me please know, if this is what i expect it to,
Packit Service f629e6
# namely a bug.
Packit Service f629e6
# 
Packit Service f629e6
# ----------- cut here --------------------------------------------
Packit Service f629e6
BEGIN	{
Packit Service f629e6
			# OS is linux 2.0.25
Packit Service f629e6
			# shell is bash
Packit Service f629e6
			# Gnu Awk (gawk) 3.0, patchlevel 0
Packit Service f629e6
			# The command i typed on the shell was "gawk -f <this_prog> -"
Packit Service f629e6
Packit Service f629e6
			#com = "cal 01 1997"
Packit Service f629e6
			com = ("cat " SRCDIR "/pipeio2.in")
Packit Service f629e6
Packit Service f629e6
			# Don't use empty lines, because Windows ECHO does
Packit Service f629e6
			# something different when invoked without arguments
Packit Service f629e6
			while ((com | getline fnam) > 0 && fnam != "") {
Packit Service f629e6
Packit Service f629e6
#				com_tr = "echo " fnam " | tr [0-9]. ..........."
Packit Service f629e6
#				com_tr = "echo " fnam " | sed 's/[0-9]/./g'"
Packit Service f629e6
				com_tr = "echo " fnam " | sed \"s/[0-9]/./g\""
Packit Service f629e6
				# print "\'" com_tr "\'"
Packit Service f629e6
				print "'" com_tr "'"
Packit Service f629e6
Packit Service f629e6
				com_tr | getline nam
Packit Service f629e6
				print nam
Packit Service f629e6
Packit Service f629e6
				# please run that program and take a look at the
Packit Service f629e6
				# output. I think this is what was expected.
Packit Service f629e6
Packit Service f629e6
				# Then comment in the following 4 lines and see
Packit Service f629e6
				# what happens. I expect the first pipe "com | getline"
Packit Service f629e6
				# not to be close, but i think this is exactly what happens
Packit Service f629e6
				# So, is this ok ?
Packit Service f629e6
Packit Service f629e6
				if (close(com_tr) < 0) {
Packit Service f629e6
					print ERRNO
Packit Service f629e6
					break
Packit Service f629e6
				}
Packit Service f629e6
			}
Packit Service f629e6
Packit Service f629e6
			close(com)
Packit Service f629e6
		}
Packit Service f629e6
# ----------- cut here --------------------------------------------
Packit Service f629e6
# 
Packit Service f629e6
# There is another thing i do not understand.
Packit Service f629e6
# Why doesn't the awk - command "close" reports an
Packit Service f629e6
# error, if i would say close("abc") which i had never
Packit Service f629e6
# openend ?
Packit Service f629e6
# 
Packit Service f629e6
# Regards,
Packit Service f629e6
# Ulrich Gvbel
Packit Service f629e6
# -- 
Packit Service f629e6
# /********************************************************\
Packit Service f629e6
# *     Ulrich Gvbel, goebel@quantum.de                    *
Packit Service f629e6
# *     Quantum Gesellschaft f|r Software mbH, Dortmund    *
Packit Service f629e6
# *     phone  : +49-231-9749-201  fax: +49-231-9749-3     *
Packit Service f629e6
# *     private: +49-231-803994    fax: +49-231-803994     *
Packit Service f629e6
# \********************************************************/