diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index d1ee802..8a24f44 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -99,7 +99,7 @@ module Rscons end end if @build_root and not found_match - unless source_fname.start_with?('/') or source_fname =~ %r{^\w:[\\/]} + unless source_fname.absolute_path? build_fname = "#{@build_root}/#{build_fname}" end end diff --git a/lib/rscons/monkey/string.rb b/lib/rscons/monkey/string.rb index b17ebef..bb70541 100644 --- a/lib/rscons/monkey/string.rb +++ b/lib/rscons/monkey/string.rb @@ -17,4 +17,9 @@ class String def set_suffix(suffix = '') sub(/\.[^.]*$/, suffix) end + + # Return whether the string represents an absolute filesystem path + def absolute_path? + self =~ %r{^(/|\w:[\\/])} + end end