Browse Source

Issue a warning if the archive being compared contais transformed file names.

* src/common.h (transform_program_p): New proto.
* src/transform.c (transform_program_p): New function.
* src/compare.c (verify_volume): Warn if the archive contains
transformed file names.
Sergey Poznyakoff 14 years ago
parent
commit
73d0d1a0f8
3 changed files with 18 additions and 2 deletions
  1. 1 0
      src/common.h
  2. 11 2
      src/compare.c
  3. 6 0
      src/transform.c

+ 1 - 0
src/common.h

@@ -779,6 +779,7 @@ void set_transform_expr (const char *expr);
 bool transform_name (char **pinput, int type);
 bool transform_name_fp (char **pinput, int type,
 			char *(*fun)(char *, void *), void *);
+bool transform_program_p (void);
 
 /* Module suffix.c */
 void set_compression_program_by_suffix (const char *name, const char *defprog);

+ 11 - 2
src/compare.c

@@ -512,14 +512,23 @@ diff_archive (void)
 void
 verify_volume (void)
 {
+  int may_fail = 0;
   if (removed_prefixes_p ())
     {
       WARN((0, 0,
 	    _("Archive contains file names with leading prefixes removed.")));
+      may_fail = 1;
+    }
+  if (transform_program_p ())
+    {
       WARN((0, 0,
-	    _("Verification may fail to locate original files.")));
+	    _("Archive contains transformed file names.")));
+      may_fail = 1;
     }
-
+  if (may_fail)
+    WARN((0, 0,
+	  _("Verification may fail to locate original files.")));
+  
   if (!diff_buffer)
     diff_init ();
 

+ 6 - 0
src/transform.c

@@ -628,3 +628,9 @@ transform_name (char **pinput, int type)
 {
   return transform_name_fp (pinput, type, NULL, NULL);
 }
+
+bool
+transform_program_p (void)
+{
+  return transform_head != NULL;
+}