You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2002/02/05 10:04:06 UTC

cvs commit: embperl/xsbuilder/maps _types.map ep_structure.map

richter     02/02/05 01:04:06

  Modified:    .        Tag: Embperl2c embperl.h ep.h epcfg.h epcgiinit.c
                        epcomp.c epdat2.h epeval.c epinit.c epmain.c
                        eputil.c test.pl
               Embperl  Tag: Embperl2c Constant.pm Syntax.pm Util.pm
               Embperl/Syntax Tag: Embperl2c SSI.pm
               test/cmp Tag: Embperl2c execnotfound.htm include.htm
                        includeerr1.htm includeerr2.htm
               test/html Tag: Embperl2c chdir.htm execnotfound.htm
               test/html/rawinput Tag: Embperl2c include.htm
               xsbuilder Tag: Embperl2c ParseSource.pm
               xsbuilder/maps Tag: Embperl2c _types.map ep_structure.map
  Added:       .        Tag: Embperl2c eptypes.h
  Log:
  
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.19.4.18 +7 -3      embperl/embperl.h
  
  Index: embperl.h
  ===================================================================
  RCS file: /home/cvs/embperl/embperl.h,v
  retrieving revision 1.19.4.17
  retrieving revision 1.19.4.18
  diff -u -r1.19.4.17 -r1.19.4.18
  --- embperl.h	22 Jan 2002 09:29:54 -0000	1.19.4.17
  +++ embperl.h	5 Feb 2002 09:04:03 -0000	1.19.4.18
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: embperl.h,v 1.19.4.17 2002/01/22 09:29:54 richter Exp $
  +#   $Id: embperl.h,v 1.19.4.18 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -52,7 +52,7 @@
       rcExecCGIMissing,
       rcIsDir,
       rcXNotSet,
  -    rcNotFound,
  +    rcDummy,
       rcUnknownVarType,
       rcPerlWarn,
       rcVirtLogNotSet,
  @@ -86,7 +86,11 @@
       rcUnknownRecipe,
       rcTypeMismatch,
       rcChdirError,
  -    rcUnknownSyntax
  +    rcUnknownSyntax,
  +    rcCannotCheckUri,
  +    rcForbidden = 401,
  +    rcNotFound = 404,
  +    rcDecline   = -1
       } ;
   
   
  
  
  
  1.27.4.41 +12 -14    embperl/ep.h
  
  Index: ep.h
  ===================================================================
  RCS file: /home/cvs/embperl/ep.h,v
  retrieving revision 1.27.4.40
  retrieving revision 1.27.4.41
  diff -u -r1.27.4.40 -r1.27.4.41
  --- ep.h	29 Jan 2002 09:13:46 -0000	1.27.4.40
  +++ ep.h	5 Feb 2002 09:04:03 -0000	1.27.4.41
  @@ -161,19 +161,8 @@
   #endif
   
   
  -struct tReq ;
  -typedef struct tReq req ;
  -typedef struct tReq tReq ;
  -
  -struct tComponent ;
  -typedef struct tComponent tComponent;
  -
  -struct tMemPool ;
  -typedef struct tMemPool tMemPool ;
  -
  -struct tApacheDirConfig ;
  -typedef struct tApacheDirConfig tApacheDirConfig ;
   
  +#include "eptypes.h"
   #include "epnames.h"
   
   
  @@ -267,8 +256,8 @@
   			/*in*/  int   rc) ;
   char * LogErrorParam   (/*i/o*/ struct tApp * a,
   			/*in*/ int   rc,
  -                        /*in*/ char * errdata1,
  -                        /*in*/ char * errdata2) ;
  +                        /*in*/ const char * errdata1,
  +                        /*in*/ const char * errdata2) ;
   
   void CommitError (/*i/o*/ register req * r) ;
   void RollbackError (/*i/o*/ register req * r) ;
  @@ -599,6 +588,9 @@
   char * embperl_PathSearch    (/*i/o*/ register req * r,
                               /*in*/  tMemPool *     pPool,
                               /*in*/  char *         sFilename) ;
  +AV * embperl_String2AV (/*in*/ tApp * pApp, 
  +                        /*in*/ const char * sData,
  +                        /*in*/ const char * sSeparator) ;
   
   
   /* ---- from epeval.c ----- */
  @@ -669,7 +661,13 @@
   		/*in*/  SV *            pSV, 
                   /*in*/  int		numArgs,
                   /*in*/  SV **		pArgs,
  +		/*in*/  const char *    sContext, 
   		/*out*/ CV **           pCV) ;
  +
  +int EvalRegEx  (/*i/o*/ tApp *          a,
  +		/*in*/  char *          sRegex, 
  +		/*in*/  const char *    sContext, 
  +		/*out*/ CV **           ppCV) ;
   
   
   #ifdef EP2
  
  
  
  1.1.2.6   +11 -6     embperl/Attic/epcfg.h
  
  Index: epcfg.h
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcfg.h,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- epcfg.h	29 Jan 2002 09:13:46 -0000	1.1.2.5
  +++ epcfg.h	5 Feb 2002 09:04:03 -0000	1.1.2.6
  @@ -1,3 +1,9 @@
  +#undef SEPARATOR
  +#ifdef WIN32
  +#define SEPARATOR ";"
  +#else
  +#define SEPARATOR ":;"
  +#endif
   
   #ifdef EPCFG_COMPONENT
   /* tComponentConfig */
  @@ -21,11 +27,10 @@
   #ifdef EPCFG_REQ
   /* tReqConfig */
   
  -EPCFG_STR(ReqConfig,     char *,      sAllow,       ALLOW) 
  -EPCFG_STR(ReqConfig,     char *,      sFilesMatch,  FILESMATCH) 
  -EPCFG_STR(ReqConfig,     char *,      sDecline,     DECLINE) 
  -EPCFG_CHAR(ReqConfig,     char  ,      cMultFieldSep, MULTFIELDSEP ) 
  -/*EPCFG_STR (ReqConfig,     char *,      sPath,         PATH) */
  +EPCFG_REGEX(ReqConfig,     CV *,      pAllow,         ALLOW) 
  +EPCFG_REGEX(ReqConfig,     CV *,      pUriMatch,      URIMATCH) 
  +EPCFG_CHAR(ReqConfig,     char  ,     cMultFieldSep, MULTFIELDSEP ) 
  +EPCFG_AV  (ReqConfig,     AV *,       pPathAV,         PATH, SEPARATOR) 
   #endif
   
   
  @@ -50,7 +55,7 @@
   EPCFG_STR(AppConfig,     char *,  sMailErrorsTo,    MAIL_ERRORS_TO) 
   EPCFG_STR(AppConfig,     char *,  sObjectBase,      OBJECT_BASE)
   EPCFG_STR(AppConfig,     char *,  sObjectApp,       OBJECT_APP)
  -/*EPCFG_STR(AppConfig,     char *,  sObjectAddpath,   OBJECT_ADDPATH)*/
  +EPCFG_AV (AppConfig,     AV *,    pObjectAddpathAV, OBJECT_ADDPATH, SEPARATOR)
   EPCFG_STR(AppConfig,     char *,  sObjectStopdir,   OBJECT_STOPDIR)
   EPCFG_STR(AppConfig,     char *,  sObjectFallback,  OBJECT_FALLBACK)
   EPCFG_STR(AppConfig,     char *,  sObjectHandlerClass, OBJECT_HANDLER_CLASS)
  
  
  
  1.1.2.6   +21 -3     embperl/Attic/epcgiinit.c
  
  Index: epcgiinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcgiinit.c,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- epcgiinit.c	24 Jan 2002 08:37:05 -0000	1.1.2.5
  +++ epcgiinit.c	5 Feb 2002 09:04:03 -0000	1.1.2.6
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epcgiinit.c,v 1.1.2.5 2002/01/24 08:37:05 richter Exp $
  +#   $Id: epcgiinit.c,v 1.1.2.6 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -24,7 +24,7 @@
   
   #undef EPCFG_BOOL
   #define EPCFG_BOOL(STRUCT,TYPE,NAME,CFGNAME) \
  -    pConfig -> NAME   = GetHashValueInt (aTHX_  pThread -> pEnvHash, "EMBPERL_"#CFGNAME, pConfig -> NAME) ;
  +    pConfig -> NAME   = (char)GetHashValueInt (aTHX_  pThread -> pEnvHash, "EMBPERL_"#CFGNAME, pConfig -> NAME) ;
   
   #undef EPCFG_STR
   #define EPCFG_STR(STRUCT,TYPE,NAME,CFGNAME) \
  @@ -38,13 +38,31 @@
       pConfig -> NAME = *p ; \
       }
   
  +#undef EPCFG_AV
  +#define EPCFG_AV(STRUCT,TYPE,NAME,CFGNAME,SEPARATOR) \
  +    { \
  +    char * arg = GetHashValueStr (aTHX_ pThread -> pEnvHash, "EMBPERL_"#CFGNAME, NULL) ; \
  +    if (arg) \
  +        pConfig -> NAME = embperl_String2AV(pApp, arg, SEPARATOR) ;\
  +    } 
  +
   #undef EPCFG_CV
   #define EPCFG_CV(STRUCT,TYPE,NAME,CFGNAME) \
       { \
       int rc ;\
       char * arg = GetHashValueStr (aTHX_ pThread -> pEnvHash, "EMBPERL_"#CFGNAME, NULL) ; \
       if (arg) \
  -        if ((rc = EvalConfig (pApp, sv_2mortal(newSVpv(arg, 0)), 0, NULL, &pConfig -> NAME)) != ok) \
  +        if ((rc = EvalConfig (pApp, sv_2mortal(newSVpv(arg, 0)), 0, NULL, "Configuration: EMBPERL_"#CFGNAME, &pConfig -> NAME)) != ok) \
  +            return rc ; \
  +    } 
  +
  +#undef EPCFG_REGEX
  +#define EPCFG_REGEX(STRUCT,TYPE,NAME,CFGNAME) \
  +    { \
  +    int rc ;\
  +    char * arg = GetHashValueStr (aTHX_ pThread -> pEnvHash, "EMBPERL_"#CFGNAME, NULL) ; \
  +    if (arg) \
  +        if ((rc = EvalRegEx (pApp, arg, "Configuration: EMBPERL_"#CFGNAME, &pConfig -> NAME)) != ok) \
               return rc ; \
       } 
   
  
  
  
  1.4.2.92  +53 -1     embperl/Attic/epcomp.c
  
  Index: epcomp.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcomp.c,v
  retrieving revision 1.4.2.91
  retrieving revision 1.4.2.92
  diff -u -r1.4.2.91 -r1.4.2.92
  --- epcomp.c	29 Jan 2002 09:13:46 -0000	1.4.2.91
  +++ epcomp.c	5 Feb 2002 09:04:03 -0000	1.4.2.92
  @@ -9,7 +9,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epcomp.c,v 1.4.2.91 2002/01/29 09:13:46 richter Exp $
  +#   $Id: epcomp.c,v 1.4.2.92 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -1847,12 +1847,64 @@
   
       if (!r -> bError)
   	{
  +        tComponent * c = &r -> Component ;
  +        GV * gv ;
  +        HV * pStash = gv_stashpv (c -> sCurrPackage, 1) ;
  +
  +        
           if (r -> Component.Config.nCleanup > -1 && (r -> Component.Config.bOptions & optDisableVarCleanup) == 0)
               SetHashValueInt (r, r -> pCleanupPackagesHV, r -> Component.sCurrPackage, 1) ;
           
           /* --- change working directory --- */
           /* ChdirToSource (r, sSourcefile) ;    */
   
  +
  +        if (c -> Param.pParam)
  +            {
  +            gv = *((GV **)hv_fetch    (pStash, "param", 5, 0)) ;
  +            /* gv = r -> pThread -> pParamArrayGV ; */
  +            save_ary (gv) ;
  +            GvAV(gv) = (AV *)SvREFCNT_inc(c -> Param.pParam) ;
  +            }
  +    
  +        if (c -> Param.pFormHash)
  +            {
  +            gv = *((GV **)hv_fetch    (pStash, "fdat", 4, 0)) ;
  +            /* gv = r -> pThread -> pFormHashGV ; */
  +            save_hash (gv) ;
  +            GvHV(gv) = (HV *)SvREFCNT_inc(c -> Param.pFormHash) ;
  +            }
  +
  +        if (c -> Param.pFormArray || c -> Param.pFormHash)
  +            {
  +            gv = *((GV **)hv_fetch    (pStash, "ffld", 4, 0)) ;
  +            /* gv = r -> pThread -> pFormArrayGV ; */
  +            save_ary (gv) ;
  +            if (c -> Param.pFormArray)
  +                GvAV(gv) = (AV *)SvREFCNT_inc(c -> Param.pFormArray) ;
  +            else
  +                {
  +                AV * pAV = newAV ();
  +                HE *   pEntry ;
  +                char * pKey ;
  +                I32    l ;
  +                GvAV(gv) = pAV ;
  +                hv_iterinit (c -> Param.pFormHash) ;
  +                while ((pEntry = hv_iternext (c -> Param.pFormHash)))
  +                    {
  +                    pKey = hv_iterkey (pEntry, &l) ;
  +                    av_push (pAV, newSVpv(pKey, l)) ;
  +                    }
  +                }
  +            
  +            }
  +        else
  +            {
  +            
  +
  +
  +            }
  +        
           rc = embperl_Execute2 (r, xSrcDomTree, pCV, pResultDomTree) ;
   
   
  
  
  
  1.1.2.21  +9 -6      embperl/Attic/epdat2.h
  
  Index: epdat2.h
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epdat2.h,v
  retrieving revision 1.1.2.20
  retrieving revision 1.1.2.21
  diff -u -r1.1.2.20 -r1.1.2.21
  --- epdat2.h	29 Jan 2002 16:02:51 -0000	1.1.2.20
  +++ epdat2.h	5 Feb 2002 09:04:03 -0000	1.1.2.21
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epdat2.h,v 1.1.2.20 2002/01/29 16:02:51 richter Exp $
  +#   $Id: epdat2.h,v 1.1.2.21 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -93,9 +93,8 @@
   typedef struct tReqConfig
       {
       SV *        _perlsv ;         /**< The perl reference to this structure */
  -    char *      sAllow ;
  -    char *      sFilesMatch ;
  -    char *      sDecline ;
  +    CV *        pAllow ;
  +    CV *        pUriMatch ;
       char        cMultFieldSep ;
       AV *        pPathAV ;
       } tReqConfig ;
  @@ -170,12 +169,16 @@
   
       HV *    pEnvHash ;	 /* environement from CGI Script */
       HV *    pFormHash ;  /* Formular data */
  +    GV *    pFormHashGV ;  
       HV *    pFormSplitHash ;  /* Formular data split up at \t */
       HV *    pInputHash ; /* Data of input fields */
       AV *    pFormArray ; /* Fieldnames */
  +    GV *    pFormArrayGV ; 
       HV *    pHeaderHash ;/* http headers */
       SV *    pReqRV ;       /* the request object global */
  -    
  +    AV *    pParamArray ;
  +    GV *    pParamArrayGV ;
  +
       } tThreadData ;
   
   
  @@ -346,7 +349,7 @@
       int	    bExit ;	        /**< We should exit the request */
       long    nLogFileStartPos ;  /**< file position of logfile, when logfile started */
   
  -    bool    bError  ;		/* Error has occured somewhere */
  +    int     bError  ;		/* Error has occured somewhere */
       AV *    pErrArray ; 	/* Errors to show on Error response */
   
       char    errdat1 [ERRDATLEN] ; /* Additional error information */
  
  
  
  1.23.4.19 +82 -4     embperl/epeval.c
  
  Index: epeval.c
  ===================================================================
  RCS file: /home/cvs/embperl/epeval.c,v
  retrieving revision 1.23.4.18
  retrieving revision 1.23.4.19
  diff -u -r1.23.4.18 -r1.23.4.19
  --- epeval.c	23 Jan 2002 07:58:26 -0000	1.23.4.18
  +++ epeval.c	5 Feb 2002 09:04:03 -0000	1.23.4.19
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epeval.c,v 1.23.4.18 2002/01/23 07:58:26 richter Exp $
  +#   $Id: epeval.c,v 1.23.4.19 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -101,6 +101,7 @@
   * @param   pSV              Config code
   * @param   numArgs          Number of arguments
   * @param   pArgs            Arguments
  +* @param   sContext         give some context information for the error message
   * @param   ppCV             Returns the CV
   * \endif                                                                       
   *
  @@ -113,6 +114,7 @@
   * @param   pSV              Konfigurationsausdruck
   * @param   numArgs          Anzahl der Argumente
   * @param   pArgs            Argumente
  +* @param   sContext         Gibt Information �ber das Umfeld f�r die Fehlermeldung
   * @param   ppCV             Liefert die CV zur�ck
   * \endif                                                                       
   *                                                                          
  @@ -122,6 +124,7 @@
   		/*in*/  SV *            pSV, 
                   /*in*/  int		numArgs,
                   /*in*/  SV **		pArgs,
  +		/*in*/  const char *    sContext, 
   		/*out*/ CV **           pCV)
       {
       char * s = "Needs CodeRef" ;
  @@ -130,7 +133,7 @@
       #endif
       dSP;
   
  -    EPENTRY (EvalDirect) ;
  +    EPENTRY (EvalConfig) ;
   
       tainted = 0 ;
   
  @@ -158,7 +161,7 @@
   		STRLEN l ;
   		char * p = SvPV (pSVErr, l) ;
           
  -		LogErrorParam (a, rcEvalErr, p, NULL) ;
  +		LogErrorParam (a, rcEvalErr, p, sContext) ;
   
   		sv_setpv(pSVErr,"");
   		*pCV = NULL ;
  @@ -182,7 +185,7 @@
       if (!*pCV || SvTYPE (*pCV) != SVt_PVCV)
   	{
   	*pCV = NULL ;
  -        LogErrorParam (a, rcEvalErr, "Config: ", s) ;
  +        LogErrorParam (a, rcEvalErr, s, sContext) ;
   	return rcEvalErr ;
   	}
   
  @@ -190,6 +193,81 @@
       }
   
   
  +/*---------------------------------------------------------------------------
  +* EvalRegEx
  +*/
  +/*!
  +*
  +* \_en									   
  +* Returns a CV for the given regular expression.
  +*                                                                          
  +* @param   sRegex           regular expression as string
  +* @param   sContext         give some context information for the error message
  +* @param   ppCV             Returns the CV
  +* \endif                                                                       
  +*
  +* \_de									   
  +* Liefert f�r eine gegebenen Regul�ren Ausdruck ein CV zur�ck.
  +*                                                                          
  +* @param   sRegex           Regul�rer Ausdruck als Zeichenkette
  +* @param   sContext         Gibt Information �ber das Umfeld f�r die Fehlermeldung
  +* @param   ppCV             Liefert die CV zur�ck
  +* \endif                                                                       
  +*                                                                          
  +* ------------------------------------------------------------------------ */
  +
  +int EvalRegEx  (/*i/o*/ tApp *          a,
  +		/*in*/  char *          sRegex, 
  +		/*in*/  const char *    sContext, 
  +		/*out*/ CV **           ppCV)
  +    {
  +    epaTHX_
  +    SV * pSV ;
  +    char * p ;
  +    STRLEN l ;
  +    SV * pRV ;
  +    SV * pSVErr ;
  +    char c ;
  +
  +    if (sRegex[0] == '!')
  +        {
  +        c = '!' ;
  +        while (isspace(*sRegex))
  +            sRegex++ ;
  +        }
  +    else
  +        c = '=' ;
  +    
  +    pSV = newSVpvf ("package Embperl::Regex ; sub { $_[0] %c~ m{%s} }", c, sRegex) ;
  +
  +    p = SvPV(pSV, l) ;
  +    pRV = perl_eval_pv (p, 0) ;
  +
  +    pSVErr = ERRSV ;
  +    if (SvTRUE (pSVErr))
  +	{
  +	p = SvPV (pSVErr, l) ;
  +
  +	LogErrorParam (a, rcEvalErr, p, sContext) ;
  +
  +	sv_setpv(pSVErr,"");
  +	*ppCV = NULL ;
  +	SvREFCNT_dec (pSV) ;
  +	return rcEvalErr ;
  +	}
  +
  +    if (SvROK (pRV))
  +	{
  +	*ppCV = (CV *)SvRV (pRV) ;
  +	SvREFCNT_inc (*ppCV) ;
  +	}
  +    
  +
  +    return ok ;
  +    }
  +
  +
  +    
       
   
   /* -------------------------------------------------------------------------------
  
  
  
  1.1.2.24  +57 -4     embperl/Attic/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epinit.c,v
  retrieving revision 1.1.2.23
  retrieving revision 1.1.2.24
  diff -u -r1.1.2.23 -r1.1.2.24
  --- epinit.c	29 Jan 2002 16:02:51 -0000	1.1.2.23
  +++ epinit.c	5 Feb 2002 09:04:03 -0000	1.1.2.24
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epinit.c,v 1.1.2.23 2002/01/29 16:02:51 richter Exp $
  +#   $Id: epinit.c,v 1.1.2.24 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -39,11 +39,15 @@
   #define EMBPERL_REQ_PACKAGE     EMBPERL_PACKAGE_STR"::Req"
   #define EMBPERL_THREAD_PACKAGE  EMBPERL_PACKAGE_STR"::Thread"
   
  -#define EMBPERL_FDAT_NAME       EMBPERL_PACKAGE_STR"::fdat"
  +#define FDAT_NAME               "fdat"
  +#define EMBPERL_FDAT_NAME       EMBPERL_PACKAGE_STR"::"FDAT_NAME
   #define EMBPERL_SPLIFDAT_NAME   EMBPERL_PACKAGE_STR"::splitfdat"
  -#define EMBPERL_FFLD_NAME       EMBPERL_PACKAGE_STR"::ffld"
  +#define FFLD_NAME               "ffld"
  +#define EMBPERL_FFLD_NAME       EMBPERL_PACKAGE_STR"::"FFLD_NAME
   #define EMBPERL_HDR_NAME        EMBPERL_PACKAGE_STR"::http_headers_out"
   #define EMBPERL_IDAT_NAME       EMBPERL_PACKAGE_STR"::idat"
  +#define PARAM_NAME              "param"
  +#define EMBPERL_PARAM_NAME      EMBPERL_PACKAGE_STR"::"PARAM_NAME
   #define EMBPERL_REQ_NAME        EMBPERL_PACKAGE_STR"::req"
   #define EMBPERL_ENV_NAME        "ENV"
   
  @@ -102,6 +106,7 @@
           {
           SV * pThreadRV ;
           SV * pThreadSV ;
  +        HV * pStash = gv_stashpv (EMBPERL_PACKAGE_STR, 1) ;
           tMemPool * pPool = ep_make_sub_pool (pMainPool) ;
   
           epxs_Embperl__Thread_create_obj(pThread,pThreadSV,pThreadRV,ep_palloc(pPool,sizeof(*pThread))) ;
  @@ -113,11 +118,15 @@
           pThread -> nPid          = getpid () ; 
           pThread -> pApplications = newHV () ;
           pThread -> pFormHash     = perl_get_hv (EMBPERL_FDAT_NAME, TRUE) ;
  +        pThread -> pFormHashGV   = *((GV **)hv_fetch    (pStash, FDAT_NAME, sizeof (FDAT_NAME) - 1, 0)) ;
           pThread -> pFormSplitHash = perl_get_hv (EMBPERL_SPLIFDAT_NAME, TRUE) ;
           pThread -> pFormArray    = perl_get_av (EMBPERL_FFLD_NAME, TRUE) ;
  +        pThread -> pFormArrayGV  = *((GV **)hv_fetch    (pStash, FFLD_NAME, sizeof (FFLD_NAME) - 1, 0)) ;
           pThread -> pHeaderHash   = perl_get_hv (EMBPERL_HDR_NAME, TRUE) ;
           pThread -> pInputHash    = perl_get_hv (EMBPERL_IDAT_NAME, TRUE) ;
           pThread -> pEnvHash      = perl_get_hv (EMBPERL_ENV_NAME, TRUE) ;
  +        pThread -> pParamArray   = perl_get_av (EMBPERL_PARAM_NAME, TRUE) ;
  +        pThread -> pParamArrayGV = *((GV **)hv_fetch    (pStash, PARAM_NAME, sizeof (PARAM_NAME) - 1, 0)) ;
           pThread -> pReqRV        = perl_get_sv (EMBPERL_REQ_NAME, TRUE) ;
           /* avoid warnings */
           perl_get_hv (EMBPERL_FDAT_NAME, TRUE) ;
  @@ -1088,7 +1097,8 @@
       
       sv_setsv(r -> pThread -> pReqRV, &sv_undef) ;   
   
  -    embperl_CleanupComponent(&r -> Component) ;
  +    while (r -> Component._perlsv)
  +        embperl_CleanupComponent(&r -> Component) ;
       
       
       hv_iterinit (r -> pCleanupPackagesHV) ;
  @@ -1509,6 +1519,49 @@
       *ppReq = r ;
   
       embperl_LogStartReq (r) ;
  +
  +    if (r -> Config.pAllow || r -> Config.pUriMatch)
  +        {
  +        SV * args[1] ;
  +        SV * pRet ;
  +        STRLEN l ;
  +
  +        if (r -> Param.sUri && *r -> Param.sUri)
  +            args[0] = newSVpv (r -> Param.sUri, 0) ;
  +        else if (r -> Param.sFilename && *r -> Param.sFilename)
  +            args[0] = newSVpv (r -> Param.sFilename, 0) ;
  +        else if (pPerlParam)
  +            args[0] = GetHashValueSVinc (r, pPerlParam, "inputfile", &sv_undef) ;
  +        else
  +            {
  +            LogError (r, rcCannotCheckUri) ;
  +            return rcCannotCheckUri ;
  +            }
  +
  +        if (r -> Config.pAllow)
  +            {
  +            CallStoredCV (r, "ALLOW", r -> Config.pAllow, 1, args, 0, &pRet) ;
  +            if (pRet && !SvTRUE(pRet))
  +                {
  +                strncpy (r -> errdat1, SvPV(args[0], l), sizeof(r -> errdat1) - 1) ;
  +                SvREFCNT_dec(args[0]) ;
  +                LogError (r, rcForbidden) ;
  +                return rcForbidden ;
  +                }
  +            }
  +
  +        if (r -> Config.pUriMatch)
  +            {
  +            CallStoredCV (r, "URIMATCH", r -> Config.pUriMatch, 1, args, 0, &pRet) ;
  +            if (pRet && !SvTRUE(pRet))
  +                {
  +                strncpy (r -> errdat1, SvPV(args[0], l), sizeof(r -> errdat1) - 1) ;
  +                SvREFCNT_dec(args[0]) ;
  +                return rcDecline ;
  +                }
  +            }
  +        SvREFCNT_dec(args[0]) ;
  +        }    
   
       return ok ;
       }
  
  
  
  1.75.4.95 +26 -14    embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.75.4.94
  retrieving revision 1.75.4.95
  diff -u -r1.75.4.94 -r1.75.4.95
  --- epmain.c	29 Jan 2002 09:13:46 -0000	1.75.4.94
  +++ epmain.c	5 Feb 2002 09:04:03 -0000	1.75.4.95
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epmain.c,v 1.75.4.94 2002/01/29 09:13:46 richter Exp $
  +#   $Id: epmain.c,v 1.75.4.95 2002/02/05 09:04:03 richter Exp $
   #
   ###################################################################################*/
   
  @@ -71,8 +71,8 @@
   static char * DoLogError (/*i/o*/ struct tReq * r,
                           /*i/o*/ struct tApp * a,
   			/*in*/ int   rc,
  -                        /*in*/ char * errdat1,
  -                        /*in*/ char * errdat2) 
  +                        /*in*/ const char * errdat1,
  +                        /*in*/ const char * errdat2) 
   
       {
       const char * msg ;
  @@ -186,7 +186,10 @@
           case rcTypeMismatch:		msg ="[%d]ERR:  %d: %s Unsupported Outputformat %s of %s" ; break ; 
           case rcChdirError:		msg ="[%d]ERR:  %d: %s Cannot change to directory %s %s" ; break ; 
           case rcUnknownSyntax:		msg ="[%d]ERR:  %d: %s Unknown syntax '%s'" ; break ; 
  -	
  +        case rcForbidden:		msg ="[%d]ERR:  %d: %s Access Forbidden for '%s'" ; break ; 
  +        case rcDecline:		        msg ="[%d]ERR:  %d: %s Decline for '%s'" ; break ; 
  +        case rcCannotCheckUri:          msg ="[%d]ERR:  %d: %s Cannot check URI against ALLOW and/or URIMATCH because URI is unknown" ; break ; 
  +            
   	default:                        msg ="[%d]ERR:  %d: %s Error (no description) %s %s" ; break ; 
           }
   
  @@ -202,18 +205,24 @@
               if (c && !(f = c -> sSourcefile))
                   f = "", p = "" ;
               }
  -        if (f && !p)
  -            p = strrchr (f, '/') ;
  -        if (p)
  -            p++ ;
  -        else
  +        if (f)
               {
  -            p = strrchr (f, '\\') ;
               if (!p)
  -                p = f ;
  -            else
  +                p = strrchr (f, '/') ;
  +            if (p)
                   p++ ;
  +            else
  +                {
  +                p = strrchr (f, '\\') ;
  +                if (!p)
  +                    p = f ;
  +                else
  +                    p++ ;
  +                }
               }
  +        else
  +            if (!p)
  +                p = "" ;
           if (c && c -> nSourceline)
               sprintf (buf, "(%d)", c -> nSourceline) ;
           pSVLine = newSVpvf ("%s%s:", p, buf) ;
  @@ -311,8 +320,8 @@
   
   char * LogErrorParam   (/*i/o*/ struct tApp * a,
   			/*in*/ int   rc,
  -                        /*in*/ char * errdat1,
  -                        /*in*/ char * errdat2) 
  +                        /*in*/ const char * errdat1,
  +                        /*in*/ const char * errdat2) 
       {
       return DoLogError (NULL, a, rc, errdat1, errdat2) ;
       }
  @@ -1409,6 +1418,9 @@
       SAVETMPS ;
       
       c -> bReqRunning     = 1 ;
  +
  +    if ((c -> Config.bOptions & optReturnError) )
  +        save_int(&r -> bError) ;
   
       if ((c -> Config.bOptions & optEarlyHttpHeader) == 0)
           oBegin (r) ;
  
  
  
  1.15.4.38 +35 -2     embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.15.4.37
  retrieving revision 1.15.4.38
  diff -u -r1.15.4.37 -r1.15.4.38
  --- eputil.c	29 Jan 2002 16:02:51 -0000	1.15.4.37
  +++ eputil.c	5 Feb 2002 09:04:04 -0000	1.15.4.38
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: eputil.c,v 1.15.4.37 2002/01/29 16:02:51 richter Exp $
  +#   $Id: eputil.c,v 1.15.4.38 2002/02/05 09:04:04 richter Exp $
   #
   ###################################################################################*/
   
  @@ -909,7 +909,7 @@
           {
           if (SvPOK(*ppSV))
               {
  -	    if ((rc = EvalConfig (r -> pApp, *ppSV, 0, NULL, ppCV)) != ok)
  +	    if ((rc = EvalConfig (r -> pApp, *ppSV, 0, NULL, sKey, ppCV)) != ok)
   	        return rc ;
               return ok ;
               }
  @@ -1565,6 +1565,39 @@
   
       return NULL ;
       }
  +
  +
  +/* ---------------------------------------------------------------------------- */
  +/*                                                                              */
  +/* Split string into Array                                                      */
  +/*                                                                              */
  +/* ---------------------------------------------------------------------------- */
  +
  +
  +AV * embperl_String2AV (/*in*/ tApp * a, 
  +                        /*in*/ const char * sData,
  +                        /*in*/ const char * sSeparator)
  +                        
  +    {
  +    epaTHX_
  +    AV * pAV = newAV () ;
  +
  +
  +    while (*sData)
  +        {
  +        int n = strcspn (sData, sSeparator) ;
  +        if (n > 0)
  +            av_push (pAV, newSVpv(sData, n)) ;
  +        sData += n + 1 ;
  +        }
  +
  +    return pAV ;
  +    }
  +
  +
  +
  +
  +
   
   
   /* ---------------------------------------------------------------------------- */
  
  
  
  1.70.4.111 +3 -3      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.70.4.110
  retrieving revision 1.70.4.111
  diff -u -r1.70.4.110 -r1.70.4.111
  --- test.pl	28 Jan 2002 20:28:34 -0000	1.70.4.110
  +++ test.pl	5 Feb 2002 09:04:04 -0000	1.70.4.111
  @@ -11,7 +11,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: test.pl,v 1.70.4.110 2002/01/28 20:28:34 richter Exp $
  +#   $Id: test.pl,v 1.70.4.111 2002/02/05 09:04:04 richter Exp $
   #
   ###################################################################################
   
  @@ -317,8 +317,8 @@
           },
       'importsub2.htm' => { 
           },
  -    'importmodule.htm' => { 
  -        },
  +###    'importmodule.htm' => { 
  +###        },
       'recursexec.htm' => { 
           'version'    => 1,
           },
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +27 -0     embperl/Attic/eptypes.h
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +2 -2      embperl/Embperl/Attic/Constant.pm
  
  Index: Constant.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Attic/Constant.pm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- Constant.pm	22 Jan 2002 09:30:54 -0000	1.1.2.1
  +++ Constant.pm	5 Feb 2002 09:04:05 -0000	1.1.2.2
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Constant.pm,v 1.1.2.1 2002/01/22 09:30:54 richter Exp $
  +#   $Id: Constant.pm,v 1.1.2.2 2002/02/05 09:04:05 richter Exp $
   #
   ###################################################################################
   
  @@ -113,7 +113,7 @@
   use constant rcMissingRight => 13 ;
   use constant rcNoRetFifo => 14 ;
   use constant rcNotCompiledForModPerl => 25 ;
  -use constant rcNotFound => 30 ;
  +use constant rcNotFound => 404 ;
   use constant rcOutOfMemory => 8 ;
   use constant rcPerlVarError => 9 ;
   use constant rcPerlWarn => 32 ;
  
  
  
  1.1.4.53  +4 -4      embperl/Embperl/Attic/Syntax.pm
  
  Index: Syntax.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
  retrieving revision 1.1.4.52
  retrieving revision 1.1.4.53
  diff -u -r1.1.4.52 -r1.1.4.53
  --- Syntax.pm	27 Jan 2002 20:04:36 -0000	1.1.4.52
  +++ Syntax.pm	5 Feb 2002 09:04:05 -0000	1.1.4.53
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Syntax.pm,v 1.1.4.52 2002/01/27 20:04:36 richter Exp $
  +#   $Id: Syntax.pm,v 1.1.4.53 2002/02/05 09:04:05 richter Exp $
   #
   ###################################################################################
    
  @@ -357,8 +357,8 @@
           'procinfo'  => {
               embperl => { 
                   perlcode    => q{ 
  -my $_ep_param_save = \@param ; 
  -*param = $Embperl::req -> component -> param -> param || [];
  +#my $_ep_param_save = \@param ; 
  +#*param = $Embperl::req -> component -> param -> param || [];
   },
                   compiletimeperlcode => q{
   use vars ('$_ep_DomTree', '@ISA', '@param') ;
  @@ -373,7 +373,7 @@
   Embperl::Util::CreateAliases ;
   },
                   perlcodeend => q{
  -*param = $_ep_param_save ;
  +#*param = $_ep_param_save ;
   }, 
                   stackname   => 'metacmd',
                   stackmatch  => 'DocumentFraq',
  
  
  
  1.1.2.5   +2 -2      embperl/Embperl/Attic/Util.pm
  
  Index: Util.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Attic/Util.pm,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- Util.pm	27 Jan 2002 20:04:36 -0000	1.1.2.4
  +++ Util.pm	5 Feb 2002 09:04:05 -0000	1.1.2.5
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Util.pm,v 1.1.2.4 2002/01/27 20:04:36 richter Exp $
  +#   $Id: Util.pm,v 1.1.2.5 2002/02/05 09:04:05 richter Exp $
   #
   ###################################################################################
   
  @@ -59,7 +59,7 @@
   		    _ep_node
                       } ;
   @AliasHash   = qw{fdat udat mdat sdat idat http_headers_out fsplitdat} ;
  -@AliasArray  = qw{ffld} ;
  +@AliasArray  = qw{ffld param} ;
   
   
   #######################################################################################
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.15  +16 -6     embperl/Embperl/Syntax/Attic/SSI.pm
  
  Index: SSI.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/SSI.pm,v
  retrieving revision 1.1.2.14
  retrieving revision 1.1.2.15
  diff -u -r1.1.2.14 -r1.1.2.15
  --- SSI.pm	27 Jan 2002 20:04:36 -0000	1.1.2.14
  +++ SSI.pm	5 Feb 2002 09:04:05 -0000	1.1.2.15
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: SSI.pm,v 1.1.2.14 2002/01/27 20:04:36 richter Exp $
  +#   $Id: SSI.pm,v 1.1.2.15 2002/02/05 09:04:05 richter Exp $
   #
   ###################################################################################
    
  @@ -185,9 +185,9 @@
   
       $ENV{DATE_GMT}      = gmtime ;
       $ENV{DATE_LOCAL}    = localtime ;
  -    $ENV{DOCUMENT_NAME} = $fn = basename ($epreq -> component -> sourcefile) ;
  +    $ENV{DOCUMENT_NAME} = basename ($fn = $epreq -> component -> sourcefile) ;
       $ENV{DOCUMENT_URI}  = $apreq?$apreq -> uri:'' ;
  -    $ENV{LAST_MODIFIED} = format_time('', (stat ($fn))[9])
  +    $ENV{LAST_MODIFIED} = format_time('', (stat ($fn))[9]) ;
       }
        
   
  @@ -222,8 +222,18 @@
   
       if (!defined ($apreq))
           {
  -        return $fn if ($fn);
  -        return $ENV{DOCUMENT_NAME} if (!$virt) ;
  +        if ($fn)
  +            {
  +            if ($fn !~ m#/|\\#)
  +                {
  +                return $Embperl::req -> component -> cwd . '/' . $fn ;
  +                }
  +            else
  +                {
  +                return $fn ;
  +                }
  +            }
  +        return $Embperl::req -> component -> sourcefile if (!$virt) ;
   
   	my $filename = $virt;
           
  @@ -247,7 +257,7 @@
           }
       else
           {
  -        return $ENV{DOCUMENT_NAME} || $ENV{SCRIPT_FILENAME};
  +        return $Embperl::req -> component -> sourcefile ;
           }
       }
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +1 -1      embperl/test/cmp/execnotfound.htm
  
  Index: execnotfound.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/execnotfound.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- execnotfound.htm	22 May 2001 11:25:10 -0000	1.1.2.1
  +++ execnotfound.htm	5 Feb 2002 09:04:05 -0000	1.1.2.2
  @@ -7,7 +7,7 @@
   <body>
   
    
  -rc = 404<br>
  +rc = 12<br>
     
   <p>Done.</p>
   </body></html>
  
  
  
  1.7.6.4   +10 -1     embperl/test/cmp/include.htm
  
  Index: include.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/include.htm,v
  retrieving revision 1.7.6.3
  retrieving revision 1.7.6.4
  diff -u -r1.7.6.3 -r1.7.6.4
  --- include.htm	27 Jan 2002 20:04:36 -0000	1.7.6.3
  +++ include.htm	5 Feb 2002 09:04:05 -0000	1.7.6.4
  @@ -38,6 +38,15 @@
   <H1> 7.) Presetup \%fdat and \@ffld</H1>
   
   <P><table><tr><td>fdat</td><td>text</td></tr><tr><td>test</td><td>value</td></tr></table></P>
  +<H1> 7a.) Presetup my \%fdat and my \@ffld</H1>
  +
  +<P><table><tr><td>fdat1</td><td>text1</td></tr><tr><td>test1</td><td>value1</td></tr></table></P>
  +<H1> 7b.) Presetup \%fdat</H1>
  +
  +<P><table><tr><td>fdat2</td><td>text2</td></tr><tr><td>test2</td><td>value2</td></tr></table></P>
  +<H1> 7c.) Presetup  \@ffld</H1>
  +
  +<P><table></table></P> @ffld = fdat3 test3
   <H1> 8a.) Include a file</H1>
   
   
  @@ -310,7 +319,7 @@
   
   <p><hr>
   
  -<small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  +<small>Embperl (c) 1997-2002 G.Richter</small>
   
   </body>
   </html>
  
  
  
  1.2.6.6   +2 -1      embperl/test/cmp/includeerr1.htm
  
  Index: includeerr1.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/includeerr1.htm,v
  retrieving revision 1.2.6.5
  retrieving revision 1.2.6.6
  diff -u -r1.2.6.5 -r1.2.6.6
  --- includeerr1.htm	31 Oct 2001 14:53:31 -0000	1.2.6.5
  +++ includeerr1.htm	5 Feb 2002 09:04:05 -0000	1.2.6.6
  @@ -2,8 +2,9 @@
   <H1>Internal Server Error</H1>
   The server encountered an internal error or misconfiguration and was unable to complete your request.<P>
   ^Please contact the server administrator\,.*?and inform them of the time the error occurred\, and anything you might have done that may have caused the error
  +^-\[.*?\]ERR\:  32\:  Warning in Perl code: 
   ^\[.*?\]ERR\:  24\:  Error in Perl code: Can't locate object method &quot;is&quot; via package &quot;here&quot;
  -^ HTML\:\:Embperl.*?<P>
  +^ Embperl
   </BODY></HTML>
   
   
  
  
  
  1.3.6.6   +1 -1      embperl/test/cmp/includeerr2.htm
  
  Index: includeerr2.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/includeerr2.htm,v
  retrieving revision 1.3.6.5
  retrieving revision 1.3.6.6
  diff -u -r1.3.6.5 -r1.3.6.6
  --- includeerr2.htm	31 Oct 2001 14:53:31 -0000	1.3.6.5
  +++ includeerr2.htm	5 Feb 2002 09:04:05 -0000	1.3.6.6
  @@ -12,7 +12,7 @@
   ^-\[.*?\]ERR\:  32\:  Warning in Perl code: Use of uninitialized value
   ^-\[.*?\]ERR\:  24\:  Error in Perl code: Can't locate object method &quot;is&quot; via package &quot;here&quot;
   ^-\[.*?\]ERR\:  32\:  Warning in Perl code: Use of uninitialized value
  -^ HTML\:\:Embperl.*?<P>
  +^Embperl
   </BODY></HTML>
   
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.6.3   +3 -2      embperl/test/html/chdir.htm
  
  Index: chdir.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/chdir.htm,v
  retrieving revision 1.4.6.2
  retrieving revision 1.4.6.3
  diff -u -r1.4.6.2 -r1.4.6.3
  --- chdir.htm	23 Nov 2001 07:51:00 -0000	1.4.6.2
  +++ chdir.htm	5 Feb 2002 09:04:06 -0000	1.4.6.3
  @@ -6,9 +6,10 @@
   
   <body>
   
  -[- use Cwd  -]
  +[- use Cwd  ;
  +$r = shift -]
   
  -Script  CWD: [+ $script = getcwd +] <BR>
  +Script  CWD: [+ $script = $r -> component -> cwd +][#getcwd #] <BR>
   Embperl CWD: [+ $ep =     $HTML::Embperl::cwd +] <BR>
   $0: [+ $abs = $0 +]
   
  
  
  
  1.1.2.2   +1 -3      embperl/test/html/execnotfound.htm
  
  Index: execnotfound.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/execnotfound.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- execnotfound.htm	22 May 2001 11:25:17 -0000	1.1.2.1
  +++ execnotfound.htm	5 Feb 2002 09:04:06 -0000	1.1.2.2
  @@ -9,9 +9,7 @@
    
   [- 
   $r = shift ;
  -my $err = $r -> Error ;
  -$rc = Execute { inputfile => 'notfound.htm', options => 262144 } ;
  -$r -> Error ($err) ;
  +$rc = Execute ({ inputfile => 'notfound.htm', options => 262144 }) ;
   
   -]
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.4.9   +54 -1     embperl/test/html/rawinput/Attic/include.htm
  
  Index: include.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/rawinput/Attic/include.htm,v
  retrieving revision 1.1.4.8
  retrieving revision 1.1.4.9
  diff -u -r1.1.4.8 -r1.1.4.9
  --- include.htm	27 Jan 2002 20:04:36 -0000	1.1.4.8
  +++ include.htm	5 Feb 2002 09:04:06 -0000	1.1.4.9
  @@ -94,7 +94,9 @@
   
   <H1> 7.) Presetup \%fdat and \@ffld</H1>
   
  -[- %myfdat = ('test' => 'value',
  +[- 
  +
  +%myfdat = ('test' => 'value',
                 'fdat' => 'text') ;
                 
   @myffld = sort keys %myfdat ;             
  @@ -107,6 +109,57 @@
   						 ) ;
   
   -]
  +
  +
  +<H1> 7a.) Presetup my \%fdat and my \@ffld</H1>
  +
  +[- 
  +
  +my %myfdat = ('test1' => 'value1',
  +              'fdat1' => 'text1') ;
  +              
  +my @myffld = sort keys %myfdat ;             
  +
  +Execute ({input		=> \('<P><table><tr><td>[+ $ffld[$row] +]</td><td>[+ do { local $^W = 0 ; $fdat{$ffld[$row]} } +]</td></tr></table></P>' . "\n") ,
  +						 inputfile	=> 'fdat & ffld',
  +						 req_rec    => $req_rec,
  +						 fdat  => \%myfdat,
  +						 ffld  => \@myffld}
  +						 ) ;
  +
  +-]
  +
  +<H1> 7b.) Presetup \%fdat</H1>
  +
  +[- 
  +%myfdat = ('test2' => 'value2',
  +              'fdat2' => 'text2') ;
  +              
  +#@myffld = sort keys %myfdat ;             
  +Execute ({input		=> \('<P><table><tr><td>[+ $ffld[$row] +]</td><td>[+ do { local $^W = 0 ; $fdat{$ffld[$row]} } +]</td></tr></table></P>' . "\n") ,
  +						 inputfile	=> 'fdat & ffld',
  +						 req_rec    => $req_rec,
  +						 fdat  => \%myfdat,}
  +						 ) ;
  +
  +-]
  +
  +
  +<H1> 7c.) Presetup  \@ffld</H1>
  +
  +[- 
  +%myfdat = ('test3' => 'value3',
  +              'fdat3' => 'text3') ;
  +              
  +@myffld = sort keys %myfdat ;             
  +Execute ({input		=> \('<P><table><tr><td>[+ $ffld[$row] +]</td><td>[+ do { local $^W = 0 ; $fdat{$ffld[$row]} } +]</td></tr></table></P> @ffld = [+ "@ffld" +]' . "\n") ,
  +						 inputfile	=> 'ffld',
  +						 req_rec    => $req_rec,
  +						 ffld  => \@myffld}
  +						 ) ;
  +
  +-]
  +
   
   <H1> 8a.) Include a file</H1>
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.5   +1 -1      embperl/xsbuilder/Attic/ParseSource.pm
  
  Index: ParseSource.pm
  ===================================================================
  RCS file: /home/cvs/embperl/xsbuilder/Attic/ParseSource.pm,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- ParseSource.pm	18 Jan 2002 16:22:38 -0000	1.1.2.4
  +++ ParseSource.pm	5 Feb 2002 09:04:06 -0000	1.1.2.5
  @@ -44,7 +44,7 @@
       my $self = shift;
   
       return $self->{includes} if $self->{includes};
  -    my @includes = ("$FindBin::Bin/../epdat2.h", "$FindBin::Bin/../eppublic.h") ;
  +    my @includes = ("$FindBin::Bin/../epdat2.h", "$FindBin::Bin/../eppublic.h", "$FindBin::Bin/../eptypes.h", ) ;
   
       return $self->{includes} = $self -> sort_includes (\@includes) ;
       }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +7 -6      embperl/xsbuilder/maps/Attic/_types.map
  
  Index: _types.map
  ===================================================================
  RCS file: /home/cvs/embperl/xsbuilder/maps/Attic/_types.map,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- _types.map	16 Jan 2002 08:40:56 -0000	1.1.2.1
  +++ _types.map	5 Feb 2002 09:04:06 -0000	1.1.2.2
  @@ -10,12 +10,12 @@
   unsigned long   | UV
   unsigned        | UV
   
  -char *                   | PV
  -const char *             | PV
  +char *                   | PV           | | | strdup
  +const char *             | PV           | | | strdup
   const char **            | UNDEFINED
  -char const *             | PV
  -unsigned char *          | PV
  -const unsigned char *    | PV
  +char const *             | PV           | | | strdup
  +unsigned char *          | PV           | | | strdup
  +const unsigned char *    | PV           | | | strdup
   char **                  | UNDEFINED
   char ***                 | UNDEFINED
   const char * const *     | UNDEFINED
  @@ -42,7 +42,8 @@
   pid_t           | IV
   size_t          | IV
   size_t *        | UNDEFINED
  -off_t           | IV
  +off_t           | IV
  +
   
   struct regex_t
   regmatch_t
  
  
  
  1.1.2.12  +2 -2      embperl/xsbuilder/maps/Attic/ep_structure.map
  
  Index: ep_structure.map
  ===================================================================
  RCS file: /home/cvs/embperl/xsbuilder/maps/Attic/ep_structure.map,v
  retrieving revision 1.1.2.11
  retrieving revision 1.1.2.12
  diff -u -r1.1.2.11 -r1.1.2.12
  --- ep_structure.map	29 Jan 2002 09:13:47 -0000	1.1.2.11
  +++ ep_structure.map	5 Feb 2002 09:04:06 -0000	1.1.2.12
  @@ -1,5 +1,5 @@
   
  - <struct tReq>
  + <tReq>
   !   _perlsv
   !   pPerlTHX | perl_thx
   !   pPool | pool
  @@ -33,7 +33,7 @@
   !   pApacheConfig | apache_config
      new
   !   private
  - </struct tReq>
  + </tReq>
   
   
    <tApp>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org