[svn-commits] seanbright: trunk r146359 - /trunk/main/asterisk.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Sat Oct 4 11:20:32 CDT 2008
Author: seanbright
Date: Sat Oct 4 11:20:31 2008
New Revision: 146359
URL: http://svn.digium.com/view/asterisk?view=rev&rev=146359
Log:
Fix a bug with the last item in CLI history getting duplicated when
read from the .asterisk_history file (and subsequently being duplicated
when written). We weren't checking the result of fgets() which meant
that we read the same line twice before feof() actually returned non-
zero.
Also, stop writing out an extra blank line between each item in the
history file, fix a minor off-by-one error, and use symbolic constants
rather than a hardcoded integer.
Modified:
trunk/main/asterisk.c
Modified: trunk/main/asterisk.c
URL: http://svn.digium.com/view/asterisk/trunk/main/asterisk.c?view=diff&rev=146359&r1=146358&r2=146359
==============================================================================
--- trunk/main/asterisk.c (original)
+++ trunk/main/asterisk.c Sat Oct 4 11:20:31 2008
@@ -2371,15 +2371,17 @@
return 0;
}
+#define MAX_HISTORY_COMMAND_LENGTH 256
+
static int ast_el_add_history(char *buf)
{
HistEvent ev;
if (el_hist == NULL || el == NULL)
ast_el_initialize();
- if (strlen(buf) > 256)
+ if (strlen(buf) > (MAX_HISTORY_COMMAND_LENGTH - 1))
return 0;
- return (history(el_hist, &ev, H_ENTER, buf));
+ return (history(el_hist, &ev, H_ENTER, ast_strip(ast_strdupa(buf))));
}
static int ast_el_write_history(char *filename)
@@ -2394,7 +2396,7 @@
static int ast_el_read_history(char *filename)
{
- char buf[256];
+ char buf[MAX_HISTORY_COMMAND_LENGTH];
FILE *f;
int ret = -1;
@@ -2405,7 +2407,8 @@
return ret;
while (!feof(f)) {
- fgets(buf, sizeof(buf), f);
+ if (!fgets(buf, sizeof(buf), f))
+ break;
if (!strcmp(buf, "_HiStOrY_V2_\n"))
continue;
if (ast_all_zeros(buf))
More information about the svn-commits
mailing list