diff options
author | Fred Drake <fdrake@acm.org> | 1998-05-15 04:28:37 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 1998-05-15 04:28:37 (GMT) |
commit | e16f6798ae8936c9198ee214edf110be77c56c20 (patch) | |
tree | f018748206c02557d0b7ef4a6e5673d4e376a0e8 | |
parent | 532246ef550f0c305a57240932429ba1e6314d30 (diff) | |
download | cpython-e16f6798ae8936c9198ee214edf110be77c56c20.zip cpython-e16f6798ae8936c9198ee214edf110be77c56c20.tar.gz cpython-e16f6798ae8936c9198ee214edf110be77c56c20.tar.bz2 |
do_cmd_let(): Simple implementation to allow \let to be used to establish
synonyms for macros. This supports:
\let\newname = \oldname
\let\newname\oldname
This is useful sometimes, and can at least avoid real errors at other times.
-rw-r--r-- | Doc/perl/python.perl | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl index 536f324..8882b31 100644 --- a/Doc/perl/python.perl +++ b/Doc/perl/python.perl @@ -55,6 +55,24 @@ sub ArabictoRoman { $D2[$c[2]] . $D1[$c[1]] . $D0[$c[0]]; } + +# This is a fairly simple hack; it supports \let when it is used to create +# (or redefine) a macro to exactly be some other macro: \let\newname=\oldname. +# Many uses of \let aren't supported. +# +sub do_cmd_let{ + local($_) = @_; + my $matched = 0; + s/\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"; + } + $_; +} + + # words typeset in a special way (not in HTML though) sub do_cmd_ABC{ 'ABC' . @_[0]; } @@ -84,9 +102,9 @@ sub do_cmd_authoraddress{ $_; } -sub do_cmd_developer{ do_cmd_author(@_[0]); } -sub do_cmd_developers{ do_cmd_author(@_[0]); } -sub do_cmd_developersaddress{ do_cmd_authoraddress(@_[0]); } +#sub do_cmd_developer{ do_cmd_author(@_[0]); } +#sub do_cmd_developers{ do_cmd_author(@_[0]); } +#sub do_cmd_developersaddress{ do_cmd_authoraddress(@_[0]); } sub do_cmd_hackscore{ local($_) = @_; |