]> Dogcows Code - chaz/tar/blobdiff - src/common.h
Implement the --warning option.
[chaz/tar] / src / common.h
index 947546a1d4d8836d6567aafe412bde774b0e0460..2e048a398bddd9c33d40185c5ae1ceaccb504ba9 100644 (file)
@@ -346,9 +346,6 @@ GLOBAL bool unquote_option;
 
 GLOBAL bool test_label_option; /* Test archive volume label and exit */
 
-/* Apply transformations to symlink targets as well. */
-GLOBAL bool transform_symlinks_option;
-
 /* Show file or archive names after transformation.
    In particular, when creating archive in verbose mode, list member names
    as stored in the archive */
@@ -702,8 +699,7 @@ char *xheader_format_name (struct tar_stat_info *st, const char *fmt,
 
 void sys_detect_dev_null_output (void);
 void sys_save_archive_dev_ino (void);
-void sys_drain_input_pipe (void);
-void sys_wait_for_child (pid_t);
+void sys_wait_for_child (pid_t, bool);
 void sys_spawn_shell (void);
 bool sys_compare_uid (struct stat *a, struct stat *b);
 bool sys_compare_gid (struct stat *a, struct stat *b);
@@ -738,17 +734,16 @@ bool string_ascii_p (const char *str);
 bool utf8_convert (bool to_utf, char const *input, char **output);
 
 /* Module transform.c */
-typedef enum
-  {
-    xform_regfile,
-    xform_link,
-    xform_symlink
-  } xform_type;
+#define XFORM_REGFILE  0x01
+#define XFORM_LINK     0x02
+#define XFORM_SYMLINK  0x04
+#define XFORM_ALL      (XFORM_REGFILE|XFORM_LINK|XFORM_SYMLINK)
 
 void set_transform_expr (const char *expr);
-bool transform_name (char **pinput);
-bool transform_member_name (char **pinput, xform_type type);
-bool transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *);
+bool transform_name (char **pinput, int type);
+bool transform_member_name (char **pinput, int type);
+bool transform_name_fp (char **pinput, int type,
+                       char *(*fun)(char *, void *), void *);
 
 /* Module suffix.c */
 void set_comression_program_by_suffix (const char *name, const char *defprog);
@@ -757,3 +752,38 @@ void set_comression_program_by_suffix (const char *name, const char *defprog);
 void checkpoint_compile_action (const char *str);
 void checkpoint_finish_compile (void);
 void checkpoint_run (bool do_write);
+
+/* Module warning.c */
+#define WARN_ALONE_ZERO_BLOCK    0x00000001
+#define WARN_BAD_DUMPDIR         0x00000002
+#define WARN_CACHEDIR            0x00000004
+#define WARN_CONTIGUOUS_CAST     0x00000008
+#define WARN_FILE_CHANGED        0x00000010
+#define WARN_FILE_IGNORED        0x00000020
+#define WARN_FILE_REMOVED        0x00000040
+#define WARN_FILE_SHRANK         0x00000080
+#define WARN_FILE_UNCHANGED      0x00000100
+#define WARN_FILENAME_WITH_NULS  0x00000200
+#define WARN_IGNORE_ARCHIVE      0x00000400
+#define WARN_IGNORE_NEWER        0x00000800
+#define WARN_NEW_DIRECTORY       0x00001000
+#define WARN_RENAME_DIRECTORY    0x00002000
+#define WARN_SYMLINK_CAST        0x00004000
+#define WARN_TIMESTAMP           0x00008000
+#define WARN_UNKNOWN_CAST        0x00010000
+#define WARN_UNKNOWN_KEYWORD     0x00020000
+#define WARN_XDEV                0x00040000
+
+#define WARN_ALL                 0xffffffff
+
+void set_warning_option (const char *arg);
+
+extern int warning_option;
+
+#define WARNOPT(opt,args)                      \
+  do                                           \
+    {                                          \
+      if (warning_option & opt) WARN (args);   \
+    }                                          \
+  while (0)
+
This page took 0.025252 seconds and 4 git commands to generate.