From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

/*###################################################################################
#
# Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
#
# You may distribute under the terms of either the GNU General Public
# License or the Artistic License, as specified in the Perl README file.
# For use with Apache httpd and mod_perl, see also Apache copyright.
#
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# $Id: embperl.h,v 1.29 2001/11/02 10:03:48 richter Exp $
#
###################################################################################*/
/*
Errors and Return Codes
*/
enum tRc
{
ok = 0,
rcStackOverflow,
rcStackUnderflow,
rcEndifWithoutIf,
rcElseWithoutIf,
rcEndwhileWithoutWhile,
rcEndtableWithoutTable,
rcCmdNotFound,
rcOutOfMemory,
rcPerlVarError,
rcHashError,
rcArrayError,
rcFileOpenErr,
rcMissingRight,
rcNoRetFifo,
rcMagicError,
rcWriteErr,
rcUnknownNameSpace,
rcInputNotSupported,
rcCannotUsedRecursive,
rcEndtableWithoutTablerow,
rcTablerowOutsideOfTable,
rcEndtextareaWithoutTextarea,
rcArgStackOverflow,
rcEvalErr,
rcNotCompiledForModPerl,
rcLogFileOpenErr,
rcExecCGIMissing,
rcIsDir,
rcXNotSet,
rcNotFound,
rcUnknownVarType,
rcPerlWarn,
rcVirtLogNotSet,
rcMissingInput,
rcExit,
rcUntilWithoutDo,
rcEndforeachWithoutForeach,
rcMissingArgs,
rcNotAnArray,
rcCallInputFuncFailed,
rcCallOutputFuncFailed,
rcSubNotFound,
rcImportStashErr,
rcCGIError,
rcUnclosedHtml,
rcUnclosedCmd,
rcNotAllowed,
rcNotHashRef,
rcTagMismatch,
rcCleanupErr,
rcCryptoWrongHeader,
rcCryptoWrongSyntax,
rcCryptoNotSupported,
rcCryptoBufferOverflow,
rcCryptoErr
} ;
/*
Debug Flags
*/
enum dbg
{
dbgStd = 1,
dbgMem = 2,
dbgEval = 4,
dbgCmd = 8,
dbgEnv = 16,
dbgForm = 32,
dbgTab = 64,
dbgInput = 128,
dbgFlushOutput = 256,
dbgFlushLog = 512,
dbgAllCmds = 1024,
dbgSource = 2048,
dbgFunc = 4096,
dbgLogLink = 8192,
dbgDefEval = 16384,
dbgOutput = 0x08000,
dbgDOM = 0x10000,
dbgRun = 0x20000,
dbgHeadersIn = 0x40000,
dbgShowCleanup = 0x80000,
dbgProfile = 0x100000,
dbgSession = 0x200000,
dbgImport = 0x400000,
dbgBuildToken = 0x800000,
dbgParse = 0x1000000,
dbgObjectSearch = 0x2000000,
dbgCache = 0x4000000,
dbgCompile = 0x8000000,
dbgXML = 0x10000000,
dbgXSLT = 0x20000000,
dbgCheckpoint = 0x40000000,
dbgAll = -1
} ;
/*
Option Flags
*/
enum opt
{
optDisableVarCleanup = 1,
optDisableEmbperlErrorPage = 2,
optSafeNamespace = 4,
optOpcodeMask = 8,
optRawInput = 16,
optSendHttpHeader = 32,
optEarlyHttpHeader = 64,
optDisableChdir = 128,
optDisableFormData = 256,
optDisableHtmlScan = 512,
optDisableInputScan = 1024,
optDisableTableScan = 2048,
optDisableMetaScan = 4096,
optAllFormData = 8192,
optRedirectStdout = 16384,
optUndefToEmptyValue = 32768,
optNoHiddenEmptyValue = 65536,
optAllowZeroFilesize = 0x20000,
optReturnError = 0x40000,
optKeepSrcInMemory = 0x80000,
optKeepSpaces = 0x100000,
optOpenLogEarly = 0x200000,
optNoUncloseWarn = 0x400000,
optDisableSelectScan = 0x800000,
optAddUserSessionToLinks = 0x1000000,
optAddStateSessionToLinks = 0x2000000,
optNoSessionCookies = 0x4000000,
optShowBacktrace = 0x8000000
} ;
/*
I/O modes
*/
enum epIO
{
epIOCGI = 1,
epIOProcess = 2,
epIOMod_Perl = 3,
epIOPerl = 4
} ;
/*
Table modes
*/
#define epTabRow 0x0f /* Row Mask */
#define epTabRowDef 0x01 /* Last row where last defined expression */
#define epTabRowUndef 0x02 /* Last row where first undefined expression */
#define epTabRowMax 0x03 /* maxrow determinates number of rows */
#define epTabCol 0xf0 /* Column Mask */
#define epTabColDef 0x10 /* Last column where last defined expression */
#define epTabColUndef 0x20 /* Last column where first undefined expression */
#define epTabColMax 0x30 /* maxcol determinates number of columns */
/*
Escape modes
*/
enum tEscMode
{
escNone = 0,
escHtml = 1,
escUrl = 2,
escStd = 3,
escEscape = 4
} ;
#if !defined (pid_t) && defined (WIN32)
#define pid_t int
#endif
extern pid_t nPid ;