1368207Smm/*- 2368207Smm * Copyright (c) 2020 Martin Matuska 3368207Smm * All rights reserved. 4368207Smm * 5368207Smm * Redistribution and use in source and binary forms, with or without 6368207Smm * modification, are permitted provided that the following conditions 7368207Smm * are met: 8368207Smm * 1. Redistributions of source code must retain the above copyright 9368207Smm * notice, this list of conditions and the following disclaimer. 10368207Smm * 2. Redistributions in binary form must reproduce the above copyright 11368207Smm * notice, this list of conditions and the following disclaimer in the 12368207Smm * documentation and/or other materials provided with the distribution. 13368207Smm * 14368207Smm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 15368207Smm * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16368207Smm * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17368207Smm * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 18368207Smm * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19368207Smm * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20368207Smm * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21368207Smm * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22368207Smm * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23368207Smm * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24368207Smm */ 25368207Smm 26368207Smm#include "archive_platform.h" 27368207Smm__FBSDID("$FreeBSD: stable/10/contrib/libarchive/libarchive/archive_read_support_filter_by_code.c 368708 2020-12-16 22:25:40Z mm $"); 28368207Smm 29368207Smm#include "archive.h" 30368207Smm#include "archive_private.h" 31368207Smm 32368207Smmint 33368207Smmarchive_read_support_filter_by_code(struct archive *a, int filter_code) 34368207Smm{ 35368207Smm archive_check_magic(a, ARCHIVE_READ_MAGIC, 36368207Smm ARCHIVE_STATE_NEW, "archive_read_support_filter_by_code"); 37368207Smm 38368207Smm switch (filter_code) { 39368207Smm case ARCHIVE_FILTER_NONE: 40368207Smm return archive_read_support_filter_none(a); 41368207Smm break; 42368207Smm case ARCHIVE_FILTER_GZIP: 43368207Smm return archive_read_support_filter_gzip(a); 44368207Smm break; 45368207Smm case ARCHIVE_FILTER_BZIP2: 46368207Smm return archive_read_support_filter_bzip2(a); 47368207Smm break; 48368207Smm case ARCHIVE_FILTER_COMPRESS: 49368207Smm return archive_read_support_filter_compress(a); 50368207Smm break; 51368207Smm case ARCHIVE_FILTER_LZMA: 52368207Smm return archive_read_support_filter_lzma(a); 53368207Smm break; 54368207Smm case ARCHIVE_FILTER_XZ: 55368207Smm return archive_read_support_filter_xz(a); 56368207Smm break; 57368207Smm case ARCHIVE_FILTER_UU: 58368207Smm return archive_read_support_filter_uu(a); 59368207Smm break; 60368207Smm case ARCHIVE_FILTER_RPM: 61368207Smm return archive_read_support_filter_rpm(a); 62368207Smm break; 63368207Smm case ARCHIVE_FILTER_LZIP: 64368207Smm return archive_read_support_filter_lzip(a); 65368207Smm break; 66368207Smm case ARCHIVE_FILTER_LRZIP: 67368207Smm return archive_read_support_filter_lrzip(a); 68368207Smm break; 69368207Smm case ARCHIVE_FILTER_LZOP: 70368207Smm return archive_read_support_filter_lzop(a); 71368207Smm break; 72368207Smm case ARCHIVE_FILTER_GRZIP: 73368207Smm return archive_read_support_filter_grzip(a); 74368207Smm break; 75368207Smm case ARCHIVE_FILTER_LZ4: 76368207Smm return archive_read_support_filter_lz4(a); 77368207Smm break; 78368207Smm case ARCHIVE_FILTER_ZSTD: 79368207Smm return archive_read_support_filter_zstd(a); 80368207Smm break; 81368207Smm } 82368207Smm return (ARCHIVE_FATAL); 83368207Smm} 84