Embperl

 view release on metacpan or  search on metacpan

epcmd.c  view on Meta::CPAN

			/*in*/ const char *   sArg) ;
static int CmdForeach (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int CmdEndforeach (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;

static int CmdHidden (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int CmdVar (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int CmdSub (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int CmdEndsub (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;

static int HtmlTable (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlTableHead (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlSelect (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlEndselect (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlOption (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlEndtable (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlRow (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlEndrow (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlInput (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlTextarea (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlEndtextarea (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlBody (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlA (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlIMG (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlASRC (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlForm (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlEndform (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;
static int HtmlMeta (/*i/o*/ register req * r,
			/*in*/ const char *   sArg) ;

    

struct tCmd CmdTab [] =
    {
        /* cmdname    function        push pop  type         scan save no          disable            bHtml  */
        { "/dir",     HtmlEndtable,     0, 1, cmdTable,         0, 0, cnDir    , optDisableTableScan, 1 } ,
        { "/dl",      HtmlEndtable,     0, 1, cmdTable,         0, 0, cnDl     , optDisableTableScan, 1 } ,
        { "/form",    HtmlEndform,      0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "/menu",    HtmlEndtable,     0, 1, cmdTable,         0, 0, cnMenu   , optDisableTableScan, 1 } ,
        { "/ol",      HtmlEndtable,     0, 1, cmdTable,         0, 0, cnOl     , optDisableTableScan, 1 } ,
        { "/select",  HtmlEndselect,    0, 1, cmdTable,         0, 0, cnSelect , optDisableSelectScan, 1 } ,
        { "/table",   HtmlEndtable,     0, 1, cmdTable,         0, 0, cnTable  , optDisableTableScan, 1 } ,
        { "/textarea", HtmlEndtextarea, 0, 1, cmdTextarea,      0, 0, cnNop    , optDisableInputScan, 1 } ,
        { "/tr",      HtmlEndrow,       0, 1, cmdTablerow,      0, 0, cnTr     , optDisableTableScan, 1 } ,
        { "/ul",      HtmlEndtable,     0, 1, cmdTable,         0, 0, cnUl     , optDisableTableScan, 1 } ,
        { "a",        HtmlA,            0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "body",     HtmlBody,         0, 0, cmdNorm,          1, 0, cnNop    , 0                  , 1 } ,
        { "dir",      HtmlTable,        1, 0, cmdTable,         1, 0, cnDir    , optDisableTableScan, 1 } ,
        { "dl",       HtmlTable,        1, 0, cmdTable,         1, 0, cnDl     , optDisableTableScan, 1 } ,
        { "do",       CmdDo,            1, 0, cmdDo,            0, 0, cnNop    , 0                  , 0 } ,
        { "else",     CmdElse,          0, 0, cmdIf,            0, 0, cnNop    , 0                  , 0 } ,
        { "elsif",    CmdElsif,         0, 0, cmdIf,            0, 0, cnNop    , 0                  , 0 } ,
        { "embed",    HtmlASRC,          0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "endforeach", CmdEndforeach,  0, 1, cmdForeach,       0, 0, cnNop    , 0                  , 0 } ,
        { "endif",    CmdEndif,         0, 1, (enum tCmdType)(cmdIf | cmdEndif), 0, 0, cnNop    , 0,  0 } ,
        { "endsub",   CmdEndsub,        0, 1, cmdSub,           0, 0, cnNop    , 0                  , 0 } ,
        { "endwhile", CmdEndwhile,      0, 1, cmdWhile,         0, 0, cnNop    , 0                  , 0 } ,
        { "foreach",  CmdForeach,       1, 0, cmdForeach,       0, 1, cnNop    , 0                  , 0 } ,
        { "form",     HtmlForm,         0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "frame",    HtmlASRC,          0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "hidden",   CmdHidden,        0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 0 } ,
        { "if",       CmdIf,            1, 0, (enum tCmdType)(cmdIf | cmdEndif), 0, 0, cnNop    , 0,  0 } ,
        { "iframe",   HtmlASRC,          0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "img",      HtmlIMG,          0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "input",    HtmlInput,        0, 0, cmdNorm,          1, 0, cnNop    , optDisableInputScan, 1 } ,
        { "layer",    HtmlASRC,          0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 1 } ,
        { "menu",     HtmlTable,        1, 0, cmdTable,         1, 0, cnMenu   , optDisableTableScan, 1 } ,
        { "meta",     HtmlMeta,         0, 0, cmdNorm,          1, 0, cnNop    , optDisableMetaScan , 1 } ,
        { "ol",       HtmlTable,        1, 0, cmdTable,         1, 0, cnOl     , optDisableTableScan, 1 } ,
        { "option",   HtmlOption,       0, 0, cmdNorm,          1, 0, cnNop    , optDisableInputScan, 1 } ,
        { "select",   HtmlSelect,       1, 0, cmdTable,         1, 0, cnSelect , optDisableSelectScan, 1 } ,
        { "sub",      CmdSub,           1, 0, cmdSub,           0, 0, cnNop    , 0                  , 0 } ,
        { "table",    HtmlTable,        1, 0, cmdTable,         1, 0, cnTable  , optDisableTableScan, 1 } ,
        { "textarea", HtmlTextarea,     1, 0, cmdTextarea,      1, 1, cnNop    , optDisableInputScan, 1 } ,
        { "th",       HtmlTableHead,    0, 0, cmdNorm,          1, 0, cnNop    , optDisableTableScan, 1 } ,
        { "tr",       HtmlRow,          1, 0, cmdTablerow,      1, 0, cnTr     , optDisableTableScan, 1 } ,
        { "ul",       HtmlTable,        1, 0, cmdTable,         1, 0, cnUl     , optDisableTableScan, 1 } ,
        { "until",    CmdUntil,         0, 1, cmdDo,            0, 0, cnNop    , 0                  , 0 } ,
        { "var",      CmdVar,           0, 0, cmdNorm,          0, 0, cnNop    , 0                  , 0 } ,
        { "while",    CmdWhile,         1, 0, cmdWhile,         0, 1, cnNop    , 0                  , 0 } ,
    
    } ;



/* */
/* compare commands */
/* */

static int CmpCmd (/*in*/ const void *  p1,
                   /*in*/ const void *  p2)

    {
    return strcmp (*((const char * *)p1), *((const char * *)p2)) ;
    }



/* */
/* Search Command in Commandtable */
/* */

int SearchCmd (/*i/o*/ register req * r,
			/*in*/  const char *    sCmdName,
                         /*in*/  int             nCmdLen,
                         /*in*/  const char *    sArg,
                         /*in*/  int             bIgnore,
                         /*out*/ struct tCmd * * ppCmd)

    {
    struct tCmd *  pCmd ;
    char           sCmdLwr [64] ;
    char *         p ;
    int            i ;


    EPENTRY (SearchCmd) ;

    i = sizeof (sCmdLwr) - 1 ;
    p = sCmdLwr ;
    while (nCmdLen-- > 0 && --i > 0)
        if ((*p++ = tolower (*sCmdName++)) == '\0')
            break ;

    *p = '\0' ;
    
    p = sCmdLwr ;



( run in 0.751 second using v1.01-cache-2.11-cpan-39bf76dae61 )