HTML-Embperl
view release on metacpan or search on metacpan
/*-----------------------------------------------------------------*/
/* */
/* Per (directory) configuration data */
/* */
/*-----------------------------------------------------------------*/
typedef struct tConf
{
HV * pReqParameter ; /* parameters passed to this request */
int bDebug ; /* Debugging options */
int bOptions ; /* Options */
char * sPackage ; /* Packagename */
char * sLogFilename ; /* name of logfile */
char * sVirtLogURI ; /* uri for access virtual log file */
SV * pOpcodeMask ; /* Opcode mask (if any) */
int nEscMode ; /* default escape mode */
char * sCookieName ; /* Name to use for cookie */
char * sCookieExpires ; /* cookie expiration time */
char * sCookieDomain ; /* domain patter for which the cookie should be returned */
char * sCookiePath ; /* path to which cookie should be returned */
char cMultFieldSep ;
char * pOpenBracket ;
char * pCloseBracket ;
#ifdef EP2
bool bEP1Compat ; /* run in Embperl 1.x compatible mode */
tProcessor ** pProcessor ; /* [array] processors used to process the file */
char * sCacheKey ; /* Key used to store expires setting */
CV * pCacheKeyCV ; /* CV to call and add result to key for cache */
tCacheOptions bCacheKeyOptions ;
double nExpiresIn ; /* Data expiers at */
CV * pExpiresCV ; /* sub that is called to determinate expiration */
char * sRecipe ; /* name of recipe used to process the current file */
#endif
char * sPath ; /* file search path */
char * sReqFilename ; /* filename of original request */
} tConf ;
/*-----------------------------------------------------------------*/
/* */
/* Per sourcefile data */
/* */
/*-----------------------------------------------------------------*/
typedef struct tFile
{
char * sSourcefile ; /* Name of sourcefile */
double mtime ; /* last modification time of file */
size_t nFilesize ; /* size of File */
SV * pBufSV ; /* SV that contains the file content */
bool bKeep ; /* set true if you want to keep file in memory */
HV * pCacheHash ; /* Hash containing CVs to precompiled subs */
char * sCurrPackage ; /* Package of file */
STRLEN nCurrPackage ; /* Package of file (length) */
HV * pExportHash ; /* exportable Macros */
int nFirstLine ; /* First line number of sourcefile */
struct tFile * pNext2Free ; /* Next file that has to be freed after the request */
} tFile ;
/*-----------------------------------------------------------------*/
/* */
/* Per sourcebuffer data */
/* */
/*-----------------------------------------------------------------*/
typedef struct tSrcBuf
{
tFile * pFile ; /* pointer source file/package specific data */
char * pBuf ; /* Buffer which holds the html source file */
char * pCurrPos ; /* Current position in html file */
char * pCurrStart ; /* Current start position of html tag / eval expression */
char * pEndPos ; /* end of html file */
int nBlockNo ; /* Block number where we are currently */
char * pCurrTag ; /* Current start position of html tag */
int nSourceline ; /* Currentline in sourcefile */
char * pSourcelinePos ; /* Positon of nSourceline in sourcefile */
char * pLineNoCurrPos ; /* save pCurrPos for line no calculation */
char * sEvalPackage ; /* Package for eval (normaly same sCurrPackage,
differs when running in a safe namespace */
STRLEN nEvalPackage ; /* Package for eval (length) */
} tSrcBuf ;
/*-----------------------------------------------------------------*/
/* */
/* Commandtypes */
/* */
/*-----------------------------------------------------------------*/
enum tCmdType
{
cmdNorm = 1,
cmdIf = 2,
cmdEndif = 4,
cmdWhile = 8,
cmdTable = 16,
cmdTablerow = 32,
cmdTextarea = 64,
cmdDo = 128,
cmdForeach = 256,
cmdSub = 512,
cmdAll = 1023
} ;
enum tCmdNo
{
cnNop,
cnTable,
cnTr,
cnDir,
cnMenu,
( run in 1.014 second using v1.01-cache-2.11-cpan-e1769b4cff6 )