diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-19 01:08:00 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-19 01:08:00 +0000 |
commit | 16ba36042340103b4f079a370238f54c4696bac1 (patch) | |
tree | db0583b55ffcc328736d9c4863f9e44bab3d5a82 | |
parent | 56d8b8701df75d7bd8b0c402c624f38c56385c92 (diff) | |
download | ruby-16ba36042340103b4f079a370238f54c4696bac1.tar.gz |
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
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | template/prelude.c.tmpl | 2 | ||||
-rw-r--r-- | tool/vpath.rb | 5 |
3 files changed, 12 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Wed Nov 19 10:07:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * 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 <usa@ruby-lang.org> * 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 |