code: plan9front

ref: 28f76455d39d990b47c6e46e18158f0a9ba09d25
dir: /rc/bin/redact/

View raw version
#!/bin/rc
rfork e
switch($#*){
case 0
	n=1
case 1
	n = $1
case *
	echo usage: $0 [n] >[1=2]
	exit usage
}
ifs='
'
p=`{echo -n $prompt(1) | sed 's/[.*+?[\]()|\^$\/\\]/\\&/g'}
awk '
	BEGIN {
		n='^$n^' + 1;
		for(i = 0; i < n; i++)
			a[i] = 0;
	}
	/^'^$p^'/ {
		for(i = 0; i < n-1; i++)
			a[i] = a[i+1];
		a[n-1] = 0;
	}
	{
		a[n-1] += length($0) + 1;
	}
	END {
		s = 0;
		for(i = 0; i < n; i++)
			s += a[i];
		for(i = 0; i < s; i++)
			printf("\b");
	}
' /dev/text