1 | /* Licensed to the Apache Software Foundation (ASF) under one or more |
2 | * contributor license agreements. See the NOTICE file distributed with |
3 | * this work for additional information regarding copyright ownership. |
4 | * The ASF licenses this file to You under the Apache License, Version 2.0 |
5 | * (the "License"); you may not use this file except in compliance with |
6 | * the License. You may obtain a copy of the License at |
7 | * |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * |
10 | * Unless required by applicable law or agreed to in writing, software |
11 | * distributed under the License is distributed on an "AS IS" BASIS, |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. |
15 | */ |
16 | |
17 | /* |
18 | * mod_autoindex.c: Handles the on-the-fly html index generation |
19 | * |
20 | * Rob McCool |
21 | * 3/23/93 |
22 | * |
23 | * Adapted to Apache by rst. |
24 | * |
25 | * Version sort added by Martin Pool <mbp@humbug.org.au>. |
26 | */ |
27 | |
28 | #include "apr_strings.h" |
29 | #include "apr_fnmatch.h" |
30 | #include "apr_strings.h" |
31 | #include "apr_lib.h" |
32 | |
33 | #define APR_WANT_STRFUNC |
34 | #include "apr_want.h" |
35 | |
36 | #include "ap_config.h" |
37 | #include "httpd.h" |
38 | #include "http_config.h" |
39 | #include "http_core.h" |
40 | #include "http_request.h" |
41 | #include "http_protocol.h" |
42 | #include "http_log.h" |
43 | #include "http_main.h" |
44 | #include "util_script.h" |
45 | |
46 | #include "mod_core.h" |
47 | |
48 | module AP_MODULE_DECLARE_DATA autoindex_module; |
49 | |
50 | /**************************************************************** |
51 | * |
52 | * Handling configuration directives... |
53 | */ |
54 | |
55 | #define NO_OPTIONS (1 << : pass=0 << 0) /* Indexing options */ |
56 | #define ICONS_ARE_LINKS (1 << : pass=0 << 1) |
57 | #define SCAN_HTML_TITLES (1 << : pass=0 << 2) |
58 | #define SUPPRESS_ICON (1 << : pass=0 << 3) |
59 | #define SUPPRESS_LAST_MOD (1 << : pass=0 << 4) |
60 | #define SUPPRESS_SIZE (1 << : pass=0 << 5) |
61 | #define SUPPRESS_DESC (1 << : pass=0 << 6) |
62 | #define SUPPRESS_PREAMBLE (1 << : pass=0 << 7) |
63 | #define SUPPRESS_COLSORT (1 << : pass=0 << 8) |
64 | #define SUPPRESS_RULES (1 << : pass=0 << 9) |
65 | #define FOLDERS_FIRST (1 << : pass=0 << 10) |
66 | #define VERSION_SORT (1 << : pass=0 << 11) |
67 | #define TRACK_MODIFIED (1 << : pass=0 << 12) |
68 | #define FANCY_INDEXING (1 << : pass=0 << 13) |
69 | #define TABLE_INDEXING (1 << : pass=0 << 14) |
70 | #define IGNORE_CLIENT (1 << : pass=0 << 15) |
71 | #define IGNORE_CASE (1 << : pass=0 << 16) |
72 | #define EMIT_XHTML (1 << : pass=0 << 17) |
73 | #define SHOW_FORBIDDEN (1 << : pass=0 << 18) |
74 | #define OPTION_UNSET (1 << : pass=1 << 19) |
75 | |
76 | #define K_NOADJUST 0 |
77 | #define K_ADJUST 1 |
78 | #define K_UNSET 2 |
79 | |
80 | /* |
81 | * Define keys for sorting. |
82 | */ |
83 | #define K_NAME 'N' /* Sort by file name (default) */ |
84 | #define K_LAST_MOD 'M' /* Last modification date */ |
85 | #define K_SIZE 'S' /* Size (absolute, not as displayed) */ |
86 | #define K_DESC 'D' /* Description */ |
87 | #define K_VALID "NMSD" /* String containing _all_ valid K_ opts */ |
88 | |
89 | #define D_ASCENDING 'A' |
90 | #define D_DESCENDING 'D' |
91 | #define D_VALID "AD" /* String containing _all_ valid D_ opts */ |
92 | |
93 | /* |
94 | * These are the dimensions of the default icons supplied with Apache. |
95 | */ |
96 | #define DEFAULT_ICON_WIDTH 20 |
97 | #define DEFAULT_ICON_HEIGHT 22 |
98 | |
99 | /* |
100 | * Other default dimensions. |
101 | */ |
102 | #define DEFAULT_NAME_WIDTH 23 |
103 | #define DEFAULT_DESC_WIDTH 23 |
104 | |
105 | struct item { |
106 | char *type; |
107 | char *apply_to; |
108 | char *apply_path; |
109 | char *data; |
110 | }; |
111 | |
112 | typedef struct ai_desc_t { |
113 | char *pattern; |
114 | char *description; |
115 | int full_path; |
116 | int wildcards; |
117 | } ai_desc_t; |
118 | |
119 | typedef struct autoindex_config_struct { |
120 | |
121 | char *default_icon; |
122 | char *style_sheet; |
123 | char *head_insert; |
124 | apr_int32_t opts; |
125 | apr_int32_t incremented_opts; |
126 | apr_int32_t decremented_opts; |
127 | int name_width; |
128 | int name_adjust; |
129 | int desc_width; |
130 | int desc_adjust; |
131 | int icon_width; |
132 | int icon_height; |
133 | char default_keyid; |
134 | char default_direction; |
135 | |
136 | apr_array_header_t *icon_list; |
137 | apr_array_header_t *alt_list; |
138 | apr_array_header_t *desc_list; |
139 | apr_array_header_t *ign_list; |
140 | apr_array_header_t *hdr_list; |
141 | apr_array_header_t *rdme_list; |
142 | |
143 | char *ctype; |
144 | char *charset; |
145 | } autoindex_config_rec; |
146 | |
147 | static char c_by_encoding, c_by_type, c_by_path; |
148 | |
149 | #define BY_ENCODING &c_by_encoding : modules/generators/mod_autoindex.c line=147 column=13
c_by_encoding |
150 | #define BY_TYPE &c_by_type : modules/generators/mod_autoindex.c line=147 column=28
c_by_type |
151 | #define BY_PATH &c_by_path : modules/generators/mod_autoindex.c line=147 column=39
c_by_path |
152 | |
153 | /* |
154 | * This routine puts the standard HTML header at the top of the index page. |
155 | * We include the DOCTYPE because we may be using features therefrom (i.e., |
156 | * HEIGHT and WIDTH attributes on the icons if we're FancyIndexing). |
157 | */ |
158 | static void emit_preamble : call=0 emit_preamble(request_rec *r, int xhtml, const char *title) |
159 | { |
160 | autoindex_config_rec *d; |
161 | |
162 | d : modules/generators/mod_autoindex.c line=160 column=27
d = : pass=0 = (autoindex_config_rec *) ap_get_module_config(r : modules/generators/mod_autoindex.c line=158 column=40
r-> : enter=0, leave=0 ->per_dir_config : include/httpd.h line=977 column=30
per_dir_config, |
163 | &autoindex_module : modules/generators/mod_autoindex.c line=48 column=31
autoindex_module); |
164 | |
165 | if : true=0, false=0 if (xhtml : modules/generators/mod_autoindex.c line=158 column=47
xhtml) { |
166 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=158 column=40
r, DOCTYPE_XHTML_1_0T, |
167 | "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" |
168 | " <head>\n <title>Index of ", title : modules/generators/mod_autoindex.c line=158 column=66
title, |
169 | "</title>\n", NULL); |
170 | } else { |
171 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=158 column=40
r, DOCTYPE_HTML_3_2, |
172 | "<html>\n <head>\n" |
173 | " <title>Index of ", title : modules/generators/mod_autoindex.c line=158 column=66
title, |
174 | "</title>\n", NULL); |
175 | } |
176 | |
177 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=160 column=27
d-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet != : true=0, false=0 != NULL) { |
178 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=158 column=40
r, " <link rel=\"stylesheet\" href=\"", d : modules/generators/mod_autoindex.c line=160 column=27
d-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet, |
179 | "\" type=\"text/css\"", xhtml : modules/generators/mod_autoindex.c line=158 column=47
xhtml conditional operator : true=0, false=0 ? " />\n" : ">\n", NULL); |
180 | } |
181 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=160 column=27
d-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert != : true=0, false=0 != NULL) { |
182 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(d : modules/generators/mod_autoindex.c line=160 column=27
d-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert, r : modules/generators/mod_autoindex.c line=158 column=40
r); |
183 | } |
184 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=158 column=40
r, " </head>\n <body>\n", NULL); |
185 | } |
186 | |
187 | static void push_item : call=0 push_item(apr_array_header_t *arr, char *type, const char *to, |
188 | const char *path, const char *data) |
189 | { |
190 | struct item *p = (struct item *) apr_array_push : enter=0, leave=0
apr_array_push : /usr/include/apr-1/apr_tables.h line=121 column=21
apr_array_push(arr : modules/generators/mod_autoindex.c line=187 column=43
arr); |
191 | |
192 | if : true=0, false=0 if (! : true=0, false=0 !to : modules/generators/mod_autoindex.c line=187 column=72
to) { |
193 | to : modules/generators/mod_autoindex.c line=187 column=72
to = : pass=0 = ""; |
194 | } |
195 | if : true=0, false=0 if (! : true=0, false=0 !path : modules/generators/mod_autoindex.c line=188 column=35
path) { |
196 | path : modules/generators/mod_autoindex.c line=188 column=35
path = : pass=0 = ""; |
197 | } |
198 | |
199 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->type : modules/generators/mod_autoindex.c line=106 column=11
type = : enter=0, leave=0 = type : modules/generators/mod_autoindex.c line=187 column=54
type; |
200 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->data : modules/generators/mod_autoindex.c line=109 column=11
data = : enter=0, leave=0 = data : modules/generators/mod_autoindex.c line=188 column=53
data conditional operator : true=0, false=0 ? apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(arr : modules/generators/mod_autoindex.c line=187 column=43
arr-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, data : modules/generators/mod_autoindex.c line=188 column=53
data) : NULL; |
201 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->apply_path : modules/generators/mod_autoindex.c line=108 column=11
apply_path = : enter=0, leave=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(arr : modules/generators/mod_autoindex.c line=187 column=43
arr-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, path : modules/generators/mod_autoindex.c line=188 column=35
path, "*", NULL); |
202 | |
203 | if : true=0, false=0 if ((type : modules/generators/mod_autoindex.c line=187 column=54
type == : true=0, false=0 MC/DC independently affect : true=0, false=0 == BY_PATH) && : true=0, false=0 && (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !ap_is_matchexp : enter=0, leave=0
ap_is_matchexp : include/httpd.h line=1619 column=17
ap_is_matchexp(to : modules/generators/mod_autoindex.c line=187 column=72
to))) { |
204 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to = : enter=0, leave=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(arr : modules/generators/mod_autoindex.c line=187 column=43
arr-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, "*", to : modules/generators/mod_autoindex.c line=187 column=72
to, NULL); |
205 | } |
206 | else if : true=0, false=0 if (to : modules/generators/mod_autoindex.c line=187 column=72
to) { |
207 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(arr : modules/generators/mod_autoindex.c line=187 column=43
arr-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, to : modules/generators/mod_autoindex.c line=187 column=72
to); |
208 | } |
209 | else { |
210 | p : modules/generators/mod_autoindex.c line=190 column=18
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to = : enter=0, leave=0 = NULL; |
211 | } |
212 | } |
213 | |
214 | static const char *add_alt : call=0 add_alt(cmd_parms *cmd, void *d, const char *alt, |
215 | const char *to) |
216 | { |
217 | if : true=0, false=0 if (cmd : modules/generators/mod_autoindex.c line=214 column=39
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info == : true=0, false=0 == BY_PATH) { |
218 | if : true=0, false=0 if (! : true=0, false=0 !strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp(to : modules/generators/mod_autoindex.c line=215 column=40
to, "**DIRECTORY**")) { |
219 | to : modules/generators/mod_autoindex.c line=215 column=40
to = : pass=0 = "^^DIRECTORY^^"; |
220 | } |
221 | } |
222 | if : true=0, false=0 if (cmd : modules/generators/mod_autoindex.c line=214 column=39
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info == : true=0, false=0 == BY_ENCODING) { |
223 | char *tmp = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(cmd : modules/generators/mod_autoindex.c line=214 column=39
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, to : modules/generators/mod_autoindex.c line=215 column=40
to); |
224 | ap_str_tolower : enter=0, leave=0
ap_str_tolower : include/httpd.h line=1739 column=18
ap_str_tolower(tmp : modules/generators/mod_autoindex.c line=223 column=15
tmp); |
225 | to : modules/generators/mod_autoindex.c line=215 column=40
to = : pass=0 = tmp : modules/generators/mod_autoindex.c line=223 column=15
tmp; |
226 | } |
227 | |
228 | push_item : enter=0, leave=0
push_item : modules/generators/mod_autoindex.c line=187 column=13
push_item(((autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=214 column=50
d)-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list, cmd : modules/generators/mod_autoindex.c line=214 column=39
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info, to : modules/generators/mod_autoindex.c line=215 column=40
to, |
229 | cmd : modules/generators/mod_autoindex.c line=214 column=39
cmd-> : enter=0, leave=0 ->path : include/http_config.h line=303 column=11
path, alt : modules/generators/mod_autoindex.c line=214 column=65
alt); |
230 | return : pass=0 return NULL; |
231 | } |
232 | |
233 | static const char *add_icon : call=0 add_icon(cmd_parms *cmd, void *d, const char *icon, |
234 | const char *to) |
235 | { |
236 | char *iconbak = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, icon : modules/generators/mod_autoindex.c line=233 column=66
icon); |
237 | |
238 | if : true=0, false=0 if (icon : modules/generators/mod_autoindex.c line=233 column=66
icon[] : enter=0, leave=0 [0] == : true=0, false=0 == '(') { |
239 | char *alt; |
240 | char *cl = strchr : enter=0, leave=0
strchr : /usr/include/string.h line=235 column=14
strchr(iconbak : modules/generators/mod_autoindex.c line=236 column=11
iconbak, ')'); |
241 | |
242 | if : true=0, false=0 if (cl : modules/generators/mod_autoindex.c line=240 column=15
cl == : true=0, false=0 == NULL) { |
243 | return : pass=0 return "missing closing paren"; |
244 | } |
245 | alt : modules/generators/mod_autoindex.c line=239 column=15
alt = : pass=0 = ap_getword_nc : enter=0, leave=0
ap_getword_nc : include/httpd.h line=1309 column=20
ap_getword_nc(cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, &iconbak : modules/generators/mod_autoindex.c line=236 column=11
iconbak, ','); |
246 | *cl : modules/generators/mod_autoindex.c line=240 column=15
cl = : enter=0, leave=0 = '\0'; /* Lose closing paren */ |
247 | add_alt : enter=0, leave=0
add_alt : modules/generators/mod_autoindex.c line=214 column=20
add_alt(cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd, d : modules/generators/mod_autoindex.c line=233 column=51
d, &alt : modules/generators/mod_autoindex.c line=239 column=15
alt[] : enter=0, leave=0 [1], to : modules/generators/mod_autoindex.c line=234 column=41
to); |
248 | } |
249 | if : true=0, false=0 if (cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info == : true=0, false=0 == BY_PATH) { |
250 | if : true=0, false=0 if (! : true=0, false=0 !strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp(to : modules/generators/mod_autoindex.c line=234 column=41
to, "**DIRECTORY**")) { |
251 | to : modules/generators/mod_autoindex.c line=234 column=41
to = : pass=0 = "^^DIRECTORY^^"; |
252 | } |
253 | } |
254 | if : true=0, false=0 if (cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info == : true=0, false=0 == BY_ENCODING) { |
255 | char *tmp = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, to : modules/generators/mod_autoindex.c line=234 column=41
to); |
256 | ap_str_tolower : enter=0, leave=0
ap_str_tolower : include/httpd.h line=1739 column=18
ap_str_tolower(tmp : modules/generators/mod_autoindex.c line=255 column=15
tmp); |
257 | to : modules/generators/mod_autoindex.c line=234 column=41
to = : pass=0 = tmp : modules/generators/mod_autoindex.c line=255 column=15
tmp; |
258 | } |
259 | |
260 | push_item : enter=0, leave=0
push_item : modules/generators/mod_autoindex.c line=187 column=13
push_item(((autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=233 column=51
d)-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list, cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->info : include/http_config.h line=275 column=11
info, to : modules/generators/mod_autoindex.c line=234 column=41
to, |
261 | cmd : modules/generators/mod_autoindex.c line=233 column=40
cmd-> : enter=0, leave=0 ->path : include/http_config.h line=303 column=11
path, iconbak : modules/generators/mod_autoindex.c line=236 column=11
iconbak); |
262 | return : pass=0 return NULL; |
263 | } |
264 | |
265 | /* |
266 | * Add description text for a filename pattern. If the pattern has |
267 | * wildcards already (or we need to add them), add leading and |
268 | * trailing wildcards to it to ensure substring processing. If the |
269 | * pattern contains a '/' anywhere, force wildcard matching mode, |
270 | * add a slash to the prefix so that "bar/bletch" won't be matched |
271 | * by "foobar/bletch", and make a note that there's a delimiter; |
272 | * the matching routine simplifies to just the actual filename |
273 | * whenever it can. This allows definitions in parent directories |
274 | * to be made for files in subordinate ones using relative paths. |
275 | */ |
276 | |
277 | /* |
278 | * Absent a strcasestr() function, we have to force wildcards on |
279 | * systems for which "AAA" and "aaa" mean the same file. |
280 | */ |
281 | #ifdef CASE_BLIND_FILESYSTEM |
282 | #define WILDCARDS_REQUIRED 1 |
283 | #else |
284 | #define WILDCARDS_REQUIRED 0 |
285 | #endif |
286 | |
287 | static const char *add_desc : call=0 add_desc(cmd_parms *cmd, void *d, const char *desc, |
288 | const char *to) |
289 | { |
290 | autoindex_config_rec *dcfg = (autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=287 column=51
d; |
291 | ai_desc_t *desc_entry; |
292 | char *prefix = ""; |
293 | |
294 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry = : pass=0 = (ai_desc_t *) apr_array_push : enter=0, leave=0
apr_array_push : /usr/include/apr-1/apr_tables.h line=121 column=21
apr_array_push(dcfg : modules/generators/mod_autoindex.c line=290 column=27
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list); |
295 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->full_path : modules/generators/mod_autoindex.c line=115 column=9
full_path = : enter=0, leave=0 = (ap_strchr_c(to : modules/generators/mod_autoindex.c line=288 column=41
to, '/') == : true=0, false=0 == NULL) conditional operator : true=0, false=0 ? 0 : 1; |
296 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->wildcards : modules/generators/mod_autoindex.c line=116 column=9
wildcards = : enter=0, leave=0 = (WILDCARDS_REQUIRED |
297 | || : true=0, false=0 || desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entryMC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->full_path : modules/generators/mod_autoindex.c line=115 column=9
full_path |
298 | || : true=0, false=0 || MC/DC independently affect : true=0, false=0 apr_fnmatch_test : enter=0, leave=0
apr_fnmatch_test : /usr/include/apr-1/apr_fnmatch.h line=130 column=18
apr_fnmatch_test(to : modules/generators/mod_autoindex.c line=288 column=41
to)); |
299 | if : true=0, false=0 if (desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->wildcards : modules/generators/mod_autoindex.c line=116 column=9
wildcards) { |
300 | prefix : modules/generators/mod_autoindex.c line=292 column=11
prefix = : pass=0 = desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->full_path : modules/generators/mod_autoindex.c line=115 column=9
full_path conditional operator : true=0, false=0 ? "*/" : "*"; |
301 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->pattern : modules/generators/mod_autoindex.c line=113 column=11
pattern = : enter=0, leave=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(dcfg : modules/generators/mod_autoindex.c line=290 column=27
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, |
302 | prefix : modules/generators/mod_autoindex.c line=292 column=11
prefix, to : modules/generators/mod_autoindex.c line=288 column=41
to, "*", NULL); |
303 | } |
304 | else { |
305 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->pattern : modules/generators/mod_autoindex.c line=113 column=11
pattern = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(dcfg : modules/generators/mod_autoindex.c line=290 column=27
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, to : modules/generators/mod_autoindex.c line=288 column=41
to); |
306 | } |
307 | desc_entry : modules/generators/mod_autoindex.c line=291 column=16
desc_entry-> : enter=0, leave=0 ->description : modules/generators/mod_autoindex.c line=114 column=11
description = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(dcfg : modules/generators/mod_autoindex.c line=290 column=27
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list-> : enter=0, leave=0 ->pool : /usr/include/apr-1/apr_tables.h line=54 column=17
pool, desc : modules/generators/mod_autoindex.c line=287 column=66
desc); |
308 | return : pass=0 return NULL; |
309 | } |
310 | |
311 | static const char *add_ignore : call=0 add_ignore(cmd_parms *cmd, void *d, const char *ext) |
312 | { |
313 | push_item : enter=0, leave=0
push_item : modules/generators/mod_autoindex.c line=187 column=13
push_item(((autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=311 column=53
d)-> : enter=0, leave=0 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list, 0, ext : modules/generators/mod_autoindex.c line=311 column=68
ext, cmd : modules/generators/mod_autoindex.c line=311 column=42
cmd-> : enter=0, leave=0 ->path : include/http_config.h line=303 column=11
path, NULL); |
314 | return : pass=0 return NULL; |
315 | } |
316 | |
317 | static const char *add_header : call=0 add_header(cmd_parms *cmd, void *d, const char *name) |
318 | { |
319 | push_item : enter=0, leave=0
push_item : modules/generators/mod_autoindex.c line=187 column=13
push_item(((autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=317 column=53
d)-> : enter=0, leave=0 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list, 0, NULL, cmd : modules/generators/mod_autoindex.c line=317 column=42
cmd-> : enter=0, leave=0 ->path : include/http_config.h line=303 column=11
path, |
320 | name : modules/generators/mod_autoindex.c line=317 column=68
name); |
321 | return : pass=0 return NULL; |
322 | } |
323 | |
324 | static const char *add_readme : call=0 add_readme(cmd_parms *cmd, void *d, const char *name) |
325 | { |
326 | push_item : enter=0, leave=0
push_item : modules/generators/mod_autoindex.c line=187 column=13
push_item(((autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=324 column=53
d)-> : enter=0, leave=0 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list, 0, NULL, cmd : modules/generators/mod_autoindex.c line=324 column=42
cmd-> : enter=0, leave=0 ->path : include/http_config.h line=303 column=11
path, |
327 | name : modules/generators/mod_autoindex.c line=324 column=68
name); |
328 | return : pass=0 return NULL; |
329 | } |
330 | |
331 | static const char *add_opts : call=0 add_opts(cmd_parms *cmd, void *d, int argc, char *const argv[]) |
332 | { |
333 | int i; |
334 | char *w; |
335 | apr_int32_t opts; |
336 | apr_int32_t opts_add; |
337 | apr_int32_t opts_remove; |
338 | char action; |
339 | autoindex_config_rec *d_cfg = (autoindex_config_rec *) d : modules/generators/mod_autoindex.c line=331 column=51
d; |
340 | |
341 | opts : modules/generators/mod_autoindex.c line=335 column=17
opts = : pass=0 = d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts; |
342 | opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add = : pass=0 = d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts; |
343 | opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove = : pass=0 = d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts; |
344 | |
345 | for : true=0, false=0 for (i : modules/generators/mod_autoindex.c line=333 column=9
i = : pass=0 = 0; i : modules/generators/mod_autoindex.c line=333 column=9
i < : true=0, false=0 < argc : modules/generators/mod_autoindex.c line=331 column=58
argc; i : modules/generators/mod_autoindex.c line=333 column=9
i++ : pass=0 ++) { |
346 | int option = 0; |
347 | w : modules/generators/mod_autoindex.c line=334 column=11
w = : pass=0 = argv : modules/generators/mod_autoindex.c line=331 column=76
argv[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=333 column=9
i]; |
348 | |
349 | if : true=0, false=0 if ((* dereference : enter=0, leave=0 *w : modules/generators/mod_autoindex.c line=334 column=11
w == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '+') || : true=0, false=0 || (* dereference : enter=0, leave=0 *w : modules/generators/mod_autoindex.c line=334 column=11
w == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '-')) { |
350 | action : modules/generators/mod_autoindex.c line=338 column=10
action = : pass=0 = * dereference : enter=0, leave=0 *(w : modules/generators/mod_autoindex.c line=334 column=11
w++ : pass=0 ++); |
351 | } |
352 | else { |
353 | action : modules/generators/mod_autoindex.c line=338 column=10
action = : pass=0 = '\0'; |
354 | } |
355 | if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "FancyIndexing")) { |
356 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = FANCY_INDEXING; |
357 | } |
358 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "FoldersFirst")) { |
359 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = FOLDERS_FIRST; |
360 | } |
361 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "HTMLTable")) { |
362 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = TABLE_INDEXING; |
363 | } |
364 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IconsAreLinks")) { |
365 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = ICONS_ARE_LINKS; |
366 | } |
367 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IgnoreCase")) { |
368 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = IGNORE_CASE; |
369 | } |
370 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IgnoreClient")) { |
371 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = IGNORE_CLIENT; |
372 | } |
373 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "ScanHTMLTitles")) { |
374 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SCAN_HTML_TITLES; |
375 | } |
376 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressColumnSorting")) { |
377 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_COLSORT; |
378 | } |
379 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressDescription")) { |
380 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_DESC; |
381 | } |
382 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressHTMLPreamble")) { |
383 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_PREAMBLE; |
384 | } |
385 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressIcon")) { |
386 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_ICON; |
387 | } |
388 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressLastModified")) { |
389 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_LAST_MOD; |
390 | } |
391 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressSize")) { |
392 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_SIZE; |
393 | } |
394 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "SuppressRules")) { |
395 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SUPPRESS_RULES; |
396 | } |
397 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "TrackModified")) { |
398 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = TRACK_MODIFIED; |
399 | } |
400 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "VersionSort")) { |
401 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = VERSION_SORT; |
402 | } |
403 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "XHTML")) { |
404 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = EMIT_XHTML; |
405 | } |
406 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "ShowForbidden")) { |
407 | option : modules/generators/mod_autoindex.c line=346 column=13
option = : pass=0 = SHOW_FORBIDDEN; |
408 | } |
409 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "None")) { |
410 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action != : true=0, false=0 != '\0') { |
411 | return : pass=0 return "Cannot combine '+' or '-' with 'None' keyword"; |
412 | } |
413 | opts : modules/generators/mod_autoindex.c line=335 column=17
opts = : pass=0 = NO_OPTIONS; |
414 | opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add = : pass=0 = 0; |
415 | opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove = : pass=0 = 0; |
416 | } |
417 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IconWidth")) { |
418 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action != : true=0, false=0 != '-') { |
419 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width = : enter=0, leave=0 = DEFAULT_ICON_WIDTH; |
420 | } |
421 | else { |
422 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width = : enter=0, leave=0 = 0; |
423 | } |
424 | } |
425 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IconWidth=", 10)) { |
426 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '-') { |
427 | return : pass=0 return "Cannot combine '-' with IconWidth=n"; |
428 | } |
429 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width = : enter=0, leave=0 = atoi : enter=0, leave=0
atoi : /usr/include/stdlib.h line=148 column=12
atoi(&w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [10]); |
430 | } |
431 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IconHeight")) { |
432 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action != : true=0, false=0 != '-') { |
433 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height = : enter=0, leave=0 = DEFAULT_ICON_HEIGHT; |
434 | } |
435 | else { |
436 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height = : enter=0, leave=0 = 0; |
437 | } |
438 | } |
439 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "IconHeight=", 11)) { |
440 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '-') { |
441 | return : pass=0 return "Cannot combine '-' with IconHeight=n"; |
442 | } |
443 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height = : enter=0, leave=0 = atoi : enter=0, leave=0
atoi : /usr/include/stdlib.h line=148 column=12
atoi(&w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [11]); |
444 | } |
445 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "NameWidth")) { |
446 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action != : true=0, false=0 != '-') { |
447 | return : pass=0 return "NameWidth with no value may only appear as " |
448 | "'-NameWidth'"; |
449 | } |
450 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width = : enter=0, leave=0 = DEFAULT_NAME_WIDTH; |
451 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=0, leave=0 = K_NOADJUST; |
452 | } |
453 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "NameWidth=", 10)) { |
454 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '-') { |
455 | return : pass=0 return "Cannot combine '-' with NameWidth=n"; |
456 | } |
457 | if : true=0, false=0 if (w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [10] == : true=0, false=0 == '*') { |
458 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=0, leave=0 = K_ADJUST; |
459 | } |
460 | else { |
461 | int width = atoi : enter=0, leave=0
atoi : /usr/include/stdlib.h line=148 column=12
atoi(&w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [10]); |
462 | |
463 | if : true=0, false=0 if (MC/DC independently affect : true=0, false=0
width : modules/generators/mod_autoindex.c line=461 column=21
width && : true=0, false=0 && (width : modules/generators/mod_autoindex.c line=461 column=21
width < : true=0, false=0 MC/DC independently affect : true=0, false=0 < 5)) { |
464 | return : pass=0 return "NameWidth value must be greater than 5"; |
465 | } |
466 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width = : enter=0, leave=0 = width : modules/generators/mod_autoindex.c line=461 column=21
width; |
467 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=0, leave=0 = K_NOADJUST; |
468 | } |
469 | } |
470 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "DescriptionWidth")) { |
471 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action != : true=0, false=0 != '-') { |
472 | return : pass=0 return "DescriptionWidth with no value may only appear as " |
473 | "'-DescriptionWidth'"; |
474 | } |
475 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width = : enter=0, leave=0 = DEFAULT_DESC_WIDTH; |
476 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=0, leave=0 = K_NOADJUST; |
477 | } |
478 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "DescriptionWidth=", 17)) { |
479 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '-') { |
480 | return : pass=0 return "Cannot combine '-' with DescriptionWidth=n"; |
481 | } |
482 | if : true=0, false=0 if (w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [17] == : true=0, false=0 == '*') { |
483 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=0, leave=0 = K_ADJUST; |
484 | } |
485 | else { |
486 | int width = atoi : enter=0, leave=0
atoi : /usr/include/stdlib.h line=148 column=12
atoi(&w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [17]); |
487 | |
488 | if : true=0, false=0 if (MC/DC independently affect : true=0, false=0
width : modules/generators/mod_autoindex.c line=486 column=21
width && : true=0, false=0 && (width : modules/generators/mod_autoindex.c line=486 column=21
width < : true=0, false=0 MC/DC independently affect : true=0, false=0 < 12)) { |
489 | return : pass=0 return "DescriptionWidth value must be greater than 12"; |
490 | } |
491 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width = : enter=0, leave=0 = width : modules/generators/mod_autoindex.c line=486 column=21
width; |
492 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=0, leave=0 = K_NOADJUST; |
493 | } |
494 | } |
495 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "Type=", 5)) { |
496 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(cmd : modules/generators/mod_autoindex.c line=331 column=40
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, &w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [5]); |
497 | } |
498 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp(w : modules/generators/mod_autoindex.c line=334 column=11
w, "Charset=", 8)) { |
499 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(cmd : modules/generators/mod_autoindex.c line=331 column=40
cmd-> : enter=0, leave=0 ->pool : include/http_config.h line=291 column=17
pool, &w : modules/generators/mod_autoindex.c line=334 column=11
w[] : enter=0, leave=0 [8]); |
500 | } |
501 | else { |
502 | return : pass=0 return "Invalid directory indexing option"; |
503 | } |
504 | if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '\0') { |
505 | opts : modules/generators/mod_autoindex.c line=335 column=17
opts |= : pass=0 |= option : modules/generators/mod_autoindex.c line=346 column=13
option; |
506 | opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add = : pass=0 = 0; |
507 | opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove = : pass=0 = 0; |
508 | } |
509 | else if : true=0, false=0 if (action : modules/generators/mod_autoindex.c line=338 column=10
action == : true=0, false=0 == '+') { |
510 | opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add |= : pass=0 |= option : modules/generators/mod_autoindex.c line=346 column=13
option; |
511 | opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove &= : pass=0 &= ~ : pass=0 ~option : modules/generators/mod_autoindex.c line=346 column=13
option; |
512 | } |
513 | else { |
514 | opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove |= : pass=0 |= option : modules/generators/mod_autoindex.c line=346 column=13
option; |
515 | opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add &= : pass=0 &= ~ : pass=0 ~option : modules/generators/mod_autoindex.c line=346 column=13
option; |
516 | } |
517 | } |
518 | if : true=0, false=0 if ((opts : modules/generators/mod_autoindex.c line=335 column=17
opts & : pass=0 & NO_OPTIONS) && : true=0, false=0 && (opts : modules/generators/mod_autoindex.c line=335 column=17
opts & : pass=0 & ~ : pass=0 ~NO_OPTIONS)) { |
519 | return : pass=0 return "Cannot combine other IndexOptions keywords with 'None'"; |
520 | } |
521 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts = : enter=0, leave=0 = opts_add : modules/generators/mod_autoindex.c line=336 column=17
opts_add; |
522 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts = : enter=0, leave=0 = opts_remove : modules/generators/mod_autoindex.c line=337 column=17
opts_remove; |
523 | d_cfg : modules/generators/mod_autoindex.c line=339 column=27
d_cfg-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts = : enter=0, leave=0 = opts : modules/generators/mod_autoindex.c line=335 column=17
opts; |
524 | return : pass=0 return NULL; |
525 | } |
526 | |
527 | static const char *set_default_order : call=0 set_default_order(cmd_parms *cmd, void *m, |
528 | const char *direction, const char *key) |
529 | { |
530 | autoindex_config_rec *d_cfg = (autoindex_config_rec *) m : modules/generators/mod_autoindex.c line=527 column=60
m; |
531 | |
532 | if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(direction : modules/generators/mod_autoindex.c line=528 column=50
direction, "Ascending")) { |
533 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction = : enter=0, leave=0 = D_ASCENDING; |
534 | } |
535 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(direction : modules/generators/mod_autoindex.c line=528 column=50
direction, "Descending")) { |
536 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction = : enter=0, leave=0 = D_DESCENDING; |
537 | } |
538 | else { |
539 | return : pass=0 return "First keyword must be 'Ascending' or 'Descending'"; |
540 | } |
541 | |
542 | if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(key : modules/generators/mod_autoindex.c line=528 column=73
key, "Name")) { |
543 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=0, leave=0 = K_NAME; |
544 | } |
545 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(key : modules/generators/mod_autoindex.c line=528 column=73
key, "Date")) { |
546 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=0, leave=0 = K_LAST_MOD; |
547 | } |
548 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(key : modules/generators/mod_autoindex.c line=528 column=73
key, "Size")) { |
549 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=0, leave=0 = K_SIZE; |
550 | } |
551 | else if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(key : modules/generators/mod_autoindex.c line=528 column=73
key, "Description")) { |
552 | d_cfg : modules/generators/mod_autoindex.c line=530 column=27
d_cfg-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=0, leave=0 = K_DESC; |
553 | } |
554 | else { |
555 | return : pass=0 return "Second keyword must be 'Name', 'Date', 'Size', or " |
556 | "'Description'"; |
557 | } |
558 | |
559 | return : pass=0 return NULL; |
560 | } |
561 | |
562 | #define DIR_CMD_PERMS OR_INDEXES |
563 | |
564 | static const command_rec autoindex_cmds[] = |
565 | { |
566 | AP_INIT_ITERATE2("AddIcon", add_icon : modules/generators/mod_autoindex.c line=233 column=20
add_icon, BY_PATH, DIR_CMD_PERMS, |
567 | "an icon URL followed by one or more filenames"), |
568 | AP_INIT_ITERATE2("AddIconByType", add_icon : modules/generators/mod_autoindex.c line=233 column=20
add_icon, BY_TYPE, DIR_CMD_PERMS, |
569 | "an icon URL followed by one or more MIME types"), |
570 | AP_INIT_ITERATE2("AddIconByEncoding", add_icon : modules/generators/mod_autoindex.c line=233 column=20
add_icon, BY_ENCODING, DIR_CMD_PERMS, |
571 | "an icon URL followed by one or more content encodings"), |
572 | AP_INIT_ITERATE2("AddAlt", add_alt : modules/generators/mod_autoindex.c line=214 column=20
add_alt, BY_PATH, DIR_CMD_PERMS, |
573 | "alternate descriptive text followed by one or more " |
574 | "filenames"), |
575 | AP_INIT_ITERATE2("AddAltByType", add_alt : modules/generators/mod_autoindex.c line=214 column=20
add_alt, BY_TYPE, DIR_CMD_PERMS, |
576 | "alternate descriptive text followed by one or more MIME " |
577 | "types"), |
578 | AP_INIT_ITERATE2("AddAltByEncoding", add_alt : modules/generators/mod_autoindex.c line=214 column=20
add_alt, BY_ENCODING, DIR_CMD_PERMS, |
579 | "alternate descriptive text followed by one or more " |
580 | "content encodings"), |
581 | AP_INIT_TAKE_ARGV("IndexOptions", add_opts : modules/generators/mod_autoindex.c line=331 column=20
add_opts, NULL, DIR_CMD_PERMS, |
582 | "one or more index options [+|-][]"), |
583 | AP_INIT_TAKE2("IndexOrderDefault", set_default_order : modules/generators/mod_autoindex.c line=527 column=20
set_default_order, NULL, DIR_CMD_PERMS, |
584 | "{Ascending,Descending} {Name,Size,Description,Date}"), |
585 | AP_INIT_ITERATE("IndexIgnore", add_ignore : modules/generators/mod_autoindex.c line=311 column=20
add_ignore, NULL, DIR_CMD_PERMS, |
586 | "one or more file extensions"), |
587 | AP_INIT_ITERATE2("AddDescription", add_desc : modules/generators/mod_autoindex.c line=287 column=20
add_desc, BY_PATH, DIR_CMD_PERMS, |
588 | "Descriptive text followed by one or more filenames"), |
589 | AP_INIT_TAKE1("HeaderName", add_header : modules/generators/mod_autoindex.c line=317 column=20
add_header, NULL, DIR_CMD_PERMS, |
590 | "a filename"), |
591 | AP_INIT_TAKE1("ReadmeName", add_readme : modules/generators/mod_autoindex.c line=324 column=20
add_readme, NULL, DIR_CMD_PERMS, |
592 | "a filename"), |
593 | AP_INIT_RAW_ARGS("FancyIndexing", ap_set_deprecated : include/http_config.h line=548 column=33
ap_set_deprecated, NULL, OR_ALL, |
594 | "The FancyIndexing directive is no longer supported. " |
595 | "Use IndexOptions FancyIndexing."), |
596 | AP_INIT_TAKE1("DefaultIcon", ap_set_string_slot : include/http_config.h line=478 column=33
ap_set_string_slot, |
597 | (void *)APR_OFFSETOF(autoindex_config_rec, default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon), |
598 | DIR_CMD_PERMS, "an icon URL"), |
599 | AP_INIT_TAKE1("IndexStyleSheet", ap_set_string_slot : include/http_config.h line=478 column=33
ap_set_string_slot, |
600 | (void *)APR_OFFSETOF(autoindex_config_rec, style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet), |
601 | DIR_CMD_PERMS, "URL to style sheet"), |
602 | AP_INIT_TAKE1("IndexHeadInsert", ap_set_string_slot : include/http_config.h line=478 column=33
ap_set_string_slot, |
603 | (void *)APR_OFFSETOF(autoindex_config_rec, head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert), |
604 | DIR_CMD_PERMS, "String to insert in HTML HEAD section"), |
605 | {NULL} |
606 | }; |
607 | |
608 | static void *create_autoindex_config : call=1 create_autoindex_config(apr_pool_t *p, char *dummy) |
609 | { |
610 | autoindex_config_rec *new = |
611 | (autoindex_config_rec *) apr_pcalloc(p : modules/generators/mod_autoindex.c line=608 column=50
p, sizeof(autoindex_config_rec)); |
612 | |
613 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width = : enter=1, leave=1 = 0; |
614 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height = : enter=1, leave=1 = 0; |
615 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width = : enter=1, leave=1 = DEFAULT_NAME_WIDTH; |
616 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=1, leave=1 = K_UNSET; |
617 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width = : enter=1, leave=1 = DEFAULT_DESC_WIDTH; |
618 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=1, leave=1 = K_UNSET; |
619 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(struct item)); |
620 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(struct item)); |
621 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(ai_desc_t)); |
622 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(struct item)); |
623 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(struct item)); |
624 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list = : enter=1, leave=1 = apr_array_make : enter=1, leave=1
apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
apr_array_make(p : modules/generators/mod_autoindex.c line=608 column=50
p, 4, sizeof(struct item)); |
625 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts = : enter=1, leave=1 = OPTION_UNSET; |
626 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts = : enter=1, leave=1 = 0; |
627 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts = : enter=1, leave=1 = 0; |
628 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=1, leave=1 = '\0'; |
629 | new : modules/generators/mod_autoindex.c line=610 column=27
new-> : enter=1, leave=1 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction = : enter=1, leave=1 = '\0'; |
630 | |
631 | return : pass=1 return (void *) new : modules/generators/mod_autoindex.c line=610 column=27
new; |
632 | } |
633 | |
634 | static void *merge_autoindex_configs : call=0 merge_autoindex_configs(apr_pool_t *p, void *basev, void *addv) |
635 | { |
636 | autoindex_config_rec *new; |
637 | autoindex_config_rec *base = (autoindex_config_rec *) basev : modules/generators/mod_autoindex.c line=634 column=59
basev; |
638 | autoindex_config_rec *add = (autoindex_config_rec *) addv : modules/generators/mod_autoindex.c line=634 column=72
addv; |
639 | |
640 | new : modules/generators/mod_autoindex.c line=636 column=27
new = : pass=0 = (autoindex_config_rec *) apr_pcalloc(p : modules/generators/mod_autoindex.c line=634 column=50
p, sizeof(autoindex_config_rec)); |
641 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon |
642 | : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon; |
643 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet |
644 | : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->style_sheet : modules/generators/mod_autoindex.c line=122 column=11
style_sheet; |
645 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert |
646 | : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->head_insert : modules/generators/mod_autoindex.c line=123 column=11
head_insert; |
647 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height; |
648 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width; |
649 | |
650 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype; |
651 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset; |
652 | |
653 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list); |
654 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list); |
655 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list); |
656 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list); |
657 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list); |
658 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list = : enter=0, leave=0 = apr_array_append : enter=0, leave=0
apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
apr_array_append(p : modules/generators/mod_autoindex.c line=634 column=50
p, add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list, base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list); |
659 | if : true=0, false=0 if (add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts == : true=0, false=0 == NO_OPTIONS) { |
660 | /* |
661 | * If the current directory explicitly says 'no options' then we also |
662 | * clear any incremental mods from being inheritable further down. |
663 | */ |
664 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts = : enter=0, leave=0 = NO_OPTIONS; |
665 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts = : enter=0, leave=0 = 0; |
666 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts = : enter=0, leave=0 = 0; |
667 | } |
668 | else { |
669 | /* |
670 | * If there were any nonincremental options selected for |
671 | * this directory, they dominate and we don't inherit *anything.* |
672 | * Contrariwise, we *do* inherit if the only settings here are |
673 | * incremental ones. |
674 | */ |
675 | if : true=0, false=0 if (add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts == : true=0, false=0 == OPTION_UNSET) { |
676 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts = : enter=0, leave=0 = (base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts |
677 | | : pass=0 | add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts) |
678 | & : pass=0 & ~ : pass=0 ~add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts; |
679 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts = : enter=0, leave=0 = (base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts |
680 | | : pass=0 | add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts); |
681 | /* |
682 | * We may have incremental settings, so make sure we don't |
683 | * inadvertently inherit an IndexOptions None from above. |
684 | */ |
685 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts = : enter=0, leave=0 = (base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts & : pass=0 & ~ : pass=0 ~NO_OPTIONS); |
686 | } |
687 | else { |
688 | /* |
689 | * There are local nonincremental settings, which clear |
690 | * all inheritance from above. They *are* the new base settings. |
691 | */ |
692 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts;; |
693 | } |
694 | /* |
695 | * We're guaranteed that there'll be no overlap between |
696 | * the add-options and the remove-options. |
697 | */ |
698 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts |= : enter=0, leave=0 |= new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->incremented_opts : modules/generators/mod_autoindex.c line=125 column=17
incremented_opts; |
699 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts &= : enter=0, leave=0 &= ~ : pass=0 ~new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->decremented_opts : modules/generators/mod_autoindex.c line=126 column=17
decremented_opts; |
700 | } |
701 | /* |
702 | * Inherit the NameWidth settings if there aren't any specific to |
703 | * the new location; otherwise we'll end up using the defaults set in the |
704 | * config-rec creation routine. |
705 | */ |
706 | if : true=0, false=0 if (add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust == : true=0, false=0 == K_UNSET) { |
707 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width = : enter=0, leave=0 = base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width; |
708 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=0, leave=0 = base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust; |
709 | } |
710 | else { |
711 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width; |
712 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust; |
713 | } |
714 | |
715 | /* |
716 | * Likewise for DescriptionWidth. |
717 | */ |
718 | if : true=0, false=0 if (add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust == : true=0, false=0 == K_UNSET) { |
719 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width = : enter=0, leave=0 = base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width; |
720 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=0, leave=0 = base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust; |
721 | } |
722 | else { |
723 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width; |
724 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust; |
725 | } |
726 | |
727 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid |
728 | : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid; |
729 | new : modules/generators/mod_autoindex.c line=636 column=27
new-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction = : enter=0, leave=0 = add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction conditional operator : true=0, false=0 ? add : modules/generators/mod_autoindex.c line=638 column=27
add-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction |
730 | : base : modules/generators/mod_autoindex.c line=637 column=27
base-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction; |
731 | return : pass=0 return new : modules/generators/mod_autoindex.c line=636 column=27
new; |
732 | } |
733 | |
734 | /**************************************************************** |
735 | * |
736 | * Looking things up in config entries... |
737 | */ |
738 | |
739 | /* Structure used to hold entries when we're actually building an index */ |
740 | |
741 | struct ent { |
742 | char *name; |
743 | char *icon; |
744 | char *alt; |
745 | char *desc; |
746 | apr_off_t size; |
747 | apr_time_t lm; |
748 | struct ent *next; |
749 | int ascending, ignore_case, version_sort; |
750 | char key; |
751 | int isdir; |
752 | }; |
753 | |
754 | static char *find_item : call=0 find_item(request_rec *r, apr_array_header_t *list, int path_only) |
755 | { |
756 | const char *content_type = ap_field_noparam : enter=0, leave=0
ap_field_noparam : include/httpd.h line=1276 column=20
ap_field_noparam(r : modules/generators/mod_autoindex.c line=754 column=37
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=754 column=37
r-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type); |
757 | const char *content_encoding = r : modules/generators/mod_autoindex.c line=754 column=37
r-> : enter=0, leave=0 ->content_encoding : include/httpd.h line=922 column=17
content_encoding; |
758 | char *path = r : modules/generators/mod_autoindex.c line=754 column=37
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename; |
759 | |
760 | struct item *items = (struct item *) list : modules/generators/mod_autoindex.c line=754 column=60
list-> : enter=0, leave=0 ->elts : /usr/include/apr-1/apr_tables.h line=62 column=11
elts; |
761 | int i; |
762 | |
763 | for : true=0, false=0 for (i : modules/generators/mod_autoindex.c line=761 column=9
i = : pass=0 = 0; i : modules/generators/mod_autoindex.c line=761 column=9
i < : true=0, false=0 < list : modules/generators/mod_autoindex.c line=754 column=60
list-> : enter=0, leave=0 ->nelts : /usr/include/apr-1/apr_tables.h line=58 column=9
nelts; ++ : pass=0 ++i : modules/generators/mod_autoindex.c line=761 column=9
i) { |
764 | struct item *p = &items : modules/generators/mod_autoindex.c line=760 column=18
items[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=761 column=9
i]; |
765 | |
766 | /* Special cased for ^^DIRECTORY^^ and ^^BLANKICON^^ */ |
767 | if : true=0, false=0 if ((path : modules/generators/mod_autoindex.c line=758 column=11
path[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '^') || : true=0, false=0 || (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !ap_strcmp_match : enter=0, leave=0
ap_strcmp_match : include/httpd.h line=1627 column=17
ap_strcmp_match(path : modules/generators/mod_autoindex.c line=758 column=11
path, p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->apply_path : modules/generators/mod_autoindex.c line=108 column=11
apply_path))) { |
768 | if : true=0, false=0 if (! : true=0, false=0 !* dereference : enter=0, leave=0 *(p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to)) { |
769 | return : pass=0 return p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->data : modules/generators/mod_autoindex.c line=109 column=11
data; |
770 | } |
771 | else if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->type : modules/generators/mod_autoindex.c line=106 column=11
type == : true=0, false=0 MC/DC independently affect : true=0, false=0 == BY_PATH || : true=0, false=0 || path : modules/generators/mod_autoindex.c line=758 column=11
path[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '^') { |
772 | if : true=0, false=0 if (! : true=0, false=0 !ap_strcmp_match : enter=0, leave=0
ap_strcmp_match : include/httpd.h line=1627 column=17
ap_strcmp_match(path : modules/generators/mod_autoindex.c line=758 column=11
path, p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to)) { |
773 | return : pass=0 return p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->data : modules/generators/mod_autoindex.c line=109 column=11
data; |
774 | } |
775 | } |
776 | else if : true=0, false=0 if (! : true=0, false=0 !path_only : modules/generators/mod_autoindex.c line=754 column=70
path_only) { |
777 | if : true=0, false=0 if (! : true=0, false=0 !content_encoding : modules/generators/mod_autoindex.c line=757 column=17
content_encoding) { |
778 | if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->type : modules/generators/mod_autoindex.c line=106 column=11
type == : true=0, false=0 == BY_TYPE) { |
779 | if : true=0, false=0 if (MC/DC independently affect : true=0, false=0
content_type : modules/generators/mod_autoindex.c line=756 column=17
content_type |
780 | && : true=0, false=0 && ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !ap_strcasecmp_match : enter=0, leave=0
ap_strcasecmp_match : include/httpd.h line=1636 column=17
ap_strcasecmp_match(content_type : modules/generators/mod_autoindex.c line=756 column=17
content_type, |
781 | p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to)) { |
782 | return : pass=0 return p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->data : modules/generators/mod_autoindex.c line=109 column=11
data; |
783 | } |
784 | } |
785 | } |
786 | else { |
787 | if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->type : modules/generators/mod_autoindex.c line=106 column=11
type == : true=0, false=0 == BY_ENCODING) { |
788 | if : true=0, false=0 if (! : true=0, false=0 !ap_strcasecmp_match : enter=0, leave=0
ap_strcasecmp_match : include/httpd.h line=1636 column=17
ap_strcasecmp_match(content_encoding : modules/generators/mod_autoindex.c line=757 column=17
content_encoding, |
789 | p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to)) { |
790 | return : pass=0 return p : modules/generators/mod_autoindex.c line=764 column=22
p-> : enter=0, leave=0 ->data : modules/generators/mod_autoindex.c line=109 column=11
data; |
791 | } |
792 | } |
793 | } |
794 | } |
795 | } |
796 | } |
797 | return : pass=0 return NULL; |
798 | } |
799 | |
800 | #define find_icon(d,p,t) find_item : enter=0, leave=0
find_item : modules/generators/mod_autoindex.c line=754 column=14
find_item(p,d-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list,t) |
801 | #define find_alt(d,p,t) find_item : enter=0, leave=0
find_item : modules/generators/mod_autoindex.c line=754 column=14
find_item(p,d-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list,t) |
802 | #define find_header(d,p) find_item : enter=0, leave=0
find_item : modules/generators/mod_autoindex.c line=754 column=14
find_item(p,d-> : enter=0, leave=0 ->hdr_list : modules/generators/mod_autoindex.c line=140 column=25
hdr_list,0) |
803 | #define find_readme(d,p) find_item : enter=0, leave=0
find_item : modules/generators/mod_autoindex.c line=754 column=14
find_item(p,d-> : enter=0, leave=0 ->rdme_list : modules/generators/mod_autoindex.c line=141 column=25
rdme_list,0) |
804 | |
805 | static char *find_default_item : call=0 find_default_item(char *bogus_name, apr_array_header_t *list) |
806 | { |
807 | request_rec r; |
808 | /* Bleah. I tried to clean up find_item, and it lead to this bit |
809 | * of ugliness. Note that the fields initialized are precisely |
810 | * those that find_item looks at... |
811 | */ |
812 | r : modules/generators/mod_autoindex.c line=807 column=17
r.filename : include/httpd.h line=948 column=11
filename = : pass=0 = bogus_name : modules/generators/mod_autoindex.c line=805 column=38
bogus_name; |
813 | r : modules/generators/mod_autoindex.c line=807 column=17
r.content_type : include/httpd.h line=917 column=17
content_type = : pass=0 = r : modules/generators/mod_autoindex.c line=807 column=17
r.content_encoding : include/httpd.h line=922 column=17
content_encoding = : pass=0 = NULL; |
814 | return : pass=0 return find_item : enter=0, leave=0
find_item : modules/generators/mod_autoindex.c line=754 column=14
find_item(&r : modules/generators/mod_autoindex.c line=807 column=17
r, list : modules/generators/mod_autoindex.c line=805 column=70
list, 1); |
815 | } |
816 | |
817 | #define find_default_icon(d,n) find_default_item : enter=0, leave=0
find_default_item : modules/generators/mod_autoindex.c line=805 column=14
find_default_item(n, d-> : enter=0, leave=0 ->icon_list : modules/generators/mod_autoindex.c line=136 column=25
icon_list) |
818 | #define find_default_alt(d,n) find_default_item : enter=0, leave=0
find_default_item : modules/generators/mod_autoindex.c line=805 column=14
find_default_item(n, d-> : enter=0, leave=0 ->alt_list : modules/generators/mod_autoindex.c line=137 column=25
alt_list) |
819 | |
820 | /* |
821 | * Look through the list of pattern/description pairs and return the first one |
822 | * if any) that matches the filename in the request. If multiple patterns |
823 | * match, only the first one is used; since the order in the array is the |
824 | * same as the order in which directives were processed, earlier matching |
825 | * directives will dominate. |
826 | */ |
827 | |
828 | #ifdef CASE_BLIND_FILESYSTEM |
829 | #define MATCH_FLAGS APR_FNM_CASE_BLIND |
830 | #else |
831 | #define MATCH_FLAGS 0 |
832 | #endif |
833 | |
834 | static char *find_desc : call=0 find_desc(autoindex_config_rec *dcfg, const char *filename_full) |
835 | { |
836 | int i; |
837 | ai_desc_t *list = (ai_desc_t *) dcfg : modules/generators/mod_autoindex.c line=834 column=46
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list-> : enter=0, leave=0 ->elts : /usr/include/apr-1/apr_tables.h line=62 column=11
elts; |
838 | const char *filename_only; |
839 | const char *filename; |
840 | |
841 | /* |
842 | * If the filename includes a path, extract just the name itself |
843 | * for the simple matches. |
844 | */ |
845 | if : true=0, false=0 if ((filename_only : modules/generators/mod_autoindex.c line=838 column=17
filename_only = : pass=0 = ap_strrchr_c(filename_full : modules/generators/mod_autoindex.c line=834 column=64
filename_full, '/')) == : true=0, false=0 == NULL) { |
846 | filename_only : modules/generators/mod_autoindex.c line=838 column=17
filename_only = : pass=0 = filename_full : modules/generators/mod_autoindex.c line=834 column=64
filename_full; |
847 | } |
848 | else { |
849 | filename_only : modules/generators/mod_autoindex.c line=838 column=17
filename_only++ : pass=0 ++; |
850 | } |
851 | for : true=0, false=0 for (i : modules/generators/mod_autoindex.c line=836 column=9
i = : pass=0 = 0; i : modules/generators/mod_autoindex.c line=836 column=9
i < : true=0, false=0 < dcfg : modules/generators/mod_autoindex.c line=834 column=46
dcfg-> : enter=0, leave=0 ->desc_list : modules/generators/mod_autoindex.c line=138 column=25
desc_list-> : enter=0, leave=0 ->nelts : /usr/include/apr-1/apr_tables.h line=58 column=9
nelts; ++ : pass=0 ++i : modules/generators/mod_autoindex.c line=836 column=9
i) { |
852 | ai_desc_t *tuple = &list : modules/generators/mod_autoindex.c line=837 column=16
list[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=836 column=9
i]; |
853 | int found; |
854 | |
855 | /* |
856 | * Only use the full-path filename if the pattern contains '/'s. |
857 | */ |
858 | filename : modules/generators/mod_autoindex.c line=839 column=17
filename = : pass=0 = (tuple : modules/generators/mod_autoindex.c line=852 column=20
tuple-> : enter=0, leave=0 ->full_path : modules/generators/mod_autoindex.c line=115 column=9
full_path) conditional operator : true=0, false=0 ? filename_full : modules/generators/mod_autoindex.c line=834 column=64
filename_full : filename_only : modules/generators/mod_autoindex.c line=838 column=17
filename_only; |
859 | /* |
860 | * Make the comparison using the cheapest method; only do |
861 | * wildcard checking if we must. |
862 | */ |
863 | if : true=0, false=0 if (tuple : modules/generators/mod_autoindex.c line=852 column=20
tuple-> : enter=0, leave=0 ->wildcards : modules/generators/mod_autoindex.c line=116 column=9
wildcards) { |
864 | found : modules/generators/mod_autoindex.c line=853 column=13
found = : pass=0 = (apr_fnmatch : enter=0, leave=0
apr_fnmatch : /usr/include/apr-1/apr_fnmatch.h line=122 column=27
apr_fnmatch(tuple : modules/generators/mod_autoindex.c line=852 column=20
tuple-> : enter=0, leave=0 ->pattern : modules/generators/mod_autoindex.c line=113 column=11
pattern, filename : modules/generators/mod_autoindex.c line=839 column=17
filename, MATCH_FLAGS) == : true=0, false=0 == 0); |
865 | } |
866 | else { |
867 | found : modules/generators/mod_autoindex.c line=853 column=13
found = : pass=0 = (ap_strstr_c(filename : modules/generators/mod_autoindex.c line=839 column=17
filename, tuple : modules/generators/mod_autoindex.c line=852 column=20
tuple-> : enter=0, leave=0 ->pattern : modules/generators/mod_autoindex.c line=113 column=11
pattern) != : true=0, false=0 != NULL); |
868 | } |
869 | if : true=0, false=0 if (found : modules/generators/mod_autoindex.c line=853 column=13
found) { |
870 | return : pass=0 return tuple : modules/generators/mod_autoindex.c line=852 column=20
tuple-> : enter=0, leave=0 ->description : modules/generators/mod_autoindex.c line=114 column=11
description; |
871 | } |
872 | } |
873 | return : pass=0 return NULL; |
874 | } |
875 | |
876 | static int ignore_entry : call=0 ignore_entry(autoindex_config_rec *d, char *path) |
877 | { |
878 | apr_array_header_t *list = d : modules/generators/mod_autoindex.c line=876 column=47
d-> : enter=0, leave=0 ->ign_list : modules/generators/mod_autoindex.c line=139 column=25
ign_list; |
879 | struct item *items = (struct item *) list : modules/generators/mod_autoindex.c line=878 column=25
list-> : enter=0, leave=0 ->elts : /usr/include/apr-1/apr_tables.h line=62 column=11
elts; |
880 | char *tt; |
881 | int i; |
882 | |
883 | if : true=0, false=0 if ((tt : modules/generators/mod_autoindex.c line=880 column=11
tt = : pass=0 = strrchr : enter=0, leave=0
strrchr : /usr/include/string.h line=262 column=14
strrchr(path : modules/generators/mod_autoindex.c line=876 column=56
path, '/')) == : true=0, false=0 == NULL) { |
884 | tt : modules/generators/mod_autoindex.c line=880 column=11
tt = : pass=0 = path : modules/generators/mod_autoindex.c line=876 column=56
path; |
885 | } |
886 | else { |
887 | tt : modules/generators/mod_autoindex.c line=880 column=11
tt++ : pass=0 ++; |
888 | } |
889 | |
890 | for : true=0, false=0 for (i : modules/generators/mod_autoindex.c line=881 column=9
i = : pass=0 = 0; i : modules/generators/mod_autoindex.c line=881 column=9
i < : true=0, false=0 < list : modules/generators/mod_autoindex.c line=878 column=25
list-> : enter=0, leave=0 ->nelts : /usr/include/apr-1/apr_tables.h line=58 column=9
nelts; ++ : pass=0 ++i : modules/generators/mod_autoindex.c line=881 column=9
i) { |
891 | struct item *p = &items : modules/generators/mod_autoindex.c line=879 column=18
items[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=881 column=9
i]; |
892 | char *ap; |
893 | |
894 | if : true=0, false=0 if ((ap : modules/generators/mod_autoindex.c line=892 column=15
ap = : pass=0 = strrchr : enter=0, leave=0
strrchr : /usr/include/string.h line=262 column=14
strrchr(p : modules/generators/mod_autoindex.c line=891 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to, '/')) == : true=0, false=0 == NULL) { |
895 | ap : modules/generators/mod_autoindex.c line=892 column=15
ap = : pass=0 = p : modules/generators/mod_autoindex.c line=891 column=22
p-> : enter=0, leave=0 ->apply_to : modules/generators/mod_autoindex.c line=107 column=11
apply_to; |
896 | } |
897 | else { |
898 | ap : modules/generators/mod_autoindex.c line=892 column=15
ap++ : pass=0 ++; |
899 | } |
900 | |
901 | #ifndef CASE_BLIND_FILESYSTEM |
902 | if : true=0, false=0 if (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !ap_strcmp_match : enter=0, leave=0
ap_strcmp_match : include/httpd.h line=1627 column=17
ap_strcmp_match(path : modules/generators/mod_autoindex.c line=876 column=56
path, p : modules/generators/mod_autoindex.c line=891 column=22
p-> : enter=0, leave=0 ->apply_path : modules/generators/mod_autoindex.c line=108 column=11
apply_path) |
903 | && : true=0, false=0 && ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !ap_strcmp_match : enter=0, leave=0
ap_strcmp_match : include/httpd.h line=1627 column=17
ap_strcmp_match(tt : modules/generators/mod_autoindex.c line=880 column=11
tt, ap : modules/generators/mod_autoindex.c line=892 column=15
ap)) { |
904 | return : pass=0 return 1; |
905 | } |
906 | #else /* !CASE_BLIND_FILESYSTEM */ |
907 | /* |
908 | * On some platforms, the match must be case-blind. This is really |
909 | * a factor of the filesystem involved, but we can't detect that |
910 | * reliably - so we have to granularise at the OS level. |
911 | */ |
912 | if (!ap_strcasecmp_match(path, p->apply_path) |
913 | && !ap_strcasecmp_match(tt, ap)) { |
914 | return 1; |
915 | } |
916 | #endif /* !CASE_BLIND_FILESYSTEM */ |
917 | } |
918 | return : pass=0 return 0; |
919 | } |
920 | |
921 | /***************************************************************** |
922 | * |
923 | * Actually generating output |
924 | */ |
925 | |
926 | /* |
927 | * Elements of the emitted document: |
928 | * Preamble |
929 | * Emitted unless SUPPRESS_PREAMBLE is set AND ap_run_sub_req |
930 | * succeeds for the (content_type == text/html) header file. |
931 | * Header file |
932 | * Emitted if found (and able). |
933 | * H1 tag line |
934 | * Emitted if a header file is NOT emitted. |
935 | * Directory stuff |
936 | * Always emitted. |
937 | * HR |
938 | * Emitted if FANCY_INDEXING is set. |
939 | * Readme file |
940 | * Emitted if found (and able). |
941 | * ServerSig |
942 | * Emitted if ServerSignature is not Off AND a readme file |
943 | * is NOT emitted. |
944 | * Postamble |
945 | * Emitted unless SUPPRESS_PREAMBLE is set AND ap_run_sub_req |
946 | * succeeds for the (content_type == text/html) readme file. |
947 | */ |
948 | |
949 | |
950 | /* |
951 | * emit a plain text file |
952 | */ |
953 | static void do_emit_plain : call=0 do_emit_plain(request_rec *r, apr_file_t *f) |
954 | { |
955 | char buf[AP_IOBUFSIZE + 1]; |
956 | int ch; |
957 | apr_size_t i, c, n; |
958 | apr_status_t rv; |
959 | |
960 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<pre>\n", r : modules/generators/mod_autoindex.c line=953 column=40
r); |
961 | while : true=0, false=0 while (! : true=0, false=0 !apr_file_eof : enter=0, leave=0
apr_file_eof : /usr/include/apr-1/apr_file_io.h line=305 column=27
apr_file_eof(f : modules/generators/mod_autoindex.c line=953 column=55
f)) { |
962 | do { |
963 | n : modules/generators/mod_autoindex.c line=957 column=22
n = : pass=0 = sizeof(char) * : pass=0 * AP_IOBUFSIZE; |
964 | rv : modules/generators/mod_autoindex.c line=958 column=18
rv = : pass=0 = apr_file_read : enter=0, leave=0
apr_file_read : /usr/include/apr-1/apr_file_io.h line=407 column=27
apr_file_read(f : modules/generators/mod_autoindex.c line=953 column=55
f, buf : modules/generators/mod_autoindex.c line=955 column=10
buf, &n : modules/generators/mod_autoindex.c line=957 column=22
n); |
965 | } while : true=0, false=0 while (APR_STATUS_IS_EINTR(rv : modules/generators/mod_autoindex.c line=958 column=18
rv)); |
966 | if : true=0, false=0 if (n : modules/generators/mod_autoindex.c line=957 column=22
n == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 0 || : true=0, false=0 || rv : modules/generators/mod_autoindex.c line=958 column=18
rv != : true=0, false=0 MC/DC independently affect : true=0, false=0 != APR_SUCCESS) { |
967 | /* ###: better error here? */ |
968 | break : pass=0 break; |
969 | } |
970 | buf : modules/generators/mod_autoindex.c line=955 column=10
buf[n : modules/generators/mod_autoindex.c line=957 column=22
n] = : enter=0, leave=0 = '\0'; |
971 | c : modules/generators/mod_autoindex.c line=957 column=19
c = : pass=0 = 0; |
972 | while : true=0, false=0 while (c : modules/generators/mod_autoindex.c line=957 column=19
c < : true=0, false=0 < n : modules/generators/mod_autoindex.c line=957 column=22
n) { |
973 | for : true=0, false=0 for (i : modules/generators/mod_autoindex.c line=957 column=16
i = : pass=0 = c : modules/generators/mod_autoindex.c line=957 column=19
c; i : modules/generators/mod_autoindex.c line=957 column=16
i < : true=0, false=0 < n : modules/generators/mod_autoindex.c line=957 column=22
n; i : modules/generators/mod_autoindex.c line=957 column=16
i++ : pass=0 ++) { |
974 | if : true=0, false=0 if (buf : modules/generators/mod_autoindex.c line=955 column=10
buf[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=957 column=16
i] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '<' || : true=0, false=0 || buf : modules/generators/mod_autoindex.c line=955 column=10
buf[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=957 column=16
i] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '>' || : true=0, false=0 || buf : modules/generators/mod_autoindex.c line=955 column=10
buf[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=957 column=16
i] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '&') { |
975 | break : pass=0 break; |
976 | } |
977 | } |
978 | ch : modules/generators/mod_autoindex.c line=956 column=9
ch = : pass=0 = buf : modules/generators/mod_autoindex.c line=955 column=10
buf[] : enter=0, leave=0 [i : modules/generators/mod_autoindex.c line=957 column=16
i]; |
979 | buf : modules/generators/mod_autoindex.c line=955 column=10
buf[i : modules/generators/mod_autoindex.c line=957 column=16
i] = : enter=0, leave=0 = '\0'; |
980 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(&buf : modules/generators/mod_autoindex.c line=955 column=10
buf[] : enter=0, leave=0 [c : modules/generators/mod_autoindex.c line=957 column=19
c], r : modules/generators/mod_autoindex.c line=953 column=40
r); |
981 | if : true=0, false=0 if (ch : modules/generators/mod_autoindex.c line=956 column=9
ch == : true=0, false=0 == '<') { |
982 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<", r : modules/generators/mod_autoindex.c line=953 column=40
r); |
983 | } |
984 | else if : true=0, false=0 if (ch : modules/generators/mod_autoindex.c line=956 column=9
ch == : true=0, false=0 == '>') { |
985 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(">", r : modules/generators/mod_autoindex.c line=953 column=40
r); |
986 | } |
987 | else if : true=0, false=0 if (ch : modules/generators/mod_autoindex.c line=956 column=9
ch == : true=0, false=0 == '&') { |
988 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("&", r : modules/generators/mod_autoindex.c line=953 column=40
r); |
989 | } |
990 | c : modules/generators/mod_autoindex.c line=957 column=19
c = : pass=0 = i : modules/generators/mod_autoindex.c line=957 column=16
i + : pass=0 + 1; |
991 | } |
992 | } |
993 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</pre>\n", r : modules/generators/mod_autoindex.c line=953 column=40
r); |
994 | } |
995 | |
996 | /* |
997 | * Handle the preamble through the H1 tag line, inclusive. Locate |
998 | * the file with a subrequests. Process text/html documents by actually |
999 | * running the subrequest; text/xxx documents get copied verbatim, |
1000 | * and any other content type is ignored. This means that a non-text |
1001 | * document (such as HEADER.gif) might get multiviewed as the result |
1002 | * instead of a text document, meaning nothing will be displayed, but |
1003 | * oh well. |
1004 | */ |
1005 | static void emit_head : call=0 emit_head(request_rec *r, char *header_fname, int suppress_amble, |
1006 | int emit_xhtml, char *title) |
1007 | { |
1008 | apr_table_t *hdrs = r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->headers_in : include/httpd.h line=901 column=18
headers_in; |
1009 | apr_file_t *f = NULL; |
1010 | request_rec *rr = NULL; |
1011 | int emit_amble = 1; |
1012 | int emit_H1 = 1; |
1013 | const char *r_accept; |
1014 | const char *r_accept_enc; |
1015 | |
1016 | /* |
1017 | * If there's a header file, send a subrequest to look for it. If it's |
1018 | * found and html do the subrequest, otherwise handle it |
1019 | */ |
1020 | r_accept : modules/generators/mod_autoindex.c line=1013 column=17
r_accept = : pass=0 = apr_table_get : enter=0, leave=0
apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
apr_table_get(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept"); |
1021 | r_accept_enc : modules/generators/mod_autoindex.c line=1014 column=17
r_accept_enc = : pass=0 = apr_table_get : enter=0, leave=0
apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
apr_table_get(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept-Encoding"); |
1022 | apr_table_setn : enter=0, leave=0
apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
apr_table_setn(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept", "text/html, text/plain"); |
1023 | apr_table_unset : enter=0, leave=0
apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
apr_table_unset(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept-Encoding"); |
1024 | |
1025 | |
1026 | if : true=0, false=0 if ((header_fname : modules/generators/mod_autoindex.c line=1005 column=45
header_fname != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) && : true=0, false=0 && r : modules/generators/mod_autoindex.c line=1005 column=36
rMC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->args : include/httpd.h line=955 column=11
args) { |
1027 | header_fname : modules/generators/mod_autoindex.c line=1005 column=45
header_fname = : pass=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, header_fname : modules/generators/mod_autoindex.c line=1005 column=45
header_fname, "?", r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->args : include/httpd.h line=955 column=11
args, NULL); |
1028 | } |
1029 | |
1030 | if : true=0, false=0 if ((header_fname : modules/generators/mod_autoindex.c line=1005 column=45
header_fname != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) |
1031 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr = : pass=0 MC/DC independently affect : true=0, false=0 = ap_sub_req_lookup_uri : enter=0, leave=0
ap_sub_req_lookup_uri : include/http_request.h line=71 column=27
ap_sub_req_lookup_uri(header_fname : modules/generators/mod_autoindex.c line=1005 column=45
header_fname, r : modules/generators/mod_autoindex.c line=1005 column=36
r, r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters)) |
1032 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status == : true=0, false=0 MC/DC independently affect : true=0, false=0 == HTTP_OK) |
1033 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) |
1034 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype == : true=0, false=0 MC/DC independently affect : true=0, false=0 == APR_REG : /usr/include/apr-1/apr_file_info.h line=64 column=5
APR_REG)) { |
1035 | /* |
1036 | * Check for the two specific cases we allow: text/html and |
1037 | * text/anything-else. The former is allowed to be processed for |
1038 | * SSIs. |
1039 | */ |
1040 | if : true=0, false=0 if (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type != : true=0, false=0 != NULL) { |
1041 | if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(ap_field_noparam : enter=0, leave=0
ap_field_noparam : include/httpd.h line=1276 column=20
ap_field_noparam(r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type), |
1042 | "text/html")) { |
1043 | ap_filter_t *f; |
1044 | /* Hope everything will work... */ |
1045 | emit_amble : modules/generators/mod_autoindex.c line=1011 column=9
emit_amble = : pass=0 = 0; |
1046 | emit_H1 : modules/generators/mod_autoindex.c line=1012 column=9
emit_H1 = : pass=0 = 0; |
1047 | |
1048 | if : true=0, false=0 if (! : true=0, false=0 ! suppress_amble : modules/generators/mod_autoindex.c line=1005 column=63
suppress_amble) { |
1049 | emit_preamble : enter=0, leave=0
emit_preamble : modules/generators/mod_autoindex.c line=158 column=13
emit_preamble(r : modules/generators/mod_autoindex.c line=1005 column=36
r, emit_xhtml : modules/generators/mod_autoindex.c line=1006 column=27
emit_xhtml, title : modules/generators/mod_autoindex.c line=1006 column=45
title); |
1050 | } |
1051 | /* This is a hack, but I can't find any better way to do this. |
1052 | * The problem is that we have already created the sub-request, |
1053 | * but we just inserted the OLD_WRITE filter, and the |
1054 | * sub-request needs to pass its data through the OLD_WRITE |
1055 | * filter, or things go horribly wrong (missing data, data in |
1056 | * the wrong order, etc). To fix it, if you create a |
1057 | * sub-request and then insert the OLD_WRITE filter before you |
1058 | * run the request, you need to make sure that the sub-request |
1059 | * data goes through the OLD_WRITE filter. Just steal this |
1060 | * code. The long-term solution is to remove the ap_r* |
1061 | * functions. |
1062 | */ |
1063 | for : true=0, false=0 for (f : modules/generators/mod_autoindex.c line=1043 column=30
f= : pass=0 =rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters; |
1064 | f : modules/generators/mod_autoindex.c line=1043 column=30
f-> : enter=0, leave=0 ->frec : include/util_filter.h line=265 column=22
frec != : true=0, false=0 != ap_subreq_core_filter_handle : include/http_core.h line=680 column=41
ap_subreq_core_filter_handle; f : modules/generators/mod_autoindex.c line=1043 column=30
f = : pass=0 = f : modules/generators/mod_autoindex.c line=1043 column=30
f-> : enter=0, leave=0 ->next : include/util_filter.h line=271 column=18
next); |
1065 | f : modules/generators/mod_autoindex.c line=1043 column=30
f-> : enter=0, leave=0 ->next : include/util_filter.h line=271 column=18
next = : enter=0, leave=0 = r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters; |
1066 | |
1067 | /* |
1068 | * If there's a problem running the subrequest, display the |
1069 | * preamble if we didn't do it before -- the header file |
1070 | * didn't get displayed. |
1071 | */ |
1072 | if : true=0, false=0 if (ap_run_sub_req : enter=0, leave=0
ap_run_sub_req : include/http_request.h line=138 column=17
ap_run_sub_req(rr : modules/generators/mod_autoindex.c line=1010 column=18
rr) != : true=0, false=0 != OK) { |
1073 | /* It didn't work */ |
1074 | emit_amble : modules/generators/mod_autoindex.c line=1011 column=9
emit_amble = : pass=0 = suppress_amble : modules/generators/mod_autoindex.c line=1005 column=63
suppress_amble; |
1075 | emit_H1 : modules/generators/mod_autoindex.c line=1012 column=9
emit_H1 = : pass=0 = 1; |
1076 | } |
1077 | } |
1078 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp("text/", rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type, 5)) { |
1079 | /* |
1080 | * If we can open the file, prefix it with the preamble |
1081 | * regardless; since we'll be sending a <pre> block around |
1082 | * the file's contents, any HTML header it had won't end up |
1083 | * where it belongs. |
1084 | */ |
1085 | if : true=0, false=0 if (apr_file_open : enter=0, leave=0
apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
apr_file_open(&f : modules/generators/mod_autoindex.c line=1009 column=17
f, rr : modules/generators/mod_autoindex.c line=1010 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, APR_READ, |
1086 | APR_OS_DEFAULT, r : modules/generators/mod_autoindex.c line=1005 column=36
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool) == : true=0, false=0 == APR_SUCCESS) { |
1087 | emit_preamble : enter=0, leave=0
emit_preamble : modules/generators/mod_autoindex.c line=158 column=13
emit_preamble(r : modules/generators/mod_autoindex.c line=1005 column=36
r, emit_xhtml : modules/generators/mod_autoindex.c line=1006 column=27
emit_xhtml, title : modules/generators/mod_autoindex.c line=1006 column=45
title); |
1088 | emit_amble : modules/generators/mod_autoindex.c line=1011 column=9
emit_amble = : pass=0 = 0; |
1089 | do_emit_plain : enter=0, leave=0
do_emit_plain : modules/generators/mod_autoindex.c line=953 column=13
do_emit_plain(r : modules/generators/mod_autoindex.c line=1005 column=36
r, f : modules/generators/mod_autoindex.c line=1009 column=17
f); |
1090 | apr_file_close : enter=0, leave=0
apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
apr_file_close(f : modules/generators/mod_autoindex.c line=1009 column=17
f); |
1091 | emit_H1 : modules/generators/mod_autoindex.c line=1012 column=9
emit_H1 = : pass=0 = 0; |
1092 | } |
1093 | } |
1094 | } |
1095 | } |
1096 | |
1097 | if : true=0, false=0 if (r_accept : modules/generators/mod_autoindex.c line=1013 column=17
r_accept) { |
1098 | apr_table_setn : enter=0, leave=0
apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
apr_table_setn(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept", r_accept : modules/generators/mod_autoindex.c line=1013 column=17
r_accept); |
1099 | } |
1100 | else { |
1101 | apr_table_unset : enter=0, leave=0
apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
apr_table_unset(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept"); |
1102 | } |
1103 | |
1104 | if : true=0, false=0 if (r_accept_enc : modules/generators/mod_autoindex.c line=1014 column=17
r_accept_enc) { |
1105 | apr_table_setn : enter=0, leave=0
apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
apr_table_setn(hdrs : modules/generators/mod_autoindex.c line=1008 column=18
hdrs, "Accept-Encoding", r_accept_enc : modules/generators/mod_autoindex.c line=1014 column=17
r_accept_enc); |
1106 | } |
1107 | |
1108 | if : true=0, false=0 if (emit_amble : modules/generators/mod_autoindex.c line=1011 column=9
emit_amble) { |
1109 | emit_preamble : enter=0, leave=0
emit_preamble : modules/generators/mod_autoindex.c line=158 column=13
emit_preamble(r : modules/generators/mod_autoindex.c line=1005 column=36
r, emit_xhtml : modules/generators/mod_autoindex.c line=1006 column=27
emit_xhtml, title : modules/generators/mod_autoindex.c line=1006 column=45
title); |
1110 | } |
1111 | if : true=0, false=0 if (emit_H1 : modules/generators/mod_autoindex.c line=1012 column=9
emit_H1) { |
1112 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1005 column=36
r, "<h1>Index of ", title : modules/generators/mod_autoindex.c line=1006 column=45
title, "</h1>\n", NULL); |
1113 | } |
1114 | if : true=0, false=0 if (rr : modules/generators/mod_autoindex.c line=1010 column=18
rr != : true=0, false=0 != NULL) { |
1115 | ap_destroy_sub_req : enter=0, leave=0
ap_destroy_sub_req : include/http_request.h line=144 column=18
ap_destroy_sub_req(rr : modules/generators/mod_autoindex.c line=1010 column=18
rr); |
1116 | } |
1117 | } |
1118 | |
1119 | |
1120 | /* |
1121 | * Handle the Readme file through the postamble, inclusive. Locate |
1122 | * the file with a subrequests. Process text/html documents by actually |
1123 | * running the subrequest; text/xxx documents get copied verbatim, |
1124 | * and any other content type is ignored. This means that a non-text |
1125 | * document (such as FOOTER.gif) might get multiviewed as the result |
1126 | * instead of a text document, meaning nothing will be displayed, but |
1127 | * oh well. |
1128 | */ |
1129 | static void emit_tail : call=0 emit_tail(request_rec *r, char *readme_fname, int suppress_amble) |
1130 | { |
1131 | apr_file_t *f = NULL; |
1132 | request_rec *rr = NULL; |
1133 | int suppress_post = 0; |
1134 | int suppress_sig = 0; |
1135 | |
1136 | /* |
1137 | * If there's a readme file, send a subrequest to look for it. If it's |
1138 | * found and a text file, handle it -- otherwise fall through and |
1139 | * pretend there's nothing there. |
1140 | */ |
1141 | if : true=0, false=0 if ((readme_fname : modules/generators/mod_autoindex.c line=1129 column=45
readme_fname != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) |
1142 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1132 column=18
rr = : pass=0 MC/DC independently affect : true=0, false=0 = ap_sub_req_lookup_uri : enter=0, leave=0
ap_sub_req_lookup_uri : include/http_request.h line=71 column=27
ap_sub_req_lookup_uri(readme_fname : modules/generators/mod_autoindex.c line=1129 column=45
readme_fname, r : modules/generators/mod_autoindex.c line=1129 column=36
r, r : modules/generators/mod_autoindex.c line=1129 column=36
r-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters)) |
1143 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status == : true=0, false=0 MC/DC independently affect : true=0, false=0 == HTTP_OK) |
1144 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) |
1145 | && : true=0, false=0 && rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype == : true=0, false=0 MC/DC independently affect : true=0, false=0 == APR_REG : /usr/include/apr-1/apr_file_info.h line=64 column=5
APR_REG) { |
1146 | /* |
1147 | * Check for the two specific cases we allow: text/html and |
1148 | * text/anything-else. The former is allowed to be processed for |
1149 | * SSIs. |
1150 | */ |
1151 | if : true=0, false=0 if (rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type != : true=0, false=0 != NULL) { |
1152 | if : true=0, false=0 if (! : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(ap_field_noparam : enter=0, leave=0
ap_field_noparam : include/httpd.h line=1276 column=20
ap_field_noparam(r : modules/generators/mod_autoindex.c line=1129 column=36
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type), |
1153 | "text/html")) { |
1154 | ap_filter_t *f; |
1155 | for : true=0, false=0 for (f : modules/generators/mod_autoindex.c line=1154 column=30
f= : pass=0 =rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters; |
1156 | f : modules/generators/mod_autoindex.c line=1154 column=30
f-> : enter=0, leave=0 ->frec : include/util_filter.h line=265 column=22
frec != : true=0, false=0 != ap_subreq_core_filter_handle : include/http_core.h line=680 column=41
ap_subreq_core_filter_handle; f : modules/generators/mod_autoindex.c line=1154 column=30
f = : pass=0 = f : modules/generators/mod_autoindex.c line=1154 column=30
f-> : enter=0, leave=0 ->next : include/util_filter.h line=271 column=18
next); |
1157 | f : modules/generators/mod_autoindex.c line=1154 column=30
f-> : enter=0, leave=0 ->next : include/util_filter.h line=271 column=18
next = : enter=0, leave=0 = r : modules/generators/mod_autoindex.c line=1129 column=36
r-> : enter=0, leave=0 ->output_filters : include/httpd.h line=990 column=25
output_filters; |
1158 | |
1159 | |
1160 | if : true=0, false=0 if (ap_run_sub_req : enter=0, leave=0
ap_run_sub_req : include/http_request.h line=138 column=17
ap_run_sub_req(rr : modules/generators/mod_autoindex.c line=1132 column=18
rr) == : true=0, false=0 == OK) { |
1161 | /* worked... */ |
1162 | suppress_sig : modules/generators/mod_autoindex.c line=1134 column=9
suppress_sig = : pass=0 = 1; |
1163 | suppress_post : modules/generators/mod_autoindex.c line=1133 column=9
suppress_post = : pass=0 = suppress_amble : modules/generators/mod_autoindex.c line=1129 column=63
suppress_amble; |
1164 | } |
1165 | } |
1166 | else if : true=0, false=0 if (! : true=0, false=0 !strncasecmp : enter=0, leave=0
strncasecmp : /usr/include/string.h line=540 column=12
strncasecmp("text/", rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type, 5)) { |
1167 | /* |
1168 | * If we can open the file, suppress the signature. |
1169 | */ |
1170 | if : true=0, false=0 if (apr_file_open : enter=0, leave=0
apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
apr_file_open(&f : modules/generators/mod_autoindex.c line=1131 column=17
f, rr : modules/generators/mod_autoindex.c line=1132 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, APR_READ, |
1171 | APR_OS_DEFAULT, r : modules/generators/mod_autoindex.c line=1129 column=36
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool) == : true=0, false=0 == APR_SUCCESS) { |
1172 | do_emit_plain : enter=0, leave=0
do_emit_plain : modules/generators/mod_autoindex.c line=953 column=13
do_emit_plain(r : modules/generators/mod_autoindex.c line=1129 column=36
r, f : modules/generators/mod_autoindex.c line=1131 column=17
f); |
1173 | apr_file_close : enter=0, leave=0
apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
apr_file_close(f : modules/generators/mod_autoindex.c line=1131 column=17
f); |
1174 | suppress_sig : modules/generators/mod_autoindex.c line=1134 column=9
suppress_sig = : pass=0 = 1; |
1175 | } |
1176 | } |
1177 | } |
1178 | } |
1179 | |
1180 | if : true=0, false=0 if (! : true=0, false=0 !suppress_sig : modules/generators/mod_autoindex.c line=1134 column=9
suppress_sig) { |
1181 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(ap_psignature : enter=0, leave=0
ap_psignature : include/httpd.h line=1893 column=26
ap_psignature("", r : modules/generators/mod_autoindex.c line=1129 column=36
r), r : modules/generators/mod_autoindex.c line=1129 column=36
r); |
1182 | } |
1183 | if : true=0, false=0 if (! : true=0, false=0 !suppress_post : modules/generators/mod_autoindex.c line=1133 column=9
suppress_post) { |
1184 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</body></html>\n", r : modules/generators/mod_autoindex.c line=1129 column=36
r); |
1185 | } |
1186 | if : true=0, false=0 if (rr : modules/generators/mod_autoindex.c line=1132 column=18
rr != : true=0, false=0 != NULL) { |
1187 | ap_destroy_sub_req : enter=0, leave=0
ap_destroy_sub_req : include/http_request.h line=144 column=18
ap_destroy_sub_req(rr : modules/generators/mod_autoindex.c line=1132 column=18
rr); |
1188 | } |
1189 | } |
1190 | |
1191 | |
1192 | static char *find_title : call=0 find_title(request_rec *r) |
1193 | { |
1194 | char titlebuf[MAX_STRING_LEN], *find = "<title>"; |
1195 | apr_file_t *thefile = NULL; |
1196 | int x, y, p; |
1197 | apr_size_t n; |
1198 | |
1199 | if : true=0, false=0 if (r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status != : true=0, false=0 != HTTP_OK) { |
1200 | return : pass=0 return NULL; |
1201 | } |
1202 | if : true=0, false=0 if ((r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type != : true=0, false=0 MC/DC independently affect : true=0, false=0 != NULL) |
1203 | && : true=0, false=0 && (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp(ap_field_noparam : enter=0, leave=0
ap_field_noparam : include/httpd.h line=1276 column=20
ap_field_noparam(r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type), |
1204 | "text/html") |
1205 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp(r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->content_type : include/httpd.h line=917 column=17
content_type, INCLUDES_MAGIC_TYPE)) |
1206 | && : true=0, false=0 && ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->content_encoding : include/httpd.h line=922 column=17
content_encoding) { |
1207 | if : true=0, false=0 if (apr_file_open : enter=0, leave=0
apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
apr_file_open(&thefile : modules/generators/mod_autoindex.c line=1195 column=17
thefile, r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, APR_READ, |
1208 | APR_OS_DEFAULT, r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool) != : true=0, false=0 != APR_SUCCESS) { |
1209 | return : pass=0 return NULL; |
1210 | } |
1211 | n : modules/generators/mod_autoindex.c line=1197 column=16
n = : pass=0 = sizeof(char) * : pass=0 * (MAX_STRING_LEN - : pass=0 - 1); |
1212 | apr_file_read : enter=0, leave=0
apr_file_read : /usr/include/apr-1/apr_file_io.h line=407 column=27
apr_file_read(thefile : modules/generators/mod_autoindex.c line=1195 column=17
thefile, titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf, &n : modules/generators/mod_autoindex.c line=1197 column=16
n); |
1213 | if : true=0, false=0 if (n : modules/generators/mod_autoindex.c line=1197 column=16
n <= : true=0, false=0 <= 0) { |
1214 | apr_file_close : enter=0, leave=0
apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
apr_file_close(thefile : modules/generators/mod_autoindex.c line=1195 column=17
thefile); |
1215 | return : pass=0 return NULL; |
1216 | } |
1217 | titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[n : modules/generators/mod_autoindex.c line=1197 column=16
n] = : enter=0, leave=0 = '\0'; |
1218 | for : true=0, false=0 for (x : modules/generators/mod_autoindex.c line=1196 column=9
x = : pass=0 = 0, p : modules/generators/mod_autoindex.c line=1196 column=15
p = : pass=0 = 0; titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1196 column=9
x]; x : modules/generators/mod_autoindex.c line=1196 column=9
x++ : pass=0 ++) { |
1219 | if : true=0, false=0 if (apr_tolower(titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1196 column=9
x]) == : true=0, false=0 == find : modules/generators/mod_autoindex.c line=1194 column=37
find[] : enter=0, leave=0 [p : modules/generators/mod_autoindex.c line=1196 column=15
p]) { |
1220 | if : true=0, false=0 if (! : true=0, false=0 !find : modules/generators/mod_autoindex.c line=1194 column=37
find[] : enter=0, leave=0 [++ : pass=0 ++p : modules/generators/mod_autoindex.c line=1196 column=15
p]) { |
1221 | if : true=0, false=0 if ((p : modules/generators/mod_autoindex.c line=1196 column=15
p = : pass=0 = ap_ind : enter=0, leave=0
ap_ind : include/httpd.h line=1748 column=17
ap_ind(&titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [++ : pass=0 ++x : modules/generators/mod_autoindex.c line=1196 column=9
x], '<')) != : true=0, false=0 != -1) { |
1222 | titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[x : modules/generators/mod_autoindex.c line=1196 column=9
x + : pass=0 + p : modules/generators/mod_autoindex.c line=1196 column=15
p] = : enter=0, leave=0 = '\0'; |
1223 | } |
1224 | /* Scan for line breaks for Tanmoy's secretary */ |
1225 | for : true=0, false=0 for (y : modules/generators/mod_autoindex.c line=1196 column=12
y = : pass=0 = x : modules/generators/mod_autoindex.c line=1196 column=9
x; titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [y : modules/generators/mod_autoindex.c line=1196 column=12
y]; y : modules/generators/mod_autoindex.c line=1196 column=12
y++ : pass=0 ++) { |
1226 | if : true=0, false=0 if ((titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [y : modules/generators/mod_autoindex.c line=1196 column=12
y] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == CR) || : true=0, false=0 || (titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [y : modules/generators/mod_autoindex.c line=1196 column=12
y] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == LF)) { |
1227 | if : true=0, false=0 if (y : modules/generators/mod_autoindex.c line=1196 column=12
y == : true=0, false=0 == x : modules/generators/mod_autoindex.c line=1196 column=9
x) { |
1228 | x : modules/generators/mod_autoindex.c line=1196 column=9
x++ : pass=0 ++; |
1229 | } |
1230 | else { |
1231 | titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[y : modules/generators/mod_autoindex.c line=1196 column=12
y] = : enter=0, leave=0 = ' '; |
1232 | } |
1233 | } |
1234 | } |
1235 | apr_file_close : enter=0, leave=0
apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
apr_file_close(thefile : modules/generators/mod_autoindex.c line=1195 column=17
thefile); |
1236 | return : pass=0 return apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(r : modules/generators/mod_autoindex.c line=1192 column=38
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, &titlebuf : modules/generators/mod_autoindex.c line=1194 column=10
titlebuf[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1196 column=9
x]); |
1237 | } |
1238 | } |
1239 | else { |
1240 | p : modules/generators/mod_autoindex.c line=1196 column=15
p = : pass=0 = 0; |
1241 | } |
1242 | } |
1243 | apr_file_close : enter=0, leave=0
apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
apr_file_close(thefile : modules/generators/mod_autoindex.c line=1195 column=17
thefile); |
1244 | } |
1245 | return : pass=0 return NULL; |
1246 | } |
1247 | |
1248 | static struct ent *make_parent_entry : call=0 make_parent_entry(apr_int32_t autoindex_opts, |
1249 | autoindex_config_rec *d, |
1250 | request_rec *r, char keyid, |
1251 | char direction) |
1252 | { |
1253 | struct ent *p = (struct ent *) apr_pcalloc(r : modules/generators/mod_autoindex.c line=1250 column=51
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, sizeof(struct ent)); |
1254 | char *testpath; |
1255 | /* |
1256 | * p->name is now the true parent URI. |
1257 | * testpath is a crafted lie, so that the syntax '/some/..' |
1258 | * (or simply '..')be used to describe 'up' from '/some/' |
1259 | * when processeing IndexIgnore, and Icon|Alt|Desc configs. |
1260 | */ |
1261 | |
1262 | /* The output has always been to the parent. Don't make ourself |
1263 | * our own parent (worthless cyclical reference). |
1264 | */ |
1265 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name = : enter=0, leave=0 = ap_make_full_path : enter=0, leave=0
ap_make_full_path : include/httpd.h line=1600 column=20
ap_make_full_path(r : modules/generators/mod_autoindex.c line=1250 column=51
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=1250 column=51
r-> : enter=0, leave=0 ->uri : include/httpd.h line=946 column=11
uri, "../"))) { |
1266 | return : pass=0 return (NULL); |
1267 | } |
1268 | ap_getparents : enter=0, leave=0
ap_getparents : include/httpd.h line=1483 column=18
ap_getparents(p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1269 | if : true=0, false=0 if (! : true=0, false=0 !* dereference : enter=0, leave=0 *p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name) { |
1270 | return : pass=0 return (NULL); |
1271 | } |
1272 | |
1273 | /* IndexIgnore has always compared "/thispath/.." */ |
1274 | testpath : modules/generators/mod_autoindex.c line=1254 column=11
testpath = : pass=0 = ap_make_full_path : enter=0, leave=0
ap_make_full_path : include/httpd.h line=1600 column=20
ap_make_full_path(r : modules/generators/mod_autoindex.c line=1250 column=51
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=1250 column=51
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, ".."); |
1275 | if : true=0, false=0 if (ignore_entry : enter=0, leave=0
ignore_entry : modules/generators/mod_autoindex.c line=876 column=12
ignore_entry(d : modules/generators/mod_autoindex.c line=1249 column=60
d, testpath : modules/generators/mod_autoindex.c line=1254 column=11
testpath)) { |
1276 | return : pass=0 return (NULL); |
1277 | } |
1278 | |
1279 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size = : enter=0, leave=0 = -1; |
1280 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm = : enter=0, leave=0 = -1; |
1281 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->key : modules/generators/mod_autoindex.c line=750 column=10
key = : enter=0, leave=0 = apr_toupper(keyid : modules/generators/mod_autoindex.c line=1250 column=59
keyid); |
1282 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->ascending : modules/generators/mod_autoindex.c line=749 column=9
ascending = : enter=0, leave=0 = (apr_toupper(direction : modules/generators/mod_autoindex.c line=1251 column=43
direction) == : true=0, false=0 == D_ASCENDING); |
1283 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->version_sort : modules/generators/mod_autoindex.c line=749 column=33
version_sort = : enter=0, leave=0 = autoindex_opts : modules/generators/mod_autoindex.c line=1248 column=50
autoindex_opts & : pass=0 & VERSION_SORT; |
1284 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1248 column=50
autoindex_opts & : pass=0 & FANCY_INDEXING) { |
1285 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = find_default_icon(d : modules/generators/mod_autoindex.c line=1249 column=60
d, testpath : modules/generators/mod_autoindex.c line=1254 column=11
testpath))) { |
1286 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = find_default_icon(d : modules/generators/mod_autoindex.c line=1249 column=60
d, "^^DIRECTORY^^"); |
1287 | } |
1288 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = find_default_alt(d : modules/generators/mod_autoindex.c line=1249 column=60
d, testpath : modules/generators/mod_autoindex.c line=1254 column=11
testpath))) { |
1289 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = find_default_alt(d : modules/generators/mod_autoindex.c line=1249 column=60
d, "^^DIRECTORY^^"))) { |
1290 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = "DIR"; |
1291 | } |
1292 | } |
1293 | p : modules/generators/mod_autoindex.c line=1253 column=17
p-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc = : enter=0, leave=0 = find_desc : enter=0, leave=0
find_desc : modules/generators/mod_autoindex.c line=834 column=14
find_desc(d : modules/generators/mod_autoindex.c line=1249 column=60
d, testpath : modules/generators/mod_autoindex.c line=1254 column=11
testpath); |
1294 | } |
1295 | return : pass=0 return p : modules/generators/mod_autoindex.c line=1253 column=17
p; |
1296 | } |
1297 | |
1298 | static struct ent *make_autoindex_entry : call=0 make_autoindex_entry(const apr_finfo_t *dirent, |
1299 | int autoindex_opts, |
1300 | autoindex_config_rec *d, |
1301 | request_rec *r, char keyid, |
1302 | char direction, |
1303 | const char *pattern) |
1304 | { |
1305 | request_rec *rr; |
1306 | struct ent *p; |
1307 | int show_forbidden = 0; |
1308 | |
1309 | /* Dot is ignored, Parent is handled by make_parent_entry() */ |
1310 | if : true=0, false=0 if ((dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '.') && : true=0, false=0 && (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name[] : enter=0, leave=0 [1] |
1311 | || : true=0, false=0 || ((dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '.') && : true=0, false=0 && ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name[] : enter=0, leave=0 [2]))) |
1312 | return : pass=0 return (NULL); |
1313 | |
1314 | /* |
1315 | * On some platforms, the match must be case-blind. This is really |
1316 | * a factor of the filesystem involved, but we can't detect that |
1317 | * reliably - so we have to granularise at the OS level. |
1318 | */ |
1319 | if : true=0, false=0 if (MC/DC independently affect : true=0, false=0
pattern : modules/generators/mod_autoindex.c line=1303 column=53
pattern && : true=0, false=0 && (apr_fnmatch : enter=0, leave=0
apr_fnmatch : /usr/include/apr-1/apr_fnmatch.h line=122 column=27
apr_fnmatch(pattern : modules/generators/mod_autoindex.c line=1303 column=53
pattern, dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name, |
1320 | APR_FNM_NOESCAPE | : pass=0 | APR_FNM_PERIOD |
1321 | #ifdef CASE_BLIND_FILESYSTEM |
1322 | | APR_FNM_CASE_BLIND |
1323 | #endif |
1324 | ) |
1325 | != : true=0, false=0 MC/DC independently affect : true=0, false=0 != APR_SUCCESS)) { |
1326 | return : pass=0 return (NULL); |
1327 | } |
1328 | |
1329 | if : true=0, false=0 if (ignore_entry : enter=0, leave=0
ignore_entry : modules/generators/mod_autoindex.c line=876 column=12
ignore_entry(d : modules/generators/mod_autoindex.c line=1300 column=63
d, ap_make_full_path : enter=0, leave=0
ap_make_full_path : include/httpd.h line=1600 column=20
ap_make_full_path(r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, |
1330 | r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name))) { |
1331 | return : pass=0 return (NULL); |
1332 | } |
1333 | |
1334 | if : true=0, false=0 if (! : true=0, false=0 !(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr = : pass=0 = ap_sub_req_lookup_dirent : enter=0, leave=0
ap_sub_req_lookup_dirent : include/http_request.h line=105 column=27
ap_sub_req_lookup_dirent(dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent, r : modules/generators/mod_autoindex.c line=1301 column=54
r, AP_SUBREQ_NO_ARGS, NULL))) { |
1335 | return : pass=0 return (NULL); |
1336 | } |
1337 | |
1338 | if : true=0, false=0 if((autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & SHOW_FORBIDDEN) |
1339 | && : true=0, false=0 && (rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status == : true=0, false=0 MC/DC independently affect : true=0, false=0 == HTTP_UNAUTHORIZED || : true=0, false=0 || rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status == : true=0, false=0 MC/DC independently affect : true=0, false=0 == HTTP_FORBIDDEN)) { |
1340 | show_forbidden : modules/generators/mod_autoindex.c line=1307 column=9
show_forbidden = : pass=0 = 1; |
1341 | } |
1342 | |
1343 | if : true=0, false=0 if ((rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype != : true=0, false=0 MC/DC independently affect : true=0, false=0 != APR_DIR : /usr/include/apr-1/apr_file_info.h line=65 column=5
APR_DIR && : true=0, false=0 && rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype != : true=0, false=0 MC/DC independently affect : true=0, false=0 != APR_REG : /usr/include/apr-1/apr_file_info.h line=64 column=5
APR_REG) |
1344 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status == : true=0, false=0 MC/DC independently affect : true=0, false=0 == OK || : true=0, false=0 || ap_is_HTTP_SUCCESS(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status) |
1345 | || : true=0, false=0 || ap_is_HTTP_REDIRECT(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->status : include/httpd.h line=822 column=9
status) |
1346 | || : true=0, false=0 || show_forbidden : modules/generators/mod_autoindex.c line=1307 column=9
show_forbidden == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 1)) { |
1347 | ap_destroy_sub_req : enter=0, leave=0
ap_destroy_sub_req : include/http_request.h line=144 column=18
ap_destroy_sub_req(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr); |
1348 | return : pass=0 return (NULL); |
1349 | } |
1350 | |
1351 | p : modules/generators/mod_autoindex.c line=1306 column=17
p = : pass=0 = (struct ent *) apr_pcalloc(r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, sizeof(struct ent)); |
1352 | if : true=0, false=0 if (dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype == : true=0, false=0 == APR_DIR : /usr/include/apr-1/apr_file_info.h line=65 column=5
APR_DIR) { |
1353 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name = : enter=0, leave=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name, "/", NULL); |
1354 | } |
1355 | else { |
1356 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name); |
1357 | } |
1358 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size = : enter=0, leave=0 = -1; |
1359 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = NULL; |
1360 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = NULL; |
1361 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc = : enter=0, leave=0 = NULL; |
1362 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm = : enter=0, leave=0 = -1; |
1363 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->isdir : modules/generators/mod_autoindex.c line=751 column=9
isdir = : enter=0, leave=0 = 0; |
1364 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->key : modules/generators/mod_autoindex.c line=750 column=10
key = : enter=0, leave=0 = apr_toupper(keyid : modules/generators/mod_autoindex.c line=1301 column=62
keyid); |
1365 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->ascending : modules/generators/mod_autoindex.c line=749 column=9
ascending = : enter=0, leave=0 = (apr_toupper(direction : modules/generators/mod_autoindex.c line=1302 column=46
direction) == : true=0, false=0 == D_ASCENDING); |
1366 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->version_sort : modules/generators/mod_autoindex.c line=749 column=33
version_sort = : enter=0, leave=0 = ! : true=0, false=0 !! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & VERSION_SORT); |
1367 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->ignore_case : modules/generators/mod_autoindex.c line=749 column=20
ignore_case = : enter=0, leave=0 = ! : true=0, false=0 !! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & IGNORE_CASE); |
1368 | |
1369 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & (FANCY_INDEXING | : pass=0 | TABLE_INDEXING)) { |
1370 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm = : enter=0, leave=0 = rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16
mtime; |
1371 | if : true=0, false=0 if (dirent : modules/generators/mod_autoindex.c line=1298 column=60
dirent-> : enter=0, leave=0 ->filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype == : true=0, false=0 == APR_DIR : /usr/include/apr-1/apr_file_info.h line=65 column=5
APR_DIR) { |
1372 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & FOLDERS_FIRST) { |
1373 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->isdir : modules/generators/mod_autoindex.c line=751 column=9
isdir = : enter=0, leave=0 = 1; |
1374 | } |
1375 | rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename = : enter=0, leave=0 = ap_make_dirstr_parent : enter=0, leave=0
ap_make_dirstr_parent : include/httpd.h line=1586 column=20
ap_make_dirstr_parent (rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename); |
1376 | |
1377 | /* omit the trailing slash (1.3 compat) */ |
1378 | rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename[strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename) - : pass=0 - 1] = : enter=0, leave=0 = '\0'; |
1379 | |
1380 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = find_icon(d : modules/generators/mod_autoindex.c line=1300 column=63
d, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr, 1))) { |
1381 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = find_default_icon(d : modules/generators/mod_autoindex.c line=1300 column=63
d, "^^DIRECTORY^^"); |
1382 | } |
1383 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = find_alt(d : modules/generators/mod_autoindex.c line=1300 column=63
d, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr, 1))) { |
1384 | if : true=0, false=0 if (! : true=0, false=0 !(p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = find_default_alt(d : modules/generators/mod_autoindex.c line=1300 column=63
d, "^^DIRECTORY^^"))) { |
1385 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = "DIR"; |
1386 | } |
1387 | } |
1388 | } |
1389 | else { |
1390 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon = : enter=0, leave=0 = find_icon(d : modules/generators/mod_autoindex.c line=1300 column=63
d, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr, 0); |
1391 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt = : enter=0, leave=0 = find_alt(d : modules/generators/mod_autoindex.c line=1300 column=63
d, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr, 0); |
1392 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size = : enter=0, leave=0 = rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.size : /usr/include/apr-1/apr_file_info.h line=198 column=15
size; |
1393 | } |
1394 | |
1395 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc = : enter=0, leave=0 = find_desc : enter=0, leave=0
find_desc : modules/generators/mod_autoindex.c line=834 column=14
find_desc(d : modules/generators/mod_autoindex.c line=1300 column=63
d, rr : modules/generators/mod_autoindex.c line=1305 column=18
rr-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename); |
1396 | |
1397 | if : true=0, false=0 if ((! : true=0, false=0 MC/DC independently affect : true=0, false=0 !p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc) && : true=0, false=0 && (autoindex_opts : modules/generators/mod_autoindex.c line=1299 column=45
autoindex_opts & : pass=0 & SCAN_HTML_TITLES)) { |
1398 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc = : enter=0, leave=0 = apr_pstrdup : enter=0, leave=0
apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
apr_pstrdup(r : modules/generators/mod_autoindex.c line=1301 column=54
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, find_title : enter=0, leave=0
find_title : modules/generators/mod_autoindex.c line=1192 column=14
find_title(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr)); |
1399 | } |
1400 | } |
1401 | ap_destroy_sub_req : enter=0, leave=0
ap_destroy_sub_req : include/http_request.h line=144 column=18
ap_destroy_sub_req(rr : modules/generators/mod_autoindex.c line=1305 column=18
rr); |
1402 | /* |
1403 | * We don't need to take any special action for the file size key. |
1404 | * If we did, it would go here. |
1405 | */ |
1406 | if : true=0, false=0 if (keyid : modules/generators/mod_autoindex.c line=1301 column=62
keyid == : true=0, false=0 == K_LAST_MOD) { |
1407 | if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm < : true=0, false=0 < 0) { |
1408 | p : modules/generators/mod_autoindex.c line=1306 column=17
p-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm = : enter=0, leave=0 = 0; |
1409 | } |
1410 | } |
1411 | return : pass=0 return (p : modules/generators/mod_autoindex.c line=1306 column=17
p); |
1412 | } |
1413 | |
1414 | static char *terminate_description : call=0 terminate_description(autoindex_config_rec *d, char *desc, |
1415 | apr_int32_t autoindex_opts, int desc_width) |
1416 | { |
1417 | int maxsize = desc_width : modules/generators/mod_autoindex.c line=1415 column=68
desc_width; |
1418 | register int x; |
1419 | |
1420 | /* |
1421 | * If there's no DescriptionWidth in effect, default to the old |
1422 | * behaviour of adjusting the description size depending upon |
1423 | * what else is being displayed. Otherwise, stick with the |
1424 | * setting. |
1425 | */ |
1426 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1414 column=58
d-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust == : true=0, false=0 == K_UNSET) { |
1427 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1415 column=48
autoindex_opts & : pass=0 & SUPPRESS_ICON) { |
1428 | maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize += : pass=0 += 6; |
1429 | } |
1430 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1415 column=48
autoindex_opts & : pass=0 & SUPPRESS_LAST_MOD) { |
1431 | maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize += : pass=0 += 19; |
1432 | } |
1433 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1415 column=48
autoindex_opts & : pass=0 & SUPPRESS_SIZE) { |
1434 | maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize += : pass=0 += 7; |
1435 | } |
1436 | } |
1437 | for : true=0, false=0 for (x : modules/generators/mod_autoindex.c line=1418 column=18
x = : pass=0 = 0; desc : modules/generators/mod_autoindex.c line=1414 column=67
descMC/DC independently affect : true=0, false=0 [] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] && : true=0, false=0 && ((maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize > : true=0, false=0 MC/DC independently affect : true=0, false=0 > 0) || : true=0, false=0 || (desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '<')); x : modules/generators/mod_autoindex.c line=1418 column=18
x++ : pass=0 ++) { |
1438 | if : true=0, false=0 if (desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] == : true=0, false=0 == '<') { |
1439 | while : true=0, false=0 while (desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] != : true=0, false=0 != '>') { |
1440 | if : true=0, false=0 if (! : true=0, false=0 !desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x]) { |
1441 | maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize = : pass=0 = 0; |
1442 | break : pass=0 break; |
1443 | } |
1444 | ++ : pass=0 ++x : modules/generators/mod_autoindex.c line=1418 column=18
x; |
1445 | } |
1446 | } |
1447 | else if : true=0, false=0 if (desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] == : true=0, false=0 == '&') { |
1448 | /* entities like ä count as one character */ |
1449 | -- : pass=0 --maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize; |
1450 | for : true=0, false=0 for ( ; desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] != : true=0, false=0 != ';'; ++ : pass=0 ++x : modules/generators/mod_autoindex.c line=1418 column=18
x) { |
1451 | if : true=0, false=0 if (desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] == : true=0, false=0 == '\0') { |
1452 | maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize = : pass=0 = 0; |
1453 | break : pass=0 break; |
1454 | } |
1455 | } |
1456 | } |
1457 | else { |
1458 | -- : pass=0 --maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize; |
1459 | } |
1460 | } |
1461 | if : true=0, false=0 if (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !maxsize : modules/generators/mod_autoindex.c line=1417 column=9
maxsize && : true=0, false=0 && desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1418 column=18
x] != : true=0, false=0 MC/DC independently affect : true=0, false=0 != '\0') { |
1462 | desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[x : modules/generators/mod_autoindex.c line=1418 column=18
x - : pass=0 - 1] = : enter=0, leave=0 = '>'; /* Grump. */ |
1463 | desc : modules/generators/mod_autoindex.c line=1414 column=67
desc[x : modules/generators/mod_autoindex.c line=1418 column=18
x] = : enter=0, leave=0 = '\0'; /* Double Grump! */ |
1464 | } |
1465 | return : pass=0 return desc : modules/generators/mod_autoindex.c line=1414 column=67
desc; |
1466 | } |
1467 | |
1468 | /* |
1469 | * Emit the anchor for the specified field. If a field is the key for the |
1470 | * current request, the link changes its meaning to reverse the order when |
1471 | * selected again. Non-active fields always start in ascending order. |
1472 | */ |
1473 | static void emit_link : call=0 emit_link(request_rec *r, const char *anchor, char column, |
1474 | char curkey, char curdirection, |
1475 | const char *colargs, int nosort) |
1476 | { |
1477 | if : true=0, false=0 if (! : true=0, false=0 !nosort : modules/generators/mod_autoindex.c line=1475 column=48
nosort) { |
1478 | char qvalue[9]; |
1479 | |
1480 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[0] = : enter=0, leave=0 = '?'; |
1481 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[1] = : enter=0, leave=0 = 'C'; |
1482 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[2] = : enter=0, leave=0 = '='; |
1483 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[3] = : enter=0, leave=0 = column : modules/generators/mod_autoindex.c line=1473 column=64
column; |
1484 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[4] = : enter=0, leave=0 = ';'; |
1485 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[5] = : enter=0, leave=0 = 'O'; |
1486 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[6] = : enter=0, leave=0 = '='; |
1487 | /* reverse? */ |
1488 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[7] = : enter=0, leave=0 = ((curkey : modules/generators/mod_autoindex.c line=1474 column=28
curkey == : true=0, false=0 MC/DC independently affect : true=0, false=0 == column : modules/generators/mod_autoindex.c line=1473 column=64
column) && : true=0, false=0 && (curdirection : modules/generators/mod_autoindex.c line=1474 column=41
curdirection == : true=0, false=0 MC/DC independently affect : true=0, false=0 == D_ASCENDING)) |
1489 | conditional operator : true=0, false=0 ? D_DESCENDING : D_ASCENDING; |
1490 | qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue[8] = : enter=0, leave=0 = '\0'; |
1491 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1473 column=36
r, "<a href=\"", qvalue : modules/generators/mod_autoindex.c line=1478 column=14
qvalue, colargs : modules/generators/mod_autoindex.c line=1475 column=35
colargs conditional operator : true=0, false=0 ? colargs : modules/generators/mod_autoindex.c line=1475 column=35
colargs : "", |
1492 | "\">", anchor : modules/generators/mod_autoindex.c line=1473 column=51
anchor, "</a>", NULL); |
1493 | } |
1494 | else { |
1495 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(anchor : modules/generators/mod_autoindex.c line=1473 column=51
anchor, r : modules/generators/mod_autoindex.c line=1473 column=36
r); |
1496 | } |
1497 | } |
1498 | |
1499 | static void output_directories : call=0 output_directories(struct ent **ar, int n, |
1500 | autoindex_config_rec *d, request_rec *r, |
1501 | apr_int32_t autoindex_opts, char keyid, |
1502 | char direction, const char *colargs) |
1503 | { |
1504 | int x; |
1505 | apr_size_t rv; |
1506 | char *name = r : modules/generators/mod_autoindex.c line=1500 column=70
r-> : enter=0, leave=0 ->uri : include/httpd.h line=946 column=11
uri; |
1507 | char *tp; |
1508 | int static_columns = ! : true=0, false=0 !! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_COLSORT); |
1509 | apr_pool_t *scratch; |
1510 | int name_width; |
1511 | int desc_width; |
1512 | char *name_scratch; |
1513 | char *pad_scratch; |
1514 | char *breakrow = ""; |
1515 | |
1516 | apr_pool_create(&scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, r : modules/generators/mod_autoindex.c line=1500 column=70
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool); |
1517 | if : true=0, false=0 if (name : modules/generators/mod_autoindex.c line=1506 column=11
name[] : enter=0, leave=0 [0] == : true=0, false=0 == '\0') { |
1518 | name : modules/generators/mod_autoindex.c line=1506 column=11
name = : pass=0 = "/"; |
1519 | } |
1520 | |
1521 | name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width = : pass=0 = d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->name_width : modules/generators/mod_autoindex.c line=127 column=9
name_width; |
1522 | desc_width : modules/generators/mod_autoindex.c line=1511 column=9
desc_width = : pass=0 = d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->desc_width : modules/generators/mod_autoindex.c line=129 column=9
desc_width; |
1523 | |
1524 | if : true=0, false=0 if ((autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & (FANCY_INDEXING | : pass=0 | TABLE_INDEXING)) |
1525 | == : true=0, false=0 == FANCY_INDEXING) { |
1526 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust == : true=0, false=0 == K_ADJUST) { |
1527 | for : true=0, false=0 for (x : modules/generators/mod_autoindex.c line=1504 column=9
x = : pass=0 = 0; x : modules/generators/mod_autoindex.c line=1504 column=9
x < : true=0, false=0 < n : modules/generators/mod_autoindex.c line=1499 column=53
n; x : modules/generators/mod_autoindex.c line=1504 column=9
x++ : pass=0 ++) { |
1528 | int t = strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1529 | if : true=0, false=0 if (t : modules/generators/mod_autoindex.c line=1528 column=21
t > : true=0, false=0 > name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width) { |
1530 | name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width = : pass=0 = t : modules/generators/mod_autoindex.c line=1528 column=21
t; |
1531 | } |
1532 | } |
1533 | } |
1534 | |
1535 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust == : true=0, false=0 == K_ADJUST) { |
1536 | for : true=0, false=0 for (x : modules/generators/mod_autoindex.c line=1504 column=9
x = : pass=0 = 0; x : modules/generators/mod_autoindex.c line=1504 column=9
x < : true=0, false=0 < n : modules/generators/mod_autoindex.c line=1499 column=53
n; x : modules/generators/mod_autoindex.c line=1504 column=9
x++ : pass=0 ++) { |
1537 | if : true=0, false=0 if (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc != : true=0, false=0 != NULL) { |
1538 | int t = strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc); |
1539 | if : true=0, false=0 if (t : modules/generators/mod_autoindex.c line=1538 column=25
t > : true=0, false=0 > desc_width : modules/generators/mod_autoindex.c line=1511 column=9
desc_width) { |
1540 | desc_width : modules/generators/mod_autoindex.c line=1511 column=9
desc_width = : pass=0 = t : modules/generators/mod_autoindex.c line=1538 column=25
t; |
1541 | } |
1542 | } |
1543 | } |
1544 | } |
1545 | } |
1546 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch = : pass=0 = apr_palloc : enter=0, leave=0
apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
apr_palloc(r : modules/generators/mod_autoindex.c line=1500 column=70
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width + : pass=0 + 1); |
1547 | pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch = : pass=0 = apr_palloc : enter=0, leave=0
apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
apr_palloc(r : modules/generators/mod_autoindex.c line=1500 column=70
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width + : pass=0 + 1); |
1548 | memset : enter=0, leave=0
memset : /usr/include/string.h line=65 column=14
memset(pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch, ' ', name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width); |
1549 | pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width] = : enter=0, leave=0 = '\0'; |
1550 | |
1551 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & TABLE_INDEXING) { |
1552 | int cols = 1; |
1553 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<table><tr>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1554 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_ICON)) { |
1555 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1556 | if : true=0, false=0 if ((tp : modules/generators/mod_autoindex.c line=1507 column=11
tp = : pass=0 = find_default_icon(d : modules/generators/mod_autoindex.c line=1500 column=54
d, "^^BLANKICON^^"))) { |
1557 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<img src=\"", ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, tp : modules/generators/mod_autoindex.c line=1507 column=11
tp), |
1558 | "\" alt=\"[ICO]\"", NULL); |
1559 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width) { |
1560 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " width=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width); |
1561 | } |
1562 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height) { |
1563 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " height=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height); |
1564 | } |
1565 | |
1566 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1567 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1568 | } |
1569 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("></th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1570 | } |
1571 | else { |
1572 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" </th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1573 | } |
1574 | |
1575 | ++ : pass=0 ++cols : modules/generators/mod_autoindex.c line=1552 column=13
cols; |
1576 | } |
1577 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1578 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Name", K_NAME, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1579 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1580 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_LAST_MOD)) { |
1581 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</th><th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1582 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Last modified", K_LAST_MOD, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1583 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1584 | ++ : pass=0 ++cols : modules/generators/mod_autoindex.c line=1552 column=13
cols; |
1585 | } |
1586 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_SIZE)) { |
1587 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</th><th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1588 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Size", K_SIZE, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1589 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1590 | ++ : pass=0 ++cols : modules/generators/mod_autoindex.c line=1552 column=13
cols; |
1591 | } |
1592 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_DESC)) { |
1593 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</th><th>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1594 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Description", K_DESC, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1595 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1596 | ++ : pass=0 ++cols : modules/generators/mod_autoindex.c line=1552 column=13
cols; |
1597 | } |
1598 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_RULES)) { |
1599 | breakrow : modules/generators/mod_autoindex.c line=1514 column=11
breakrow = : pass=0 = apr_psprintf : enter=0, leave=0
apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
apr_psprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, |
1600 | "<tr><th colspan=\"%d\">" |
1601 | "<hr%s></th></tr>\n", cols : modules/generators/mod_autoindex.c line=1552 column=13
cols, |
1602 | (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) conditional operator : true=0, false=0 ? " /" : ""); |
1603 | } |
1604 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "</th></tr>", breakrow : modules/generators/mod_autoindex.c line=1514 column=11
breakrow, NULL); |
1605 | } |
1606 | else if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & FANCY_INDEXING) { |
1607 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<pre>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1608 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_ICON)) { |
1609 | if : true=0, false=0 if ((tp : modules/generators/mod_autoindex.c line=1507 column=11
tp = : pass=0 = find_default_icon(d : modules/generators/mod_autoindex.c line=1500 column=54
d, "^^BLANKICON^^"))) { |
1610 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<img src=\"", ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, tp : modules/generators/mod_autoindex.c line=1507 column=11
tp), |
1611 | "\" alt=\"Icon \"", NULL); |
1612 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width) { |
1613 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " width=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width); |
1614 | } |
1615 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height) { |
1616 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " height=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height); |
1617 | } |
1618 | |
1619 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1620 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1621 | } |
1622 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("> ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1623 | } |
1624 | else { |
1625 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1626 | } |
1627 | } |
1628 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Name", K_NAME, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1629 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1630 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch + : pass=0 + 4, r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1631 | /* |
1632 | * Emit the guaranteed-at-least-one-space-between-columns byte. |
1633 | */ |
1634 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1635 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_LAST_MOD)) { |
1636 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Last modified", K_LAST_MOD, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1637 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1638 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1639 | } |
1640 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_SIZE)) { |
1641 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Size", K_SIZE, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1642 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1643 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1644 | } |
1645 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_DESC)) { |
1646 | emit_link : enter=0, leave=0
emit_link : modules/generators/mod_autoindex.c line=1473 column=13
emit_link(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "Description", K_DESC, keyid : modules/generators/mod_autoindex.c line=1501 column=65
keyid, direction : modules/generators/mod_autoindex.c line=1502 column=37
direction, |
1647 | colargs : modules/generators/mod_autoindex.c line=1502 column=60
colargs, static_columns : modules/generators/mod_autoindex.c line=1508 column=9
static_columns); |
1648 | } |
1649 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_RULES)) { |
1650 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<hr", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1651 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1652 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1653 | } |
1654 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(">", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1655 | } |
1656 | else { |
1657 | ap_rputc : enter=0, leave=0
ap_rputc : include/http_protocol.h line=329 column=17
ap_rputc('\n', r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1658 | } |
1659 | } |
1660 | else { |
1661 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<ul>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1662 | } |
1663 | |
1664 | for : true=0, false=0 for (x : modules/generators/mod_autoindex.c line=1504 column=9
x = : pass=0 = 0; x : modules/generators/mod_autoindex.c line=1504 column=9
x < : true=0, false=0 < n : modules/generators/mod_autoindex.c line=1499 column=53
n; x : modules/generators/mod_autoindex.c line=1504 column=9
x++ : pass=0 ++) { |
1665 | char *anchor, *t, *t2; |
1666 | int nwidth; |
1667 | |
1668 | apr_pool_clear : enter=0, leave=0
apr_pool_clear : /usr/include/apr-1/apr_pools.h line=356 column=19
apr_pool_clear(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch); |
1669 | |
1670 | t : modules/generators/mod_autoindex.c line=1665 column=24
t = : pass=0 = ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name; |
1671 | anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor = : pass=0 = ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, ap_os_escape_path : enter=0, leave=0
ap_os_escape_path : include/httpd.h line=1501 column=20
ap_os_escape_path(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, t : modules/generators/mod_autoindex.c line=1665 column=24
t, 0)); |
1672 | |
1673 | if : true=0, false=0 if (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !x : modules/generators/mod_autoindex.c line=1504 column=9
x && : true=0, false=0 && t : modules/generators/mod_autoindex.c line=1665 column=24
t[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '/') { |
1674 | t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2 = : pass=0 = "Parent Directory"; |
1675 | } |
1676 | else { |
1677 | t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2 = : pass=0 = t : modules/generators/mod_autoindex.c line=1665 column=24
t; |
1678 | } |
1679 | |
1680 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & TABLE_INDEXING) { |
1681 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<tr>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1682 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_ICON)) { |
1683 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<td valign=\"top\">", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1684 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & ICONS_ARE_LINKS) { |
1685 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\">", NULL); |
1686 | } |
1687 | if : true=0, false=0 if ((ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]MC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon) || : true=0, false=0 || d : modules/generators/mod_autoindex.c line=1500 column=54
dMC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon) { |
1688 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<img src=\"", |
1689 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, |
1690 | ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon conditional operator : true=0, false=0 ? ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon |
1691 | : d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon), |
1692 | "\" alt=\"[", (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt conditional operator : true=0, false=0 ? ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt : " "), |
1693 | "]\"", NULL); |
1694 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width) { |
1695 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " width=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width); |
1696 | } |
1697 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height) { |
1698 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " height=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height); |
1699 | } |
1700 | |
1701 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1702 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1703 | } |
1704 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(">", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1705 | } |
1706 | else { |
1707 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1708 | } |
1709 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & ICONS_ARE_LINKS) { |
1710 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</a></td>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1711 | } |
1712 | else { |
1713 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</td>", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1714 | } |
1715 | } |
1716 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->name_adjust : modules/generators/mod_autoindex.c line=128 column=9
name_adjust == : true=0, false=0 == K_ADJUST) { |
1717 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<td><a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\">", |
1718 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2), "</a>", NULL); |
1719 | } |
1720 | else { |
1721 | nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth = : pass=0 = strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2); |
1722 | if : true=0, false=0 if (nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth > : true=0, false=0 > name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width) { |
1723 | memcpy : enter=0, leave=0
memcpy : /usr/include/string.h line=44 column=14
memcpy(name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2, name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 3); |
1724 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 3] = : enter=0, leave=0 = '.'; |
1725 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 2] = : enter=0, leave=0 = '.'; |
1726 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 1] = : enter=0, leave=0 = '>'; |
1727 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width] = : enter=0, leave=0 = 0; |
1728 | t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2 = : pass=0 = name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch; |
1729 | nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth = : pass=0 = name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width; |
1730 | } |
1731 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<td><a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\">", |
1732 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2), |
1733 | "</a>", pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch + : pass=0 + nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth, NULL); |
1734 | } |
1735 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_LAST_MOD)) { |
1736 | if : true=0, false=0 if (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm != : true=0, false=0 != -1) { |
1737 | char time_str[MAX_STRING_LEN]; |
1738 | apr_time_exp_t ts; |
1739 | apr_time_exp_lt : enter=0, leave=0
apr_time_exp_lt : /usr/include/apr-1/apr_time.h line=152 column=27
apr_time_exp_lt(&ts : modules/generators/mod_autoindex.c line=1738 column=36
ts, ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm); |
1740 | apr_strftime : enter=0, leave=0
apr_strftime : /usr/include/apr-1/apr_time.h line=214 column=27
apr_strftime(time_str : modules/generators/mod_autoindex.c line=1737 column=26
time_str, &rv : modules/generators/mod_autoindex.c line=1505 column=16
rv, MAX_STRING_LEN, |
1741 | "</td><td align=\"right\">%d-%b-%Y %H:%M ", |
1742 | &ts : modules/generators/mod_autoindex.c line=1738 column=36
ts); |
1743 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(time_str : modules/generators/mod_autoindex.c line=1737 column=26
time_str, r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1744 | } |
1745 | else { |
1746 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</td><td> ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1747 | } |
1748 | } |
1749 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_SIZE)) { |
1750 | char buf[5]; |
1751 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "</td><td align=\"right\">", |
1752 | apr_strfsize : enter=0, leave=0
apr_strfsize : /usr/include/apr-1/apr_strings.h line=353 column=21
apr_strfsize(ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size, buf : modules/generators/mod_autoindex.c line=1750 column=22
buf), NULL); |
1753 | } |
1754 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_DESC)) { |
1755 | if : true=0, false=0 if (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc) { |
1756 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->desc_adjust : modules/generators/mod_autoindex.c line=130 column=9
desc_adjust == : true=0, false=0 == K_ADJUST) { |
1757 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "</td><td>", ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc, NULL); |
1758 | } |
1759 | else { |
1760 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "</td><td>", |
1761 | terminate_description : enter=0, leave=0
terminate_description : modules/generators/mod_autoindex.c line=1414 column=14
terminate_description(d : modules/generators/mod_autoindex.c line=1500 column=54
d, ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc, |
1762 | autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts, |
1763 | desc_width : modules/generators/mod_autoindex.c line=1511 column=9
desc_width), NULL); |
1764 | } |
1765 | } |
1766 | else { |
1767 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</td><td> ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1768 | } |
1769 | } |
1770 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</td></tr>\n", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1771 | } |
1772 | else if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & FANCY_INDEXING) { |
1773 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_ICON)) { |
1774 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & ICONS_ARE_LINKS) { |
1775 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\">", NULL); |
1776 | } |
1777 | if : true=0, false=0 if ((ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]MC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon) || : true=0, false=0 || d : modules/generators/mod_autoindex.c line=1500 column=54
dMC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon) { |
1778 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<img src=\"", |
1779 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, |
1780 | ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon conditional operator : true=0, false=0 ? ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->icon : modules/generators/mod_autoindex.c line=743 column=11
icon |
1781 | : d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->default_icon : modules/generators/mod_autoindex.c line=121 column=11
default_icon), |
1782 | "\" alt=\"[", (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt conditional operator : true=0, false=0 ? ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->alt : modules/generators/mod_autoindex.c line=744 column=11
alt : " "), |
1783 | "]\"", NULL); |
1784 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width) { |
1785 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " width=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_width : modules/generators/mod_autoindex.c line=131 column=9
icon_width); |
1786 | } |
1787 | if : true=0, false=0 if (d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height) { |
1788 | ap_rprintf : enter=0, leave=0
ap_rprintf : include/http_protocol.h line=372 column=24
ap_rprintf(r : modules/generators/mod_autoindex.c line=1500 column=70
r, " height=\"%d\"", d : modules/generators/mod_autoindex.c line=1500 column=54
d-> : enter=0, leave=0 ->icon_height : modules/generators/mod_autoindex.c line=132 column=9
icon_height); |
1789 | } |
1790 | |
1791 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1792 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1793 | } |
1794 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(">", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1795 | } |
1796 | else { |
1797 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1798 | } |
1799 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & ICONS_ARE_LINKS) { |
1800 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</a> ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1801 | } |
1802 | else { |
1803 | ap_rputc : enter=0, leave=0
ap_rputc : include/http_protocol.h line=329 column=17
ap_rputc(' ', r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1804 | } |
1805 | } |
1806 | nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth = : pass=0 = strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2); |
1807 | if : true=0, false=0 if (nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth > : true=0, false=0 > name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width) { |
1808 | memcpy : enter=0, leave=0
memcpy : /usr/include/string.h line=44 column=14
memcpy(name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2, name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 3); |
1809 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 3] = : enter=0, leave=0 = '.'; |
1810 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 2] = : enter=0, leave=0 = '.'; |
1811 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width - : pass=0 - 1] = : enter=0, leave=0 = '>'; |
1812 | name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch[name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width] = : enter=0, leave=0 = 0; |
1813 | t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2 = : pass=0 = name_scratch : modules/generators/mod_autoindex.c line=1512 column=11
name_scratch; |
1814 | nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth = : pass=0 = name_width : modules/generators/mod_autoindex.c line=1510 column=9
name_width; |
1815 | } |
1816 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\">", |
1817 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2), |
1818 | "</a>", pad_scratch : modules/generators/mod_autoindex.c line=1513 column=11
pad_scratch + : pass=0 + nwidth : modules/generators/mod_autoindex.c line=1666 column=13
nwidth, NULL); |
1819 | /* |
1820 | * The blank before the storm.. er, before the next field. |
1821 | */ |
1822 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1823 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_LAST_MOD)) { |
1824 | if : true=0, false=0 if (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm != : true=0, false=0 != -1) { |
1825 | char time_str[MAX_STRING_LEN]; |
1826 | apr_time_exp_t ts; |
1827 | apr_time_exp_lt : enter=0, leave=0
apr_time_exp_lt : /usr/include/apr-1/apr_time.h line=152 column=27
apr_time_exp_lt(&ts : modules/generators/mod_autoindex.c line=1826 column=36
ts, ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm); |
1828 | apr_strftime : enter=0, leave=0
apr_strftime : /usr/include/apr-1/apr_time.h line=214 column=27
apr_strftime(time_str : modules/generators/mod_autoindex.c line=1825 column=26
time_str, &rv : modules/generators/mod_autoindex.c line=1505 column=16
rv, MAX_STRING_LEN, |
1829 | "%d-%b-%Y %H:%M ", &ts : modules/generators/mod_autoindex.c line=1826 column=36
ts); |
1830 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(time_str : modules/generators/mod_autoindex.c line=1825 column=26
time_str, r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1831 | } |
1832 | else { |
1833 | /*Length="22-Feb-1998 23:42 " (see 4 lines above) */ |
1834 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1835 | } |
1836 | } |
1837 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_SIZE)) { |
1838 | char buf[5]; |
1839 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(apr_strfsize : enter=0, leave=0
apr_strfsize : /usr/include/apr-1/apr_strings.h line=353 column=21
apr_strfsize(ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size, buf : modules/generators/mod_autoindex.c line=1838 column=22
buf), r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1840 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" ", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1841 | } |
1842 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_DESC)) { |
1843 | if : true=0, false=0 if (ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc) { |
1844 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(terminate_description : enter=0, leave=0
terminate_description : modules/generators/mod_autoindex.c line=1414 column=14
terminate_description(d : modules/generators/mod_autoindex.c line=1500 column=54
d, ar : modules/generators/mod_autoindex.c line=1499 column=45
ar[] : enter=0, leave=0 [x : modules/generators/mod_autoindex.c line=1504 column=9
x]-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc, |
1845 | autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts, |
1846 | desc_width : modules/generators/mod_autoindex.c line=1511 column=9
desc_width), r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1847 | } |
1848 | } |
1849 | ap_rputc : enter=0, leave=0
ap_rputc : include/http_protocol.h line=329 column=17
ap_rputc('\n', r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1850 | } |
1851 | else { |
1852 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, "<li><a href=\"", anchor : modules/generators/mod_autoindex.c line=1665 column=15
anchor, "\"> ", |
1853 | ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(scratch : modules/generators/mod_autoindex.c line=1509 column=17
scratch, t2 : modules/generators/mod_autoindex.c line=1665 column=28
t2), |
1854 | "</a></li>\n", NULL); |
1855 | } |
1856 | } |
1857 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & TABLE_INDEXING) { |
1858 | ap_rvputs : enter=0, leave=0
ap_rvputs : include/http_protocol.h line=354 column=24
ap_rvputs(r : modules/generators/mod_autoindex.c line=1500 column=70
r, breakrow : modules/generators/mod_autoindex.c line=1514 column=11
breakrow, "</table>\n", NULL); |
1859 | } |
1860 | else if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & FANCY_INDEXING) { |
1861 | if : true=0, false=0 if (! : true=0, false=0 !(autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & SUPPRESS_RULES)) { |
1862 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("<hr", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1863 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1501 column=44
autoindex_opts & : pass=0 & EMIT_XHTML) { |
1864 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs(" /", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1865 | } |
1866 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("></pre>\n", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1867 | } |
1868 | else { |
1869 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</pre>\n", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1870 | } |
1871 | } |
1872 | else { |
1873 | ap_rputs : enter=0, leave=0
ap_rputs : include/http_protocol.h line=337 column=17
ap_rputs("</ul>\n", r : modules/generators/mod_autoindex.c line=1500 column=70
r); |
1874 | } |
1875 | } |
1876 | |
1877 | /* |
1878 | * Compare two file entries according to the sort criteria. The return |
1879 | * is essentially a signum function value. |
1880 | */ |
1881 | |
1882 | static int dsortf : call=0 dsortf(struct ent **e1, struct ent **e2) |
1883 | { |
1884 | struct ent *c1; |
1885 | struct ent *c2; |
1886 | int result = 0; |
1887 | |
1888 | /* |
1889 | * First, see if either of the entries is for the parent directory. |
1890 | * If so, that *always* sorts lower than anything else. |
1891 | */ |
1892 | if : true=0, false=0 if ((* dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1)-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name[] : enter=0, leave=0 [0] == : true=0, false=0 == '/') { |
1893 | return : pass=0 return -1; |
1894 | } |
1895 | if : true=0, false=0 if ((* dereference : enter=0, leave=0 *e2 : modules/generators/mod_autoindex.c line=1882 column=49
e2)-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name[] : enter=0, leave=0 [0] == : true=0, false=0 == '/') { |
1896 | return : pass=0 return 1; |
1897 | } |
1898 | /* |
1899 | * Now see if one's a directory and one isn't, if we're set |
1900 | * isdir for FOLDERS_FIRST. |
1901 | */ |
1902 | if : true=0, false=0 if ((* dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1)-> : enter=0, leave=0 ->isdir : modules/generators/mod_autoindex.c line=751 column=9
isdir != : true=0, false=0 != (* dereference : enter=0, leave=0 *e2 : modules/generators/mod_autoindex.c line=1882 column=49
e2)-> : enter=0, leave=0 ->isdir : modules/generators/mod_autoindex.c line=751 column=9
isdir) { |
1903 | return : pass=0 return (* dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1)-> : enter=0, leave=0 ->isdir : modules/generators/mod_autoindex.c line=751 column=9
isdir conditional operator : true=0, false=0 ? -1 : 1; |
1904 | } |
1905 | /* |
1906 | * All of our comparisons will be of the c1 entry against the c2 one, |
1907 | * so assign them appropriately to take care of the ordering. |
1908 | */ |
1909 | if : true=0, false=0 if ((* dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1)-> : enter=0, leave=0 ->ascending : modules/generators/mod_autoindex.c line=749 column=9
ascending) { |
1910 | c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1 = : pass=0 = * dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1; |
1911 | c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2 = : pass=0 = * dereference : enter=0, leave=0 *e2 : modules/generators/mod_autoindex.c line=1882 column=49
e2; |
1912 | } |
1913 | else { |
1914 | c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1 = : pass=0 = * dereference : enter=0, leave=0 *e2 : modules/generators/mod_autoindex.c line=1882 column=49
e2; |
1915 | c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2 = : pass=0 = * dereference : enter=0, leave=0 *e1 : modules/generators/mod_autoindex.c line=1882 column=32
e1; |
1916 | } |
1917 | |
1918 | switch : pass=0 switch (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->key : modules/generators/mod_autoindex.c line=750 column=10
key) { |
1919 | case : true=0, false=0 case K_LAST_MOD: |
1920 | if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm > : true=0, false=0 > c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm) { |
1921 | return : pass=0 return 1; |
1922 | } |
1923 | else if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm < : true=0, false=0 < c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->lm : modules/generators/mod_autoindex.c line=747 column=16
lm) { |
1924 | return : pass=0 return -1; |
1925 | } |
1926 | break : pass=0 break; |
1927 | case : true=0, false=0 case K_SIZE: |
1928 | if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size > : true=0, false=0 > c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size) { |
1929 | return : pass=0 return 1; |
1930 | } |
1931 | else if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size < : true=0, false=0 < c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->size : modules/generators/mod_autoindex.c line=746 column=15
size) { |
1932 | return : pass=0 return -1; |
1933 | } |
1934 | break : pass=0 break; |
1935 | case : true=0, false=0 case K_DESC: |
1936 | if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->version_sort : modules/generators/mod_autoindex.c line=749 column=33
version_sort) { |
1937 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = apr_strnatcmp : enter=0, leave=0
apr_strnatcmp : /usr/include/apr-1/apr_strings.h line=76 column=18
apr_strnatcmp(c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc conditional operator : true=0, false=0 ? c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc : "", |
1938 | c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc conditional operator : true=0, false=0 ? c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc : ""); |
1939 | } |
1940 | else { |
1941 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp(c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc conditional operator : true=0, false=0 ? c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc : "", |
1942 | c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc conditional operator : true=0, false=0 ? c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->desc : modules/generators/mod_autoindex.c line=745 column=11
desc : ""); |
1943 | } |
1944 | if : true=0, false=0 if (result : modules/generators/mod_autoindex.c line=1886 column=9
result) { |
1945 | return : pass=0 return result : modules/generators/mod_autoindex.c line=1886 column=9
result; |
1946 | } |
1947 | break : pass=0 break; |
1948 | } |
1949 | |
1950 | /* names may identical when treated case-insensitively, |
1951 | * so always fall back on strcmp() flavors to put entries |
1952 | * in deterministic order. This means that 'ABC' and 'abc' |
1953 | * will always appear in the same order, rather than |
1954 | * variably between 'ABC abc' and 'abc ABC' order. |
1955 | */ |
1956 | |
1957 | if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->version_sort : modules/generators/mod_autoindex.c line=749 column=33
version_sort) { |
1958 | if : true=0, false=0 if (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->ignore_case : modules/generators/mod_autoindex.c line=749 column=20
ignore_case) { |
1959 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = apr_strnatcasecmp : enter=0, leave=0
apr_strnatcasecmp : /usr/include/apr-1/apr_strings.h line=87 column=18
apr_strnatcasecmp (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name, c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1960 | } |
1961 | if : true=0, false=0 if (! : true=0, false=0 !result : modules/generators/mod_autoindex.c line=1886 column=9
result) { |
1962 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = apr_strnatcmp : enter=0, leave=0
apr_strnatcmp : /usr/include/apr-1/apr_strings.h line=76 column=18
apr_strnatcmp(c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name, c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1963 | } |
1964 | } |
1965 | |
1966 | /* The names may be identical in respects other other than |
1967 | * filename case when strnatcmp is used above, so fall back |
1968 | * to strcmp on conflicts so that fn1.01.zzz and fn1.1.zzz |
1969 | * are also sorted in a deterministic order. |
1970 | */ |
1971 | |
1972 | if : true=0, false=0 if (! : true=0, false=0 MC/DC independently affect : true=0, false=0 !result : modules/generators/mod_autoindex.c line=1886 column=9
result && : true=0, false=0 && c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1MC/DC independently affect : true=0, false=0 -> : enter=0, leave=0 ->ignore_case : modules/generators/mod_autoindex.c line=749 column=20
ignore_case) { |
1973 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = strcasecmp : enter=0, leave=0
strcasecmp : /usr/include/string.h line=536 column=12
strcasecmp (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name, c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1974 | } |
1975 | |
1976 | if : true=0, false=0 if (! : true=0, false=0 !result : modules/generators/mod_autoindex.c line=1886 column=9
result) { |
1977 | result : modules/generators/mod_autoindex.c line=1886 column=9
result = : pass=0 = strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp (c1 : modules/generators/mod_autoindex.c line=1884 column=17
c1-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name, c2 : modules/generators/mod_autoindex.c line=1885 column=17
c2-> : enter=0, leave=0 ->name : modules/generators/mod_autoindex.c line=742 column=11
name); |
1978 | } |
1979 | |
1980 | return : pass=0 return result : modules/generators/mod_autoindex.c line=1886 column=9
result; |
1981 | } |
1982 | |
1983 | |
1984 | static int index_directory : call=0 index_directory(request_rec *r, |
1985 | autoindex_config_rec *autoindex_conf) |
1986 | { |
1987 | char *title_name = ap_escape_html : enter=0, leave=0
ap_escape_html : include/httpd.h line=1512 column=20
ap_escape_html(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->uri : include/httpd.h line=946 column=11
uri); |
1988 | char *title_endp; |
1989 | char *name = r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename; |
1990 | char *pstring = NULL; |
1991 | apr_finfo_t dirent; |
1992 | apr_dir_t *thedir; |
1993 | apr_status_t status; |
1994 | int num_ent = 0, x; |
1995 | struct ent *head, *p; |
1996 | struct ent **ar = NULL; |
1997 | const char *qstring; |
1998 | apr_int32_t autoindex_opts = autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->opts : modules/generators/mod_autoindex.c line=124 column=17
opts; |
1999 | char keyid; |
2000 | char direction; |
2001 | char *colargs; |
2002 | char *fullpath; |
2003 | apr_size_t dirpathlen; |
2004 | char *ctype = "text/html"; |
2005 | char *charset; |
2006 | |
2007 | if : true=0, false=0 if ((status : modules/generators/mod_autoindex.c line=1993 column=18
status = : pass=0 = apr_dir_open : enter=0, leave=0
apr_dir_open : /usr/include/apr-1/apr_file_info.h line=244 column=27
apr_dir_open(&thedir : modules/generators/mod_autoindex.c line=1992 column=16
thedir, name : modules/generators/mod_autoindex.c line=1989 column=11
name, r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool)) != : true=0, false=0 != APR_SUCCESS) { |
2008 | ap_log_rerror : enter=0, leave=0
ap_log_rerror : include/http_log.h line=219 column=18
ap_log_rerror(APLOG_MARK, APLOG_ERR, status : modules/generators/mod_autoindex.c line=1993 column=18
status, r : modules/generators/mod_autoindex.c line=1984 column=41
r, |
2009 | "Can't open directory for index: %s", r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename); |
2010 | return : pass=0 return HTTP_FORBIDDEN; |
2011 | } |
2012 | |
2013 | if : true=0, false=0 if (autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype) { |
2014 | ctype : modules/generators/mod_autoindex.c line=2004 column=11
ctype = : pass=0 = autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->ctype : modules/generators/mod_autoindex.c line=143 column=11
ctype; |
2015 | } |
2016 | if : true=0, false=0 if (autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset) { |
2017 | charset : modules/generators/mod_autoindex.c line=2005 column=11
charset = : pass=0 = autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->charset : modules/generators/mod_autoindex.c line=144 column=11
charset; |
2018 | } |
2019 | else { |
2020 | #if APR_HAS_UNICODE_FS |
2021 | charset = "UTF-8"; |
2022 | #else |
2023 | charset : modules/generators/mod_autoindex.c line=2005 column=11
charset = : pass=0 = "ISO-8859-1"; |
2024 | #endif |
2025 | } |
2026 | if : true=0, false=0 if (* dereference : enter=0, leave=0 *charset : modules/generators/mod_autoindex.c line=2005 column=11
charset) { |
2027 | ap_set_content_type : enter=0, leave=0
ap_set_content_type : include/http_protocol.h line=310 column=18
ap_set_content_type(r : modules/generators/mod_autoindex.c line=1984 column=41
r, apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, ctype : modules/generators/mod_autoindex.c line=2004 column=11
ctype, ";charset=", |
2028 | charset : modules/generators/mod_autoindex.c line=2005 column=11
charset, NULL)); |
2029 | } |
2030 | else { |
2031 | ap_set_content_type : enter=0, leave=0
ap_set_content_type : include/http_protocol.h line=310 column=18
ap_set_content_type(r : modules/generators/mod_autoindex.c line=1984 column=41
r, ctype : modules/generators/mod_autoindex.c line=2004 column=11
ctype); |
2032 | } |
2033 | |
2034 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts & : pass=0 & TRACK_MODIFIED) { |
2035 | ap_update_mtime : enter=0, leave=0
ap_update_mtime : include/http_request.h line=198 column=18
ap_update_mtime(r : modules/generators/mod_autoindex.c line=1984 column=41
r, r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->finfo : include/httpd.h line=957 column=17
finfo.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16
mtime); |
2036 | ap_set_last_modified : enter=0, leave=0
ap_set_last_modified : include/http_protocol.h line=171 column=18
ap_set_last_modified(r : modules/generators/mod_autoindex.c line=1984 column=41
r); |
2037 | ap_set_etag : enter=0, leave=0
ap_set_etag : include/http_protocol.h line=165 column=18
ap_set_etag(r : modules/generators/mod_autoindex.c line=1984 column=41
r); |
2038 | } |
2039 | if : true=0, false=0 if (r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->header_only : include/httpd.h line=808 column=9
header_only) { |
2040 | apr_dir_close : enter=0, leave=0
apr_dir_close : /usr/include/apr-1/apr_file_info.h line=252 column=27
apr_dir_close(thedir : modules/generators/mod_autoindex.c line=1992 column=16
thedir); |
2041 | return : pass=0 return 0; |
2042 | } |
2043 | |
2044 | /* |
2045 | * If there is no specific ordering defined for this directory, |
2046 | * default to ascending by filename. |
2047 | */ |
2048 | keyid : modules/generators/mod_autoindex.c line=1999 column=10
keyid = : pass=0 = autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid |
2049 | conditional operator : true=0, false=0 ? autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->default_keyid : modules/generators/mod_autoindex.c line=133 column=10
default_keyid : K_NAME; |
2050 | direction : modules/generators/mod_autoindex.c line=2000 column=10
direction = : pass=0 = autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction |
2051 | conditional operator : true=0, false=0 ? autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf-> : enter=0, leave=0 ->default_direction : modules/generators/mod_autoindex.c line=134 column=10
default_direction : D_ASCENDING; |
2052 | |
2053 | /* |
2054 | * Figure out what sort of indexing (if any) we're supposed to use. |
2055 | * |
2056 | * If no QUERY_STRING was specified or client query strings have been |
2057 | * explicitly disabled. |
2058 | * If we are ignoring the client, suppress column sorting as well. |
2059 | */ |
2060 | if : true=0, false=0 if (autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts & : pass=0 & IGNORE_CLIENT) { |
2061 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring = : pass=0 = NULL; |
2062 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts |= : pass=0 |= SUPPRESS_COLSORT; |
2063 | colargs : modules/generators/mod_autoindex.c line=2001 column=11
colargs = : pass=0 = ""; |
2064 | } |
2065 | else { |
2066 | char fval[5], vval[5], *ppre = "", *epattern = ""; |
2067 | fval : modules/generators/mod_autoindex.c line=2066 column=14
fval[0] = : enter=0, leave=0 = '\0'; vval : modules/generators/mod_autoindex.c line=2066 column=23
vval[0] = : enter=0, leave=0 = '\0'; |
2068 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring = : pass=0 = r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->args : include/httpd.h line=955 column=11
args; |
2069 | |
2070 | while : true=0, false=0 while (MC/DC independently affect : true=0, false=0
qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring && : true=0, false=0 && MC/DC independently affect : true=0, false=0 * dereference : enter=0, leave=0 *qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring) { |
2071 | |
2072 | /* C= First Sort key Column (N, M, S, D) */ |
2073 | if : true=0, false=0 if ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 'C' && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '=' |
2074 | && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstringMC/DC independently affect : true=0, false=0 [] : enter=0, leave=0 [2] && : true=0, false=0 && MC/DC independently affect : true=0, false=0 strchr : enter=0, leave=0
strchr : /usr/include/string.h line=235 column=14
strchr(K_VALID, qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]) |
2075 | && : true=0, false=0 && ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '&' || : true=0, false=0 || qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == ';' |
2076 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3])) { |
2077 | keyid : modules/generators/mod_autoindex.c line=1999 column=10
keyid = : pass=0 = qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]; |
2078 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring += : pass=0 += qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] conditional operator : true=0, false=0 ? 4 : 3; |
2079 | } |
2080 | |
2081 | /* O= Sort order (A, D) */ |
2082 | else if : true=0, false=0 if ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 'O' && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '=' |
2083 | && : true=0, false=0 && ( (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == D_ASCENDING) |
2084 | || : true=0, false=0 || (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == D_DESCENDING)) |
2085 | && : true=0, false=0 && ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '&' || : true=0, false=0 || qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == ';' |
2086 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3])) { |
2087 | direction : modules/generators/mod_autoindex.c line=2000 column=10
direction = : pass=0 = qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]; |
2088 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring += : pass=0 += qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] conditional operator : true=0, false=0 ? 4 : 3; |
2089 | } |
2090 | |
2091 | /* F= Output Format (0 plain, 1 fancy (pre), 2 table) */ |
2092 | else if : true=0, false=0 if ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 'F' && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '=' |
2093 | && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstringMC/DC independently affect : true=0, false=0 [] : enter=0, leave=0 [2] && : true=0, false=0 && MC/DC independently affect : true=0, false=0 strchr : enter=0, leave=0
strchr : /usr/include/string.h line=235 column=14
strchr("012", qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]) |
2094 | && : true=0, false=0 && ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '&' || : true=0, false=0 || qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == ';' |
2095 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3])) { |
2096 | if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 == '0') { |
2097 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts &= : pass=0 &= ~ : pass=0 ~(FANCY_INDEXING | : pass=0 | TABLE_INDEXING); |
2098 | } |
2099 | else if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 == '1') { |
2100 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts = : pass=0 = (autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts | : pass=0 | FANCY_INDEXING) |
2101 | & : pass=0 & ~ : pass=0 ~TABLE_INDEXING; |
2102 | } |
2103 | else if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 == '2') { |
2104 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts |= : pass=0 |= FANCY_INDEXING | : pass=0 | TABLE_INDEXING; |
2105 | } |
2106 | strcpy : enter=0, leave=0
strcpy : /usr/include/string.h line=128 column=14
strcpy(fval : modules/generators/mod_autoindex.c line=2066 column=14
fval, ";F= "); |
2107 | fval : modules/generators/mod_autoindex.c line=2066 column=14
fval[3] = : enter=0, leave=0 = qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]; |
2108 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring += : pass=0 += qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] conditional operator : true=0, false=0 ? 4 : 3; |
2109 | } |
2110 | |
2111 | /* V= Version sort (0, 1) */ |
2112 | else if : true=0, false=0 if ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 'V' && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '=' |
2113 | && : true=0, false=0 && (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '0' || : true=0, false=0 || qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '1') |
2114 | && : true=0, false=0 && ( qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '&' || : true=0, false=0 || qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == ';' |
2115 | || : true=0, false=0 || ! : true=0, false=0 MC/DC independently affect : true=0, false=0 !qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3])) { |
2116 | if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 == '0') { |
2117 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts &= : pass=0 &= ~ : pass=0 ~VERSION_SORT; |
2118 | } |
2119 | else if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2] == : true=0, false=0 == '1') { |
2120 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts |= : pass=0 |= VERSION_SORT; |
2121 | } |
2122 | strcpy : enter=0, leave=0
strcpy : /usr/include/string.h line=128 column=14
strcpy(vval : modules/generators/mod_autoindex.c line=2066 column=23
vval, ";V= "); |
2123 | vval : modules/generators/mod_autoindex.c line=2066 column=23
vval[3] = : enter=0, leave=0 = qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [2]; |
2124 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring += : pass=0 += qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [3] conditional operator : true=0, false=0 ? 4 : 3; |
2125 | } |
2126 | |
2127 | /* P= wildcard pattern (*.foo) */ |
2128 | else if : true=0, false=0 if (qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [0] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == 'P' && : true=0, false=0 && qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring[] : enter=0, leave=0 [1] == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '=') { |
2129 | const char *eos = qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring += : pass=0 += 2; /* for efficiency */ |
2130 | |
2131 | while : true=0, false=0 while (MC/DC independently affect : true=0, false=0 * dereference : enter=0, leave=0 *eos : modules/generators/mod_autoindex.c line=2129 column=29
eos && : true=0, false=0 && * dereference : enter=0, leave=0 *eos : modules/generators/mod_autoindex.c line=2129 column=29
eos != : true=0, false=0 MC/DC independently affect : true=0, false=0 != '&' && : true=0, false=0 && * dereference : enter=0, leave=0 *eos : modules/generators/mod_autoindex.c line=2129 column=29
eos != : true=0, false=0 MC/DC independently affect : true=0, false=0 != ';') { |
2132 | ++ : pass=0 ++eos : modules/generators/mod_autoindex.c line=2129 column=29
eos; |
2133 | } |
2134 | |
2135 | if : true=0, false=0 if (eos : modules/generators/mod_autoindex.c line=2129 column=29
eos == : true=0, false=0 == qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring) { |
2136 | pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring = : pass=0 = NULL; |
2137 | } |
2138 | else { |
2139 | pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring = : pass=0 = apr_pstrndup : enter=0, leave=0
apr_pstrndup : /usr/include/apr-1/apr_strings.h line=121 column=21
apr_pstrndup(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring, eos : modules/generators/mod_autoindex.c line=2129 column=29
eos - : pass=0 - qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring); |
2140 | if : true=0, false=0 if (ap_unescape_url : enter=0, leave=0
ap_unescape_url : include/httpd.h line=1455 column=17
ap_unescape_url(pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring) != : true=0, false=0 != OK) { |
2141 | /* ignore the pattern, if it's bad. */ |
2142 | pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring = : pass=0 = NULL; |
2143 | } |
2144 | else { |
2145 | ppre : modules/generators/mod_autoindex.c line=2066 column=33
ppre = : pass=0 = ";P="; |
2146 | /* be correct */ |
2147 | epattern : modules/generators/mod_autoindex.c line=2066 column=45
epattern = : pass=0 = ap_escape_uri(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring); |
2148 | } |
2149 | } |
2150 | |
2151 | if : true=0, false=0 if (MC/DC independently affect : true=0, false=0 * dereference : enter=0, leave=0 *eos : modules/generators/mod_autoindex.c line=2129 column=29
eos && : true=0, false=0 && MC/DC independently affect : true=0, false=0 * dereference : enter=0, leave=0 *++ : pass=0 ++eos : modules/generators/mod_autoindex.c line=2129 column=29
eos) { |
2152 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring = : pass=0 = eos : modules/generators/mod_autoindex.c line=2129 column=29
eos; |
2153 | } |
2154 | else { |
2155 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring = : pass=0 = NULL; |
2156 | } |
2157 | } |
2158 | |
2159 | /* Syntax error? Ignore the remainder! */ |
2160 | else { |
2161 | qstring : modules/generators/mod_autoindex.c line=1997 column=17
qstring = : pass=0 = NULL; |
2162 | } |
2163 | } |
2164 | colargs : modules/generators/mod_autoindex.c line=2001 column=11
colargs = : pass=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, fval : modules/generators/mod_autoindex.c line=2066 column=14
fval, vval : modules/generators/mod_autoindex.c line=2066 column=23
vval, ppre : modules/generators/mod_autoindex.c line=2066 column=33
ppre, epattern : modules/generators/mod_autoindex.c line=2066 column=45
epattern, NULL); |
2165 | } |
2166 | |
2167 | /* Spew HTML preamble */ |
2168 | title_endp : modules/generators/mod_autoindex.c line=1988 column=11
title_endp = : pass=0 = title_name : modules/generators/mod_autoindex.c line=1987 column=11
title_name + : pass=0 + strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(title_name : modules/generators/mod_autoindex.c line=1987 column=11
title_name) - : pass=0 - 1; |
2169 | |
2170 | while : true=0, false=0 while (title_endp : modules/generators/mod_autoindex.c line=1988 column=11
title_endp > : true=0, false=0 MC/DC independently affect : true=0, false=0 > title_name : modules/generators/mod_autoindex.c line=1987 column=11
title_name && : true=0, false=0 && * dereference : enter=0, leave=0 *title_endp : modules/generators/mod_autoindex.c line=1988 column=11
title_endp == : true=0, false=0 MC/DC independently affect : true=0, false=0 == '/') { |
2171 | *title_endp : modules/generators/mod_autoindex.c line=1988 column=11
title_endp-- : pass=0 -- = : enter=0, leave=0 = '\0'; |
2172 | } |
2173 | |
2174 | emit_head : enter=0, leave=0
emit_head : modules/generators/mod_autoindex.c line=1005 column=13
emit_head(r : modules/generators/mod_autoindex.c line=1984 column=41
r, find_header(autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf, r : modules/generators/mod_autoindex.c line=1984 column=41
r), |
2175 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts & : pass=0 & SUPPRESS_PREAMBLE, |
2176 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts & : pass=0 & EMIT_XHTML, title_name : modules/generators/mod_autoindex.c line=1987 column=11
title_name); |
2177 | |
2178 | /* |
2179 | * Since we don't know how many dir. entries there are, put them into a |
2180 | * linked list and then arrayificate them so qsort can use them. |
2181 | */ |
2182 | head : modules/generators/mod_autoindex.c line=1995 column=17
head = : pass=0 = NULL; |
2183 | p : modules/generators/mod_autoindex.c line=1995 column=24
p = : pass=0 = make_parent_entry : enter=0, leave=0
make_parent_entry : modules/generators/mod_autoindex.c line=1248 column=20
make_parent_entry(autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts, autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf, r : modules/generators/mod_autoindex.c line=1984 column=41
r, keyid : modules/generators/mod_autoindex.c line=1999 column=10
keyid, direction : modules/generators/mod_autoindex.c line=2000 column=10
direction); |
2184 | if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=1995 column=24
p != : true=0, false=0 != NULL) { |
2185 | p : modules/generators/mod_autoindex.c line=1995 column=24
p-> : enter=0, leave=0 ->next : modules/generators/mod_autoindex.c line=748 column=17
next = : enter=0, leave=0 = head : modules/generators/mod_autoindex.c line=1995 column=17
head; |
2186 | head : modules/generators/mod_autoindex.c line=1995 column=17
head = : pass=0 = p : modules/generators/mod_autoindex.c line=1995 column=24
p; |
2187 | num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent++ : pass=0 ++; |
2188 | } |
2189 | fullpath : modules/generators/mod_autoindex.c line=2002 column=11
fullpath = : pass=0 = apr_palloc : enter=0, leave=0
apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
apr_palloc(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, APR_PATH_MAX); |
2190 | dirpathlen : modules/generators/mod_autoindex.c line=2003 column=16
dirpathlen = : pass=0 = strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(name : modules/generators/mod_autoindex.c line=1989 column=11
name); |
2191 | memcpy : enter=0, leave=0
memcpy : /usr/include/string.h line=44 column=14
memcpy(fullpath : modules/generators/mod_autoindex.c line=2002 column=11
fullpath, name : modules/generators/mod_autoindex.c line=1989 column=11
name, dirpathlen : modules/generators/mod_autoindex.c line=2003 column=16
dirpathlen); |
2192 | |
2193 | do { |
2194 | status : modules/generators/mod_autoindex.c line=1993 column=18
status = : pass=0 = apr_dir_read : enter=0, leave=0
apr_dir_read : /usr/include/apr-1/apr_file_info.h line=267 column=27
apr_dir_read(&dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent, APR_FINFO_MIN | : pass=0 | APR_FINFO_NAME, thedir : modules/generators/mod_autoindex.c line=1992 column=16
thedir); |
2195 | if : true=0, false=0 if (APR_STATUS_IS_INCOMPLETE(status : modules/generators/mod_autoindex.c line=1993 column=18
status)) { |
2196 | continue : pass=0 continue; /* ignore un-stat()able files */ |
2197 | } |
2198 | else if : true=0, false=0 if (status : modules/generators/mod_autoindex.c line=1993 column=18
status != : true=0, false=0 != APR_SUCCESS) { |
2199 | break : pass=0 break; |
2200 | } |
2201 | |
2202 | /* We want to explode symlinks here. */ |
2203 | if : true=0, false=0 if (dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20
filetype == : true=0, false=0 == APR_LNK : /usr/include/apr-1/apr_file_info.h line=69 column=5
APR_LNK) { |
2204 | const char *savename; |
2205 | apr_finfo_t fi; |
2206 | /* We *must* have FNAME. */ |
2207 | savename : modules/generators/mod_autoindex.c line=2204 column=25
savename = : pass=0 = dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name; |
2208 | apr_cpystrn : enter=0, leave=0
apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
apr_cpystrn(fullpath : modules/generators/mod_autoindex.c line=2002 column=11
fullpath + : pass=0 + dirpathlen : modules/generators/mod_autoindex.c line=2003 column=16
dirpathlen, dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name, |
2209 | APR_PATH_MAX - : pass=0 - dirpathlen : modules/generators/mod_autoindex.c line=2003 column=16
dirpathlen); |
2210 | status : modules/generators/mod_autoindex.c line=1993 column=18
status = : pass=0 = apr_stat : enter=0, leave=0
apr_stat : /usr/include/apr-1/apr_file_info.h line=229 column=27
apr_stat(&fi : modules/generators/mod_autoindex.c line=2205 column=25
fi, fullpath : modules/generators/mod_autoindex.c line=2002 column=11
fullpath, |
2211 | dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.valid : /usr/include/apr-1/apr_file_info.h line=179 column=17
valid & : pass=0 & ~ : pass=0 ~(APR_FINFO_NAME), r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool); |
2212 | if : true=0, false=0 if (status : modules/generators/mod_autoindex.c line=1993 column=18
status != : true=0, false=0 != APR_SUCCESS) { |
2213 | /* Something bad happened, skip this file. */ |
2214 | continue : pass=0 continue; |
2215 | } |
2216 | memcpy : enter=0, leave=0
memcpy : /usr/include/string.h line=44 column=14
memcpy(&dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent, &fi : modules/generators/mod_autoindex.c line=2205 column=25
fi, sizeof(fi)); |
2217 | dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.name : /usr/include/apr-1/apr_file_info.h line=210 column=17
name = : pass=0 = savename : modules/generators/mod_autoindex.c line=2204 column=25
savename; |
2218 | dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent.valid : /usr/include/apr-1/apr_file_info.h line=179 column=17
valid |= : pass=0 |= APR_FINFO_NAME; |
2219 | } |
2220 | p : modules/generators/mod_autoindex.c line=1995 column=24
p = : pass=0 = make_autoindex_entry : enter=0, leave=0
make_autoindex_entry : modules/generators/mod_autoindex.c line=1298 column=20
make_autoindex_entry(&dirent : modules/generators/mod_autoindex.c line=1991 column=17
dirent, autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts, autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf, r : modules/generators/mod_autoindex.c line=1984 column=41
r, |
2221 | keyid : modules/generators/mod_autoindex.c line=1999 column=10
keyid, direction : modules/generators/mod_autoindex.c line=2000 column=10
direction, pstring : modules/generators/mod_autoindex.c line=1990 column=11
pstring); |
2222 | if : true=0, false=0 if (p : modules/generators/mod_autoindex.c line=1995 column=24
p != : true=0, false=0 != NULL) { |
2223 | p : modules/generators/mod_autoindex.c line=1995 column=24
p-> : enter=0, leave=0 ->next : modules/generators/mod_autoindex.c line=748 column=17
next = : enter=0, leave=0 = head : modules/generators/mod_autoindex.c line=1995 column=17
head; |
2224 | head : modules/generators/mod_autoindex.c line=1995 column=17
head = : pass=0 = p : modules/generators/mod_autoindex.c line=1995 column=24
p; |
2225 | num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent++ : pass=0 ++; |
2226 | } |
2227 | } while : true=0, false=0 while (1); |
2228 | |
2229 | if : true=0, false=0 if (num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent > : true=0, false=0 > 0) { |
2230 | ar : modules/generators/mod_autoindex.c line=1996 column=18
ar = : pass=0 = (struct ent **) apr_palloc : enter=0, leave=0
apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
apr_palloc(r : modules/generators/mod_autoindex.c line=1984 column=41
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, |
2231 | num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent * : pass=0 * sizeof(struct ent *)); |
2232 | p : modules/generators/mod_autoindex.c line=1995 column=24
p = : pass=0 = head : modules/generators/mod_autoindex.c line=1995 column=17
head; |
2233 | x : modules/generators/mod_autoindex.c line=1994 column=22
x = : pass=0 = 0; |
2234 | while : true=0, false=0 while (p : modules/generators/mod_autoindex.c line=1995 column=24
p) { |
2235 | ar : modules/generators/mod_autoindex.c line=1996 column=18
ar[x : modules/generators/mod_autoindex.c line=1994 column=22
x++ : pass=0 ++] = : enter=0, leave=0 = p : modules/generators/mod_autoindex.c line=1995 column=24
p; |
2236 | p : modules/generators/mod_autoindex.c line=1995 column=24
p = : pass=0 = p : modules/generators/mod_autoindex.c line=1995 column=24
p-> : enter=0, leave=0 ->next : modules/generators/mod_autoindex.c line=748 column=17
next; |
2237 | } |
2238 | |
2239 | qsort : enter=0, leave=0
qsort : /usr/include/stdlib.h line=761 column=13
qsort((void *) ar : modules/generators/mod_autoindex.c line=1996 column=18
ar, num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent, sizeof(struct ent *), |
2240 | (int (*)(const void *, const void *)) dsortf : modules/generators/mod_autoindex.c line=1882 column=12
dsortf); |
2241 | } |
2242 | output_directories : enter=0, leave=0
output_directories : modules/generators/mod_autoindex.c line=1499 column=13
output_directories(ar : modules/generators/mod_autoindex.c line=1996 column=18
ar, num_ent : modules/generators/mod_autoindex.c line=1994 column=9
num_ent, autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf, r : modules/generators/mod_autoindex.c line=1984 column=41
r, autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts, |
2243 | keyid : modules/generators/mod_autoindex.c line=1999 column=10
keyid, direction : modules/generators/mod_autoindex.c line=2000 column=10
direction, colargs : modules/generators/mod_autoindex.c line=2001 column=11
colargs); |
2244 | apr_dir_close : enter=0, leave=0
apr_dir_close : /usr/include/apr-1/apr_file_info.h line=252 column=27
apr_dir_close(thedir : modules/generators/mod_autoindex.c line=1992 column=16
thedir); |
2245 | |
2246 | emit_tail : enter=0, leave=0
emit_tail : modules/generators/mod_autoindex.c line=1129 column=13
emit_tail(r : modules/generators/mod_autoindex.c line=1984 column=41
r, find_readme(autoindex_conf : modules/generators/mod_autoindex.c line=1985 column=50
autoindex_conf, r : modules/generators/mod_autoindex.c line=1984 column=41
r), |
2247 | autoindex_opts : modules/generators/mod_autoindex.c line=1998 column=17
autoindex_opts & : pass=0 & SUPPRESS_PREAMBLE); |
2248 | |
2249 | return : pass=0 return 0; |
2250 | } |
2251 | |
2252 | /* The formal handler... */ |
2253 | |
2254 | static int handle_autoindex : call=0 handle_autoindex(request_rec *r) |
2255 | { |
2256 | autoindex_config_rec *d; |
2257 | int allow_opts; |
2258 | |
2259 | if : true=0, false=0 if(strcmp : enter=0, leave=0
strcmp : /usr/include/string.h line=143 column=12
strcmp(r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->handler : include/httpd.h line=919 column=17
handler,DIR_MAGIC_TYPE)) { |
2260 | return : pass=0 return DECLINED; |
2261 | } |
2262 | |
2263 | allow_opts : modules/generators/mod_autoindex.c line=2257 column=9
allow_opts = : pass=0 = ap_allow_options : enter=0, leave=0
ap_allow_options : include/http_core.h line=152 column=17
ap_allow_options(r : modules/generators/mod_autoindex.c line=2254 column=42
r); |
2264 | |
2265 | d : modules/generators/mod_autoindex.c line=2256 column=27
d = : pass=0 = (autoindex_config_rec *) ap_get_module_config(r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->per_dir_config : include/httpd.h line=977 column=30
per_dir_config, |
2266 | &autoindex_module : modules/generators/mod_autoindex.c line=48 column=31
autoindex_module); |
2267 | |
2268 | r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->allowed : include/httpd.h line=853 column=17
allowed |= : enter=0, leave=0 |= (AP_METHOD_BIT << : pass=0 << M_GET); |
2269 | if : true=0, false=0 if (r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->method_number : include/httpd.h line=831 column=9
method_number != : true=0, false=0 != M_GET) { |
2270 | return : pass=0 return DECLINED; |
2271 | } |
2272 | |
2273 | /* OK, nothing easy. Trot out the heavy artillery... */ |
2274 | |
2275 | if : true=0, false=0 if (allow_opts : modules/generators/mod_autoindex.c line=2257 column=9
allow_opts & : pass=0 & OPT_INDEXES) { |
2276 | int errstatus; |
2277 | |
2278 | if : true=0, false=0 if ((errstatus : modules/generators/mod_autoindex.c line=2276 column=13
errstatus = : pass=0 = ap_discard_request_body : enter=0, leave=0
ap_discard_request_body : include/http_protocol.h line=462 column=17
ap_discard_request_body(r : modules/generators/mod_autoindex.c line=2254 column=42
r)) != : true=0, false=0 != OK) { |
2279 | return : pass=0 return errstatus : modules/generators/mod_autoindex.c line=2276 column=13
errstatus; |
2280 | } |
2281 | |
2282 | /* KLUDGE --- make the sub_req lookups happen in the right directory. |
2283 | * Fixing this in the sub_req_lookup functions themselves is difficult, |
2284 | * and would probably break virtual includes... |
2285 | */ |
2286 | |
2287 | if : true=0, false=0 if (r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename[] : enter=0, leave=0 [strlen : enter=0, leave=0
strlen : /usr/include/string.h line=399 column=15
strlen(r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename) - : pass=0 - 1] != : true=0, false=0 != '/') { |
2288 | r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename = : enter=0, leave=0 = apr_pstrcat : enter=0, leave=0
apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
apr_pstrcat(r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->pool : include/httpd.h line=780 column=17
pool, r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename, "/", NULL); |
2289 | } |
2290 | return : pass=0 return index_directory : enter=0, leave=0
index_directory : modules/generators/mod_autoindex.c line=1984 column=12
index_directory(r : modules/generators/mod_autoindex.c line=2254 column=42
r, d : modules/generators/mod_autoindex.c line=2256 column=27
d); |
2291 | } |
2292 | else { |
2293 | ap_log_rerror : enter=0, leave=0
ap_log_rerror : include/http_log.h line=219 column=18
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/generators/mod_autoindex.c line=2254 column=42
r, |
2294 | "Directory index forbidden by " |
2295 | "Options directive: %s", r : modules/generators/mod_autoindex.c line=2254 column=42
r-> : enter=0, leave=0 ->filename : include/httpd.h line=948 column=11
filename); |
2296 | return : pass=0 return HTTP_FORBIDDEN; |
2297 | } |
2298 | } |
2299 | |
2300 | static void register_hooks : call=1 register_hooks(apr_pool_t *p) |
2301 | { |
2302 | ap_hook_handler : enter=1, leave=1
ap_hook_handler : modules/generators/ line=3 column=1
ap_hook_handler(handle_autoindex : modules/generators/mod_autoindex.c line=2254 column=12
handle_autoindex,NULL,NULL,APR_HOOK_MIDDLE); |
2303 | } |
2304 | |
2305 | module AP_MODULE_DECLARE_DATA autoindex_module = |
2306 | { |
2307 | STANDARD20_MODULE_STUFF, |
2308 | create_autoindex_config : modules/generators/mod_autoindex.c line=608 column=14
create_autoindex_config, /* dir config creater */ |
2309 | merge_autoindex_configs : modules/generators/mod_autoindex.c line=634 column=14
merge_autoindex_configs, /* dir merger --- default is to override */ |
2310 | NULL, /* server config */ |
2311 | NULL, /* merge server config */ |
2312 | autoindex_cmds : modules/generators/mod_autoindex.c line=564 column=26
autoindex_cmds, /* command apr_table_t */ |
2313 | register_hooks : modules/generators/mod_autoindex.c line=2300 column=13
register_hooks /* register hooks */ |
2314 | }; |
2315 | [EOF] |