richter     2002/11/26 02:03:45

  Modified:    .        Changes.pod MANIFEST embperl.h epcfg.h epcgiinit.c
                        epdat2.h epdom.c epinit.c epmain.c epparse.c
                        eppriv.h eputil.c mod_embperl.c test.pl
               Embperl/Syntax EmbperlBlocks.pm
               eg/web   base.epl config.pl content.epl menuleft.epl
                        messages.pl notfound.htm
               eg/web/db/news data.epd
               podsrc   Config.spod
               test     testapp.pl
               test/cmp i18n.htm
               test/cmp2 i18n.htm
               test/conf httpd.conf.src
               test/html/app i18n.htm
               xsbuilder/maps ep_structure.map
  Added:       eg/web/db index.htm
               test/cmp xhtml.htm
               test/html xhtml.htm
  Log:
     - website changes
     - If no name is given for a key, Form::Validate now tries to lookup the correct
       text via Embperl's gettext method.
     - Fixed problem with message ids that are Perl keywords. Reported by Jaak.
     - Added EMBPERL_COOKIE_SECURE option to transfer cookie only over a secure
       connection.
     - Added EMBPERL_OUTPUT_MODE that allows to change to XML output, which cause
       generated tags to contains a closing slash, so they are valid XML/XHTML.
  
  Revision  Changes    Path
  1.192     +5 -0      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.191
  retrieving revision 1.192
  diff -u -r1.191 -r1.192
  --- Changes.pod       20 Nov 2002 06:56:25 -0000      1.191
  +++ Changes.pod       26 Nov 2002 10:03:40 -0000      1.192
  @@ -43,6 +43,11 @@
      - Fixed segfault when cleanup is called to early. Reported by Neil Gunton.    
      - If no name is given for a key, Form::Validate now tries to lookup the correct
        text via Embperl's gettext method.
  +   - Fixed problem with message ids that are Perl keywords. Reported by Jaak.
  +   - Added EMBPERL_COOKIE_SECURE option to transfer cookie only over a secure
  +     connection.
  +   - Added EMBPERL_OUTPUT_MODE that allows to change to XML output, which cause
  +     generated tags to contains a closing slash, so they are valid XML/XHTML. 
   
   =head1 2.0b8  (BETA)  25. Juni 2002
   
  
  
  
  1.76      +3 -0      embperl/MANIFEST
  
  Index: MANIFEST
  ===================================================================
  RCS file: /home/cvs/embperl/MANIFEST,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- MANIFEST  20 Nov 2002 07:02:45 -0000      1.75
  +++ MANIFEST  26 Nov 2002 10:03:40 -0000      1.76
  @@ -105,6 +105,7 @@
   eg/web/db/news/pod.xsl
   eg/web/db/pod.xsl
   eg/web/db/show.epl
  +eg/web/db/index.htm
   eg/web/db/login.epl
   eg/web/db/loginform.epl
   eg/web/db/list.epl
  @@ -340,6 +341,7 @@
   test/cmp/varepvar.htm
   test/cmp/varerr.htm
   test/cmp/varerr.htm56
  +test/cmp/xhtml.htm
   test/cmp2/epobless2.htm
   test/cmp2/epobless3.htm
   test/cmp2/epodiv.htm
  @@ -548,6 +550,7 @@
   test/html/xml/pod.xml
   test/html/xml/pod.xsl
   test/html/xml/podold.xsl
  +test/html/xhtml.htm
   test/html/errormismatch.htm
   test/html/errormismatchcmd.htm
   test/testapp.pl
  
  
  
  1.31      +10 -1     embperl/embperl.h
  
  Index: embperl.h
  ===================================================================
  RCS file: /home/cvs/embperl/embperl.h,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- embperl.h 22 Oct 2002 05:29:04 -0000      1.30
  +++ embperl.h 26 Nov 2002 10:03:40 -0000      1.31
  @@ -92,6 +92,7 @@
       rcRefcntNotOne,
       rcApacheErr,
       rcTooDeepNested,
  +    rcUnknownOption,
       rcForbidden = 403,
       rcNotFound  = 404,
       rcDecline   = -1
  @@ -184,6 +185,14 @@
       escXML      = 8,
   
       escStd      = 7
  +    } ;
  +
  +/* --- output mode --- */
  +
  +enum tOutputMode
  +    {
  +    omodeHtml   = 0,
  +    omodeXml    = 1,
       } ;
   
   /* --- input escaping --- */
  
  
  
  1.3       +13 -9     embperl/epcfg.h
  
  Index: epcfg.h
  ===================================================================
  RCS file: /home/cvs/embperl/epcfg.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- epcfg.h   22 Oct 2002 05:29:04 -0000      1.2
  +++ epcfg.h   26 Nov 2002 10:03:40 -0000      1.3
  @@ -5,14 +5,16 @@
   #define SEPARATOR ":;"
   #endif
   
  +
  +
   #ifdef EPCFG_COMPONENT
   /* tComponentConfig */
   
   EPCFG_STR (ComponentConfig,     char *,      sPackage,      PACKAGE) 
  -EPCFG_INT (ComponentConfig,     unsigned,    bDebug,        DEBUG) 
  -EPCFG_INT (ComponentConfig,     unsigned,    bOptions,      OPTIONS) 
  -EPCFG_INT (ComponentConfig,     int   ,      nEscMode,      ESCMODE) 
  -EPCFG_INT (ComponentConfig,     int   ,      nInputEscMode, INPUT_ESCMODE) 
  +EPCFG_INTOPT (ComponentConfig,     unsigned,    bDebug,        DEBUG) 
  +EPCFG_INTOPT (ComponentConfig,     unsigned,    bOptions,      OPTIONS) 
  +EPCFG_INTOPT (ComponentConfig,     int   ,      nEscMode,      ESCMODE) 
  +EPCFG_INTOPT (ComponentConfig,     int   ,      nInputEscMode, INPUT_ESCMODE) 
   EPCFG_STR (ComponentConfig,     char *,      sInputCharset, INPUT_CHARSET) 
   EPCFG_STR (ComponentConfig,     char *,      sCacheKey,     CACHE_KEY) 
   EPCFG_INT (ComponentConfig,     unsigned,    bCacheKeyOptions, CACHE_KEY_OPTIONS)
  @@ -34,9 +36,10 @@
   EPCFG_REGEX(ReqConfig,     CV *,      pUriMatch,      URIMATCH) 
   EPCFG_CHAR(ReqConfig,     char  ,     cMultFieldSep, MULTFIELDSEP ) 
   EPCFG_AV  (ReqConfig,     AV *,       pPathAV,         PATH, SEPARATOR) 
  -EPCFG_INT (ReqConfig,     unsigned,    bDebug,        DEBUG) 
  -EPCFG_INT (ReqConfig,     unsigned,    bOptions,      OPTIONS) 
  -EPCFG_INT (ReqConfig,     int   ,  nSessionMode,     SESSION_MODE) 
  +EPCFG_INTOPT (ReqConfig,     unsigned,    bDebug,        DEBUG) 
  +EPCFG_INTOPT (ReqConfig,     unsigned,    bOptions,      OPTIONS) 
  +EPCFG_INTOPT (ReqConfig,     int   ,  nSessionMode,     SESSION_MODE) 
  +EPCFG_INTOPT (ReqConfig,     int   ,      nOutputMode,   OUTPUT_MODE) 
   #endif
   
   
  @@ -53,9 +56,10 @@
   EPCFG_STR(AppConfig,     char *,  sCookieDomain,    COOKIE_DOMAIN)
   EPCFG_STR(AppConfig,     char *,  sCookiePath,      COOKIE_PATH) 
   EPCFG_STR(AppConfig,     char *,  sCookieExpires,   COOKIE_EXPIRES) 
  +EPCFG_BOOL(AppConfig,     bool,    bCookieSecure,    COOKIE_SECURE) 
   EPCFG_STR(AppConfig,     char *,  sLog,             LOG) 
  -EPCFG_INT(AppConfig,     unsigned,bDebug,           DEBUG) 
  -EPCFG_INT(AppConfig,     bool,    bMaildebug,       MAILDEBUG) 
  +EPCFG_INTOPT(AppConfig,     unsigned,bDebug,           DEBUG) 
  +EPCFG_BOOL(AppConfig,     bool,    bMaildebug,       MAILDEBUG) 
   EPCFG_STR(AppConfig,     char *,  sMailhost,        MAILHOST) 
   EPCFG_STR(AppConfig,     char *,  sMailhelo,        MAILHELO) 
   EPCFG_STR(AppConfig,     char *,  sMailfrom,        MAILFROM) 
  
  
  
  1.3       +20 -1     embperl/epcgiinit.c
  
  Index: epcgiinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epcgiinit.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- epcgiinit.c       22 Oct 2002 05:29:04 -0000      1.2
  +++ epcgiinit.c       26 Nov 2002 10:03:40 -0000      1.3
  @@ -30,6 +30,25 @@
       tainted = 0 ; \
       }
   
  +#define EPCFG_INTOPT(STRUCT,TYPE,NAME,CFGNAME) \
  +    { \
  +    char * p ; \
  +    tainted = 0 ; \
  +    p = GetHashValueStr (aTHX_  pThread -> pEnvHash, REDIR"EMBPERL_"#CFGNAME, NULL) 
; \
  +    if (p) \
  +        if (isdigit(*p))    \
  +            pConfig -> NAME   = (TYPE)strtol (p, NULL, 0) ; \
  +        else \
  +            { \
  +            int val ; \
  +            int rc ; \
  +              if (rc = 
embperl_OptionListSearch(Options##CFGNAME,1,#CFGNAME,p,&val)) \
  +                return rc ; \
  +            pConfig -> NAME = (TYPE)val ; \
  +            } \
  +    tainted = 0 ; \
  +    }
  +
   #undef EPCFG_BOOL
   #define EPCFG_BOOL(STRUCT,TYPE,NAME,CFGNAME) \
       tainted = 0 ; \
  
  
  
  1.3       +3 -1      embperl/epdat2.h
  
  Index: epdat2.h
  ===================================================================
  RCS file: /home/cvs/embperl/epdat2.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- epdat2.h  22 Oct 2002 05:29:05 -0000      1.2
  +++ epdat2.h  26 Nov 2002 10:03:40 -0000      1.3
  @@ -106,6 +106,7 @@
       CV *        pUriMatch ;
       char        cMultFieldSep ;
       AV *        pPathAV ;
  +    int         nOutputMode ;
       unsigned    bDebug ;
       unsigned    bOptions ;
       int         nSessionMode ;      /**< sets how to pass the session id, see 
smodeXXX constants */
  @@ -140,6 +141,7 @@
       char *  sCookieDomain ;
       char *  sCookiePath ;
       char *  sCookieExpires ;
  +    bool    bCookieSecure ;
       char *  sLog ;
       unsigned    bDebug ;
       char *  sMailhost ;
  
  
  
  1.9       +5 -5      embperl/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdom.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- epdom.c   20 Nov 2002 06:56:26 -0000      1.8
  +++ epdom.c   26 Nov 2002 10:03:40 -0000      1.9
  @@ -3356,11 +3356,11 @@
                           }
                       else
                        {
  -                     pNodeStart = "<" ;
  -                     pNodeEnd = ">" ;
                        nNodeStartLen = 1 ;
  -                     nNodeEndLen = 1 ;
  +                        nNodeEndLen = r -> Config.nOutputMode == omodeXml && pNode 
-> nType == ntypTag?3:1 ;
                        nNodeNameLen = strlen (pNodeName) ;
  +                        pNodeStart = "<" ;
  +                        pNodeEnd = nNodeEndLen == 3?" />":">" ;
                        }
   
                    owrite (r, pNodeStart, nNodeStartLen) ;
  @@ -3471,7 +3471,7 @@
                    {
                    oputs (r, "</") ;
                    oputs (r, Node_selfNodeName (pNode)) ;
  -                 oputc (r, '>') ;
  +                    oputc (r, '>') ;
                    }
                }
               }
  
  
  
  1.4       +120 -1    embperl/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epinit.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- epinit.c  15 Nov 2002 06:17:41 -0000      1.3
  +++ epinit.c  26 Nov 2002 10:03:41 -0000      1.4
  @@ -67,6 +67,125 @@
   
   static tReq NullRequest ; /* a request object with all zero, to point for deleted 
objects */
   
  +/* -------------------------------------------------------------------------
  +*
  +* Options lists for configuration 
  +*
  +*/
  +
  +#define OPTION(a,b) { #a, a}, { #b, a},
  +
  +tOptionEntry OptionsDEBUG[] =
  +    {
  +    OPTION(dbgStd, std)
  +    OPTION(dbgMem,Mem)
  +    OPTION(dbgEval,Eval)
  +    OPTION(dbgCmd,Cmd)
  +    OPTION(dbgEnv,Env)
  +    OPTION(dbgForm,Form)
  +    OPTION(dbgTab,Tab)
  +    OPTION(dbgInput,Input)
  +    OPTION(dbgFlushOutput,FlushOutput)
  +    OPTION(dbgFlushLog,FlushLog)
  +    OPTION(dbgAllCmds,AllCmds)
  +    OPTION(dbgSource,Source)
  +    OPTION(dbgFunc,Func)
  +    OPTION(dbgLogLink,LogLink)
  +    OPTION(dbgDefEval,DefEval)
  +    OPTION(dbgOutput,Output)
  +    OPTION(dbgDOM,DOM)
  +    OPTION(dbgRun,Run)
  +    OPTION(dbgHeadersIn,HeadersIn)
  +    OPTION(dbgShowCleanup,ShowCleanup)
  +    OPTION(dbgProfile,Profile)
  +    OPTION(dbgSession,Session)
  +    OPTION(dbgImport,Import)
  +    OPTION(dbgBuildToken,BuildToken)
  +    OPTION(dbgParse,Parse)
  +    OPTION(dbgObjectSearch,ObjectSearch)
  +    OPTION(dbgCache,Cache)
  +    OPTION(dbgCompile,Compile)
  +    OPTION(dbgXML,XML)
  +    OPTION(dbgXSLT,XSLT)
  +    OPTION(dbgCheckpoint,Checkpoint)
  +    OPTION(dbgAll,All)
  +    } ;
  +
  +#define OPTION_OPT(a) OPTION(opt##a, a) 
  +
  +tOptionEntry OptionsOPTIONS[] =
  +    {
  +    OPTION_OPT(DisableVarCleanup)
  +    OPTION_OPT(DisableEmbperlErrorPage)
  +    OPTION_OPT(SafeNamespace)
  +    OPTION_OPT(OpcodeMask)
  +    OPTION_OPT(RawInput)
  +    OPTION_OPT(SendHttpHeader)
  +    OPTION_OPT(EarlyHttpHeader)
  +    OPTION_OPT(DisableChdir)
  +    OPTION_OPT(DisableFormData)
  +    OPTION_OPT(DisableHtmlScan)
  +    OPTION_OPT(DisableInputScan)
  +    OPTION_OPT(DisableTableScan)
  +    OPTION_OPT(DisableMetaScan)
  +    OPTION_OPT(AllFormData)
  +    OPTION_OPT(RedirectStdout)
  +    OPTION_OPT(UndefToEmptyValue)
  +    OPTION_OPT(NoHiddenEmptyValue)
  +    OPTION_OPT(AllowZeroFilesize)
  +    OPTION_OPT(ReturnError)
  +    OPTION_OPT(KeepSrcInMemory)
  +    OPTION_OPT(KeepSpaces)
  +    OPTION_OPT(OpenLogEarly)
  +    OPTION_OPT(NoUncloseWarn)
  +    OPTION_OPT(DisableSelectScan)
  +    OPTION_OPT(ShowBacktrace)
  +    OPTION_OPT(EnableChdir)
  +    } ;
  +
  +
  +#define OPTION_ESC(a) OPTION(esc##a, a) 
  +
  +tOptionEntry OptionsESCMODE[] =
  +    {
  +    OPTION_ESC(None)
  +    OPTION_ESC(Html)
  +    OPTION_ESC(Url)
  +    OPTION_ESC(Escape)
  +    OPTION_ESC(XML)
  +    OPTION_ESC(Std)
  +    } ;
  +
  +
  +#define OPTION_IESC(a) OPTION(iesc##a, a) 
  +
  +tOptionEntry OptionsINPUT_ESCMODE[] =
  +    {
  +    OPTION_IESC(None)
  +    OPTION_IESC(Html)
  +    OPTION_IESC(Url)
  +    OPTION_IESC(RemoveTags)
  +    } ;
  +
  +#define OPTION_OMODE(a) OPTION(omode##a, a) 
  +
  +tOptionEntry OptionsOUTPUT_MODE[] =
  +    {
  +    OPTION_OMODE(Html)
  +    OPTION_OMODE(Xml)
  +    } ;
  +
  +#define OPTION_SMODE(a) OPTION(smode##a, a) 
  +
  +tOptionEntry OptionsSESSION_MODE[] =
  +    {
  +    OPTION_SMODE(None)
  +    OPTION_SMODE(UDatCookie)
  +    OPTION_SMODE(UDatParam)
  +    OPTION_SMODE(UDatUrl)
  +    OPTION_SMODE(SDatParam)
  +    } ;
  +
   
   /*---------------------------------------------------------------------------
   * embperl_SetupThread
  
  
  
  1.120     +8 -1      embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.119
  retrieving revision 1.120
  diff -u -r1.119 -r1.120
  --- epmain.c  22 Oct 2002 05:29:05 -0000      1.119
  +++ epmain.c  26 Nov 2002 10:03:41 -0000      1.120
  @@ -177,6 +177,7 @@
           case rcRefcntNotOne:            msg ="[%d]ERR:  %d: %s There is still %s 
reference(s) to the %s object, while there shouldn't be any." ; break ; 
           case rcApacheErr:               msg ="[%d]ERR:  %d: %s Apache returns 
Error: %s %s" ; break ; 
           case rcTooDeepNested:           msg ="[%d]ERR:  %d: %s Source data is too 
deep nested %s %s" ; break ; 
  +        case rcUnknownOption:           msg ="[%d]ERR:  %d: %s Unkown option '%s' 
in configuration directive '%s'" ; break ; 
   
        default:                        msg ="[%d]ERR:  %d: %s Error (no description) 
%s %s" ; break ; 
           }
  @@ -497,6 +498,8 @@
                       pCookie = ep_pstrcat (r -> pPool, pCookie, "; domain=", pCfg -> 
sCookieDomain, NULL) ;
                   if (pCfg -> sCookiePath)
                       pCookie = ep_pstrcat (r -> pPool, pCookie, "; path=", pCfg -> 
sCookiePath, NULL) ;
  +                if (pCfg -> bCookieSecure)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; secure", NULL) ;
                   }
   
            if (r -> Config.bDebug & dbgSession)  
  @@ -515,6 +518,8 @@
                       pCookie = ep_pstrcat (r -> pPool, pCookie, "; path=", pCfg -> 
sCookiePath, NULL) ;
                   if (pCfg -> sCookieExpires)
                       pCookie = ep_pstrcat (r -> pPool, pCookie, "; expires=", pCfg 
-> sCookieExpires, NULL) ;
  +                if (pCfg -> bCookieSecure)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; secure", NULL) ;
   
                if (r -> Config.bDebug & dbgSession)  
                    lprintf (r -> pApp,  "[%d]SES:  Send Cookie -> %s\n", r -> pThread 
-> nPid, pCookie) ; 
  @@ -522,6 +527,8 @@
               else
                   {
                   pCookie = ep_pstrdup (r -> pPool, SvPV(pSVUID, ldummy)) ;
  +             if (r -> Config.bDebug & dbgSession)  
  +                 lprintf (r -> pApp,  "[%d]SES:  Add ID to URL type=%c id=%s\n", r 
-> pThread -> nPid, type, pCookie) ; 
                   }
            }
        }
  
  
  
  1.7       +8 -6      embperl/epparse.c
  
  Index: epparse.c
  ===================================================================
  RCS file: /home/cvs/embperl/epparse.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- epparse.c 22 Oct 2002 05:29:06 -0000      1.6
  +++ epparse.c 26 Nov 2002 10:03:42 -0000      1.7
  @@ -756,14 +756,15 @@
                           if (pEndCurr - pCurr && pToken -> nCDataType && pToken -> 
nCDataType != ntypCDATA)
                            { /* add text before end of token as node */
                               char * pEnd = pEndCurr ;
  +                            char c;
   
                               if (pToken -> bRemoveSpaces & 32)
  -                             while (pEnd >= pCurrStart && isspace (*pEnd))
  +                             while (pEnd > pCurrStart && isspace (*(pEnd-1)))
                                    pEnd-- ;
                            else if (pToken -> bRemoveSpaces & 64)
  -                             while (pEnd >= pCurrStart && (*pEnd == ' ' || *pEnd == 
'\t'  || *pEnd == '\r'))
  +                             while (pEnd > pCurrStart && ((c = *(pEnd-1)) == ' ' || 
c == '\t'  || c == '\r'))
                                    pEnd-- ;
  -                             
  +
                            if (pToken -> bUnescape)
                                   {
                                   int newlen ;
  @@ -931,12 +932,13 @@
                                {
                                int nLine ;
                                   char * pEnd = pEndCurr ;
  +                                char c;
   
                                   if (pToken -> bRemoveSpaces & 32)
  -                                 while (pEnd >= pCurrStart && isspace (*pEnd))
  +                                 while (pEnd > pCurrStart && isspace (*(pEnd-1)))
                                        pEnd-- ;
                                else if (pToken -> bRemoveSpaces & 64)
  -                                 while (pEnd >= pCurrStart && (*pEnd == ' ' || 
*pEnd == '\t'  || *pEnd == '\r'))
  +                                 while (pEnd > pCurrStart && ((c = *(pEnd-1)) == ' 
' || c == '\t'  || c == '\r'))
                                        pEnd-- ;
                                
                                   if (pToken -> bUnescape)
  
  
  
  1.3       +25 -1     embperl/eppriv.h
  
  Index: eppriv.h
  ===================================================================
  RCS file: /home/cvs/embperl/eppriv.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- eppriv.h  22 Oct 2002 05:29:06 -0000      1.2
  +++ eppriv.h  26 Nov 2002 10:03:42 -0000      1.3
  @@ -211,6 +211,30 @@
                                   /*out*/ tReqParam  * pParam) ;
   
   
  +typedef struct tOptionEntry
  +    {
  +    const char *    sOption ;
  +    int             nValue ;
  +    } tOptionEntry ;
  +
  +extern tOptionEntry OptionsDEBUG[] ;
  +extern tOptionEntry OptionsOPTIONS[] ;
  +extern tOptionEntry OptionsESCMODE[] ;
  +extern tOptionEntry OptionsINPUT_ESCMODE[] ;
  +extern tOptionEntry OptionsOUTPUT_MODE[] ;
  +extern tOptionEntry OptionsSESSION_MODE[] ;
  +
  +
  +
  +int embperl_OptionListSearch (/*in*/ tOptionEntry * pList,
  +                              /*in*/ bool          bMult,
  +                              /*in*/ const char *  sCmd,
  +                              /*in*/ const char *  sOptions,
  +                              /*in*/ int *         pnValue) ;
  +
  +
  +
  +
   /* --- init --- */
   
   #if 0
  
  
  
  1.28      +88 -3     embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- eputil.c  22 Oct 2002 05:29:06 -0000      1.27
  +++ eputil.c  26 Nov 2002 10:03:42 -0000      1.28
  @@ -159,9 +159,9 @@
   
       if (nEscMode >= 0)
        {           
  -     if (nEscMode & escXML && !r -> Component.bEscInUrl)
  +     if ((nEscMode & escXML) && !r -> Component.bEscInUrl)
            pEscTab = Char2XML ;
  -     if (nEscMode & escHtml && !r -> Component.bEscInUrl)
  +     else if ((nEscMode & escHtml) && !r -> Component.bEscInUrl)
            pEscTab = Char2Html ;
        else if (nEscMode & escUrl)
            pEscTab = Char2Url ;
  @@ -1795,6 +1795,91 @@
   
       return sMsgId ;
       }
  +
  +
  +/* ------------------------------------------------------------------------ */
  +/*                                                                          */
  +/* embperl_OptionListSearch                                              */
  +/*                                                                          */
  +/*! 
  +*   \_en
  +*   Lookup a number of options from a list and return numeric equivalent
  +*   @param  pList           Option/Valus pairs
  +*   @param  bMult           Allow multiple options
  +*   @param  sCmd            Configurationdirective (for errormessage)
  +*   @param  sOptions        Option string
  +*   @param  pnValue         Returns option value
  +*   @return                 error code
  +*   
  +*   \endif                                                                       
  +*
  +*   \_de                                                                        
  +*   Ermittelt aus einer Liste von Optionen das numerische Equivalent
  +*   @param  pList           Option/Wertepaare
  +*   @param  bMult           Mehrfachoptionen erlaubt
  +*   @param  sCmd            Konfigurationsdirektive (f�r Fehlermeldung)
  +*   @param  sOptions        Optionszeichenkette
  +*   @param  pnValue         Liefert den Optionswert zur�ck
  +*   @return                 Fehlercode
  +*   
  +*   \endif                                                                       
  +*                                                                          
  +* ------------------------------------------------------------------------ */
  +
  +
  +int embperl_OptionListSearch (/*in*/ tOptionEntry * pList,
  +                              /*in*/ bool          bMult,
  +                              /*in*/ const char *  sCmd,
  +                              /*in*/ const char *  sOptions,
  +                              /*in*/ int *         pnValue)
  +    {
  +    char * sKeyword ;
  +    char * sOpts = strdup (sOptions) ;
  +    dTHX ;
  +
  +    *pnValue = 0 ;
  +    
  +    sKeyword = strtok (sOpts, ", \t\n") ;
  +    while (sKeyword)
  +        {
  +        tOptionEntry * pEntry = pList ;
  +        bool found = 0 ;
  +
  +        while (pEntry -> sOption)
  +            {
  +            if (stricmp (sKeyword, pEntry -> sOption) == 0)
  +                {
  +                *pnValue |= pEntry -> nValue ;
  +                if (!bMult)
  +                    {
  +                    if (sOpts)
  +                        free (sOpts) ;
  +
  +                    return ok ;
  +                    }
  +                found = 1 ;
  +                }
  +            }
  +        if (!found)
  +            {
  +            LogErrorParam (NULL, rcUnknownOption, sKeyword, sCmd) ;
  +            if (sOpts)
  +                free (sOpts) ;
  +
  +            return rcUnknownOption ;
  +            }
  +
  +        
  +        }
  +
  +    
  +    if (sOpts)
  +        free (sOpts) ;
  +
  +    return ok ;
  +    }
  +
  +
   
   
   
  
  
  
  1.3       +26 -2     embperl/mod_embperl.c
  
  Index: mod_embperl.c
  ===================================================================
  RCS file: /home/cvs/embperl/mod_embperl.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mod_embperl.c     22 Oct 2002 05:29:06 -0000      1.2
  +++ mod_embperl.c     26 Nov 2002 10:03:42 -0000      1.3
  @@ -53,6 +53,7 @@
   
   #define EPCFG_STR EPCFG
   #define EPCFG_INT EPCFG
  +#define EPCFG_INTOPT EPCFG
   #define EPCFG_BOOL EPCFG
   #define EPCFG_CHAR EPCFG
   
  @@ -212,7 +213,7 @@
   void embperl_ApacheAddModule (void)
   
       {
  -    apr_pool_t * pool ;
  +    /*apr_pool_t * pool ;*/
   
       bApDebug |= ap_exists_config_define("EMBPERL_APDEBUG") ;
      
  @@ -447,6 +448,7 @@
   
   #undef EPCFG_STR
   #undef EPCFG_INT
  +#undef EPCFG_INTOPT
   #undef EPCFG_BOOL
   #undef EPCFG_CHAR
   #undef EPCFG_CV
  @@ -456,6 +458,7 @@
   #undef EPCFG_REGEX
   
   #define EPCFG_INT EPCFG
  +#define EPCFG_INTOPT EPCFG
   #define EPCFG_BOOL EPCFG
   #define EPCFG_CHAR EPCFG
   
  @@ -572,6 +575,25 @@
       return NULL; \
       } 
   
  +#undef EPCFG_INTOPT
  +#define EPCFG_INTOPT(STRUCT,TYPE,NAME,CFGNAME) \
  +const char * embperl_Apache_Config_##STRUCT##NAME (cmd_parms *cmd, /* 
tApacheDirConfig */ void * pDirCfg, const char * arg) \
  +    { \
  +    if (isdigit(*arg))    \
  +        ((tApacheDirConfig *)pDirCfg) -> STRUCT.NAME = (TYPE)strtol(arg, NULL, 0) ; 
\
  +    else \
  +        { \
  +        int val ; \
  +        if (embperl_OptionListSearch(Options##CFGNAME,1,#CFGNAME,arg,&val)) \
  +            return "Unknown Option" ; \
  +        ((tApacheDirConfig *)pDirCfg) -> STRUCT.NAME = (TYPE)val ; \
  +        } \
  +    ((tApacheDirConfig *)pDirCfg) -> set_##STRUCT##NAME = 1 ; \
  +    if (bApDebug) \
  +        ap_log_error (APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, APLOG_STATUSCODE 
NULL, "Embperl: Set "#CFGNAME" (type="#TYPE";INT) = %s\n", arg) ; \
  +    return NULL; \
  +    } 
  +
   #undef EPCFG_BOOL
   #define EPCFG_BOOL(STRUCT,TYPE,NAME,CFGNAME) \
   const char * embperl_Apache_Config_##STRUCT##NAME (cmd_parms *cmd, /* 
tApacheDirConfig */ void * pDirCfg, const char * arg) \
  @@ -656,9 +678,11 @@
   
   #undef EPCFG_STR
   #undef EPCFG_INT
  +#undef EPCFG_INTOPT
   #undef EPCFG_BOOL
   #undef EPCFG_CHAR
   #define EPCFG_INT EPCFG
  +#define EPCFG_INTOPT EPCFG
   #define EPCFG_BOOL EPCFG
   #define EPCFG_CHAR EPCFG
   #undef EPCFG
  
  
  
  1.120     +5 -1      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.119
  retrieving revision 1.120
  diff -u -r1.119 -r1.120
  --- test.pl   22 Oct 2002 05:29:06 -0000      1.119
  +++ test.pl   26 Nov 2002 10:03:42 -0000      1.120
  @@ -972,6 +972,9 @@
           'version'    => 2,
           'app_handler_class' => 'Embperl::TEST::App',
           },
  +    'xhtml.htm' => { 
  +        'version'    => 2,
  +        },
   ) ;
   
   for ($i = 0 ; $i < @testdata; $i += 2)
  @@ -1457,6 +1460,7 @@
           }
       $cookie = $c if (($c =~ /EMBPERL_UID/) && !($cookieaction =~ /nosave/)) ;  
       $cookie = undef if (($c =~ /EMBPERL_UID=;/) && !($cookieaction =~ /nosave/)) ;  
  +    $cookie =~ s/;.*$// if ($cookie) ;
   
       $sendcookie ||= '' ;
       print "\nSent: $sendcookie, Got: " , ($c||''), "\n" if ($opt_showcookie) ;
  
  
  
  1.3       +4 -2      embperl/Embperl/Syntax/EmbperlBlocks.pm
  
  Index: EmbperlBlocks.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Syntax/EmbperlBlocks.pm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EmbperlBlocks.pm  22 Oct 2002 05:39:49 -0000      1.2
  +++ EmbperlBlocks.pm  26 Nov 2002 10:03:44 -0000      1.3
  @@ -482,11 +482,13 @@
           'text' => '[=',
           'end'  => '=]',
           'unescape' => 1,
  +         removespaces  => 72,
  +        'cdatatype' => ntypAttrValue,
           'procinfo' => {
               embperl => { 
                       perlcode => 
                           [
  -                        '_ep_rpid(%$x%,scalar(%#0%));', 
  +                        '_ep_rpid(%$x%,scalar(%&\'<noname>%));', 
                        ],
                       removenode  => 4,
                       compilechilds => 0,
  
  
  
  1.3       +4 -7      embperl/eg/web/base.epl
  
  Index: base.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/base.epl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- base.epl  22 Oct 2002 05:39:50 -0000      1.2
  +++ base.epl  26 Nov 2002 10:03:44 -0000      1.3
  @@ -24,7 +24,10 @@
              .cTabsOn             {[+ $base14 +] background: #ddaaaa; }
              .cTabsOff            {[+ $base14 +] background: #DDDDDD; }
              .cMenu               {[+ $base10 +] color: #000000 ; text-align: left ;}
  +           .cMenuInfo           {[+ $base10 +] color: #000000 ; text-align: left ; 
background: #D2E9F5 }
              .cNews               {[+ $base10 +]}
  +           .cContent            {[+ $base12 +] border-left: 1px black solid ; 
border-right: 1px black solid ; padding-left: 7px; padding-right: 7px; }
  +           .cContentNews        {[+ $base12 +] border-left: 1px black solid ; 
margin-left: 7px; padding-left: 7px; }
   
              .cPodHeaderNavLink   {[+ $base12 +]}
              .cPodH1ContentLink   {[+ $base12 +] font-weight: bold;}
  @@ -54,13 +57,7 @@
           <table width="100%" cellspacing="0" cellpadding="0" border="0">
               <tr>
                   <td valign="top">[- Execute ('menuleft.epl') -]</td>
  -                <td valign="top" width="2">&nbsp;</td>
  -                <td valign="top" height="100%"><img src="[+ $r -> {imageuri} 
+]frame.jpg" width="1" height="100%"></td>
  -                <td valign="top" width="10">&nbsp;</td>
  -                <td valign="top" width="90%">[- Execute ('content.epl') -]</td>
  -                <td valign="top" width="2">&nbsp;</td>
  -                <td valign="top" height="100%"><img src="[+ $r -> {imageuri} 
+]frame.jpg" width="1" height="100%"></td>
  -                <td valign="top" width="10">&nbsp;</td>
  +                <td valign="top" width="90%" class="cContent">[- Execute 
('content.epl') -]</td>
               </tr>
           </table>
           [- Execute ('footer.htm') -]
  
  
  
  1.4       +31 -3     embperl/eg/web/config.pl
  
  Index: config.pl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/config.pl,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- config.pl 20 Nov 2002 06:56:27 -0000      1.3
  +++ config.pl 26 Nov 2002 10:03:44 -0000      1.4
  @@ -68,11 +68,16 @@
               'Changes'                         => '�nderungen',
               'Sites using Embperl'             => 'Sites mit Embperl',
               'Add info about Embperl'          => 'Hinzuf�gen Infos',
  +            'More infos'                      => 'Weitere Infos',
               'Enter info to add about Embperl' => 'Eingabe von Informationen zu 
Embperl',
               'Show info added about Embperl'   => 'Anzeige der gespeicherten 
Informationen zu Embperl',
               'Infos about Embperl'             => 'Informationen �ber Embperl',  
               '1.3.4 documentation'             => '1.3.4 Dokumentation',
               'Configuration'                   => 'Konfiguration',
  +            'Conferences'                     => 'Konferenzen',
  +            'Books'                           => 'B�cher',
  +            'Articles'                        => 'Artikel',
  +            'Modules & Examples'              => 'Module & Beispiele',
               }
           ) ;
   
  @@ -193,9 +198,31 @@
           { menu => 'Support',                uri => 'pod/doc/Embperl.-page-12-.htm' 
},
           { menu => 'Changes',                 uri => 'pod/Changes.htm',           
file => 'Changes.pod' },
           #{ menu => 'Sites using Embperl',    uri => 'pod/Sites.htm',             
file => 'Sites.pod' },
  -        { menu => 'News',                    uri => 'db/news/news.htm',          
file => 'eg/web/db/news/data.epd', fdat => { 'category_id' => 1 } },
  -        { menu => 'Sites using Embperl',     uri => 'db/sites/sites.htm',        
file => 'eg/web/db/data.epd', fdat => { 'category_id' => 2 } },
  -        { menu => 'Login',                   uri => 'db/login.epl'},
  +        { menu => 'More infos',          uri => 'db/', sub => 
  +            [
  +            { menu => 'News',                    uri => 'news/news.htm',          
file => 'eg/web/db/news/data.epd', fdat => { 'category_id' => 1 }, 
  +                  desc => { en => 'Full list of all news.',
  +                            de => 'Vollst�ndige Liste aller Neuigkeiten.' }},
  +            { menu => 'Sites using Embperl',     uri => 'sites/sites.htm',        
file => 'eg/web/db/data.epd', fdat => { 'category_id' => 2 },
  +                  desc => { en => 'Descriptions of Websites that use Embperl.',
  +                            de => 'Beschreibung von Websites die Embperl 
einsetzen.' }},
  +            { menu => 'Books',     uri => 'sites/books.htm',        file => 
'eg/web/db/data.epd', fdat => { 'category_id' => 3 },
  +                  desc => { en => 'Books that contains informations about Embperl.',
  +                            de => 'B�cher die Embperl behandeln.' }},
  +            { menu => 'Articles',     uri => 'sites/articles.htm',        file => 
'eg/web/db/data.epd', fdat => { 'category_id' => 4 },
  +                  desc => { en => 'Articles that covers Embperl.',
  +                            de => 'Artikel die Embperl behandeln.' }},
  +            { menu => 'Modules & Examples',     uri => 'sites/examples.htm',        
file => 'eg/web/db/data.epd', fdat => { 'category_id' => 6 },
  +                  desc => { en => 'Modules and Examples with sourcecode for 
use/that uses Embperl.',
  +                            de => 'Modules und Beispiele incl. Quelltext zur/unter 
Benutzung von Embperl.' }},
  +            { menu => 'Editorsupport',     uri => 'sites/editors.htm',        file 
=> 'eg/web/db/data.epd', fdat => { 'category_id' => 5 },
  +                  desc => { en => 'Syntaxhighligthing and other support for 
editors.',
  +                            de => 'Syntaxhervorhebungen unter Unterst�tzung f�r 
Editoren.' }},
  +            { menu => 'Conferences',     uri => 'sites/conferences.htm',        
file => 'eg/web/db/data.epd', fdat => { 'category_id' => 7 },
  +                  desc => { en => 'Talks about Embperl.',
  +                            de => 'Vortr�ge �ber Embperl.' }},
  +            ],
  +        },
           { menu => 'Add info about Embperl',  uri => 'db/addsel.epl', same => 
               [
               { menu => 'Enter info to add about Embperl',    uri => 'db/add.epl' },
  @@ -204,6 +231,7 @@
               { menu => 'Infos about Embperl',                uri => 'db/list.epl' },
               ],
           },
  +        { menu => 'Login',                   uri => 'db/login.epl'},
           ) ;
   
   
  
  
  
  1.3       +2 -5      embperl/eg/web/content.epl
  
  Index: content.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/content.epl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- content.epl       22 Oct 2002 05:39:50 -0000      1.2
  +++ content.epl       26 Nov 2002 10:03:44 -0000      1.3
  @@ -7,11 +7,8 @@
           <br>
           #]
           <br>
  -     <font size="2" face="Verdana, Arial, Helvetica, sans-serif">[- Execute 
({inputfile => '*', syntax => 'Text'}) -]</td>
  -        <td valign="top" width="10">&nbsp;</td>
  -        <td valign="top" height="100%"><img src="[+ $r -> {imageuri} +]frame.jpg" 
width="1" height="100%"></td>
  -        <td valign="top" width="2">&nbsp;</td>
  -        <td valign="top" align="left" width="152"><font size="2" face="Verdana, 
Arial, Helvetica, sans-serif">
  +     [- Execute ({inputfile => '*', syntax => 'Text'}) -]</td>
  +        <td valign="top" align="left" width="152" class="cContentNews">
           [- Execute ('news.epl') -] 
           </td>
       </tr>
  
  
  
  1.3       +20 -28    embperl/eg/web/menuleft.epl
  
  Index: menuleft.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/menuleft.epl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- menuleft.epl      22 Oct 2002 05:39:50 -0000      1.2
  +++ menuleft.epl      26 Nov 2002 10:03:44 -0000      1.3
  @@ -8,9 +8,13 @@
        <td align="left" [$if $tablebg $]background="[+ $r -> {imageuri} 
+]/hintergrund-nav.gif"[$endif$]> 
          <table width="152" border="0" cellspacing="0" cellpadding="0">
                <tr> 
  -                  <td nowrap align="left" width=[+ $ndx * 15 + 2 +]>&nbsp;</td>
  +                  [$ if (defined($ndx)) $]
  +                  <td nowrap align="left" width=[+ $ndx * 12 + 2 +]>&nbsp;</td>
                  <td nowrap align="left" width=15><img src="[+ $r -> {imageuri} 
+]i-sub-[+ $state>1?($state>2?'on':'open'):'off' +].gif" width="11" height="11" 
vspace="6" hspace="5"></td>
  -               <td nowrap align="left" width=[+ 150 - $ndx * 15 +]><a href="[+ $app 
-> languri ($r, $url) +]"><div class="cMenu"><b>[+ $r -> gettext ($txt) 
+]</b></div></a></td>
  +                  <td nowrap align="left" width=[+ 125 - $ndx * 12 +]><a href="[+ 
$app -> languri ($r, $url) +]"><div class="cMenu">[+ $r -> gettext ($txt) 
+]</div></a></td>
  +               [$else$]
  +                  <td nowrap with="152" height=22>&nbsp;&nbsp;&nbsp;&nbsp;[$ if 
$url $]<a href="[+ $app -> languri ($r, $url) +]">[$endif$]<span class="cMenu">[+ $r 
-> gettext ($txt) +]</span>[$ if $url $]</a>[$endif$]</td>
  +               [$endif$]
                </tr>
          </table>
        </td>
  @@ -66,30 +70,18 @@
     <tr> 
       <td><img src="[+ $r -> {imageuri} +]h_current-v.gif" width="152" 
height="19"></td>
     </tr>
  -  <tr> 
  -    <td><font face="Verdana, Arial, Helvetica, sans-serif" 
size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
  -  </tr>
  -  <tr> 
  -    <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" height="1"></td>
  -  </tr>
  -  <tr> 
  -    <td bgcolor="#D2E9F5"><font face="Verdana, Arial, Helvetica, sans-serif" 
size="1"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stable 
  -      1.3.4</b></font></td>
  -  </tr>
  -  <tr>
  -    <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" height="1"></td>
  -  </tr>
  -  <tr> 
  -    <td><img src="[+ $r -> {imageuri} +]transp.gif" width="152" height="5"></td>
  -  </tr>
  -  <tr> 
  -    <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" height="1"></td>
  -  </tr>
  -  <tr> 
  -    <td bgcolor="#D2E9F5"><font face="Verdana, Arial, Helvetica, sans-serif" 
size="1"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -             Beta 2.0b8</b></font></td>
  -  </tr>
  -  <tr>
  -    <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" height="1"></td>
  -  </tr>
  +    <tr> 
  +        <td>&nbsp;</td>
  +    </tr>
  +    <tr> 
  +        <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" 
height="1"></td>
  +    </tr>
  +    [- menuitem ('pod/doc/Embperl.-page-13-.htm', 'Stable 1.3.4', 0, 1) -]
  +    <tr> 
  +        <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" 
height="1"></td>
  +    </tr>
  +    [- menuitem ('pod/doc/Embperl.-page-13-.htm', 'Beta 2.0b8', 0, 1) -]
  +    <tr>
  +        <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" 
height="1"></td>
  +    </tr>
   </table>
  
  
  
  1.5       +2 -0      embperl/eg/web/messages.pl
  
  Index: messages.pl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/messages.pl,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- messages.pl       20 Nov 2002 21:29:38 -0000      1.4
  +++ messages.pl       26 Nov 2002 10:03:44 -0000      1.5
  @@ -75,6 +75,7 @@
        'mail_subj_newpw' => 'Ihr neues Pa�wort auf der Embperl Webseite',
   
        # Errors
  +        'err_notfound'      => 'Das angeforderte Dokument konnte nicht gefunden 
werden.',
        'err_email_needed' => "Sie m�ssen eine E-Mail Adresse eingeben.",
        'err_access_denied' => 'Zugriff verweigert. Entweder die E-Mail Adresse oder 
das Kennwort sind falsch.',
        'err_user_exists' => 'Benutzer existiert bereits. Vielleicht m�chten Sie ein 
neues Kennwort an diese Adresse senden?',
  @@ -178,6 +179,7 @@
        'mail_subj_newpw' => 'Your new Embperl Website password',
   
        # Errors
  +        'err_notfound'      => 'The document you requested wasn\'t found.',
        'err_email_needed' => "You haven't entered an email address. This is mandatory 
for the requested action.",
        'err_access_denied' => 'Access Denied. Either user name (e-mail address) or 
password were wrong.',
        'err_user_exists' => 'User already exists. Perhaps you want a new password 
sent to this address?',
  
  
  
  1.4       +8 -1      embperl/eg/web/notfound.htm
  
  Index: notfound.htm
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/notfound.htm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- notfound.htm      20 Nov 2002 06:56:27 -0000      1.3
  +++ notfound.htm      26 Nov 2002 10:03:44 -0000      1.4
  @@ -1 +1,8 @@
  -The document you requested wasn't found.
  \ No newline at end of file
  +<br>
  +<br>
  +<br>
  +<br>
  +<br>
  +<center><div class="cHeadline">
  +[= err_notfound =]
  +</div></center>
  
  
  
  1.1                  embperl/eg/web/db/index.htm
  
  Index: index.htm
  ===================================================================
  <blockquote>
  <br>
  [$ if $_[0] -> param -> language eq 'de' $]
  Hier finden Sie weitere Informationen und Links zu Embperl. 
  <br><br>
  Wenn Sie Informationen/Hiweise/Links zu Embperl kennen, dann <a 
href="addsel.epl">f�gen Sie sie einfach hinzu</a>
  [$else$]
  Here you find additional informations about Embperl. 
  <br><br>
  If you know any further informations about Embperl, please <a 
href="addsel.epl">add</a> them to the site.
  [$endif$]
  <br>
  <br>
  [- Execute ('menulist.epl') -]
  </blockquote>
  
  
  
  
  
  
  1.3       +1 -1      embperl/eg/web/db/news/data.epd
  
  Index: data.epd
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/news/data.epd,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- data.epd  22 Oct 2002 05:39:50 -0000      1.2
  +++ data.epd  26 Nov 2002 10:03:44 -0000      1.3
  @@ -21,5 +21,5 @@
   
   [+ $rec -> {description} +]
   
  -[$if $r -> {user_id} && $r -> {user_id} == $rec -> {user_id} 
$]L<[Edit]|../add.epl?item_id=[+ $rec -> {item_id} +]&amp;-edit_item=1> [$endif$]
  +[$ if ($r->{user_id} && $r->{user_id} == $rec->{user_id}) || $r->{user_admin} 
$]L<Edit|../add.epl?item_id=[+ $rec->{item_id} +]&amp;-edit_item=1&amp;category_id=[+ 
$rec->{category_id} +]> | Status: [+ $r -> gettext ($r->{item_set}{state} ? 'display' 
: 'hide') +][$ endif $]
   [$endwhile$]
  
  
  
  1.4       +14 -0     embperl/podsrc/Config.spod
  
  Index: Config.spod
  ===================================================================
  RCS file: /home/cvs/embperl/podsrc/Config.spod,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Config.spod       20 Nov 2002 06:56:28 -0000      1.3
  +++ Config.spod       26 Nov 2002 10:03:45 -0000      1.4
  @@ -369,6 +369,10 @@
   Set the expiration date that Embperl uses for the cookie with the session id.
   You can specify the full date or relativ values. Examples: +30s +10m +1h -1d +3M 
+10y
   
  +=head2 *CFG $application / Embperl_COOKIE_SECURE / cookie_secure / 2.0b9 / no / at 
the end of the session / Session Handling
  +
  +Set the secure flag of cookie that Embperl uses for the session id. If set the
  +cookie will only be transfered over a secured connection.
   
   =head2 *CFG $application / Embperl_LOG / log / / no / Unix: /tmp/embperl.log  
Windows: /embperl.log
   
  @@ -709,6 +713,16 @@
   
   
   =back
  +
  +=head2 *CFG $request / Embperl_Output_Mode / output_mode / yes / 2.0b9 / HTML
  +
  +Set the desired output format. 0 for HTML and 1 XML. If set to XML all tags
  +that are generated by Embperl will contain a closing slash to conform to XML
  +specs. e.g.
  +
  +    <input type="text" name="foo" />
  +
  +B<NOTE:> If you set output_mode to XML you should also change L<escmode> to XML 
escaping.
   
   
   =head2 *CFG $request / Embperl_SESSION_MODE / session_mode / no / 2.0b6 / 
smodeUDatCookie = 1
  
  
  
  1.3       +2 -0      embperl/test/testapp.pl
  
  Index: testapp.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test/testapp.pl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- testapp.pl        22 Oct 2002 06:06:47 -0000      1.2
  +++ testapp.pl        26 Nov 2002 10:03:45 -0000      1.3
  @@ -16,6 +16,7 @@
           'heading' => '�berschrift',
           'url'     => 'URL',
           'show2'   => 'Folgender Eintrag wurde erfolgreich der Datenbank 
hinzugef�gt',
  +        'last'    => 'last zwischen [= =]',
           },
       'en' =>
           {
  @@ -28,6 +29,7 @@
           'heading' => 'Heading',
           'url'     => 'URL',
           'show2'   => 'The following entry has been sucessfully added to the 
database',
  +        'last'    => 'last inside of [= =]',
           },
       ) ;
   
  
  
  
  1.3       +57 -1     embperl/test/cmp/i18n.htm
  
  Index: i18n.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/i18n.htm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- i18n.htm  20 Nov 2002 06:56:28 -0000      1.2
  +++ i18n.htm  26 Nov 2002 10:03:45 -0000      1.3
  @@ -67,4 +67,60 @@
   heading =     &Uuml;berschrift
   add3 =        Add to
   </form>
  -             
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    next<br>
  +
  +    addsel1 (2) = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    next<br>
  +
  +    addsel2 (2) = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie 
die Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    next<br>
  +
  +    addsel3 (2) = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das 
entsprechende Eingabefeld leer.<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    next<br>
  +
  +    addsel4 (2) = Kategorie hinzuf&uuml;gen<br>
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    last zwischen [= =]<br>
  +
  
  
  
  1.1                  embperl/test/cmp/xhtml.htm
  
  Index: xhtml.htm
  ===================================================================
  <html>
  <head>
  <title>Embperl Tests - XHTML output</title>
  </head>
  
  <body>
  
  a <br>
  <table>
      <tr>
          <td>1 </td>
      
          <td>&apos;2&apos; </td>
      </tr> 
  
      <tr>
          <td>&quot;3&quot; </td>
      
          <td>4 </td>
      </tr> 
  </table>
  
  <input type="hidden" name="a" value="1" /><input type="hidden" name="b" 
value="&apos;2&apos;" /><input type="hidden" name="c" value="&quot;3&quot;" />
  
  <input type="text" name="b" value="&apos;2&apos;" />
  <input type="text" name="c" value="&quot;3&quot;" />
  
  </body>
  </html>
  
  
  
  1.2       +57 -1     embperl/test/cmp2/i18n.htm
  
  Index: i18n.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp2/i18n.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- i18n.htm  22 Oct 2002 05:45:13 -0000      1.1
  +++ i18n.htm  26 Nov 2002 10:03:45 -0000      1.2
  @@ -67,4 +67,60 @@
   heading =     &Uuml;berschrift
   add3 =        Add to
   </form>
  -             
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    next<br>
  +
  +    addsel1 (2) = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    next<br>
  +
  +    addsel2 (2) = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie 
die Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    next<br>
  +
  +    addsel3 (2) = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das 
entsprechende Eingabefeld leer.<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    next<br>
  +
  +    addsel4 (2) = Kategorie hinzuf&uuml;gen<br>
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    last: last zwischen [= =]<br>
  +
  +addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzuf&uuml;gen 
m&ouml;chten:<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel2 = oder f&uuml;gen Sie eine neue Kategorie hinzu. Bitte geben Sie die 
Beschreibung in so vielen Sprachen wie Ihnen m&ouml;glich ein.<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel3 = Falls Sie die &Uuml;bersetzung nicht wissen, lassen Sie das entsprechende 
Eingabefeld leer.<br>
  +
  +    last zwischen [= =]<br>
  +
  +addsel4 = Kategorie hinzuf&uuml;gen<br>
  +
  +    last zwischen [= =]<br>
  +
  
  
  
  1.49      +3 -1      embperl/test/conf/httpd.conf.src
  
  Index: httpd.conf.src
  ===================================================================
  RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- httpd.conf.src    22 Oct 2002 05:29:10 -0000      1.48
  +++ httpd.conf.src    26 Nov 2002 10:03:45 -0000      1.49
  @@ -129,6 +129,7 @@
   
   print OFH <<EOD ;
   
  +Embperl_Cookie_Path /
   EMBPERL_ALLOW (asc|\\.xml\$|\\.htm\$)
   
   
  @@ -572,6 +573,7 @@
   </Location>
   
   <Location /eg/web/conf>
  +EMBPERL_APPNAME EmbperlConf
   EMBPERL_RECIPE EmbperlLibXSLT
   EMBPERL_XSLTSTYLESHEET \"$EPPATH/eg/web/conf/pod.xsl\"
   EMBPERL_SYNTAX POD
  
  
  
  1.1                  embperl/test/html/xhtml.htm
  
  Index: xhtml.htm
  ===================================================================
  [- 
  $r = shift ; 
  $r -> config -> output_mode (1) ;
  $escmode = 12 ;
  -]
  
  <html>
  <head>
  <title>Embperl Tests - XHTML output</title>
  </head>
  
  <body>
  
  [- $a = 1 -]
  
  [$if $a$]
      a <br>
  [$ endif$]
  
  [-
  
  @c = ([1,"'2'"],['"3"',4]) ;
  -]
  
  
  <table>
      <tr>
          <td>[+ $c[$row][$col] +] </td>
      </tr> 
  </table>
  
  [-
  %fdat = ( a => 1, b => "'2'", c => '"3"') ;
  @ffld = keys %fdat ;
  -]
  
  [$hidden$]
  
  <input type="text" name="b">
  <input type="text" name="c">
  
  </body>
  </html>
  
  
  
  1.3       +31 -0     embperl/test/html/app/i18n.htm
  
  Index: i18n.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/app/i18n.htm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- i18n.htm  20 Nov 2002 06:56:28 -0000      1.2
  +++ i18n.htm  26 Nov 2002 10:03:45 -0000      1.3
  @@ -57,4 +57,35 @@
   
   
   </form>
  +
  +[$ foreach $i (1..4) $]
  +
  +    addsel[+$i +] = [+ $r -> gettext ("addsel$i") +]<br>
  +
  +    [= next =]<br>
  +
  +    addsel[+$i +] (2) = [+ $r -> gettext ("addsel$i") +]<br>
  +
  +[$endforeach$]
  +
  +[$ foreach $i (1..4) $]
  +
  +    addsel[+$i +] = [+ $r -> gettext ("addsel$i") +]<br>
  +
  +    last: [= last =]<br>
  +
  +[$endforeach$]
  +
  +
  +
  +[$ foreach $i (1..4) $]
  +
  +    addsel[+$i +] = [+ $r -> gettext ("addsel$i") +]<br>
  +
  +    [= last =]<br>
  +
  +[$endforeach$]
  +
  +
  +
                
  
  
  
  1.3       +2 -0      embperl/xsbuilder/maps/ep_structure.map
  
  Index: ep_structure.map
  ===================================================================
  RCS file: /home/cvs/embperl/xsbuilder/maps/ep_structure.map,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ep_structure.map  22 Oct 2002 05:39:51 -0000      1.2
  +++ ep_structure.map  26 Nov 2002 10:03:45 -0000      1.3
  @@ -95,6 +95,7 @@
      sCookieDomain | cookie_domain
      sCookiePath | cookie_path
      sCookieExpires | cookie_expires
  +   bCookieSecure | cookie_secure
      sLog | log
      bDebug | debug
      sMailhost | mailhost
  @@ -231,6 +232,7 @@
      bDebug | debug
      bOptions | options
      nSessionMode | session_mode
  +   nOutputMode | output_mode
      new
   !   private
    </tReqConfig>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to