|  | @@ -29,6 +29,11 @@
 | 
	
		
			
				|  |  |  #define __STDC_LIMIT_MACROS   // C++ wants that for INT64_MAX
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#if defined (_MSC_VER)
 | 
	
		
			
				|  |  | +#pragma warning (disable : 4127)    // conditional expression is constant: introduced by FD_SET(..)
 | 
	
		
			
				|  |  | +#pragma warning (disable : 4204)    // non-constant aggregate initializer: issued due to missing C99 support
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // Disable WIN32_LEAN_AND_MEAN.
 | 
	
		
			
				|  |  |  // This makes windows.h always include winsock2.h
 | 
	
		
			
				|  |  |  #ifdef WIN32_LEAN_AND_MEAN
 | 
	
	
		
			
				|  | @@ -146,6 +151,8 @@ static int pthread_mutex_lock(pthread_mutex_t *);
 | 
	
		
			
				|  |  |  static int pthread_mutex_unlock(pthread_mutex_t *);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void to_unicode(const char *path, wchar_t *wbuf, size_t wbuf_len);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +struct file;
 | 
	
		
			
				|  |  |  static char *mg_fgets(char *buf, size_t size, struct file *filep, char **p);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined(HAVE_STDINT)
 | 
	
	
		
			
				|  | @@ -5075,6 +5082,7 @@ struct mg_context *mg_start(mg_callback_t user_callback, void *user_data,
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (ctx->config[i] != NULL) {
 | 
	
		
			
				|  |  |        cry(fc(ctx), "warning: %s: duplicate option", name);
 | 
	
		
			
				|  |  | +      free(ctx->config[i]);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      ctx->config[i] = mg_strdup(value);
 | 
	
		
			
				|  |  |      DEBUG_TRACE(("[%s] -> [%s]", name, value));
 |