head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC7:1.1.1.1
	netbsd-11-0-RC6:1.1.1.1
	netbsd-11-0-RC5:1.1.1.1
	netbsd-11-0-RC4:1.1.1.1
	NAWK20260426:1.1.1.1
	netbsd-11-0-RC3:1.1.1.1
	netbsd-11-0-RC2:1.1.1.1
	netbsd-11-0-RC1:1.1.1.1
	perseant-exfatfs-base-20250801:1.1.1.1
	netbsd-11:1.1.1.1.0.14
	netbsd-11-base:1.1.1.1
	netbsd-10-1-RELEASE:1.1.1.1
	NAWK20240817:1.1.1.1
	perseant-exfatfs-base-20240630:1.1.1.1
	perseant-exfatfs:1.1.1.1.0.12
	perseant-exfatfs-base:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.1
	netbsd-10-0-RC6:1.1.1.1
	netbsd-10-0-RC5:1.1.1.1
	netbsd-10-0-RC4:1.1.1.1
	netbsd-10-0-RC3:1.1.1.1
	netbsd-10-0-RC2:1.1.1.1
	netbsd-10-0-RC1:1.1.1.1
	netbsd-10:1.1.1.1.0.10
	netbsd-10-base:1.1.1.1
	cjep_sun2x-base1:1.1.1.1
	cjep_sun2x:1.1.1.1.0.8
	cjep_sun2x-base:1.1.1.1
	cjep_staticlib_x-base1:1.1.1.1
	cjep_staticlib_x:1.1.1.1.0.6
	cjep_staticlib_x-base:1.1.1.1
	phil-wifi-20200421:1.1.1.1
	phil-wifi:1.1.1.1.0.4
	phil-wifi-20200411:1.1.1.1
	is-mlppp:1.1.1.1.0.2
	is-mlppp-base:1.1.1.1
	phil-wifi-20200406:1.1.1.1
	NAWK20200218:1.1.1.1
	NAWK:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2020.02.18.20.50.46;	author christos;	state Exp;
branches
	1.1.1.1;
next	;
commitid	1DQROEYOeROjmcXB;

1.1.1.1
date	2020.02.18.20.50.46;	author christos;	state Exp;
branches
	1.1.1.1.4.1;
next	;
commitid	1DQROEYOeROjmcXB;

1.1.1.1.4.1
date	2020.02.18.20.50.46;	author martin;	state dead;
branches;
next	1.1.1.1.4.2;
commitid	X01YhRUPVUDaec4C;

1.1.1.1.4.2
date	2020.04.13.08.02.18;	author martin;	state Exp;
branches;
next	;
commitid	X01YhRUPVUDaec4C;


desc
@@


1.1
log
@Initial revision
@
text
@echo T.getline: test getline function

awk=${awk-../a.out}

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline)
		print
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (bare getline)'

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline xxx)
		print xxx
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (getline xxx)'

$awk '
BEGIN {
	while (getline <"/etc/passwd")
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <file)'

cat /etc/passwd | $awk '
BEGIN {
	while (getline <"-")	# stdin
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <"-")'

$awk '
BEGIN {
	while (getline <ARGV[1])
		print
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <arg)'

$awk '
BEGIN {
	while (getline x <ARGV[1])
		print x
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline x <arg)'

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline)
		print
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline)'

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline x)
		print x
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline x)'

$awk ' BEGIN { print getline <"/glop/glop/glop" } ' >foo
echo '-1' >foo1
cmp -s foo foo1 || echo 'BAD: T.getline (non-existent file)'

echo 'false false equal' >foo1
$awk 'BEGIN {
	"echo 0" | getline
	if ($0) printf "true " 
	else printf "false "
	if ($1) printf "true " 
	else printf "false "
	if ($0==$1) printf "equal\n"
	else printf "not equal\n"
}' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad $0 type in cmd|getline'

echo 'L1
L2' | $awk 'BEGIN { $0="old stuff"; $1="new"; getline x; print}' >foo1
echo 'new stuff' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad update $0'
@


1.1.1.1
log
@Last import was 2010 when there was no ChangeLog yet. I've worked
with upstream to merge all our changes and this includes many other
fixes including new operator support etc. The change to pass an
extra "isnew" argument to open was not preserved as none of the
tests supplied with the PR fail.

This also adds the testsuite and all the bugs fixed since then.
@
text
@@


1.1.1.1.4.1
log
@file T.getline was added on branch phil-wifi on 2020-04-13 08:02:18 +0000
@
text
@d1 98
@


1.1.1.1.4.2
log
@Mostly merge changes from HEAD upto 20200411
@
text
@a0 98
echo T.getline: test getline function

awk=${awk-../a.out}

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline)
		print
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (bare getline)'

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline xxx)
		print xxx
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline (getline xxx)'

$awk '
BEGIN {
	while (getline <"/etc/passwd")
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <file)'

cat /etc/passwd | $awk '
BEGIN {
	while (getline <"-")	# stdin
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <"-")'

$awk '
BEGIN {
	while (getline <ARGV[1])
		print
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <arg)'

$awk '
BEGIN {
	while (getline x <ARGV[1])
		print x
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline x <arg)'

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline)
		print
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline)'

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline x)
		print x
	exit
}
' /etc/passwd >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (cat arg | getline x)'

$awk ' BEGIN { print getline <"/glop/glop/glop" } ' >foo
echo '-1' >foo1
cmp -s foo foo1 || echo 'BAD: T.getline (non-existent file)'

echo 'false false equal' >foo1
$awk 'BEGIN {
	"echo 0" | getline
	if ($0) printf "true " 
	else printf "false "
	if ($1) printf "true " 
	else printf "false "
	if ($0==$1) printf "equal\n"
	else printf "not equal\n"
}' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad $0 type in cmd|getline'

echo 'L1
L2' | $awk 'BEGIN { $0="old stuff"; $1="new"; getline x; print}' >foo1
echo 'new stuff' >foo2
cmp -s foo1 foo2 || echo 1>&2 'BAD: T.getline bad update $0'
@


