From d75c4b82131d175cbd37789f8cdd7efb5cf59b30 Mon Sep 17 00:00:00 2001
From: mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 15 May 2006 23:04:02 +0000
Subject: [PATCH] revert; perl version was entirely too slow

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3783 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 scripts/timestamp.pl | 33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

diff --git a/scripts/timestamp.pl b/scripts/timestamp.pl
index 9735dd61e..dc47e24aa 100755
--- a/scripts/timestamp.pl
+++ b/scripts/timestamp.pl
@@ -1,35 +1,24 @@
 #!/usr/bin/perl
 use strict;
-use File::stat;
-
-sub crawl($$) {
-	my $path = shift;
-	my $options = shift;
-	my @results = $path;
-	opendir(DIR,$path);
-	foreach my $file (readdir(DIR)) {
-		if ($file !~m/^(\.(svn|\.?)|CVS$options)$/) {
-			push @results, crawl("$path/$file",$options);
-		}
-	}
-	closedir(DIR);
-	return @results; 
-}
 
 sub get_ts($$) {
 	my $path = shift;
 	my $options = shift;
 	my $ts = 0;
 	my $fn = "";
-	my @search = crawl($path,$options);
-	while (@search) {
-		my $file = shift @search;
-		my $mtime = stat($file)->mtime;
-		if ($mtime > $ts) {
-			$ts = $mtime;
+	open FIND, "find $path -not -path \\*.svn\\* -and -not -path \\*CVS\\* $options 2>/dev/null |";
+	while (<FIND>) {
+		chomp;
+		my $file = $_;
+		open FILE, "<$file";
+		my @stat = stat FILE;
+		close FILE;
+		if ($stat[9] > $ts) {
+			$ts = $stat[9];
 			$fn = $file;
 		}
 	}
+	close FIND;
 	return ($ts, $fn);
 }
 
@@ -41,7 +30,7 @@ while (@ARGV > 0) {
 	my $path = shift @ARGV;
 	if ($path =~ /^-x/) {
 		my $str = shift @ARGV;
-		$options{"-x"} .= "|".$str;
+		$options{"-x"} .= " -and -not -path \\*".$str."\\*"
 	} elsif ($path =~ /^-/) {
 		$options{$path} = 1;
 	} else {
-- 
2.20.1