struct dirent *filedir_entry;
int d_namelen;
int d_without_ext;
+ int istoplevel;
filedir = opendir (DirName);
if (filedir == NULL) {
Dir = NewStrBufPlain(DirName, -1);
WebDir = NewStrBufPlain(RelDir, -1);
+ istoplevel = IsEmptyStr(RelDir);
OneWebName = NewStrBuf();
while ((readdir_r(filedir, &d, &filedir_entry) == 0) &&
if ((strcmp(filedir_entry->d_name, ".svn") == 0) ||
(strcmp(filedir_entry->d_name, "t") == 0))
break;
- snprintf(dirname, PATH_MAX, "%s/%s",
+ snprintf(dirname, PATH_MAX, "%s/%s/",
DirName, filedir_entry->d_name);
- snprintf(reldir, PATH_MAX, "%s/%s",
- RelDir, filedir_entry->d_name);
+ if (istoplevel)
+ snprintf(reldir, PATH_MAX, "%s/",
+ filedir_entry->d_name);
+ else
+ snprintf(reldir, PATH_MAX, "%s/%s/",
+ RelDir, filedir_entry->d_name);
+ StripSlashes(dirname, 1);
+ StripSlashes(reldir, 1);
LoadStaticDir(dirname, DirList, reldir);
break;
case DT_LNK: /* TODO: check whether its a file or a directory */
FlushStrBuf(OneWebName);
StrBufAppendBuf(OneWebName, WebDir, 0);
if ((StrLength(OneWebName) != 0) &&
- (ChrPtr(OneWebName) [ StrLength(OneWebName)] != '/'))
+ (ChrPtr(OneWebName) [ StrLength(OneWebName) - 1] != '/'))
StrBufAppendBufPlain(OneWebName, "/", 1, 0);
StrBufAppendBufPlain(OneWebName, filedir_entry->d_name, d_namelen, 0);
}
}
-
+extern void do_404(void);
void output_static_safe(HashList *DirList)
{
output_static(ChrPtr(vFile));
}
else {
+ lprintf(1, "output_static_safe() file %s not found. \n",
+ ChrPtr(WCC->Hdr->HR.ReqLine));
///TODO: detect image & output blank image
+ do_404();
}
}
void output_static_0(void)
WebcitAddUrlHandler(HKEY("static"), output_static_0, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC);
WebcitAddUrlHandler(HKEY("static.local"), output_static_1, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC);
WebcitAddUrlHandler(HKEY("tinymce"), output_static_2, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC);
+ WebcitAddUrlHandler(HKEY("tiny_mce"), output_static_2, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC);
}
extern HashList *HandlerHash;
+
void
webcit_calc_dirs_n_files(int relh, const char *basedir, int home, char *webcitdir, char *relhome)
{
COMPUTE_DIRECTORY(static_icon_dir);
basedir=WWWDIR "/static.local";
COMPUTE_DIRECTORY(static_local_dir);
+ StripSlashes(static_dir, 1);
+ StripSlashes(static_icon_dir, 1);
+ StripSlashes(static_local_dir, 1);
snprintf(file_crpt_file_key,
sizeof file_crpt_file_key,