 a38989bd5b
			
		
	
	a38989bd5b
	
	
	
		
			
			This compatilibity implementation has been returning a wrong type,
ever since 731043fd (Add compat/unsetenv.c ., 2006-01-25) added to
the system, yet nobody noticed it in the past 16 years, presumably
because no code checks failures in their unsetenv() calls.  Sigh.
For now, make it always succeed.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			605 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			605 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "../git-compat-util.h"
 | |
| 
 | |
| int gitunsetenv(const char *name)
 | |
| {
 | |
| #if !defined(__MINGW32__)
 | |
|      extern char **environ;
 | |
| #endif
 | |
|      int src, dst;
 | |
|      size_t nmln;
 | |
| 
 | |
|      nmln = strlen(name);
 | |
| 
 | |
|      for (src = dst = 0; environ[src]; ++src) {
 | |
| 	  size_t enln;
 | |
| 	  enln = strlen(environ[src]);
 | |
| 	  if (enln > nmln) {
 | |
|                /* might match, and can test for '=' safely */
 | |
| 	       if (0 == strncmp (environ[src], name, nmln)
 | |
| 		   && '=' == environ[src][nmln])
 | |
| 		    /* matches, so skip */
 | |
| 		    continue;
 | |
| 	  }
 | |
| 	  environ[dst] = environ[src];
 | |
| 	  ++dst;
 | |
|      }
 | |
|      environ[dst] = NULL;
 | |
| 
 | |
|      return 0;
 | |
| }
 |