12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- http://bugs.gentoo.org/334889
- https://savannah.gnu.org/bugs/?30612
- revision 1.194
- date: 2010-08-13 22:50:14 -0400; author: psmith; state: Exp; lines: +9 -6; commitid: 4UaslPqQHZTs5wKu;
- - Fix Savannah bug #30612: handling of archive references with >1 object
- Index: read.c
- ===================================================================
- RCS file: /sources/make/make/read.c,v
- retrieving revision 1.193
- retrieving revision 1.194
- diff -u -p -r1.193 -r1.194
- --- read.c 13 Jul 2010 01:20:42 -0000 1.193
- +++ read.c 14 Aug 2010 02:50:14 -0000 1.194
- @@ -3028,7 +3028,7 @@ parse_file_seq (char **stringp, unsigned
- {
- /* 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
- 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
- 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)
|