mirror of
https://github.com/tmux/tmux.git
synced 2025-04-13 14:58:50 +00:00
Use utempter to update utmp if it's around for configure, from madmaverick9 at
roxxmail dot eu.
This commit is contained in:
parent
488583dc8d
commit
4273c1b80e
@ -144,6 +144,13 @@ if test "x$found_curses" = xno; then
|
|||||||
AC_MSG_ERROR("curses not found")
|
AC_MSG_ERROR("curses not found")
|
||||||
fi
|
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.
|
# Check for b64_ntop.
|
||||||
AC_MSG_CHECKING(for b64_ntop)
|
AC_MSG_CHECKING(for b64_ntop)
|
||||||
AC_TRY_LINK(
|
AC_TRY_LINK(
|
||||||
|
@ -361,6 +361,9 @@ server_destroy_pane(struct window_pane *wp)
|
|||||||
|
|
||||||
old_fd = wp->fd;
|
old_fd = wp->fd;
|
||||||
if (wp->fd != -1) {
|
if (wp->fd != -1) {
|
||||||
|
#ifdef HAVE_UTEMPTER
|
||||||
|
utempter_remove_record(wp->fd);
|
||||||
|
#endif
|
||||||
bufferevent_free(wp->event);
|
bufferevent_free(wp->event);
|
||||||
close(wp->fd);
|
close(wp->fd);
|
||||||
wp->fd = -1;
|
wp->fd = -1;
|
||||||
|
4
tmux.h
4
tmux.h
@ -32,6 +32,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_UTEMPTER
|
||||||
|
#include <utempter.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "array.h"
|
#include "array.h"
|
||||||
|
|
||||||
#include "compat.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);
|
evtimer_del(&wp->changes_timer);
|
||||||
|
|
||||||
if (wp->fd != -1) {
|
if (wp->fd != -1) {
|
||||||
|
#ifdef HAVE_UTEMPTER
|
||||||
|
utempter_remove_record(wp->fd);
|
||||||
|
#endif
|
||||||
bufferevent_free(wp->event);
|
bufferevent_free(wp->event);
|
||||||
close(wp->fd);
|
close(wp->fd);
|
||||||
}
|
}
|
||||||
@ -810,6 +813,9 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
|
|||||||
char *argv0, paneid[16];
|
char *argv0, paneid[16];
|
||||||
const char *ptr;
|
const char *ptr;
|
||||||
struct termios tio2;
|
struct termios tio2;
|
||||||
|
#ifdef HAVE_UTEMPTER
|
||||||
|
char s[32];
|
||||||
|
#endif
|
||||||
|
|
||||||
if (wp->fd != -1) {
|
if (wp->fd != -1) {
|
||||||
bufferevent_free(wp->event);
|
bufferevent_free(wp->event);
|
||||||
@ -886,6 +892,11 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
|
|||||||
fatal("execl failed");
|
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);
|
setblocking(wp->fd, 0);
|
||||||
|
|
||||||
wp->event = bufferevent_new(wp->fd,
|
wp->event = bufferevent_new(wp->fd,
|
||||||
|
Loading…
Reference in New Issue
Block a user