| 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=0 << 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] |