Unidiff1 files changed, 14 insertions, 0 deletions
|
diff --git a/html.c b/html.c index 175b4b6..33a956f 100644 --- a/ html.c+++ b/ html.c |
|
@@ -145,24 +145,38 @@ void html_link_close(void) |
145 | { |
145 | { |
146 | html("</a>"); |
146 | html("</a>"); |
147 | } |
147 | } |
148 | |
148 | |
149 | void html_fileperm(unsigned short mode) |
149 | void html_fileperm(unsigned short mode) |
150 | { |
150 | { |
151 | htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), |
151 | htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), |
152 | (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-')); |
152 | (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-')); |
153 | } |
153 | } |
154 | |
154 | |
155 | void html_filemode(unsigned short mode) |
155 | void html_filemode(unsigned short mode) |
156 | { |
156 | { |
157 | if (S_ISDIR(mode)) |
157 | if (S_ISDIR(mode)) |
158 | html("d"); |
158 | html("d"); |
159 | else if (S_ISLNK(mode)) |
159 | else if (S_ISLNK(mode)) |
160 | html("l"); |
160 | html("l"); |
161 | else if (S_ISDIRLNK(mode)) |
161 | else if (S_ISDIRLNK(mode)) |
162 | html("m"); |
162 | html("m"); |
163 | else |
163 | else |
164 | html("-"); |
164 | html("-"); |
165 | html_fileperm(mode >> 6); |
165 | html_fileperm(mode >> 6); |
166 | html_fileperm(mode >> 3); |
166 | html_fileperm(mode >> 3); |
167 | html_fileperm(mode); |
167 | html_fileperm(mode); |
168 | } |
168 | } |
| |
169 | |
| |
170 | int html_include(const char *filename) |
| |
171 | { |
| |
172 | FILE *f; |
| |
173 | char buf[4096]; |
| |
174 | size_t len; |
| |
175 | |
| |
176 | if (!(f = fopen(filename, "r"))) |
| |
177 | return -1; |
| |
178 | while((len = fread(buf, 1, 4096, f)) > 0) |
| |
179 | write(htmlfd, buf, len); |
| |
180 | fclose(f); |
| |
181 | return 0; |
| |
182 | } |
|