Menu

#2 [%include %] functionality by Wai-Sun Chia

open
nobody
None
5
2003-04-23
2003-04-23
Brian Wisti
No

--- PageTemplate.rb.orig Tue Aug 6 20:58:46 2002
+++ PageTemplate.rb Wed Aug 7 11:38:30 2002
@@ -778,7 +778,8 @@ style.
'ifbranch' => /^\s*else\s*$/,
'loopopen' => /^\s*in (\w+)\s*$/,
'loopclose' => /^\s*endin\s*$/,
- 'loopbranch' => /^\s*no\s*$/
+ 'loopbranch' => /^\s*no\s*$/,
+ 'include' => /^\s*include ([\w.\/\\]+)\s*$/
)

########################################################################
@@ -951,6 +952,8 @@ file which contains the original
((|sour

if directive == "value"
command = ValueCommand.new(value)
+ elsif directive == "include"
+ command = includeFile(filename,
value)
elsif directive =~ /^(\w+?)open$/
mainBlock = nil
branchBlock = nil
@@ -1018,6 +1021,17 @@ file which contains the original
((|sour

# Return compiled BlockCommand
return commands
+ end
+
+ private
+ def includeFile(oldFile, incFile)
+ oldFile.reverse =~ /^[^\\\/]*(.*)/
+ newFile = $1.reverse << incFile
+ file = File.open(newFile.untaint) # sq:
$SAFE=1 -> $SAFE=0
+ source = file.readlines
+ parsed = parse(source, newFile)
+ commands = compile(parsed, newFile)
+ return commands
end

private

Discussion


Log in to post a comment.