[asterisk-commits] wdoekes: trunk r397415 - /trunk/main/asterisk.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 22 07:28:42 CDT 2013


Author: wdoekes
Date: Thu Aug 22 07:28:33 2013
New Revision: 397415

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397415
Log:
Don't store repeated commands in the editline history buffer.

The equivalent of bash HISTCONTROL=ignoredups.

Review: https://reviewboard.asterisk.org/r/2775/

Modified:
    trunk/main/asterisk.c

Modified: trunk/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/asterisk.c?view=diff&rev=397415&r1=397414&r2=397415
==============================================================================
--- trunk/main/asterisk.c (original)
+++ trunk/main/asterisk.c Thu Aug 22 07:28:33 2013
@@ -3021,12 +3021,23 @@
 static int ast_el_add_history(char *buf)
 {
 	HistEvent ev;
-
-	if (el_hist == NULL || el == NULL)
+	char *stripped_buf;
+
+	if (el_hist == NULL || el == NULL) {
 		ast_el_initialize();
-	if (strlen(buf) > (MAX_HISTORY_COMMAND_LENGTH - 1))
+	}
+	if (strlen(buf) > (MAX_HISTORY_COMMAND_LENGTH - 1)) {
 		return 0;
-	return (history(el_hist, &ev, H_ENTER, ast_strip(ast_strdupa(buf))));
+	}
+
+	stripped_buf = ast_strip(ast_strdupa(buf));
+
+	/* HISTCONTROL=ignoredups */
+	if (!history(el_hist, &ev, H_FIRST) && strcmp(ev.str, stripped_buf) == 0) {
+		return 0;
+	}
+
+	return history(el_hist, &ev, H_ENTER, stripped_buf);
 }
 
 static int ast_el_write_history(char *filename)




More information about the asterisk-commits mailing list