tar: fix tar -T to add entries in the exact order as the input list
authorSASAKI Suguru <suguru@sonik.org>
Thu, 15 Aug 2013 10:19:29 +0000 (12:19 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 15 Aug 2013 10:19:29 +0000 (12:19 +0200)
This fixes tar to order files in tarball correctly in this case:

$ touch 1 2 3; echo -e '1\n2\n3' | tar -T- -c | tar t
1
2
3

Signed-off-by: SASAKI Suguru <suguru@sonik.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
archival/tar.c

index c0ceff5..3cd033b 100644 (file)
@@ -679,14 +679,12 @@ static llist_t *append_file_list_to_list(llist_t *list)
                        char *cp = last_char_is(line, '/');
                        if (cp > line)
                                *cp = '\0';
-                       llist_add_to(&newlist, line);
+                       llist_add_to_end(&newlist, line);
                }
                fclose(src_stream);
        }
        return newlist;
 }
-#else
-# define append_file_list_to_list(x) 0
 #endif
 
 //usage:#define tar_trivial_usage