mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Use utempter to update utmp if it's around for configure, from madmaverick9 at
roxxmail dot eu.
This commit is contained in:
		@@ -144,6 +144,13 @@ if test "x$found_curses" = xno; then
 | 
			
		||||
    AC_MSG_ERROR("curses not found")
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Look for utempter
 | 
			
		||||
AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
 | 
			
		||||
if test "x$have_utempter" = xyes; then
 | 
			
		||||
   AC_DEFINE(HAVE_UTEMPTER)
 | 
			
		||||
   LIBS="$LIBS -lutempter"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check for b64_ntop.
 | 
			
		||||
AC_MSG_CHECKING(for b64_ntop)
 | 
			
		||||
AC_TRY_LINK(
 | 
			
		||||
 
 | 
			
		||||
@@ -361,6 +361,9 @@ server_destroy_pane(struct window_pane *wp)
 | 
			
		||||
 | 
			
		||||
	old_fd = wp->fd;
 | 
			
		||||
	if (wp->fd != -1) {
 | 
			
		||||
#ifdef HAVE_UTEMPTER
 | 
			
		||||
		utempter_remove_record(wp->fd);
 | 
			
		||||
#endif
 | 
			
		||||
		bufferevent_free(wp->event);
 | 
			
		||||
		close(wp->fd);
 | 
			
		||||
		wp->fd = -1;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							@@ -32,6 +32,10 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UTEMPTER
 | 
			
		||||
#include <utempter.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "array.h"
 | 
			
		||||
 | 
			
		||||
#include "compat.h"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								window.c
									
									
									
									
									
								
							@@ -779,6 +779,9 @@ window_pane_destroy(struct window_pane *wp)
 | 
			
		||||
		evtimer_del(&wp->changes_timer);
 | 
			
		||||
 | 
			
		||||
	if (wp->fd != -1) {
 | 
			
		||||
#ifdef HAVE_UTEMPTER
 | 
			
		||||
		utempter_remove_record(wp->fd);
 | 
			
		||||
#endif
 | 
			
		||||
		bufferevent_free(wp->event);
 | 
			
		||||
		close(wp->fd);
 | 
			
		||||
	}
 | 
			
		||||
@@ -810,6 +813,9 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
 | 
			
		||||
	char		*argv0, paneid[16];
 | 
			
		||||
	const char	*ptr;
 | 
			
		||||
	struct termios	 tio2;
 | 
			
		||||
#ifdef HAVE_UTEMPTER
 | 
			
		||||
	char		 s[32];
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (wp->fd != -1) {
 | 
			
		||||
		bufferevent_free(wp->event);
 | 
			
		||||
@@ -886,6 +892,11 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
 | 
			
		||||
		fatal("execl failed");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UTEMPTER
 | 
			
		||||
	xsnprintf(s, sizeof s, "tmux(%lu):%%%u", (long) getpid(), wp->id);
 | 
			
		||||
	utempter_add_record(wp->fd, s);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	setblocking(wp->fd, 0);
 | 
			
		||||
 | 
			
		||||
	wp->event = bufferevent_new(wp->fd,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user