+ elsif (s{^(?:[ \t]+([~^]))?(?=[ \t]){}}{}) {
+ my $prefix =
+ !$1 ? $dir_prefix :
+ $1 eq '~' ? '$(abs_top_srcdir)'.$dir_suffix :
+ $1 eq '~' ? '$(abs_top_srcdir)'.$dir_suffix :
+ die;
+ my $after='';
+ if (m{([ \t])$esc}) { ($_,$after) = ($`, $1.$'); }
+ s{(?<=[ \t])(?=\S)(?!\\\s*$)}{$prefix}g;
+ o $_;
+ $_ = $after;
+ } elsif (s{^![ \t]+}{}) {
+ o $_;
+ $_ = '';
+ } elsif (s{^!(\pPosixWord+|\pPosixPunct+)[ \t]*}{}) {
+ $esclit = $1;
+ $esc = $esclit;
+ $esc =~ s/\W/\\$&/g;
+ } else {
+ die "bad escape $esclit$_ ";
+ }
+ }