author | Lars Hjemli <hjemli@gmail.com> | 2007-05-20 12:33:59 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-05-20 12:33:59 (UTC) |
commit | 977a0b173df6fe1a4d362fe4c70f9badff1fd46c (patch) (unidiff) | |
tree | 8bd383fff396bb1790c03ab5b461d899af997568 /html.c | |
parent | d4dbfdfbaea3aa93e824ea484787de10e73eae65 (diff) | |
parent | de69ce020c4ccd7146d6ac72bbd8f417088e8c03 (diff) | |
download | cgit-977a0b173df6fe1a4d362fe4c70f9badff1fd46c.zip cgit-977a0b173df6fe1a4d362fe4c70f9badff1fd46c.tar.gz cgit-977a0b173df6fe1a4d362fe4c70f9badff1fd46c.tar.bz2 |
Merge branch 'index-header'
* index-header:
Teach cgit howto include an external file on index page.
Add html_include()
-rw-r--r-- | html.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -121,48 +121,62 @@ void html_hidden(char *name, char *value) | |||
121 | { | 121 | { |
122 | html("<input type='hidden' name='"); | 122 | html("<input type='hidden' name='"); |
123 | html_attr(name); | 123 | html_attr(name); |
124 | html("' value='"); | 124 | html("' value='"); |
125 | html_attr(value); | 125 | html_attr(value); |
126 | html("'/>"); | 126 | html("'/>"); |
127 | } | 127 | } |
128 | 128 | ||
129 | void html_link_open(char *url, char *title, char *class) | 129 | void html_link_open(char *url, char *title, char *class) |
130 | { | 130 | { |
131 | html("<a href='"); | 131 | html("<a href='"); |
132 | html_attr(url); | 132 | html_attr(url); |
133 | if (title) { | 133 | if (title) { |
134 | html("' title='"); | 134 | html("' title='"); |
135 | html_attr(title); | 135 | html_attr(title); |
136 | } | 136 | } |
137 | if (class) { | 137 | if (class) { |
138 | html("' class='"); | 138 | html("' class='"); |
139 | html_attr(class); | 139 | html_attr(class); |
140 | } | 140 | } |
141 | html("'>"); | 141 | html("'>"); |
142 | } | 142 | } |
143 | 143 | ||
144 | void html_link_close(void) | 144 | 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 | } | ||