mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-23 07:18:53 +00:00
73 lines
1.6 KiB
Perl
73 lines
1.6 KiB
Perl
|
#!/usr/bin/perl
|
||
|
|
||
|
$file1 = shift;
|
||
|
$file2 = shift;
|
||
|
|
||
|
open file1,"<$file1" or die;
|
||
|
while (<file1>) {
|
||
|
if (m/^\s*\((defun|defsubst|defmacro|defcustom|defgroup|defface|defvar|defconst)\s+([-a-zA-Z0-9]+)/) {
|
||
|
if ($1 eq "defun") {
|
||
|
$fun1{$2}++;
|
||
|
} elsif ($1 eq "defsubst") {
|
||
|
$subst1{$2}++;
|
||
|
} elsif ($1 eq "defmacro") {
|
||
|
$macro1{$2}++;
|
||
|
} elsif ($1 eq "defgroup") {
|
||
|
$group1{$2}++;
|
||
|
} elsif ($1 eq "defcustom") {
|
||
|
$custom1{$2}++;
|
||
|
} elsif ($1 eq "defface") {
|
||
|
$face1{$2}++;
|
||
|
} elsif ($1 eq "defvar") {
|
||
|
$var1{$2}++;
|
||
|
} elsif ($1 eq "defconst") {
|
||
|
$const1{$2}++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
close file1;
|
||
|
|
||
|
open file2,"<$file2" or die;
|
||
|
while (<file2>) {
|
||
|
if (m/^\s*\((defun|defsubst|defmacro|defcustom|defgroup|defface|defvar|defconst)\s+([-a-zA-Z0-9]+)/) {
|
||
|
if ($1 eq "defun") {
|
||
|
$fun2{$2}++;
|
||
|
} elsif ($1 eq "defsubst") {
|
||
|
$subst2{$2}++;
|
||
|
} elsif ($1 eq "defmacro") {
|
||
|
$macro2{$2}++;
|
||
|
} elsif ($1 eq "defgroup") {
|
||
|
$group2{$2}++;
|
||
|
} elsif ($1 eq "defcustom") {
|
||
|
$custom2{$2}++;
|
||
|
} elsif ($1 eq "defface") {
|
||
|
$face2{$2}++;
|
||
|
} elsif ($1 eq "defvar") {
|
||
|
$var2{$2}++;
|
||
|
} elsif ($1 eq "defconst") {
|
||
|
$const2{$2}++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
close file2;
|
||
|
|
||
|
foreach $type ("fun","subst","macro","group","custom","face","var","const") {
|
||
|
$cmd1 = '%n1 = %' . $type . "1;";
|
||
|
$cmd2 = '%n2 = %' . $type . "2;";
|
||
|
eval $cmd1;
|
||
|
eval $cmd2;
|
||
|
|
||
|
print "$type added:\n";
|
||
|
foreach (keys %n2) {
|
||
|
unless (defined $n1{$_}) {
|
||
|
print " $_\n";
|
||
|
}
|
||
|
}
|
||
|
print "$type removed:\n";
|
||
|
foreach (keys %n1) {
|
||
|
unless (defined $n2{$_}) {
|
||
|
print " $_\n";
|
||
|
}
|
||
|
}
|
||
|
}
|