]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Forward declare __archive_get_date in a dedicated internal header
authorBrad King <brad.king@kitware.com>
Wed, 21 Oct 2015 16:02:43 +0000 (12:02 -0400)
committerBrad King <brad.king@kitware.com>
Mon, 26 Oct 2015 14:20:47 +0000 (10:20 -0400)
Avoid repeating the signature declaration in every source that uses it.
While at it, constify internal __archive_get_date implementation to
keep signatures consistent.

libarchive/CMakeLists.txt
libarchive/archive_getdate.c
libarchive/archive_getdate.h [new file with mode: 0644]
libarchive/archive_match.c
libarchive/test/test_archive_getdate.c
libarchive/test/test_archive_match_time.c

index f427e97da90faa25c52626de4d20bad7ae947493..4cc9a2ca2c17c33f0bc7b9a0e9a2b2a85dcf2491 100644 (file)
@@ -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
index aaa9d6fa128413ddcf88c6ea923f4a6f5717f787..beb0cba2ed3bb8c21f7cf3baf3c63dcf7df809fa 100644 (file)
@@ -38,8 +38,8 @@ __FBSDID("$FreeBSD$");
 #include <string.h>
 #include <time.h>
 
-/* 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 (file)
index 0000000..666ff5f
--- /dev/null
@@ -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.h>
+
+time_t __archive_get_date(time_t now, const char *);
+
+#endif
index 74aaacb5a22913dcf12b7d6c06200e9fed542e3b..4c41badf1f86c26c961717cc18189c9688178e2b 100644 (file)
@@ -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 = {
index 3f8ad29f6467d177776937f58e62fc9d93e1fdee..9e91b83ba81d13bfe6378261b9d961c8afb88fae 100644 (file)
@@ -27,11 +27,13 @@ __FBSDID("$FreeBSD$");
 
 #include <time.h>
 
+#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)
index c951e0dbbc2d2e34693422ce56f05a4bbfac75df..c6864b3265e40ebe2b82fb35373d93e0f767baf6 100644 (file)
@@ -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)