From 3d40dfabe1049ecfbe05570b2287cfc5dbd33456 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 2 Aug 2021 19:58:13 +0200 Subject: tar: simplify addition of --exclude=GLOB to the expansion of -X EXCLFILE function old new delta tar_main 1115 1105 -10 Signed-off-by: Denys Vlasenko --- archival/tar.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'archival') diff --git a/archival/tar.c b/archival/tar.c index 4a540b77a..879f6bf6f 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -1132,14 +1132,15 @@ int tar_main(int argc UNUSED_PARAM, char **argv) tar_handle->ah_flags &= ~ARCHIVE_RESTORE_DATE; #if ENABLE_FEATURE_TAR_FROM + /* Convert each -X EXCLFILE to list of to-be-rejected glob patterns */ tar_handle->reject = append_file_list_to_list(tar_handle->reject); # if ENABLE_FEATURE_TAR_LONG_OPTIONS - /* Append excludes to reject */ - while (excludes) { - llist_t *next = excludes->link; - excludes->link = tar_handle->reject; - tar_handle->reject = excludes; - excludes = next; + /* Append --exclude=GLOBPATTERNs to reject */ + if (excludes) { + llist_t **p2next = &tar_handle->reject; + while (*p2next) + p2next = &((*p2next)->link); + *p2next = excludes; } # endif tar_handle->accept = append_file_list_to_list(tar_handle->accept); -- cgit v1.2.1