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"> </td>
- <td valign="top" height="100%"><img src="[+ $r -> {imageuri}
+]frame.jpg" width="1" height="100%"></td>
- <td valign="top" width="10"> </td>
- <td valign="top" width="90%">[- Execute ('content.epl') -]</td>
- <td valign="top" width="2"> </td>
- <td valign="top" height="100%"><img src="[+ $r -> {imageuri}
+]frame.jpg" width="1" height="100%"></td>
- <td valign="top" width="10"> </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"> </td>
- <td valign="top" height="100%"><img src="[+ $r -> {imageuri} +]frame.jpg"
width="1" height="100%"></td>
- <td valign="top" width="2"> </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 +]> </td>
+ [$ if (defined($ndx)) $]
+ <td nowrap align="left" width=[+ $ndx * 12 + 2 +]> </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> [$ 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"> </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> 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>
- Beta 2.0b8</b></font></td>
- </tr>
- <tr>
- <td><img src="[+ $r -> {imageuri} +]linie-nav.gif" width="152" height="1"></td>
- </tr>
+ <tr>
+ <td> </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} +]&-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} +]&-edit_item=1&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 = Überschrift
add3 = Add to
</form>
-
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ next<br>
+
+ addsel1 (2) = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ next<br>
+
+ addsel2 (2) = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie
die Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ next<br>
+
+ addsel3 (2) = Falls Sie die Übersetzung nicht wissen, lassen Sie das
entsprechende Eingabefeld leer.<br>
+
+addsel4 = Kategorie hinzufügen<br>
+
+ next<br>
+
+ addsel4 (2) = Kategorie hinzufügen<br>
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ last: last zwischen [= =]<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ last: last zwischen [= =]<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ last: last zwischen [= =]<br>
+
+addsel4 = Kategorie hinzufügen<br>
+
+ last: last zwischen [= =]<br>
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ last zwischen [= =]<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ last zwischen [= =]<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ last zwischen [= =]<br>
+
+addsel4 = Kategorie hinzufü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>'2' </td>
</tr>
<tr>
<td>"3" </td>
<td>4 </td>
</tr>
</table>
<input type="hidden" name="a" value="1" /><input type="hidden" name="b"
value="'2'" /><input type="hidden" name="c" value=""3"" />
<input type="text" name="b" value="'2'" />
<input type="text" name="c" value=""3"" />
</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 = Überschrift
add3 = Add to
</form>
-
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ next<br>
+
+ addsel1 (2) = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ next<br>
+
+ addsel2 (2) = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie
die Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ next<br>
+
+ addsel3 (2) = Falls Sie die Übersetzung nicht wissen, lassen Sie das
entsprechende Eingabefeld leer.<br>
+
+addsel4 = Kategorie hinzufügen<br>
+
+ next<br>
+
+ addsel4 (2) = Kategorie hinzufügen<br>
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ last: last zwischen [= =]<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ last: last zwischen [= =]<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ last: last zwischen [= =]<br>
+
+addsel4 = Kategorie hinzufügen<br>
+
+ last: last zwischen [= =]<br>
+
+addsel1 = Klicken Sie auf die Kategorie zu der Sie etwas hinzufügen
möchten:<br>
+
+ last zwischen [= =]<br>
+
+addsel2 = oder fügen Sie eine neue Kategorie hinzu. Bitte geben Sie die
Beschreibung in so vielen Sprachen wie Ihnen möglich ein.<br>
+
+ last zwischen [= =]<br>
+
+addsel3 = Falls Sie die Übersetzung nicht wissen, lassen Sie das entsprechende
Eingabefeld leer.<br>
+
+ last zwischen [= =]<br>
+
+addsel4 = Kategorie hinzufü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]