diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-02-13 22:52:50 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-02-13 22:52:50 +0200 |
commit | 1f31f222a0131a1bcdcb9318da16d938f39839e0 (patch) | |
tree | 3d0e638bc4108d4114911549284ca5ea6fe09f6d /mimetypes/eval.c | |
parent | e8d8cbf292c9fbc041c346859916db9e7367d4bb (diff) | |
download | fileserv-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.c | 7 |
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) |