Extend handling for \let a bit, to also allow \let\something=<character>. We

still don't support things like \let^^M=\something, where ^^M could actually be
any active character.  Print a decent warning if we find one we can't handle.
This commit is contained in:
Fred Drake 1998-05-15 13:45:54 +00:00
parent 8d1b3384c3
commit 7a4ad0fc83
1 changed files with 12 additions and 1 deletions

View File

@ -63,12 +63,23 @@ sub ArabictoRoman {
sub do_cmd_let{
local($_) = @_;
my $matched = 0;
s/\s*[\\]([a-zA-Z]+)\s*(=\s*)?[\\]([a-zA-Z]*)/$matched=1; ''/e;
s/[\\]([a-zA-Z]+)\s*(=\s*)?[\\]([a-zA-Z]*)/$matched=1; ''/e;
if ($matched) {
my($new, $old) = ($1, $3);
eval "sub do_cmd_$new { do_cmd_$old" . '(@_); }';
print "\ndefining handler for \\$new using \\$old\n";
}
else {
s/[\\]([a-zA-Z]+)\s*(=\s*)?([^\\])/$matched=1; ''/es;
if ($matched) {
my($new, $char) = ($1, $3);
eval "sub do_cmd_$new { \"\\$char\" . \@_[0]; }";
print "\ndefining handler for \\$new to insert '$char'\n";
}
else {
write_warnings("Could not interpret \\let construct...");
}
}
$_;
}