2007-08-17 Michael Snyder <msnyder@access-company.com>

* completer.c (filename_completer): Avoid memory leak.
	Remove unnecessary nested block.
This commit is contained in:
Michael Snyder 2007-08-18 00:17:08 +00:00
parent 67f5fb248e
commit 1e8189fbb5
2 changed files with 29 additions and 26 deletions

View File

@ -1,5 +1,8 @@
2007-08-17 Michael Snyder <msnyder@access-company.com>
* completer.c (filename_completer): Avoid memory leak.
Remove unnecessary nested block.
* c-exp.y (parse_number): Memory leak.
* completer.c (location_completer): Must free 'fn_list', except

View File

@ -129,7 +129,7 @@ filename_completer (char *text, char *word)
subsequent_name = 0;
while (1)
{
char *p;
char *p, *q;
p = rl_filename_completion_function (text, subsequent_name);
if (return_val_used >= return_val_alloced)
{
@ -151,32 +151,32 @@ filename_completer (char *text, char *word)
/* Like emacs, don't complete on old versions. Especially useful
in the "source" command. */
if (p[strlen (p) - 1] == '~')
continue;
{
xfree (p);
continue;
}
{
char *q;
if (word == text)
/* Return exactly p. */
return_val[return_val_used++] = p;
else if (word > text)
{
/* Return some portion of p. */
q = xmalloc (strlen (p) + 5);
strcpy (q, p + (word - text));
return_val[return_val_used++] = q;
xfree (p);
}
else
{
/* Return some of TEXT plus p. */
q = xmalloc (strlen (p) + (text - word) + 5);
strncpy (q, word, text - word);
q[text - word] = '\0';
strcat (q, p);
return_val[return_val_used++] = q;
xfree (p);
}
}
if (word == text)
/* Return exactly p. */
return_val[return_val_used++] = p;
else if (word > text)
{
/* Return some portion of p. */
q = xmalloc (strlen (p) + 5);
strcpy (q, p + (word - text));
return_val[return_val_used++] = q;
xfree (p);
}
else
{
/* Return some of TEXT plus p. */
q = xmalloc (strlen (p) + (text - word) + 5);
strncpy (q, word, text - word);
q[text - word] = '\0';
strcat (q, p);
return_val[return_val_used++] = q;
xfree (p);
}
}
#if 0
/* There is no way to do this just long enough to affect quote inserting