summaryrefslogtreecommitdiff
path: root/read.c
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2010-08-14 02:50:14 +0000
committerPaul Smith <psmith@gnu.org>2010-08-14 02:50:14 +0000
commit5acda13ace0ae4443ed04c4f8a62512b00a2b656 (patch)
treee12848b880e685ed54e2f86856c3d153517c6a5f /read.c
parent036760a9fdb11849b6a43feec7ce294e7f77db2a (diff)
downloadgunmake-5acda13ace0ae4443ed04c4f8a62512b00a2b656.tar.gz
- Fix the NEWS file to be accurate
- Add oneshell to $(.FEATURES) (forgot that!) - Fix Savannah bug #30612: handling of archive references with >1 object
Diffstat (limited to 'read.c')
-rw-r--r--read.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/read.c b/read.c
index a3ad88e..9dfd4ea 100644
--- a/read.c
+++ b/read.c
@@ -3028,7 +3028,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
{
/* This looks like the first element in an open archive group.
A valid group MUST have ')' as the last character. */
- const char *e = p + nlen;
+ const char *e = p;
do
{
e = next_token (e);
@@ -3084,19 +3084,19 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
Go to the next item in the string. */
if (flags & PARSEFS_NOGLOB)
{
- NEWELT (concat (2, prefix, tp));
+ NEWELT (concat (2, prefix, tmpbuf));
continue;
}
/* If we get here we know we're doing glob expansion.
TP is a string in tmpbuf. NLEN is no longer used.
We may need to do more work: after this NAME will be set. */
- name = tp;
+ name = tmpbuf;
/* Expand tilde if applicable. */
- if (tp[0] == '~')
+ if (tmpbuf[0] == '~')
{
- tildep = tilde_expand (tp);
+ tildep = tilde_expand (tmpbuf);
if (tildep != 0)
name = tildep;
}
@@ -3152,7 +3152,10 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
else
{
/* We got a chain of items. Attach them. */
- (*newp)->next = found;
+ if (*newp)
+ (*newp)->next = found;
+ else
+ *newp = found;
/* Find and set the new end. Massage names if necessary. */
while (1)