1*d91bfe0fSMartin Matuska /*- 2*d91bfe0fSMartin Matuska * Copyright (c) 2023, Martin Matuska 3*d91bfe0fSMartin Matuska * All rights reserved. 4*d91bfe0fSMartin Matuska * 5*d91bfe0fSMartin Matuska * Redistribution and use in source and binary forms, with or without 6*d91bfe0fSMartin Matuska * modification, are permitted provided that the following conditions 7*d91bfe0fSMartin Matuska * are met: 8*d91bfe0fSMartin Matuska * 1. Redistributions of source code must retain the above copyright 9*d91bfe0fSMartin Matuska * notice, this list of conditions and the following disclaimer. 10*d91bfe0fSMartin Matuska * 2. Redistributions in binary form must reproduce the above copyright 11*d91bfe0fSMartin Matuska * notice, this list of conditions and the following disclaimer in the 12*d91bfe0fSMartin Matuska * documentation and/or other materials provided with the distribution. 13*d91bfe0fSMartin Matuska * 14*d91bfe0fSMartin Matuska * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 15*d91bfe0fSMartin Matuska * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16*d91bfe0fSMartin Matuska * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17*d91bfe0fSMartin Matuska * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 18*d91bfe0fSMartin Matuska * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19*d91bfe0fSMartin Matuska * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20*d91bfe0fSMartin Matuska * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21*d91bfe0fSMartin Matuska * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22*d91bfe0fSMartin Matuska * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23*d91bfe0fSMartin Matuska * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24*d91bfe0fSMartin Matuska */ 25*d91bfe0fSMartin Matuska 26*d91bfe0fSMartin Matuska #ifndef BSDUNZIP_H_INCLUDED 27*d91bfe0fSMartin Matuska #define BSDUNZIP_H_INCLUDED 28*d91bfe0fSMartin Matuska 29*d91bfe0fSMartin Matuska #if defined(PLATFORM_CONFIG_H) 30*d91bfe0fSMartin Matuska /* Use hand-built config.h in environments that need it. */ 31*d91bfe0fSMartin Matuska #include PLATFORM_CONFIG_H 32*d91bfe0fSMartin Matuska #else 33*d91bfe0fSMartin Matuska /* Not having a config.h of some sort is a serious problem. */ 34*d91bfe0fSMartin Matuska #include "config.h" 35*d91bfe0fSMartin Matuska #endif 36*d91bfe0fSMartin Matuska 37*d91bfe0fSMartin Matuska #include <archive.h> 38*d91bfe0fSMartin Matuska #include <archive_entry.h> 39*d91bfe0fSMartin Matuska 40*d91bfe0fSMartin Matuska struct bsdunzip { 41*d91bfe0fSMartin Matuska /* Option parser state */ 42*d91bfe0fSMartin Matuska int getopt_state; 43*d91bfe0fSMartin Matuska char *getopt_word; 44*d91bfe0fSMartin Matuska 45*d91bfe0fSMartin Matuska /* Miscellaneous state information */ 46*d91bfe0fSMartin Matuska int argc; 47*d91bfe0fSMartin Matuska char **argv; 48*d91bfe0fSMartin Matuska const char *argument; 49*d91bfe0fSMartin Matuska }; 50*d91bfe0fSMartin Matuska 51*d91bfe0fSMartin Matuska struct bsdunzip_getopt_ret { 52*d91bfe0fSMartin Matuska int index; 53*d91bfe0fSMartin Matuska int opt; 54*d91bfe0fSMartin Matuska }; 55*d91bfe0fSMartin Matuska 56*d91bfe0fSMartin Matuska enum { 57*d91bfe0fSMartin Matuska OPTION_NONE, 58*d91bfe0fSMartin Matuska OPTION_VERSION 59*d91bfe0fSMartin Matuska }; 60*d91bfe0fSMartin Matuska 61*d91bfe0fSMartin Matuska int bsdunzip_getopt(struct bsdunzip *); 62*d91bfe0fSMartin Matuska 63*d91bfe0fSMartin Matuska #endif 64