From f517b7647e28e95081e9392c6989fc6e5d4d6a9e Mon Sep 17 00:00:00 2001 From: arai Date: Sun, 4 Aug 2002 20:05:24 +0000 Subject: [PATCH] * configure.ac: added a command line switch `--enable-backup-archive'. * 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 | 12 ++++++++++++ src/lha.h | 1 + src/lhadd.c | 9 ++++++--- src/lharc.c | 6 ++++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index f9b3e23..4bdbb37 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/src/lha.h b/src/lha.h index 160211e..b827fb9 100644 --- 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 */ /* ------------------------------------------------------------------------ */ diff --git a/src/lhadd.c b/src/lhadd.c index 46d5b06..083426a 100644 --- a/src/lhadd.c +++ b/src/lhadd.c @@ -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; } diff --git a/src/lharc.c b/src/lharc.c index c3854e8..bc2573f 100644 --- a/src/lharc.c +++ b/src/lharc.c @@ -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 } /* ------------------------------------------------------------------------ */ -- 2.11.0