summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-10 09:10:58 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-10 09:10:58 +0000
commit30e90a335d15a0b7766ea0f0c981a523d5ba0be8 (patch)
tree1a0071fd37af239c2c634aac3037d4e308f270b8
parentaa9457762f46fd85022130538fe962166147b886 (diff)
* tool/transcode-tblgen.rb: record checksum of
transcode-tblgen.rb itself. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--tool/transcode-tblgen.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3020d7a799..172b4d8e86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Aug 10 18:09:16 2008 Tanaka Akira <akr@fsij.org>
+
+ * tool/transcode-tblgen.rb: record checksum of
+ transcode-tblgen.rb itself.
+
Sun Aug 10 12:34:41 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* config.guess ({powerpc-apple,i586-pc}-haiku): re-applied r18403.
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index 4e7cbc516f..3459bd8bf1 100644
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -565,7 +565,11 @@ dir = File.dirname(arg)
$:.unshift dir unless $:.include? dir
src = File.read(arg)
src.force_encoding("ascii-8bit") if src.respond_to? :force_encoding
+this_script = File.read(__FILE__)
+this_script.force_encoding("ascii-8bit") if this_script.respond_to? :force_encoding
+
base_signature = "/* autogenerated. */\n"
+base_signature << "/* #{make_signature(File.basename(__FILE__), this_script)} */\n"
base_signature << "/* #{make_signature(File.basename(arg), src)} */\n"
if !force_mode && output_filename && File.readable?(output_filename)
@@ -574,14 +578,14 @@ if !force_mode && output_filename && File.readable?(output_filename)
old_signature.each_line {|line|
if %r{/\* src="([0-9a-z_.-]+)",} =~ line
name = $1
- next if name == File.basename(arg)
+ next if name == File.basename(arg) || name == File.basename(__FILE__)
path = File.join(dir, name)
if File.readable? path
chk_signature << "/* #{make_signature(name, File.read(path))} */\n"
end
end
}
- if old_signature == chk_signature && File.mtime(__FILE__) < File.mtime(output_filename)
+ if old_signature == chk_signature
now = Time.now
File.utime(now, now, output_filename)
STDERR.puts "already up-to-date: #{output_filename}" if VERBOSE_MODE