Elide non-DFSG compliant upstream components
[debian/tar] / lib / paxlib.h
index 2fa396a2272269b586939e7385564ad8116d3de0..d4251d14cd126892649916716a9470c21ab54ad8 100644 (file)
@@ -21,7 +21,6 @@
 #ifndef _paxlib_h_
 #define _paxlib_h_
 
-#include <hash.h>
 #include <inttostr.h>
 
 /* Error reporting functions and definitions */
@@ -33,6 +32,8 @@
 #define PAXEXIT_DIFFERS 1
 #define PAXEXIT_FAILURE 2
 
+extern void (*error_hook) (void);
+
 /* Both WARN and ERROR write a message on stderr and continue processing,
    however ERROR manages so tar will exit unsuccessfully.  FATAL_ERROR
    writes a message on stderr and aborts immediately, with another message
    is zero when the error is not being detected by the system.  */
 
 #define WARN(Args) \
-  error Args
+  do { if (error_hook) error_hook (); error Args; } while (0)
 #define ERROR(Args) \
-  (error Args, exit_status = PAXEXIT_FAILURE)
+  do                                           \
+    {                                          \
+      if (error_hook) error_hook ();           \
+      error Args;                              \
+      exit_status = PAXEXIT_FAILURE;           \
+    }                                          \
+  while (0)
 #define FATAL_ERROR(Args) \
-  (error Args, fatal_exit ())
+  do                                           \
+    {                                          \
+      if (error_hook) error_hook ();           \
+      error Args;                              \
+      fatal_exit ();                           \
+    }                                          \
+  while (0)
 #define USAGE_ERROR(Args) \
-  (error Args, usage (PAXEXIT_FAILURE))
+  do                                           \
+    {                                          \
+      if (error_hook) error_hook ();           \
+      error Args;                              \
+      usage (PAXEXIT_FAILURE);                 \
+    }                                          \
+  while (0)
 
 extern int exit_status;
 
@@ -88,7 +107,7 @@ void seek_error (char const *);
 void seek_error_details (char const *, off_t);
 void seek_warn (char const *);
 void seek_warn_details (char const *, off_t);
-void stat_fatal (char const *);
+void stat_fatal (char const *) __attribute__ ((noreturn));
 void stat_error (char const *);
 void stat_warn (char const *);
 void symlink_error (char const *, char const *);
@@ -98,17 +117,15 @@ void unlink_error (char const *);
 void utime_error (char const *);
 void waitpid_error (char const *);
 void write_error (char const *);
+void write_error_details (char const *, size_t, size_t);
 
-void pax_exit (void);
+void pax_exit (void) __attribute__ ((noreturn));
 void fatal_exit (void) __attribute__ ((noreturn));
 
 #define STRINGIFY_BIGINT(i, b) umaxtostr (i, b)
 
 \f
 /* Name-related functions */
-bool hash_string_insert (Hash_table **table, char const *string);
-bool hash_string_lookup (Hash_table const *table, char const *string);
-
 bool removed_prefixes_p (void);
 char *safer_name_suffix (char const *file_name, bool link_target, bool absolute_names);