#endif
#include <stdio.h>
-#include "bashansi.h"
+#include <bashansi.h>
#include "shell.h"
{
register int i;
+ if (sl == 0)
+ return (sl = alloc_stringlist(n));
+
if (n > sl->list_size)
{
sl->list = (char **)xrealloc (sl->list, (n+1) * sizeof (char *));
STRINGLIST *new;
register int i;
+ if (sl == 0)
+ return ((STRINGLIST *)0);
new = alloc_stringlist (sl->list_size);
/* I'd like to use copy_array, but that doesn't copy everything. */
if (sl->list)
sl->list[n] = STRDUP (m2->list[i]);
sl->list_len = n;
sl->list[n] = (char *)NULL;
+ return (sl);
}
/* Make STRINGLIST M1 contain everything in M1 and M2. */
register int i, n, len1, len2;
if (m1 == 0)
- {
- m1 = copy_stringlist (m2);
- return m1;
- }
+ return (m2 ? copy_stringlist (m2) : (STRINGLIST *)0);
len1 = m1->list_len;
len2 = m2 ? m2->list_len : 0;
{
llen = STRLEN (sl->list[i]);
tlen = plen + llen + slen + 1;
- t = xmalloc (tlen + 1);
+ t = (char *)xmalloc (tlen + 1);
if (plen)
strcpy (t, prefix);
strcpy (t + plen, sl->list[i]);
STRINGLIST *ret;
int slen, len;
+ if (list == 0)
+ {
+ if (ip)
+ *ip = 0;
+ return ((STRINGLIST *)0);
+ }
slen = list_length (list);
ret = (STRINGLIST *)xmalloc (sizeof (STRINGLIST));
ret->list = word_list_to_argv (list, copy, starting_index, &len);