| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -190,6 +190,9 @@ Parenthesized items have since been removed. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <stdio.h>      // need FILE | 
					 | 
					 | 
					 | 
					#include <stdio.h>      // need FILE | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <string.h>     // stb_define_hash needs memcpy/memset | 
					 | 
					 | 
					 | 
					#include <string.h>     // stb_define_hash needs memcpy/memset | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <time.h>       // stb_dirtree | 
					 | 
					 | 
					 | 
					#include <time.h>       // stb_dirtree | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#ifdef __MINGW32__ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #include <fcntl.h>   // O_RDWR | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#endif | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#ifdef STB_PERSONAL | 
					 | 
					 | 
					 | 
					#ifdef STB_PERSONAL | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   typedef int Bool; | 
					 | 
					 | 
					 | 
					   typedef int Bool; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1395,7 +1398,7 @@ int stb_is_pow2(unsigned int n) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// tricky use of 4-bit table to identify 5 bit positions (note the '-1')
 | 
					 | 
					 | 
					 | 
					// tricky use of 4-bit table to identify 5 bit positions (note the '-1')
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// 3-bit table would require another tree level; 5-bit table wouldn't save one
 | 
					 | 
					 | 
					 | 
					// 3-bit table would require another tree level; 5-bit table wouldn't save one
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#ifdef _WIN32 | 
					 | 
					 | 
					 | 
					#if defined(_WIN32) && !defined(__MINGW32__) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#pragma warning(push) | 
					 | 
					 | 
					 | 
					#pragma warning(push) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#pragma warning(disable: 4035)  // disable warning about no return value
 | 
					 | 
					 | 
					 | 
					#pragma warning(disable: 4035)  // disable warning about no return value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					int stb_log2_floor(unsigned int n) | 
					 | 
					 | 
					 | 
					int stb_log2_floor(unsigned int n) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -5049,7 +5052,7 @@ void stb_fwrite32(FILE *f, stb_uint32 x) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   fwrite(&x, 4, 1, f); | 
					 | 
					 | 
					 | 
					   fwrite(&x, 4, 1, f); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#ifdef _MSC_VER | 
					 | 
					 | 
					 | 
					#if defined(_MSC_VER) || defined(__MINGW32__) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #define stb__stat   _stat | 
					 | 
					 | 
					 | 
					   #define stb__stat   _stat | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#else | 
					 | 
					 | 
					 | 
					#else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #define stb__stat   stat | 
					 | 
					 | 
					 | 
					   #define stb__stat   stat | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -5389,7 +5392,11 @@ FILE *  stb_fopen(char *filename, char *mode) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #else | 
					 | 
					 | 
					 | 
					   #else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   { | 
					 | 
					 | 
					 | 
					   { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      strcpy(temp_full+p, "stmpXXXXXX"); | 
					 | 
					 | 
					 | 
					      strcpy(temp_full+p, "stmpXXXXXX"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      int fd = mkstemp(temp_full); | 
					 | 
					 | 
					 | 
					      #ifdef __MINGW32__ | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					         int fd = open(mktemp(temp_full), O_RDWR); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      #else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					         int fd = mkstemp(temp_full); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      #endif | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (fd == -1) return NULL; | 
					 | 
					 | 
					 | 
					      if (fd == -1) return NULL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      f = fdopen(fd, mode); | 
					 | 
					 | 
					 | 
					      f = fdopen(fd, mode); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (f == NULL) { | 
					 | 
					 | 
					 | 
					      if (f == NULL) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -6988,7 +6995,7 @@ stb_dirtree *stb_dirtree_get_dir(char *dir, char *cache_dir) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   stb_sha1(sha, (unsigned char *) dir_lower, strlen(dir_lower)); | 
					 | 
					 | 
					 | 
					   stb_sha1(sha, (unsigned char *) dir_lower, strlen(dir_lower)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   strcpy(cache_file, cache_dir); | 
					 | 
					 | 
					 | 
					   strcpy(cache_file, cache_dir); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   s = cache_file + strlen(cache_file); | 
					 | 
					 | 
					 | 
					   s = cache_file + strlen(cache_file); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   if (s[-1] != '//' && s[-1] != '\\') *s++ = '/';
 | 
					 | 
					 | 
					 | 
					   if (s[-1] != '/' && s[-1] != '\\') *s++ = '/'; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   strcpy(s, "dirtree_"); | 
					 | 
					 | 
					 | 
					   strcpy(s, "dirtree_"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   s += strlen(s); | 
					 | 
					 | 
					 | 
					   s += strlen(s); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (i=0; i < 8; ++i) { | 
					 | 
					 | 
					 | 
					   for (i=0; i < 8; ++i) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |