Mercurial > emacs
view admin/revdiff @ 73332:56f58b643a80
Merge from upstream, upto version 5.22.
After 5.0:
`cperl-add-tags-recurse-noxs-fullpath': new function (for -batch mode)
Fine-grained changelog:
`cperl-hook-after-change': New configuration variable
`cperl-vc-sccs-header': Likewise.
`cperl-vc-sccs-header': Likewise.
`cperl-vc-header-alist': Default via two preceding variables
`cperl-invalid-face': Remove double quoting under XEmacs
(still needed under 21.2)
`cperl-tips': Update URLs for resources
`cperl-problems': Likewise.
`cperl-praise': Mention new features
New C-c key bindings: for `cperl-find-bad-style',
`cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc',
`cperl-perdoc', `cperl-perldoc-at-point'
CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info"
moved, new submenu of Tools with Ispell entries and narrowing.
`cperl-after-sub-regexp': New defsubst
`cperl-imenu--function-name-regexp-perl': Use `cperl-after-sub-regexp',
Allows heads up to head4
Allow "package;"
`defun-prompt-regexp': Use `cperl-after-sub-regexp',
`paren-backwards-message': ??? Something for XEmacs???
`cperl-mode': Never auto-switch abbrev-mode off
Try to allow '_' be non-word char
Do not use `font-lock-unfontify-region-function' on XEmacs
Reset syntax cache on mode start
Support multiline facification (even
on legacy `font-lock')
`cperl-facemenu-add-face-function': ??? Some contributed code ???
`cperl-after-change-function': Since `font-lock' and `lazy-lock'
refuse to inform us whether the fontification is due to lazy
calling or due to edit to a buffer, install our own hook
(controlled by `cperl-hook-after-change')
`cperl-electric-pod': =cut may have been recognized as start
`cperl-block-p': Moved, updated for attributes
`cperl-calculate-indent': Try to allow '_' be non-word char
Support subs with attributes
`cperl-where-am-i': Queit (?) a warning
`cperl-cached-syntax-table' New function
`cperl-forward-re': Use `cperl-cached-syntax-table'
`cperl-unwind-to-safe': Recognize `syntax-type' property
changing in a middle of line
`cperl-find-sub-attrs': New function
`cperl-find-pods-heres': Allow many <<EOP per line
Allow subs with attributes
Major speedups (3.5x..15x on a real-life
test file nph-proxy.pl)
Recognize "extproc " (OS/2)
case-folded and only at start
/x on s///x with empty replacement was
not recognized
Better comments
`cperl-after-block-p': Remarks on diff with `cperl-block-p'
Allow subs with attributes, labels
Do not confuse "else::foo" with "else"
Minor optimizations...
`cperl-after-expr-p': Try to allow '_' be non-word char
`cperl-fill-paragraph': Try to detect a major bug in Emacs
with `looking-at' inside `narrow' and bulk out if found
`cperl-imenu--create-perl-index': Updates for new
`cperl-imenu--function-name-regexp-perl'
`cperl-outline-level': Likewise
`cperl-init-faces': Allow multiline subroutine headers
and my/our declarations, and ones with comments
Allow subroutine attributes
`cperl-imenu-on-info': Better docstring.
`cperl-etags' Rudimentary support for attributes
Support for packages and "package;"
`cperl-add-tags-recurse-noxs': Better (?) docstring
`cperl-add-tags-recurse-noxs-fullpath': Likewise
`cperl-tags-hier-init': Misprint for `fboundp' fixed
`cperl-not-bad-style-regexp': Try to allow '_' be non-word char
`cperl-perldoc': Add autoload
`cperl-perldoc-at-point': Likewise
`cperl-here-doc-spell': New function
`cperl-pod-spell': Likewise
`cperl-map-pods-heres': Likewise
`cperl-get-here-doc-region': Likewise
`cperl-font-lock-fontify-region-function': Likewise (backward compatibility
for legacy `font-lock')
`cperl-font-lock-unfontify-region-function': Fix style
`cperl-fontify-syntaxically': Recognize and optimize away
deferred calls with no-change. Governed by `cperl-hook-after-change'
`cperl-fontify-update': Recognize that syntaxification region
can be larger than fontification one.
XXXX we leave `cperl-postpone' property, so this is quadratic...
`cperl-fontify-update-bad': Temporary placeholder until
it is clear how to implement `cperl-fontify-update'.
`cperl-time-fontification': New function
`attrib-group': New text attribute
`multiline': New value: `syntax-type' text attribute
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 11 Oct 2006 06:47:35 +0000 |
parents | a8b22f12b3dc |
children | b2e5081b9320 72dea2ff0142 |
line wrap: on
line source
#! /usr/bin/perl # Copyright (C) 2001, 2006 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # # GNU Emacs is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # GNU Emacs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. use File::Basename; if (@ARGV < 3) { print <<USAGE; revdiff FILE OLD NEW Get a diff of FILE between revisions OLD and NEW. Store the diff in a file named FILE-OLD-NEW.diff. If OLD is `-' use FILE's current revision for OLD. If OLD is `-<number>', use the Nth revision before the current one for OLD. If NEW is +<number> or -<number>, build diffs between revisions OLD and OLD +/- <number>. Examples: revdiff FILE - -1 get the latest change of FILE revdiff FILE -1 +1 also gets the latest change of FILE revdiff FILE 1.500 +2 get diffs 1.500-1.501 and 1.501-1.502. USAGE exit 1; } $file = shift @ARGV; $old = shift @ARGV; sub diffit { my ($old, $new) = @_; print "cvs diff -r$old -r$new $file >$file-$old-$new.diff\n"; system "cvs diff -r$old -r$new $file >$file-$old-$new.diff"; } sub current_revision ($) { my ($file) = @_; my $dir = dirname ($file); my $base = basename ($file); my $entries = "$dir/CVS/Entries"; die "Can't find $entries" unless -f $entries; open (IN, "<$entries") or die "Cannot open $entries"; my $rev; while ($line = <IN>) { if ($line =~ m,/$base/([^/]+),) { $rev = $1; break; } } die "Cannot determine current revision of $file" unless $rev; close (IN); return $rev; } if ($old eq "-") { $old = current_revision ($file); } elsif ($old =~ /^-(\d+)$/) { my $offset = $1; $old = current_revision ($file); die "Internal error" unless $old =~ /(.*)\.(\d+)$/; my $minor = $2 - $offset; $old = sprintf ("%d.%d", $1, $minor); } while (@ARGV) { my $new = shift @ARGV; if ($new =~ /^[+]\d+$/) { my $n = $new; for ($i = 0; $i < $n; ++$i) { unless ($old =~ /(.*)\.(\d+)$/) { die "Internal error"; } my $j = $2 + 1; $new = "$1.$j"; diffit ($old, $new); $old = $new; } } elsif ($new =~ /^[-]\d+$/) { my $n = - $new; for ($i = 0; $i < $n; ++$i) { unless ($old =~ /(.*)\.(\d+)$/) { die "Internal error"; } my $j = $2 - 1; $new = "$1.$j"; diffit ($new, $old); $old = $new; } } else { diffit ($old, $new); $old = $new; } } # Local Variables: # mode: cperl # End: # arch-tag: 2798b20d-c7f2-4c78-8378-7bb529c36a09