summaryrefslogtreecommitdiff
path: root/mimetypes/eval.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2018-02-13 22:52:50 +0200
committerSergey Poznyakoff <gray@gnu.org>2018-02-13 22:52:50 +0200
commit1f31f222a0131a1bcdcb9318da16d938f39839e0 (patch)
tree3d0e638bc4108d4114911549284ca5ea6fe09f6d /mimetypes/eval.c
parente8d8cbf292c9fbc041c346859916db9e7367d4bb (diff)
downloadfileserv-1f31f222a0131a1bcdcb9318da16d938f39839e0.tar.gz
fileserv-1f31f222a0131a1bcdcb9318da16d938f39839e0.tar.bz2
Improve index generation
* mimetypes/eval.c (get_file_type): Return "directory", for directories. * src/defidx.html: Use $FILETYPE if no icon is available. * src/idx.c: New variable $FILETYPE.
Diffstat (limited to 'mimetypes/eval.c')
-rw-r--r--mimetypes/eval.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/mimetypes/eval.c b/mimetypes/eval.c
index b2ad941..120d041 100644
--- a/mimetypes/eval.c
+++ b/mimetypes/eval.c
@@ -5,6 +5,7 @@
#include <inttypes.h>
#include <ctype.h>
#include <errno.h>
+#include <sys/stat.h>
#include "mtint.h"
static int eval_rule (struct node *root, struct filebuf const *file);
@@ -404,7 +405,13 @@ get_file_type (char const *filename)
struct rule *r;
struct rule *last = NULL;
struct filebuf fb;
+ struct stat st;
+ if (stat (filename, &st))
+ mimetypes_error ("can't stat %s: %s", filename, strerror (errno));
+ else if (S_ISDIR (st.st_mode))
+ return "directory";
+
fb.name = filename;
fb.fp = fopen (filename, "r");
if (fb.fp == NULL)

Return to:

Send suggestions and report system problems to the System administrator.