commit bash-20120120 snapshot

This commit is contained in:
Chet Ramey
2012-02-22 10:00:43 -05:00
parent 5a3187363b
commit a0350e0811
12 changed files with 916 additions and 744 deletions
+13
View File
@@ -366,6 +366,11 @@ readline (prompt)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
#if HAVE_DECL_AUDIT_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
if (value)
_rl_audit_tty (value);
#endif
return (value);
}
@@ -885,6 +890,14 @@ _rl_dispatch_subseq (key, map, got_subseq)
}
#endif
#ifdef NOTYET
/* Tentative inter-character timeout for potential multi-key
sequences? If no input within timeout, abort sequence and
act as if we got non-matching input. */
if (_rl_input_queued (500000) == 0)
return (_rl_subseq_result (-2, map, key, got_subseq));
#endif
newkey = _rl_subseq_getchar (key);
if (newkey < 0)
{
+12 -1
View File
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
@@ -366,6 +366,11 @@ readline (prompt)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
#if HAVE_DECL_AUDIT_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
if (value)
_rl_audit_tty (value);
#endif
return (value);
}
@@ -885,6 +890,12 @@ _rl_dispatch_subseq (key, map, got_subseq)
}
#endif
/* Tentative inter-character timeout for potential multi-key
sequences? If no input within timeout, abort sequence and
act as if we got non-matching input. */
if (_rl_input_queued (500000) == 0)
return (_rl_subseq_result (-2, map, key, got_subseq));
newkey = _rl_subseq_getchar (key);
if (newkey < 0)
{
+5 -1
View File
@@ -33,7 +33,7 @@
#define COLOR_SUPPORT
/* This definition is needed by readline.c, rltty.c, and signals.c. */
/* If on, then readline handles signals in a way that doesn't screw. */
/* If on, then readline handles signals in a way that doesn't suck. */
#define HANDLE_SIGNALS
/* Ugly but working hack for binding prefix meta. */
@@ -62,4 +62,8 @@
/* Define this if you want the cursor to indicate insert or overwrite mode. */
/* #define CURSOR_MODE */
/* Define this if you want to enable code that talks to the Linux kernel
tty auditing system. */
#define ENABLE_TTY_AUDIT_SUPPORT
#endif /* _RLCONF_H_ */
+1
View File
@@ -383,6 +383,7 @@ extern void _rl_ttymsg ();
extern void _rl_errmsg ();
extern void _rl_trace ();
#endif
extern void _rl_audit_tty PARAMS((char *));
extern int _rl_tropen PARAMS((void));
+48
View File
@@ -530,3 +530,51 @@ _rl_settracefp (fp)
_rl_tracefp = fp;
}
#endif
#if HAVE_DECL_AUDIT_USER_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
/* Report STRING to the audit system. */
void
_rl_audit_tty (string)
char *string;
{
struct sockaddr_nl addr;
struct msghdr msg;
struct nlmsghdr nlm;
struct iovec iov[2];
size_t size;
int fd;
fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
if (fd < 0)
return;
size = strlen (string) + 1;
nlm.nlmsg_len = NLMSG_LENGTH (size);
nlm.nlmsg_type = AUDIT_USER_TTY;
nlm.nlmsg_flags = NLM_F_REQUEST;
nlm.nlmsg_seq = 0;
nlm.nlmsg_pid = 0;
iov[0].iov_base = &nlm;
iov[0].iov_len = sizeof (nlm);
iov[1].iov_base = string;
iov[1].iov_len = size;
addr.nl_family = AF_NETLINK;
addr.nl_pid = 0;
addr.nl_groups = 0;
msg.msg_name = &addr;
msg.msg_namelen = sizeof (addr);
msg.msg_iov = iov;
msg.msg_iovlen = 2;
msg.msg_control = NULL;
msg.msg_controllen = 0;
msg.msg_flags = 0;
(void)sendmsg (fd, &msg, 0);
close (fd);
}
#endif