- Removed unused macro nfi_conf_path_set.
- Fixed flags for the readme mode, now they are disjoint. This fixed some other related things. - Renamed fancyindex_readme_options to fancyindex_readme_mode (shorter and clearer, IMHO) - Renamed fancyindex_mode to fancyindex_include_mode (clearer). - Checks for bottom/top readme are now properly done. - Fix: Initialization of readme_flags now is zero instead of NGX_CONF_UNSET. - Improved iteration of builtin template.pull/4/head
							parent
							
								
									855adc70eb
								
							
						
					
					
						commit
						0101fd77a1
					
				
							
								
								
									
										3
									
								
								.todo
								
								
								
								
							
							
						
						
									
										3
									
								
								.todo
								
								
								
								
							|  | @ -26,4 +26,7 @@ | ||||||
|     <note priority="medium" time="1188384488"> |     <note priority="medium" time="1188384488"> | ||||||
|         split big handler function into smaller pieces |         split big handler function into smaller pieces | ||||||
|     </note> |     </note> | ||||||
|  |     <note priority="medium" time="1188484132"> | ||||||
|  |         install handler *after* index handler | ||||||
|  |     </note> | ||||||
| </todo> | </todo> | ||||||
|  |  | ||||||
|  | @ -47,12 +47,12 @@ typedef struct { | ||||||
| } ngx_http_fancyindex_entry_t; | } ngx_http_fancyindex_entry_t; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #define NGX_HTTP_FANCYINDEX_README_TOP    0x00 |  | ||||||
| #define NGX_HTTP_FANCYINDEX_README_PRE    0x00 |  | ||||||
| #define NGX_HTTP_FANCYINDEX_README_ASIS   0x01 | #define NGX_HTTP_FANCYINDEX_README_ASIS   0x01 | ||||||
| #define NGX_HTTP_FANCYINDEX_README_BOTTOM 0x02 | #define NGX_HTTP_FANCYINDEX_README_TOP    0x02 | ||||||
| #define NGX_HTTP_FANCYINDEX_README_DIV    0x04 | #define NGX_HTTP_FANCYINDEX_README_BOTTOM 0x04 | ||||||
| #define NGX_HTTP_FANCYINDEX_README_IFRAME 0x08 | #define NGX_HTTP_FANCYINDEX_README_DIV    0x08 | ||||||
|  | #define NGX_HTTP_FANCYINDEX_README_IFRAME 0x10 | ||||||
|  | #define NGX_HTTP_FANCYINDEX_README_PRE    0x20 | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * NGX_HTTP_FANCYINDEX_INCLUDE_STATIC |  * NGX_HTTP_FANCYINDEX_INCLUDE_STATIC | ||||||
|  | @ -79,8 +79,6 @@ typedef struct { | ||||||
| } ngx_http_fancyindex_loc_conf_t; | } ngx_http_fancyindex_loc_conf_t; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #define nfi_conf_path_set(_c, _n)  ((_c)->((_n).len) > 0) |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| #define NGX_HTTP_FANCYINDEX_PREALLOCATE  50 | #define NGX_HTTP_FANCYINDEX_PREALLOCATE  50 | ||||||
| #define NGX_HTTP_FANCYINDEX_NAME_LEN     50 | #define NGX_HTTP_FANCYINDEX_NAME_LEN     50 | ||||||
|  | @ -163,14 +161,14 @@ static ngx_command_t  ngx_http_fancyindex_commands[] = { | ||||||
|       offsetof(ngx_http_fancyindex_loc_conf_t, readme), |       offsetof(ngx_http_fancyindex_loc_conf_t, readme), | ||||||
|       NULL }, |       NULL }, | ||||||
| 
 | 
 | ||||||
|     { ngx_string("fancyindex_readme_options"), |     { ngx_string("fancyindex_readme_mode"), | ||||||
|       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | ||||||
|       ngx_conf_set_bitmask_slot, |       ngx_conf_set_bitmask_slot, | ||||||
|       NGX_HTTP_LOC_CONF_OFFSET, |       NGX_HTTP_LOC_CONF_OFFSET, | ||||||
|       offsetof(ngx_http_fancyindex_loc_conf_t, readme_flags), |       offsetof(ngx_http_fancyindex_loc_conf_t, readme_flags), | ||||||
|       &ngx_http_fancyindex_readme_flags }, |       &ngx_http_fancyindex_readme_flags }, | ||||||
| 
 | 
 | ||||||
|     { ngx_string("fancyindex_mode"), |     { ngx_string("fancyindex_include_mode"), | ||||||
|       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | ||||||
|       ngx_conf_set_enum_slot, |       ngx_conf_set_enum_slot, | ||||||
|       NGX_HTTP_LOC_CONF_OFFSET, |       NGX_HTTP_LOC_CONF_OFFSET, | ||||||
|  | @ -650,12 +648,12 @@ skip_readme_top: | ||||||
|     /*
 |     /*
 | ||||||
|      * Output body end, including readme if requested. The t07_body3 and |      * Output body end, including readme if requested. The t07_body3 and | ||||||
|      * t08_body4 templates may be empty, so use ngx_http_fancyindex_tcpy_if |      * t08_body4 templates may be empty, so use ngx_http_fancyindex_tcpy_if | ||||||
|      * TODO: Output readme |  | ||||||
|      */ |      */ | ||||||
|     b->last = nfi_cpymem_ssz(b->last, t07_body3); |     b->last = nfi_cpymem_ssz(b->last, t07_body3); | ||||||
| 
 | 
 | ||||||
|     /* Insert readme at bottom, if appropriate */ |     /* Insert readme at bottom, if appropriate */ | ||||||
|     if ((readme_path.len == 0) || |     if ((readme_path.len == 0) || | ||||||
|  |             nfi_has_flag(alcf->readme_flags, NGX_HTTP_FANCYINDEX_README_TOP) || | ||||||
|             !nfi_has_flag(alcf->readme_flags, NGX_HTTP_FANCYINDEX_README_BOTTOM)) |             !nfi_has_flag(alcf->readme_flags, NGX_HTTP_FANCYINDEX_README_BOTTOM)) | ||||||
|         goto skip_readme_bottom; |         goto skip_readme_bottom; | ||||||
| 
 | 
 | ||||||
|  | @ -794,17 +792,17 @@ ngx_http_fancyindex_create_loc_conf(ngx_conf_t *cf) | ||||||
| 
 | 
 | ||||||
|     /*
 |     /*
 | ||||||
|      * Set by ngx_pcalloc: |      * Set by ngx_pcalloc: | ||||||
|      *    conf->header.len  = 0 |      *    conf->header.len   = 0 | ||||||
|      *    conf->header.data = NULL |      *    conf->header.data  = NULL | ||||||
|      *    conf->footer.len  = 0 |      *    conf->footer.len   = 0 | ||||||
|      *    conf->footer.data = NULL |      *    conf->footer.data  = NULL | ||||||
|      *    conf->readme.len  = 0 |      *    conf->readme.len   = 0 | ||||||
|      *    conf->readme.data = NULL |      *    conf->readme.data  = NULL | ||||||
|  |      *    conf->readme_flags = 0 | ||||||
|      */ |      */ | ||||||
|     conf->enable = NGX_CONF_UNSET; |     conf->enable = NGX_CONF_UNSET; | ||||||
|     conf->localtime = NGX_CONF_UNSET; |     conf->localtime = NGX_CONF_UNSET; | ||||||
|     conf->exact_size = NGX_CONF_UNSET; |     conf->exact_size = NGX_CONF_UNSET; | ||||||
|     conf->readme_flags = NGX_CONF_UNSET; |  | ||||||
|     conf->include_mode = NGX_CONF_UNSET; |     conf->include_mode = NGX_CONF_UNSET; | ||||||
| 
 | 
 | ||||||
|     return conf; |     return conf; | ||||||
|  | @ -828,7 +826,7 @@ ngx_http_fancyindex_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) | ||||||
|     ngx_conf_merge_str_value(conf->readme, prev->readme, ""); |     ngx_conf_merge_str_value(conf->readme, prev->readme, ""); | ||||||
| 
 | 
 | ||||||
|     ngx_conf_merge_bitmask_value(conf->readme_flags, prev->readme_flags, |     ngx_conf_merge_bitmask_value(conf->readme_flags, prev->readme_flags, | ||||||
|             (NGX_HTTP_FANCYINDEX_README_TOP | NGX_HTTP_FANCYINDEX_README_PRE)); |             NGX_HTTP_FANCYINDEX_README_TOP); | ||||||
| 
 | 
 | ||||||
|     return NGX_CONF_OK; |     return NGX_CONF_OK; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								template.h
								
								
								
								
							
							
						
						
									
										20
									
								
								template.h
								
								
								
								
							|  | @ -10,6 +10,8 @@ static const u_char t01_head1[] = "" | ||||||
| "\n" | "\n" | ||||||
| "body,html {" | "body,html {" | ||||||
| "background:#fff;" | "background:#fff;" | ||||||
|  | "font-family:\"Bitstream Vera Sans\",\"Lucida Grande\"," | ||||||
|  | "\"Lucida Sans Unicode\",Lucidux,Verdana,Lucida,sans-serif;" | ||||||
| "}" | "}" | ||||||
| "tr.e {" | "tr.e {" | ||||||
| "background:#f4f4f4;" | "background:#f4f4f4;" | ||||||
|  | @ -33,9 +35,25 @@ static const u_char t01_head1[] = "" | ||||||
| "a:hover {" | "a:hover {" | ||||||
| "color:#e33;" | "color:#e33;" | ||||||
| "}" | "}" | ||||||
|  | "#readme {" | ||||||
|  | "padding:0;" | ||||||
|  | "margin:1em 0;" | ||||||
|  | "border:none;" | ||||||
|  | "width:100%;" | ||||||
|  | "}" | ||||||
| "\n" | "\n" | ||||||
| "</style>" | "</style>" | ||||||
| "\n" | "\n" | ||||||
|  | "<script type=\"text/javascript\">" | ||||||
|  | "function ngx_onload(){" | ||||||
|  | "var f=document.getElementById('readme');" | ||||||
|  | "if(!(f&&f.contentDocument))return;" | ||||||
|  | "f.style.height=f.contentDocument.body.offsetHeight+'px';" | ||||||
|  | "f.contentDocument.body.style.padding='0';" | ||||||
|  | "f.contentDocument.body.style.margin='0';" | ||||||
|  | "}" | ||||||
|  | "</script>" | ||||||
|  | "\n" | ||||||
| "<title>Index of " | "<title>Index of " | ||||||
| ; | ; | ||||||
| static const u_char t02_head2[] = "" | static const u_char t02_head2[] = "" | ||||||
|  | @ -44,7 +62,7 @@ static const u_char t02_head2[] = "" | ||||||
| "</head>" | "</head>" | ||||||
| ; | ; | ||||||
| static const u_char t03_body1[] = "" | static const u_char t03_body1[] = "" | ||||||
| "<body>" | "<body onload=\"ngx_onload()\">" | ||||||
| "\n" | "\n" | ||||||
| "<h1>Index of " | "<h1>Index of " | ||||||
| ; | ; | ||||||
|  |  | ||||||
|  | @ -9,6 +9,8 @@ | ||||||
| 
 | 
 | ||||||
| 			body,html { | 			body,html { | ||||||
| 				background:#fff; | 				background:#fff; | ||||||
|  | 				font-family:"Bitstream Vera Sans","Lucida Grande", | ||||||
|  | 					"Lucida Sans Unicode",Lucidux,Verdana,Lucida,sans-serif; | ||||||
| 			} | 			} | ||||||
| 			tr.e { | 			tr.e { | ||||||
| 				background:#f4f4f4; | 				background:#f4f4f4; | ||||||
|  | @ -32,9 +34,25 @@ | ||||||
| 			a:hover { | 			a:hover { | ||||||
| 				color:#e33; | 				color:#e33; | ||||||
| 			} | 			} | ||||||
|  | 			#readme { | ||||||
|  | 				padding:0; | ||||||
|  | 				margin:1em 0; | ||||||
|  | 				border:none; | ||||||
|  | 				width:100%; | ||||||
|  | 			} | ||||||
| 
 | 
 | ||||||
| 		</style> | 		</style> | ||||||
| 
 | 
 | ||||||
|  | 		<script type="text/javascript"> | ||||||
|  | 			function ngx_onload(){ | ||||||
|  | 				var f=document.getElementById('readme'); | ||||||
|  | 				if(!(f&&f.contentDocument))return; | ||||||
|  | 				f.style.height=f.contentDocument.body.offsetHeight+'px'; | ||||||
|  | 				f.contentDocument.body.style.padding='0'; | ||||||
|  | 				f.contentDocument.body.style.margin='0'; | ||||||
|  | 			} | ||||||
|  | 		</script> | ||||||
|  | 
 | ||||||
| 		<title>Index of  | 		<title>Index of  | ||||||
| <!-- var NONE --> | <!-- var NONE --> | ||||||
| 			/path/to/somewhere | 			/path/to/somewhere | ||||||
|  | @ -43,7 +61,7 @@ | ||||||
| 
 | 
 | ||||||
| 	</head> | 	</head> | ||||||
| <!-- var t03_body1 --> | <!-- var t03_body1 --> | ||||||
| 	<body> | 	<body onload="ngx_onload()"> | ||||||
| 
 | 
 | ||||||
| 		<h1>Index of  | 		<h1>Index of  | ||||||
| <!-- var NONE --> | <!-- var NONE --> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Adrian Perez
						Adrian Perez