OSDN Git Service

* configure.ac: added a command line switch `--enable-backup-archive'.
authorarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 4 Aug 2002 20:05:24 +0000 (20:05 +0000)
committerarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 4 Aug 2002 20:05:24 +0000 (20:05 +0000)
* src/lhadd.c (cmd_add): if `backup_old_archive' is true, no
backup archive.
(cmd_delete): ditto.

* src/lharc.c (init_variable): initialize `backup_old_archive'.

* src/lha.h (backup_old_archive): added for nobackup.

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/lha/lha/trunk@435 6a8cc165-1e22-0410-a132-eb4e3f353aba

configure.ac
src/lha.h
src/lhadd.c
src/lharc.c

index f9b3e23..4bdbb37 100644 (file)
@@ -205,6 +205,18 @@ if test "x$user_name_header" = xyes; then
             [Define to 1 if you want to use the user/group name extened header])
 fi
 
+# backup old archive file
+AC_ARG_ENABLE(backup_archive,
+  AC_HELP_STRING([--enable-backup-archive],
+                [backup old archive [[default=no]]]),
+  ,
+  # default
+  enable_backup_archive=no)
+if test "x$enable_backup_archive" = xyes; then
+  AC_DEFINE(BACKUP_OLD_ARCHIVE, 1,
+           [Define to 1 if you want to leave an old archive])
+fi
+
 AC_CONFIG_FILES([Makefile src/Makefile man/Makefile])
 AC_CONFIG_FILES([tests/Makefile tests/lha-test])
 AC_OUTPUT
index 160211e..b827fb9 100644 (file)
--- a/src/lha.h
+++ b/src/lha.h
@@ -273,6 +273,7 @@ EXTERN boolean      verify_mode;
 /* Indicator flag */
 EXTERN int             quiet_mode;
 
+EXTERN boolean backup_old_archive;
 /* ------------------------------------------------------------------------ */
 /*     Globale Variable                                                                                                                */
 /* ------------------------------------------------------------------------ */
index 46d5b06..083426a 100644 (file)
@@ -548,7 +548,7 @@ cmd_add()
        }
 
        /* build backup archive file */
-       if (old_archive_exist)
+       if (old_archive_exist && backup_old_archive)
                build_backup_file();
 
        report_archive_name_if_different();
@@ -610,12 +610,15 @@ cmd_delete()
        }
 
        /* build backup archive file */
-       build_backup_file();
+    if (backup_old_archive)
+        build_backup_file();
 
        /* 1999.5.24 t.oka */
        if(!noexec && new_archive_size <= 1){
                unlink(temporary_name);
-               warning("New archive file \"%s\" is not created because it would be empty.", new_archive_name);
+        if (!backup_old_archive)
+            unlink(archive_name);
+               warning("The archive file \"%s\" was removed because it would be empty.", new_archive_name);
                return;
        }
 
index c3854e8..bc2573f 100644 (file)
@@ -96,6 +96,12 @@ init_variable()              /* Added N.Watazaki */
 
        extract_directory = NULL;
     temporary_fd = -1;
+
+#if BACKUP_OLD_ARCHIVE
+    backup_old_archive = TRUE;
+#else
+    backup_old_archive = FALSE;
+#endif
 }
 
 /* ------------------------------------------------------------------------ */