From: Brad King Date: Wed, 21 Oct 2015 16:02:43 +0000 (-0400) Subject: Forward declare __archive_get_date in a dedicated internal header X-Git-Tag: v3.1.900a~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c445f393bb70b0a551680bd633dbf183a1efb54;p=thirdparty%2Flibarchive.git Forward declare __archive_get_date in a dedicated internal header Avoid repeating the signature declaration in every source that uses it. While at it, constify internal __archive_get_date implementation to keep signatures consistent. --- diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt index f427e97da..4cc9a2ca2 100644 --- a/libarchive/CMakeLists.txt +++ b/libarchive/CMakeLists.txt @@ -34,6 +34,7 @@ SET(libarchive_SOURCES archive_entry_strmode.c archive_entry_xattr.c archive_getdate.c + archive_getdate.h archive_hmac.c archive_hmac_private.h archive_match.c diff --git a/libarchive/archive_getdate.c b/libarchive/archive_getdate.c index aaa9d6fa1..beb0cba2e 100644 --- a/libarchive/archive_getdate.c +++ b/libarchive/archive_getdate.c @@ -38,8 +38,8 @@ __FBSDID("$FreeBSD$"); #include #include -/* This file defines a single public function. */ -time_t __archive_get_date(time_t now, char *); +#define __LIBARCHIVE_BUILD 1 +#include "archive_getdate.h" /* Basic time units. */ #define EPOCH 1970 @@ -782,7 +782,7 @@ RelativeMonth(time_t Start, time_t Timezone, time_t RelMonth) * Tokenizer. */ static int -nexttoken(char **in, time_t *value) +nexttoken(const char **in, time_t *value) { char c; char buff[64]; @@ -809,7 +809,7 @@ nexttoken(char **in, time_t *value) /* Try the next token in the word table first. */ /* This allows us to match "2nd", for example. */ { - char *src = *in; + const char *src = *in; const struct LEXICON *tp; unsigned i = 0; @@ -894,7 +894,7 @@ difftm (struct tm *a, struct tm *b) * TODO: tokens[] array should be dynamically sized. */ time_t -__archive_get_date(time_t now, char *p) +__archive_get_date(time_t now, const char *p) { struct token tokens[256]; struct gdstate _gds; diff --git a/libarchive/archive_getdate.h b/libarchive/archive_getdate.h new file mode 100644 index 000000000..666ff5ff7 --- /dev/null +++ b/libarchive/archive_getdate.h @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2003-2015 Tim Kientzle + * 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. + * + * $FreeBSD$ + */ + +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif + +#ifndef ARCHIVE_GETDATE_H_INCLUDED +#define ARCHIVE_GETDATE_H_INCLUDED + +#include + +time_t __archive_get_date(time_t now, const char *); + +#endif diff --git a/libarchive/archive_match.c b/libarchive/archive_match.c index 74aaacb5a..4c41badf1 100644 --- a/libarchive/archive_match.c +++ b/libarchive/archive_match.c @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include "archive.h" #include "archive_private.h" #include "archive_entry.h" +#include "archive_getdate.h" #include "archive_pathmatch.h" #include "archive_rb.h" #include "archive_string.h" @@ -184,7 +185,6 @@ static int time_excluded(struct archive_match *, struct archive_entry *); static int validate_time_flag(struct archive *, int, const char *); -time_t __archive_get_date(time_t now, const char *); #define get_date __archive_get_date static const struct archive_rb_tree_ops rb_ops_mbs = { diff --git a/libarchive/test/test_archive_getdate.c b/libarchive/test/test_archive_getdate.c index 3f8ad29f6..9e91b83ba 100644 --- a/libarchive/test/test_archive_getdate.c +++ b/libarchive/test/test_archive_getdate.c @@ -27,11 +27,13 @@ __FBSDID("$FreeBSD$"); #include +#define __LIBARCHIVE_BUILD 1 +#include "archive_getdate.h" + /* * Verify that the getdate() function works. */ -time_t __archive_get_date(time_t, const char *); #define get_date __archive_get_date DEFINE_TEST(test_archive_getdate) diff --git a/libarchive/test/test_archive_match_time.c b/libarchive/test/test_archive_match_time.c index c951e0dbb..c6864b326 100644 --- a/libarchive/test/test_archive_match_time.c +++ b/libarchive/test/test_archive_match_time.c @@ -26,7 +26,8 @@ #include "test.h" __FBSDID("$FreeBSD$"); -time_t __archive_get_date(time_t, const char *); +#define __LIBARCHIVE_BUILD 1 +#include "archive_getdate.h" static void test_newer_time(void)