#!/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; }