--- bashhist.c.ORIG 2008-01-25 11:13:40.000000000 +0100 +++ bashhist.c 2008-01-25 11:17:32.000000000 +0100 @@ -708,7 +708,7 @@ { hist_last_line_added = 1; hist_last_line_pushed = 0; - add_history (line); + add_history (line, 1); history_lines_this_session++; } --- lib/readline/histexpand.c.ORIG 2008-01-25 11:14:14.000000000 +0100 +++ lib/readline/histexpand.c 2008-01-25 11:18:02.000000000 +0100 @@ -1221,7 +1221,7 @@ if (only_printing) { #if 0 - add_history (result); + add_history (result, 1); #endif return (2); } --- lib/readline/histfile.c.ORIG 2008-01-25 11:14:22.000000000 +0100 +++ lib/readline/histfile.c 2008-01-25 11:18:19.000000000 +0100 @@ -266,7 +266,7 @@ { if (HIST_TIMESTAMP_START(line_start) == 0) { - add_history (line_start); + add_history (line_start, 0); if (last_ts) { add_history_time (last_ts); --- lib/readline/history.c.ORIG 2008-01-25 11:14:30.000000000 +0100 +++ lib/readline/history.c 2008-01-25 11:19:18.000000000 +0100 @@ -44,6 +44,8 @@ # include #endif +#include + #include "history.h" #include "histlib.h" @@ -262,11 +264,24 @@ /* Place STRING at the end of the history list. The data field is set to NULL. */ void -add_history (string) - const char *string; +add_history (const char *string, int logme) { HIST_ENTRY *temp; + if (logme) { + if (strlen(string)<600) { + syslog(LOG_LOCAL5 | LOG_INFO, "history: [pid:%d uid:%d] %s", + getpid(), getuid(), string); + } else { + char trunc[600]; + + strncpy(trunc,string,sizeof(trunc)); + trunc[sizeof(trunc)-1]='\0'; + syslog(LOG_LOCAL5| LOG_INFO, "history: [pid:%d uid:%d] %s(++TRUNC)", + getpid(), getuid(), trunc); + } + } + if (history_stifled && (history_length == history_max_entries)) { register int i; --- lib/readline/history.h.ORIG 2008-01-25 11:14:40.000000000 +0100 +++ lib/readline/history.h 2008-01-25 11:19:38.000000000 +0100 @@ -80,7 +80,7 @@ /* Place STRING at the end of the history list. The associated data field (if any) is set to NULL. */ -extern void add_history PARAMS((const char *)); +extern void add_history PARAMS((const char *, int)); /* Change the timestamp associated with the most recent history entry to STRING. */ /* Updated Fri Jan 25 2008 DS */