!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/lib/python2.4/site-packages/Ft/Xml/Xslt/   drwxr-xr-x
Free 3.98 GB of 27.03 GB (14.74%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     CallTemplateElement.py (3.43 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
########################################################################
#
# File Name:            CallTemplateElement.py
#
# Documentation:        http://docs.4suite.org/4XSLT/CallTemplateElement.py.html
#
"""
Implementation of the XSLT Spec call-template stylesheet element.
WWW: http://4suite.org/4XSLT        e-mail: support@4suite.org

Copyright (c) 1999-2001 Fourthought Inc, USA.   All Rights Reserved.
See  http://4suite.org/COPYRIGHT  for license and copyright information
"""

from xml.dom import Node
from Ft.Xml import EMPTY_NAMESPACE
from Ft.Xml.Xslt import XsltElement, XsltRuntimeException, Error, XSL_NAMESPACE
from Ft.Xml.Xslt import CategoryTypes, AttributeInfo, ContentInfo

class CallTemplateElement(XsltElement):

    category = CategoryTypes.INSTRUCTION
    content = ContentInfo.Rep(ContentInfo.QName(XSL_NAMESPACE, 'xsl:with-param'))
    legalAttrs = {
        'name' : AttributeInfo.QName(required=1),
        }

    doesSetup = doesPrime = 1

    def setup(self):
        self._tail_recursive = 0
        self._called_template = None
        self._params = map(lambda with_param:
                           (with_param, with_param._name, with_param._select),
                           self.children)
        return
        
    def prime(self, processor, context):
        self._called_template = processor._namedTemplates.get(self._name)
        if not self._called_template:
            return

        # check for tail recursion
        current = self.parent
        while current is not processor.stylesheet:
            if current is self._called_template:
                # we are within the template that we call
                if self.isLastChild():
                    use_tail = 1
                    node = self.parent
                    while node is not current:
                        if not (node.isLastChild() and \
                                (node.expandedName[0] == XSL_NAMESPACE and
                                 node.expandedName[1] in ['choose', 'if',
                                                          'otherwise', 'when'])
                                ):
                            use_tail = 0
                            break
                        node = node.parent
                    self._tail_recursive = use_tail
                break
            current = current.parent
        return

    def instantiate(self, context, processor):
        # setup parameters for called template

        # This handles the case of top-level variables using call-templates
        if not self._called_template:
            self.prime(processor, context)
            self._called_template = processor._namedTemplates.get(self._name)
            if not self._called_template:
                raise XsltRuntimeException(Error.NAMED_TEMPLATE_NOT_FOUND,
                                           self, self._name)
            self._called_template.prime(processor, context)

        # We need to calculate the parameters before the variable context
        # is changed back in the template element
        params = {}
        for (param, name, expr) in self._params:
            context.processorNss = param.namespaces
            context.currentInstruction = param
            params[name] = expr.evaluate(context)

        if self._tail_recursive:
            context.recursiveParams = params
        else:
            context.currentNode = context.node
            self._called_template.instantiate(context, processor, params)
        return

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0036 ]--