extern char *static_dirs[PATH_MAX]; /* Disk representation */
-HashList *WirelessTemplateCache;
-HashList *WirelessLocalTemplateCache;
HashList *TemplateCache;
HashList *LocalTemplateCache;
}
if (TP->Tokens != NULL)
{
- lprintf(1, "%s [%s] (in '%s' line %ld); %s; [%s]\n",
+ syslog(1, "%s [%s] (in '%s' line %ld); %s; [%s]\n",
Type,
Err,
ChrPtr(TP->Tokens->FileName),
}
else
{
- lprintf(1, "%s: %s;\n",
+ syslog(1, "%s: %s;\n",
Type,
ChrPtr(Error));
}
StrBufVAppendPrintf(Error, Format, arg_ptr);
va_end(arg_ptr);
- lprintf(1, ChrPtr(Error));
+ syslog(1, "%s", ChrPtr(Error));
WCC = WC;
if (WCC->WFBuf == NULL) WCC->WFBuf = NewStrBuf();
}
pche = pch;
if (*pch != quote) {
- lprintf(1, "Error (in '%s' line %ld); "
+ syslog(1, "Error (in '%s' line %ld); "
"evaluating template param [%s] in Token [%s]\n",
ChrPtr(pTmpl->FileName),
Tokens->Line,
else {
StrBufPeek(Buf, pch, -1, '\0');
if (LoadTemplates > 1) {
- lprintf(1, "DBG: got param [%s] %ld %ld\n",
+ syslog(1, "DBG: got param [%s] %ld %ld\n",
pchs, pche - pchs, strlen(pchs));
}
Parm->Start = pchs;
else {
Parm->lvalue = 0;
/* TODO whUT?
- lprintf(1, "Error (in '%s' line %ld); "
+ syslog(1, "Error (in '%s' line %ld); "
"evaluating long template param [%s] in Token [%s]\n",
ChrPtr(pTmpl->FileName),
Tokens->Line,
&NewToken->Params[NewToken->nParameters - 1]))
{
NewToken->HaveParameters = 1;
- if (NewToken->nParameters > MAXPARAM) {
+ if (NewToken->nParameters >= MAXPARAM) {
LogTemplateError(
NULL, "Parseerror", ERR_NAME, &TP,
"only [%d] Params allowed in Tokens",
fd = open(ChrPtr(NewTemplate->FileName), O_RDONLY);
if (fd <= 0) {
- lprintf(1, "ERROR: could not open template '%s' - %s\n",
+ syslog(1, "ERROR: could not open template '%s' - %s\n",
ChrPtr(NewTemplate->FileName), strerror(errno));
return NULL;
}
if (fstat(fd, &statbuf) == -1) {
- lprintf(1, "ERROR: could not stat template '%s' - %s\n",
+ syslog(1, "ERROR: could not stat template '%s' - %s\n",
ChrPtr(NewTemplate->FileName), strerror(errno));
return NULL;
}
NewTemplate->Data = NewStrBufPlain(NULL, statbuf.st_size + 1);
if (StrBufReadBLOB(NewTemplate->Data, &fd, 1, statbuf.st_size, &Err) < 0) {
close(fd);
- lprintf(1, "ERROR: reading template '%s' - %s<br />\n",
+ syslog(1, "ERROR: reading template '%s' - %s<br>\n",
ChrPtr(NewTemplate->FileName), strerror(errno));
//FreeWCTemplate(NewTemplate);/////tODO
return NULL;
const char *pts, *pte;
int InQuotes = 0;
int InDoubleQuotes = 0;
+ void *pv;
/** Find one <? > */
pos = (-1);
if (pch + 1 > pE)
continue;
pte = pch;
- PutNewToken(NewTemplate,
- NewTemplateSubstitute(NewTemplate->Data, pS, pts, pte, Line, NewTemplate));
- pch ++;
+ pv = NewTemplateSubstitute(NewTemplate->Data, pS, pts, pte, Line, NewTemplate);
+ if (pv != NULL) {
+ PutNewToken(NewTemplate, pv);
+ pch ++;
+ }
}
return NewTemplate;
}
}
-int LoadTemplateDir(const StrBuf *DirName, HashList *wireless, HashList *big, const StrBuf *BaseKey)
+int LoadTemplateDir(const StrBuf *DirName, HashList *big, const StrBuf *BaseKey)
{
int Toplevel;
StrBuf *FileName;
int d_type = 0;
int d_namelen;
int d_without_ext;
- int IsMobile;
d = (struct dirent *)malloc(offsetof(struct dirent, d_name) + PATH_MAX + 1);
if (d == NULL) {
StrBufAppendBufPlain(SubDirectory, HKEY("/"), 0);
StrBufAppendBufPlain(SubDirectory, filedir_entry->d_name, d_namelen, 0);
- LoadTemplateDir(SubDirectory, wireless, big, SubKey);
+ LoadTemplateDir(SubDirectory, big, SubKey);
break;
case DT_LNK: /* TODO: check whether its a file or a directory */
(strcmp(&filedir_entry->d_name[d_without_ext], ".orig") == 0) ||
(strcmp(&filedir_entry->d_name[d_without_ext], ".swp") == 0))
continue; /* Ignore backup files... */
- /* .m.xxx is for mobile useragents! */
- IsMobile = 0;
- if (d_without_ext > 2)
- IsMobile = (filedir_entry->d_name[d_without_ext - 1] == 'm') &&
- (filedir_entry->d_name[d_without_ext - 2] == '.');
PStart = filedir_entry->d_name;
StrBufPrintf(FileName, "%s/%s", ChrPtr(DirName), filedir_entry->d_name);
MinorPtr = strchr(filedir_entry->d_name, '.');
StrBufAppendBufPlain(Key, filedir_entry->d_name, MinorPtr - filedir_entry->d_name, 0);
if (LoadTemplates >= 1)
- lprintf(1, "%s %d %s\n", ChrPtr(FileName), IsMobile, ChrPtr(Key));
- prepare_template(FileName, Key, (IsMobile)?wireless:big);
+ syslog(1, "%s %s\n", ChrPtr(FileName), ChrPtr(Key));
+ prepare_template(FileName, Key, big);
default:
break;
}
int i;
StrBuf *Key;
StrBuf *Dir;
- HashList *Templates[4];
+ HashList *Templates[2];
Dir = NewStrBuf();
Key = NewStrBuf();
/* Primary Template set... */
StrBufPrintf(Dir, "%s/t", static_dirs[0]);
LoadTemplateDir(Dir,
- WirelessTemplateCache,
TemplateCache,
Key);
/* User local Template set */
StrBufPrintf(Dir, "%s/t", static_dirs[1]);
LoadTemplateDir(Dir,
- WirelessLocalTemplateCache,
LocalTemplateCache,
Key);
StrBufPrintf(Dir, "%s/dbg", static_dirs[0]);
LoadTemplateDir(Dir,
- WirelessTemplateCache,
TemplateCache,
Key);
- Templates[0] = WirelessTemplateCache;
- Templates[1] = TemplateCache;
- Templates[2] = WirelessLocalTemplateCache;
- Templates[3] = LocalTemplateCache;
+ Templates[0] = TemplateCache;
+ Templates[1] = LocalTemplateCache;
if (LoadTemplates == 0)
- for (i=0; i < 4; i++) {
+ for (i=0; i < 2; i++) {
const char *Key;
long KLen;
HashPos *At;
void *vVar;
/* much output, since pName is not terminated...
- lprintf(1,"Doing token: %s\n",Token->pName);
+ syslog(1,"Doing token: %s\n",Token->pName);
*/
switch (TP->Tokens->Flags) {
if (LoadTemplates != 0) {
if (LoadTemplates > 1)
- lprintf(1, "DBG: ----- loading: [%s] ------ \n",
+ syslog(1, "DBG: ----- loading: [%s] ------ \n",
ChrPtr(Tmpl->FileName));
pTmpl = duplicate_template(Tmpl);
if(load_template(pTmpl) == NULL) {
TP = &LocalTP;
}
- if (WC->is_mobile > 0) {
- Static = WirelessTemplateCache;
- StaticLocal = WirelessLocalTemplateCache;
- }
- else {
- Static = TemplateCache;
- StaticLocal = LocalTemplateCache;
- }
+ Static = TemplateCache;
+ StaticLocal = LocalTemplateCache;
if (len == 0)
{
- lprintf (1, "Can't to load a template with empty name!\n");
+ syslog(1, "Can't to load a template with empty name!\n");
StrBufAppendPrintf(Target, "<pre>\nCan't to load a template with empty name!\n</pre>");
return NULL;
}
if (!GetHash(StaticLocal, templatename, len, &vTmpl) &&
!GetHash(Static, templatename, len, &vTmpl)) {
- lprintf (1, "didn't find Template [%s] %ld %ld\n", templatename, len , (long)strlen(templatename));
+ syslog(1, "didn't find Template [%s] %ld %ld\n", templatename, len , (long)strlen(templatename));
StrBufAppendPrintf(Target, "<pre>\ndidn't find Template [%s] %ld %ld\n</pre>",
templatename, len,
(long)strlen(templatename));
int EvaluateConditional(StrBuf *Target, int Neg, int state, WCTemplputParams *TP)
{
ConditionalStruct *Cond;
+ int rc = 0;
+ int res;
if ((TP->Tokens->Params[0]->len == 1) &&
(TP->Tokens->Params[0]->Start[0] == 'X'))
if (!CheckContext(Target, &Cond->Filter, TP, "Conditional")) {
return 0;
}
-
- if (Cond->CondF(Target, TP) == Neg)
- return TP->Tokens->Params[1]->lvalue;
- return 0;
+ res = Cond->CondF(Target, TP);
+ if (res == Neg)
+ rc = TP->Tokens->Params[1]->lvalue;
+ if (LoadTemplates > 5)
+ syslog(1, "<%s> : %d %d==%d\n",
+ ChrPtr(TP->Tokens->FlatToken),
+ rc, res, Neg);
+ return rc;
}
void RegisterConditional(const char *Name, long len,
NewSort->GroupChange = GroupChange;
NewSort->ContextType = ContextType;
if (ContextType == CTX_NONE) {
- lprintf(1, "sorting requires a context. CTX_NONE won't make it.\n");
+ syslog(1, "sorting requires a context. CTX_NONE won't make it.\n");
exit(1);
}
};
ConstStr SortIcons[] = {
- {HKEY("static/sort_none.gif")},
- {HKEY("static/up_pointer.gif")},
- {HKEY("static/down_pointer.gif")},
+ {HKEY("static/icons/sort_none.gif")},
+ {HKEY("static/icons/up_pointer.gif")},
+ {HKEY("static/icons/down_pointer.gif")},
};
ConstStr SortNextOrder[] = {
StrBufAppendPrintf(Buf, "%d: %ld]\n", i, LongVector[i]);
}
- lprintf(1, ChrPtr(Buf));
+ syslog(1, "%s", ChrPtr(Buf));
FreeStrBuf(&Buf);
}
ServerStartModule_SUBST
(void)
{
- WirelessTemplateCache = NewHash(1, NULL);
- WirelessLocalTemplateCache = NewHash(1, NULL);
LocalTemplateCache = NewHash(1, NULL);
TemplateCache = NewHash(1, NULL);
ServerShutdownModule_SUBST
(void)
{
- DeleteHash(&WirelessTemplateCache);
- DeleteHash(&WirelessLocalTemplateCache);
DeleteHash(&TemplateCache);
DeleteHash(&LocalTemplateCache);