#!/usr/bin/perl use strict; use warnings; my @filelist; foreach my $dir (@ARGV) { opendir(DIR, $dir) || die "Unable to open directory \"$dir\".\n"; push(@filelist, map {"$dir/$_"} grep(/\.m$/, readdir(DIR))); } my %deptonew; my %filetodep; foreach my $file (@filelist) { open(FILE, $file) || die "Unable to open $file\n"; my @filelines = ; close(FILE); chomp(@filelines); my ($fline) = grep(/^\ *function\ +(.*?)\ *=\ *(.*?)\ /, @filelines); my $retname = ""; my $depfname = ""; if ($fline =~ /function\ +(.*?)\ *=\ *(.*?)\ /) { $retname = $1; $depfname = $2; } my ($retline) = grep(/^\ *$retname.*?=\ *(.*?)\ /, @filelines); my $newfname = ""; if ($retline =~ /^\ *$retname.*?=\ *(.*?)\ /) { $newfname = $1; } if ($depfname =~ /^$/ || $newfname =~ /^$/) { print "ERROR: Cannot find information for $file\n"; } else { $filetodep{$file} = $depfname; $deptonew{$depfname} = $newfname; print "$depfname => $newfname\n"; open(FILE, ">$file") || die "Unable to write to $file\n"; foreach my $line (@filelines) { print FILE "$line\n"; if ($line =~ /^function/) { print FILE "\n __warn_deprecated__ (\"$depfname\", \"$newfname\")\n\n"; } } close(FILE); } }