]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Update to match changes to line_reader() and include_from_file() to
authorTim Kientzle <kientzle@gmail.com>
Sun, 23 Aug 2009 05:08:52 +0000 (01:08 -0400)
committerTim Kientzle <kientzle@gmail.com>
Sun, 23 Aug 2009 05:08:52 +0000 (01:08 -0400)
properly handle varying line termination.

SVN-Revision: 1390

cpio/cpio.c
cpio/cpio.h

index 64eb8c8fd36ce8e1707be1913becf64b1306ca41..10448324b962f693c3ac8be1076efa2d44c4b6c5 100644 (file)
@@ -150,7 +150,6 @@ main(int argc, char *argv[])
        cpio->gid_override = -1;
        cpio->argv = argv;
        cpio->argc = argc;
-       cpio->line_separator = '\n';
        cpio->mode = '\0';
        cpio->verbose = 0;
        cpio->compress = '\0';
@@ -171,7 +170,7 @@ main(int argc, char *argv[])
        while ((opt = cpio_getopt(cpio)) != -1) {
                switch (opt) {
                case '0': /* GNU convention: --null, -0 */
-                       cpio->line_separator = '\0';
+                       cpio->option_null = 1;
                        break;
                case 'A': /* NetBSD/OpenBSD */
                        cpio->option_append = 1;
@@ -194,7 +193,8 @@ main(int argc, char *argv[])
                        cpio->extract_flags &= ~ARCHIVE_EXTRACT_NO_AUTODIR;
                        break;
                case 'E': /* NetBSD/OpenBSD */
-                       lafe_include_from_file(&cpio->matching, cpio->optarg);
+                       lafe_include_from_file(&cpio->matching,
+                           cpio->optarg, cpio->option_null);
                        break;
                case 'F': /* NetBSD/OpenBSD/GNU cpio */
                        cpio->filename = cpio->optarg;
@@ -500,7 +500,7 @@ mode_out(struct cpio *cpio)
        r = archive_write_open_file(cpio->archive, cpio->filename);
        if (r != ARCHIVE_OK)
                lafe_errc(1, 0, archive_error_string(cpio->archive));
-       lr = lafe_line_reader("-", cpio->line_separator);
+       lr = lafe_line_reader("-", cpio->option_null);
        while ((p = lafe_line_reader_next(lr)) != NULL)
                file_to_archive(cpio, p);
        lafe_line_reader_free(lr);
@@ -1043,7 +1043,7 @@ mode_pass(struct cpio *cpio, const char *destdir)
                archive_read_disk_set_symlink_physical(cpio->archive_read_disk);
        archive_read_disk_set_standard_lookup(cpio->archive_read_disk);
 
-       lr = lafe_line_reader("-", cpio->line_separator);
+       lr = lafe_line_reader("-", cpio->option_null);
        while ((p = lafe_line_reader_next(lr)) != NULL)
                file_to_archive(cpio, p);
        lafe_line_reader_free(lr);
index 27a375c9ddb59786a4bb9d69448432f0bf4725e2..ddea31dc67a1a0326368ff3bec39d70eace93941 100644 (file)
@@ -56,12 +56,12 @@ struct cpio {
        int               extract_flags; /* Flags for extract operation */
        char              symlink_mode; /* H or L, per BSD conventions */
        const char       *compress_program;
-       char              line_separator; /* --null ? '\0' : '\n' */
        int               option_append; /* -A, only relevant for -o */
        int               option_atime_restore; /* -a */
        int               option_follow_links; /* -L */
        int               option_link; /* -l */
        int               option_list; /* -t */
+       char              option_null; /* --null */
        int               option_numeric_uid_gid; /* -n */
        int               option_rename; /* -r */
        char             *destdir;