diff options
author | green <green@FreeBSD.org> | 2001-03-13 09:53:04 +0800 |
---|---|---|
committer | green <green@FreeBSD.org> | 2001-03-13 09:53:04 +0800 |
commit | b43c51f3309f3cf98c103e870fc79049abee836e (patch) | |
tree | 81fe0012cd85388b0876cb2a348f348941d8f5d4 /Tools/scripts | |
parent | eb4b9b729c9016c7ec2257d7f3b468c8b4f523a0 (diff) | |
download | freebsd-ports-gnome-b43c51f3309f3cf98c103e870fc79049abee836e.tar.gz freebsd-ports-gnome-b43c51f3309f3cf98c103e870fc79049abee836e.tar.zst freebsd-ports-gnome-b43c51f3309f3cf98c103e870fc79049abee836e.zip |
Make plist work again with new-found use of line continuation in
mtree files.
Diffstat (limited to 'Tools/scripts')
-rwxr-xr-x | Tools/scripts/plist | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/Tools/scripts/plist b/Tools/scripts/plist index 573a3ca21222..04feddf1456a 100755 --- a/Tools/scripts/plist +++ b/Tools/scripts/plist @@ -42,35 +42,42 @@ class Mtree @paths = [] @curlevel = [] @strip = strip.to_i + @cont = false self end def parse_line(line) - line.gsub!(/^[[:space:]]*(.*?)[[:space:]]*$/, '\1') line.chomp! - case line - when '' + spline = line.split + oldcont = @cont + @cont = line[-1, 1] == "\\" + case spline[0] + when nil when /^[\/#]/ # ignore "command" lines and comments when '..' + if oldcont + raise 'continued line has a .. directive?!' + end if @curlevel.pop.nil? raise '".." with no previous directory' end else - line = line.split - @curlevel.push(line[0]) - @paths.push(@curlevel.dup) + if !oldcont + @curlevel.push(spline[0]) + @paths.push(@curlevel.dup) + end end self end def Mtree.read(filename) m = Mtree.new open(filename, 'r') {|file| - file.each_line {|line| m.parse_line(line)} + file.each_line {|line| m.parse_line(line)} } m end - def paths - @paths.collect {|path| path[@strip..-1].join('/')} + def paths(strip = @strip) + @paths.collect {|path| path[strip..-1].join('/')} end end |