003 File Manager
Current Path:
/usr/src/contrib/libarchive/libarchive
usr
/
src
/
contrib
/
libarchive
/
libarchive
/
📁
..
📄
archive.h
(51.93 KB)
📄
archive_acl.c
(51.2 KB)
📄
archive_acl_private.h
(3.13 KB)
📄
archive_blake2.h
(6.32 KB)
📄
archive_blake2_impl.h
(4.12 KB)
📄
archive_blake2s_ref.c
(9.46 KB)
📄
archive_blake2sp_ref.c
(9.11 KB)
📄
archive_check_magic.c
(4.7 KB)
📄
archive_cmdline.c
(5.21 KB)
📄
archive_cmdline_private.h
(1.82 KB)
📄
archive_crc32.h
(2.97 KB)
📄
archive_cryptor.c
(13.46 KB)
📄
archive_cryptor_private.h
(6.02 KB)
📄
archive_digest.c
(28.79 KB)
📄
archive_digest_private.h
(13.88 KB)
📄
archive_disk_acl_freebsd.c
(18.86 KB)
📄
archive_endian.h
(5.28 KB)
📄
archive_entry.3
(4.85 KB)
📄
archive_entry.c
(53.48 KB)
📄
archive_entry.h
(32.79 KB)
📄
archive_entry_acl.3
(14.32 KB)
📄
archive_entry_copy_stat.c
(3.73 KB)
📄
archive_entry_link_resolver.c
(11.74 KB)
📄
archive_entry_linkify.3
(5.9 KB)
📄
archive_entry_locale.h
(4.41 KB)
📄
archive_entry_misc.3
(2.47 KB)
📄
archive_entry_paths.3
(5.53 KB)
📄
archive_entry_perms.3
(7.59 KB)
📄
archive_entry_private.h
(6.09 KB)
📄
archive_entry_sparse.c
(3.95 KB)
📄
archive_entry_stat.3
(8.1 KB)
📄
archive_entry_stat.c
(4.29 KB)
📄
archive_entry_strmode.c
(2.6 KB)
📄
archive_entry_time.3
(4.5 KB)
📄
archive_entry_xattr.c
(3.86 KB)
📄
archive_getdate.c
(29.9 KB)
📄
archive_getdate.h
(1.56 KB)
📄
archive_hmac.c
(7.32 KB)
📄
archive_hmac_private.h
(3.59 KB)
📄
archive_match.c
(47.14 KB)
📄
archive_openssl_evp_private.h
(1.92 KB)
📄
archive_openssl_hmac_private.h
(1.98 KB)
📄
archive_options.c
(5.22 KB)
📄
archive_options_private.h
(2.02 KB)
📄
archive_pack_dev.c
(9.13 KB)
📄
archive_pack_dev.h
(2.08 KB)
📄
archive_pathmatch.c
(10.64 KB)
📄
archive_pathmatch.h
(2.09 KB)
📄
archive_platform.h
(5.93 KB)
📄
archive_platform_acl.h
(2 KB)
📄
archive_platform_xattr.h
(1.82 KB)
📄
archive_ppmd7.c
(27.63 KB)
📄
archive_ppmd7_private.h
(3.01 KB)
📄
archive_ppmd8.c
(31.05 KB)
📄
archive_ppmd8_private.h
(3.82 KB)
📄
archive_ppmd_private.h
(3.31 KB)
📄
archive_private.h
(5.56 KB)
📄
archive_random.c
(6.67 KB)
📄
archive_random_private.h
(1.6 KB)
📄
archive_rb.c
(20.84 KB)
📄
archive_rb.h
(4.43 KB)
📄
archive_read.3
(7.18 KB)
📄
archive_read.c
(48.21 KB)
📄
archive_read_add_passphrase.3
(2.48 KB)
📄
archive_read_add_passphrase.c
(5.21 KB)
📄
archive_read_append_filter.c
(6.1 KB)
📄
archive_read_data.3
(4.23 KB)
📄
archive_read_data_into_fd.c
(3.94 KB)
📄
archive_read_disk.3
(10.36 KB)
📄
archive_read_disk_entry_from_file.c
(27.96 KB)
📄
archive_read_disk_posix.c
(72.18 KB)
📄
archive_read_disk_private.h
(3.31 KB)
📄
archive_read_disk_set_standard_lookup.c
(8.03 KB)
📄
archive_read_extract.3
(4.39 KB)
📄
archive_read_extract.c
(2.21 KB)
📄
archive_read_extract2.c
(4.5 KB)
📄
archive_read_filter.3
(5.56 KB)
📄
archive_read_format.3
(5.97 KB)
📄
archive_read_free.3
(3.07 KB)
📄
archive_read_header.3
(2.97 KB)
📄
archive_read_new.3
(2.08 KB)
📄
archive_read_open.3
(6.78 KB)
📄
archive_read_open_fd.c
(5.92 KB)
📄
archive_read_open_file.c
(4.9 KB)
📄
archive_read_open_filename.c
(17.56 KB)
📄
archive_read_open_memory.c
(5.43 KB)
📄
archive_read_private.h
(9.26 KB)
📄
archive_read_set_format.c
(3.43 KB)
📄
archive_read_set_options.3
(6.53 KB)
📄
archive_read_set_options.c
(4.6 KB)
📄
archive_read_support_filter_all.c
(3.5 KB)
📄
archive_read_support_filter_by_code.c
(2.76 KB)
📄
archive_read_support_filter_bzip2.c
(9.93 KB)
📄
archive_read_support_filter_compress.c
(13.44 KB)
📄
archive_read_support_filter_grzip.c
(3.52 KB)
📄
archive_read_support_filter_gzip.c
(13.48 KB)
📄
archive_read_support_filter_lrzip.c
(3.79 KB)
📄
archive_read_support_filter_lz4.c
(20.26 KB)
📄
archive_read_support_filter_lzop.c
(13.59 KB)
📄
archive_read_support_filter_none.c
(1.87 KB)
📄
archive_read_support_filter_program.c
(13.21 KB)
📄
archive_read_support_filter_rpm.c
(6.84 KB)
📄
archive_read_support_filter_uu.c
(18.34 KB)
📄
archive_read_support_filter_xz.c
(21.51 KB)
📄
archive_read_support_filter_zstd.c
(7.59 KB)
📄
archive_read_support_format_7zip.c
(97.12 KB)
📄
archive_read_support_format_all.c
(3.47 KB)
📄
archive_read_support_format_ar.c
(17.4 KB)
📄
archive_read_support_format_by_code.c
(2.99 KB)
📄
archive_read_support_format_cab.c
(83 KB)
📄
archive_read_support_format_cpio.c
(31.93 KB)
📄
archive_read_support_format_empty.c
(2.93 KB)
📄
archive_read_support_format_iso9660.c
(92.13 KB)
📄
archive_read_support_format_lha.c
(83.33 KB)
📄
archive_read_support_format_mtree.c
(51.86 KB)
📄
archive_read_support_format_rar.c
(84.34 KB)
📄
archive_read_support_format_rar5.c
(107.18 KB)
📄
archive_read_support_format_raw.c
(5.43 KB)
📄
archive_read_support_format_tar.c
(83.23 KB)
📄
archive_read_support_format_warc.c
(21.17 KB)
📄
archive_read_support_format_xar.c
(79.96 KB)
📄
archive_read_support_format_zip.c
(117.12 KB)
📄
archive_string.c
(104.04 KB)
📄
archive_string.h
(9.26 KB)
📄
archive_string_composition.h
(80.15 KB)
📄
archive_string_sprintf.c
(5.13 KB)
📄
archive_util.3
(6.97 KB)
📄
archive_util.c
(14.54 KB)
📄
archive_version_details.c
(3.55 KB)
📄
archive_virtual.c
(3.95 KB)
📄
archive_write.3
(7.32 KB)
📄
archive_write.c
(21.65 KB)
📄
archive_write_add_filter.c
(2.63 KB)
📄
archive_write_add_filter_b64encode.c
(8.41 KB)
📄
archive_write_add_filter_by_name.c
(2.65 KB)
📄
archive_write_add_filter_bzip2.c
(11.14 KB)
📄
archive_write_add_filter_compress.c
(12.62 KB)
📄
archive_write_add_filter_grzip.c
(4.22 KB)
📄
archive_write_add_filter_gzip.c
(12.34 KB)
📄
archive_write_add_filter_lrzip.c
(5.72 KB)
📄
archive_write_add_filter_lz4.c
(18.85 KB)
📄
archive_write_add_filter_lzop.c
(13.69 KB)
📄
archive_write_add_filter_none.c
(1.67 KB)
📄
archive_write_add_filter_program.c
(9.77 KB)
📄
archive_write_add_filter_uuencode.c
(8.09 KB)
📄
archive_write_add_filter_xz.c
(14.97 KB)
📄
archive_write_add_filter_zstd.c
(10.7 KB)
📄
archive_write_blocksize.3
(4.13 KB)
📄
archive_write_data.3
(3.09 KB)
📄
archive_write_disk.3
(11.82 KB)
📄
archive_write_disk_posix.c
(123.89 KB)
📄
archive_write_disk_private.h
(1.77 KB)
📄
archive_write_disk_set_standard_lookup.c
(6.91 KB)
📄
archive_write_filter.3
(4.47 KB)
📄
archive_write_finish_entry.3
(2.67 KB)
📄
archive_write_format.3
(5.99 KB)
📄
archive_write_free.3
(3.05 KB)
📄
archive_write_header.3
(2.44 KB)
📄
archive_write_new.3
(2.02 KB)
📄
archive_write_open.3
(8.01 KB)
📄
archive_write_open_fd.c
(3.9 KB)
📄
archive_write_open_file.c
(2.93 KB)
📄
archive_write_open_filename.c
(6.85 KB)
📄
archive_write_open_memory.c
(3.61 KB)
📄
archive_write_private.h
(5.64 KB)
📄
archive_write_set_format.c
(4 KB)
📄
archive_write_set_format_7zip.c
(55.14 KB)
📄
archive_write_set_format_ar.c
(14.08 KB)
📄
archive_write_set_format_by_name.c
(3.35 KB)
📄
archive_write_set_format_cpio.c
(14.24 KB)
📄
archive_write_set_format_cpio_newc.c
(13.11 KB)
📄
archive_write_set_format_filter_by_ext.c
(4.67 KB)
📄
archive_write_set_format_gnutar.c
(22.62 KB)
📄
archive_write_set_format_iso9660.c
(206.67 KB)
📄
archive_write_set_format_mtree.c
(58.1 KB)
📄
archive_write_set_format_pax.c
(59.85 KB)
📄
archive_write_set_format_private.h
(1.71 KB)
📄
archive_write_set_format_raw.c
(3.65 KB)
📄
archive_write_set_format_shar.c
(16.93 KB)
📄
archive_write_set_format_ustar.c
(21.98 KB)
📄
archive_write_set_format_v7tar.c
(18.02 KB)
📄
archive_write_set_format_warc.c
(11.2 KB)
📄
archive_write_set_format_xar.c
(79.49 KB)
📄
archive_write_set_format_zip.c
(48.7 KB)
📄
archive_write_set_options.3
(21.85 KB)
📄
archive_write_set_options.c
(4.07 KB)
📄
archive_write_set_passphrase.3
(2.46 KB)
📄
archive_write_set_passphrase.c
(2.89 KB)
📄
archive_xxhash.h
(1.86 KB)
📄
cpio.5
(10.45 KB)
📄
filter_fork.h
(1.68 KB)
📄
filter_fork_posix.c
(6.18 KB)
📄
libarchive-formats.5
(18.29 KB)
📄
libarchive.3
(8.02 KB)
📄
libarchive_changes.3
(9.95 KB)
📄
libarchive_internals.3
(13.36 KB)
📄
tar.5
(31 KB)
📁
test
📄
xxhash.c
(15.77 KB)
Editing: archive_cmdline.c
/*- * Copyright (c) 2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "archive_platform.h" __FBSDID("$FreeBSD$"); #ifdef HAVE_STRING_H # include <string.h> #endif #ifdef HAVE_STDLIB_H # include <stdlib.h> #endif #include "archive.h" #include "archive_cmdline_private.h" #include "archive_string.h" static int cmdline_set_path(struct archive_cmdline *, const char *); static int cmdline_add_arg(struct archive_cmdline *, const char *); static ssize_t extract_quotation(struct archive_string *as, const char *p) { const char *s; for (s = p + 1; *s;) { if (*s == '\\') { if (s[1] != '\0') { archive_strappend_char(as, s[1]); s += 2; } else s++; } else if (*s == '"') break; else { archive_strappend_char(as, s[0]); s++; } } if (*s != '"') return (ARCHIVE_FAILED);/* Invalid sequence. */ return ((ssize_t)(s + 1 - p)); } static ssize_t get_argument(struct archive_string *as, const char *p) { const char *s = p; archive_string_empty(as); /* Skip beginning space characters. */ while (*s != '\0' && *s == ' ') s++; /* Copy non-space characters. */ while (*s != '\0' && *s != ' ') { if (*s == '\\') { if (s[1] != '\0') { archive_strappend_char(as, s[1]); s += 2; } else { s++;/* Ignore this character.*/ break; } } else if (*s == '"') { ssize_t q = extract_quotation(as, s); if (q < 0) return (ARCHIVE_FAILED);/* Invalid sequence. */ s += q; } else { archive_strappend_char(as, s[0]); s++; } } return ((ssize_t)(s - p)); } /* * Set up command line arguments. * Returns ARCHIVE_OK if everything okey. * Returns ARCHIVE_FAILED if there is a lack of the `"' terminator or an * empty command line. * Returns ARCHIVE_FATAL if no memory. */ int __archive_cmdline_parse(struct archive_cmdline *data, const char *cmd) { struct archive_string as; const char *p; ssize_t al; int r; archive_string_init(&as); /* Get first argument as a command path. */ al = get_argument(&as, cmd); if (al < 0) { r = ARCHIVE_FAILED;/* Invalid sequence. */ goto exit_function; } if (archive_strlen(&as) == 0) { r = ARCHIVE_FAILED;/* An empty command path. */ goto exit_function; } r = cmdline_set_path(data, as.s); if (r != ARCHIVE_OK) goto exit_function; p = strrchr(as.s, '/'); if (p == NULL) p = as.s; else p++; r = cmdline_add_arg(data, p); if (r != ARCHIVE_OK) goto exit_function; cmd += al; for (;;) { al = get_argument(&as, cmd); if (al < 0) { r = ARCHIVE_FAILED;/* Invalid sequence. */ goto exit_function; } if (al == 0) break; cmd += al; if (archive_strlen(&as) == 0 && *cmd == '\0') break; r = cmdline_add_arg(data, as.s); if (r != ARCHIVE_OK) goto exit_function; } r = ARCHIVE_OK; exit_function: archive_string_free(&as); return (r); } /* * Set the program path. */ static int cmdline_set_path(struct archive_cmdline *data, const char *path) { char *newptr; newptr = realloc(data->path, strlen(path) + 1); if (newptr == NULL) return (ARCHIVE_FATAL); data->path = newptr; strcpy(data->path, path); return (ARCHIVE_OK); } /* * Add a argument for the program. */ static int cmdline_add_arg(struct archive_cmdline *data, const char *arg) { char **newargv; if (data->path == NULL) return (ARCHIVE_FAILED); newargv = realloc(data->argv, (data->argc + 2) * sizeof(char *)); if (newargv == NULL) return (ARCHIVE_FATAL); data->argv = newargv; data->argv[data->argc] = strdup(arg); if (data->argv[data->argc] == NULL) return (ARCHIVE_FATAL); /* Set the terminator of argv. */ data->argv[++data->argc] = NULL; return (ARCHIVE_OK); } struct archive_cmdline * __archive_cmdline_allocate(void) { return (struct archive_cmdline *) calloc(1, sizeof(struct archive_cmdline)); } /* * Release the resources. */ int __archive_cmdline_free(struct archive_cmdline *data) { if (data) { free(data->path); if (data->argv != NULL) { int i; for (i = 0; data->argv[i] != NULL; i++) free(data->argv[i]); free(data->argv); } free(data); } return (ARCHIVE_OK); }
Upload File
Create Folder