From: Tim Kientzle Date: Wed, 2 Jul 2008 22:28:34 +0000 (-0400) Subject: Ignore -l for non-regular files. Comment that this is X-Git-Tag: v2.6.0~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cbfef1c04098af3fa1d432d4017e94873c64c86c;p=thirdparty%2Flibarchive.git Ignore -l for non-regular files. Comment that this is still open to negotiation. SVN-Revision: 147 --- diff --git a/cpio/cpio.c b/cpio/cpio.c index 52a3a7352..76a91cf71 100644 --- a/cpio/cpio.c +++ b/cpio/cpio.c @@ -535,14 +535,16 @@ entry_to_archive(struct cpio *cpio, struct archive_entry *entry) fprintf(stderr,"%s", destpath); /* - * Obviously, this only gets invoked in pass mode, since - * option_link is nonsense otherwise. Note that we can't - * hardlink dirs, and that if a link operation fails (because - * of cross-device restrictions), we'll fall back to copy mode - * for that entry. + * Option_link only makes sense in pass mode and for + * regular files. Also note: if a link operation fails + * because of cross-device restrictions, we'll fall back + * to copy mode for that entry. + * + * TODO: Test other cpio implementations to see if they + * hard-link anything other than regular files here. */ if (cpio->option_link - && archive_entry_filetype(entry) != AE_IFDIR) + && archive_entry_filetype(entry) == AE_IFREG) { struct archive_entry *t; /* Save the original entry in case we need it later. */