[gnu.g++.bug] gsub problems with libg++ 1.32

jason@MTXINU.COM (Jason Venner) (02/22/89)

Given the input 'Hello There' the following program core dumps when
printing out the damaged String tester.

#include	<stdio.h>
#include	<stream.h>
#include	<String.h>

main( int argc, char** argv )
{

	char	buf[2*1024];
	Regex	angle("<[^ \t>]+>");
	Regex Re("[ \t]+$");
	Regex White( "[ \t]+" );
	String result;

	while( gets(buf) ){
		String tester( buf );
		printf( "tester is '%s'\n", (char*) tester );
		if( tester.contains(White)>=0 ) {
			printf( "Match for '%s'\n", (char*) "WHITE" );
			tester.gsub(White, "W");
			printf( "'%s' -> '%s'\n", buf, (char*) tester );
			cout << tester << '\n';
		}
		tester = buf;
		if( tester.contains(angle)>=0 ) {
			printf( "Match for '%s'\n", (char*) "ANGLE" );
			tester.gsub(angle, "X");
			printf( "'%s' -> '%s'\n", buf, (char*) tester );
			cout << tester << '\n';
		}
		tester = buf;
		if( tester.contains(Re)>=0 ) {
			printf( "Match for '%s'\n", (char*) "END" );
			tester.gsub(Re, "E" );
			printf( "'%s' -> '%s'\n", buf, (char*) tester );
			cout << tester << '\n';
		}
	}
	exit( 0 );
}