#!/usr/local/bin/perl

$maxlen = 80;

while ( 0 <= $#ARGV && $ARGV[0] =~ /^-/ ) {
	if ( $ARGV[0] eq "--" ) {
		shift(@ARGV);
		last;
	} elsif ( $ARGV[0] eq "-help" ) {
		print "usage: $0 [-width] [file]\n";
		exit 0;
	} else {
		$maxlen = -$ARGV[0];
		shift(@ARGV);
	}
}

while (<>) {
	if ( length($_) <= $maxlen ) {
		print;
		next;
	}

	chop;
	$word = "";
	$line = "";
	@char=split("", $_);
	for (@char) {
		if ( $_ =~ "[_a-zA-Z]"  ) {
			$word .= $_;
			if ( $line ne "" && $maxlen <= length($line) + length($word) ) {
				print $line, "\n";
				$line = "";
			}
		} else {
			if ( $word ne "" ) {
				if ( $_ eq "-" ) {
					$word .= $_;
					$_ = "";
				}
				$line .= $word;
				$word = "";
			}

			if ( $maxlen <= length($line) ) {
					print $line, "\n";
					$line = "";
			}

			if ( $line ne "" || $_ !~ "[ \t\v]" ) {
				$line .= $_;
			}
		}
	}
	$line .= $word;
	if ( $line ne "" ) {
		print $line, "\n";
	}
}
exit 0

