mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Solaris 9 doesn't have setenv and unsetenv so add compat versions, based
on code from Dagobert Michelsen.
This commit is contained in:
		
							
								
								
									
										8
									
								
								compat.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								compat.h
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: compat.h,v 1.20 2009-11-08 22:51:34 tcunha Exp $ */ | /* $Id: compat.h,v 1.21 2010-05-19 21:31:37 nicm Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -184,6 +184,12 @@ int	vasprintf(char **, const char *, va_list); | |||||||
| char		*fgetln(FILE *, size_t *); | char		*fgetln(FILE *, size_t *); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifndef HAVE_SETENV | ||||||
|  | /* setenv.c */ | ||||||
|  | int		 setenv(char *, char *, int); | ||||||
|  | int		 unsetenv(char *); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifndef HAVE_GETOPT | #ifndef HAVE_GETOPT | ||||||
| /* getopt.c */ | /* getopt.c */ | ||||||
| extern int	BSDopterr; | extern int	BSDopterr; | ||||||
|   | |||||||
							
								
								
									
										49
									
								
								compat/setenv.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								compat/setenv.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | /* $Id: setenv.c,v 1.1 2010-05-19 21:31:39 nicm Exp $ */ | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2010 Dagobert Michelsen | ||||||
|  |  * Copyright (c) 2010 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
|  |  * | ||||||
|  |  * Permission to use, copy, modify, and distribute this software for any | ||||||
|  |  * purpose with or without fee is hereby granted, provided that the above | ||||||
|  |  * copyright notice and this permission notice appear in all copies. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  |  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  |  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  |  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  |  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER | ||||||
|  |  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | ||||||
|  |  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  |  | ||||||
|  | #include "tmux.h" | ||||||
|  |  | ||||||
|  | int | ||||||
|  | setenv(const char *name, const char *value, unused int overwrite) | ||||||
|  | { | ||||||
|  | 	char	buf[1024]; | ||||||
|  |  | ||||||
|  | 	snprintf(buf, sizeof(buf), "%s=%s", name, value); | ||||||
|  | 	return (putenv(buf)); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int | ||||||
|  | unsetenv(const char *name) | ||||||
|  | { | ||||||
|  | 	char  **envptr; | ||||||
|  | 	int	namelen; | ||||||
|  |  | ||||||
|  | 	namelen = strlen(name); | ||||||
|  | 	for (envptr = environ; *envptr != NULL; envptr++) { | ||||||
|  | 		if (strncmp(name, *envptr, namelen) == 0 && | ||||||
|  | 		    ((*envptr)[namelen] == '=' || (*envptr)[namelen] == '\0')) | ||||||
|  | 			break; | ||||||
|  | 	} | ||||||
|  | 	for (; *envptr != NULL; envptr++) | ||||||
|  | 		*envptr = *(envptr + 1); | ||||||
|  | 	return (0); | ||||||
|  | } | ||||||
							
								
								
									
										12
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # $Id: configure,v 1.50 2010-04-23 07:29:39 nicm Exp $ | # $Id: configure,v 1.51 2010-05-19 21:31:38 nicm Exp $ | ||||||
| # | # | ||||||
| # Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> | # Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| # | # | ||||||
| @@ -70,6 +70,7 @@ case $TMUX_PLATFORM in | |||||||
| #define HAVE_PATHS_H | #define HAVE_PATHS_H | ||||||
| #define HAVE_PROGNAME | #define HAVE_PROGNAME | ||||||
| #define HAVE_QUEUE_H | #define HAVE_QUEUE_H | ||||||
|  | #define HAVE_SETENV | ||||||
| #define HAVE_SETPROCTITLE | #define HAVE_SETPROCTITLE | ||||||
| #define HAVE_STRCASESTR | #define HAVE_STRCASESTR | ||||||
| #define HAVE_STRLCAT | #define HAVE_STRLCAT | ||||||
| @@ -98,6 +99,7 @@ EOF | |||||||
| #define HAVE_PATHS_H | #define HAVE_PATHS_H | ||||||
| #define HAVE_PROGNAME | #define HAVE_PROGNAME | ||||||
| #define HAVE_PTY_H | #define HAVE_PTY_H | ||||||
|  | #define HAVE_SETENV | ||||||
| #define HAVE_STRCASESTR | #define HAVE_STRCASESTR | ||||||
| #define HAVE_STRSEP | #define HAVE_STRSEP | ||||||
| #define HAVE_U_INT | #define HAVE_U_INT | ||||||
| @@ -122,6 +124,7 @@ EOF | |||||||
| 	cat <<EOF >>$CONFIG_H | 	cat <<EOF >>$CONFIG_H | ||||||
| #define HAVE_BZERO | #define HAVE_BZERO | ||||||
| #define HAVE_DAEMON | #define HAVE_DAEMON | ||||||
|  | #define HAVE_SETENV | ||||||
| EOF | EOF | ||||||
| 	cat <<EOF >>$CONFIG_MK | 	cat <<EOF >>$CONFIG_MK | ||||||
| LIBS+= -lcurses -levent | LIBS+= -lcurses -levent | ||||||
| @@ -158,13 +161,15 @@ SRCS+= osdep-sunos.c \ | |||||||
| 	compat/fgetln.c \ | 	compat/fgetln.c \ | ||||||
| 	compat/forkpty-sunos.c \ | 	compat/forkpty-sunos.c \ | ||||||
| 	compat/getopt.c \ | 	compat/getopt.c \ | ||||||
|  | 	compat/setenv.c \ | ||||||
| 	compat/strcasestr.c \ | 	compat/strcasestr.c \ | ||||||
| 	compat/strsep.c \ | 	compat/strsep.c \ | ||||||
| 	compat/strtonum.c \ | 	compat/strtonum.c \ | ||||||
| 	compat/vis.c \ | 	compat/vis.c \ | ||||||
| 	compat/unvis.c \ | 	compat/unvis.c \ | ||||||
| 	compat/imsg-buffer.c \ | 	compat/imsg-buffer.c \ | ||||||
| 	compat/imsg.c | 	compat/imsg.c \ | ||||||
|  | 	compat/setenv.c | ||||||
| EOF | EOF | ||||||
| 	;; | 	;; | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| @@ -181,6 +186,7 @@ EOF | |||||||
| #define HAVE_GETOPT | #define HAVE_GETOPT | ||||||
| #define HAVE_PATHS_H | #define HAVE_PATHS_H | ||||||
| #define HAVE_PROGNAME | #define HAVE_PROGNAME | ||||||
|  | #define HAVE_SETENV | ||||||
| #define HAVE_STRCASESTR | #define HAVE_STRCASESTR | ||||||
| #define HAVE_STRLCAT | #define HAVE_STRLCAT | ||||||
| #define HAVE_STRLCPY | #define HAVE_STRLCPY | ||||||
| @@ -213,6 +219,7 @@ EOF | |||||||
| #define HAVE_LIBUTIL_H | #define HAVE_LIBUTIL_H | ||||||
| #define HAVE_PATHS_H | #define HAVE_PATHS_H | ||||||
| #define HAVE_PROGNAME | #define HAVE_PROGNAME | ||||||
|  | #define HAVE_SETENV | ||||||
| #define HAVE_SETPROCTITLE | #define HAVE_SETPROCTITLE | ||||||
| #define HAVE_STRCASESTR | #define HAVE_STRCASESTR | ||||||
| #define HAVE_STRLCAT | #define HAVE_STRLCAT | ||||||
| @@ -242,6 +249,7 @@ EOF | |||||||
| #define HAVE_PATHS_H | #define HAVE_PATHS_H | ||||||
| #define HAVE_PROGNAME | #define HAVE_PROGNAME | ||||||
| #define HAVE_SETPROCTITLE | #define HAVE_SETPROCTITLE | ||||||
|  | #define HAVE_SETENV | ||||||
| #define HAVE_STRCASESTR | #define HAVE_STRCASESTR | ||||||
| #define HAVE_STRLCAT | #define HAVE_STRLCAT | ||||||
| #define HAVE_STRLCPY | #define HAVE_STRLCPY | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott