You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
584 B

#!/usr/bin/perl -i -p
use strict;
use warnings;
# We only need to use "\&'" or "\&." at the start of a line.
s/(?<=.)\\\&(['.])/$1/g;
# Some quotes turn into open/close quotes.
s/'(.)'/\\(oq$1\\(cq/g;
s/(^|[ (])"(?!( |$))/$1\\(lq/gm;
s/(?<! )"([.,:;! )]|$)/\\(rq$1/gm;
s/(\\\(lq[^(]*) "( |$)/$1 \\(rq$2/gm;
s/(^| )" ([^(]*\\\(rq)/$1\\(lq $2/gm;
# And some don't.
s/^([. ])(.*)/ $1 . realquotes($2) /egm;
s/(\\f(B|\(CW).*?\\fP)/ realquotes($1) /egs;
s/^\\\&(\\\(oq)/$1/gm;
sub realquotes
{
my($txt) = @_;
$txt =~ s/\\\([lr]q/"/g;
$txt =~ s/\\\([oc]q/'/g;
$txt;
}