* add modifier evaluaton to the implicit conditional
authorWilfried Göesgens <willi@citadel.org>
Sat, 13 Dec 2008 13:05:58 +0000 (13:05 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sat, 13 Dec 2008 13:05:58 +0000 (13:05 +0000)
webcit/subst.c

index 0463c6f8f0d70ad0c525e5277fcd14a2d1e5b631..716a46e718077bbb15a6419d7d10262d593611f8 100644 (file)
@@ -1189,6 +1189,8 @@ void InitTemplateCache(void)
  */
 int EvaluateToken(StrBuf *Target, WCTemplateToken *Tokens, WCTemplate *pTmpl, void *Context, int state, int ContextType)
 {
+       const char *AppendMe;
+       long AppendMeLen;
        HashHandler *Handler;
        void *vVar;
 // much output, since pName is not terminated...
@@ -1206,16 +1208,20 @@ int EvaluateToken(StrBuf *Target, WCTemplateToken *Tokens, WCTemplate *pTmpl, vo
                break;
        case SV_CUST_STR_CONDITIONAL: /** Conditional put custom strings from params */
                if (Tokens->nParameters >= 6) {
-                       if (EvaluateConditional(Target, Tokens, pTmpl, Context, 0, state, ContextType))
+                       if (EvaluateConditional(Target, Tokens, pTmpl, Context, 0, state, ContextType)) {
+                               GetTemplateTokenString(Tokens, 5, &AppendMe, &AppendMeLen);
                                StrBufAppendBufPlain(Target, 
-                                                    Tokens->Params[5]->Start,
-                                                    Tokens->Params[5]->len,
+                                                    AppendMe, 
+                                                    AppendMeLen,
                                                     0);
-                       else
+                       }
+                       else{
+                               GetTemplateTokenString(Tokens, 4, &AppendMe, &AppendMeLen);
                                StrBufAppendBufPlain(Target, 
-                                                    Tokens->Params[4]->Start,
-                                                    Tokens->Params[4]->len,
+                                                    AppendMe, 
+                                                    AppendMeLen,
                                                     0);
+                       }
                }
                else  {
                        lprintf(1, "Conditional [%s] (in '%s' line %ld); needs at least 6 Params![%s]\n",