From 16ba36042340103b4f079a370238f54c4696bac1 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 19 Nov 2014 01:08:00 +0000 Subject: prelude.c.tmpl: strip prefix * template/prelude.c.tmpl (Prelude#translate): strip VPATH prefix from prelude names, so that srcdir diffrences do not make the generated code diffrent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ template/prelude.c.tmpl | 2 +- tool/vpath.rb | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4e5aac7ab8..7b3cf73199 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Nov 19 10:07:57 2014 Nobuyoshi Nakada + + * template/prelude.c.tmpl (Prelude#translate): strip VPATH prefix + from prelude names, so that srcdir diffrences do not make the + generated code diffrent. + Wed Nov 19 07:45:11 2014 NAKAMURA Usaku * win32/win32.c (rb_w32_write): should set the error of diff --git a/template/prelude.c.tmpl b/template/prelude.c.tmpl index e1859fd436..c2f41da0c3 100644 --- a/template/prelude.c.tmpl +++ b/template/prelude.c.tmpl @@ -41,7 +41,7 @@ class Prelude idx = @preludes[filename] return idx if idx lines = [] - result = [@preludes.size, filename, lines, sub] + result = [@preludes.size, @vpath.strip(filename), lines, sub] @vpath.foreach(filename) do |line| @preludes[filename] ||= result line.sub!(/(?:^|\s+)\#(?:$|\s.*)/, '') diff --git a/tool/vpath.rb b/tool/vpath.rb index 0c8d6071ea..48ab148405 100644 --- a/tool/vpath.rb +++ b/tool/vpath.rb @@ -79,4 +79,9 @@ class VPath end @list end + + def strip(path) + prefix = list.map {|dir| Regexp.quote(dir)} + path.sub(/\A#{prefix.join('|')}(?:\/|\z)/, '') + end end -- cgit v1.2.3