From: Michal Moskal Date: Mon, 13 Aug 2001 11:51:04 +0000 (+0000) Subject: - added making backup of updated files X-Git-Tag: setup_2_4_4~44 X-Git-Url: http://git.pld-linux.org/?p=projects%2Fsetup.git;a=commitdiff_plain;h=f88ff4b9fec41a3d019b0b74a6ba4b0d9d7e1233 - added making backup of updated files Changed files: joinpasswd.c -> 1.2 --- diff --git a/joinpasswd.c b/joinpasswd.c index 4225885..80e4c98 100644 --- a/joinpasswd.c +++ b/joinpasswd.c @@ -70,6 +70,8 @@ #define FILE3 "/etc/group" #define SUFFIX ".rpmnew" +/* maybe "-" or sth? */ +#define BACKUP ".old" /* #define SILENT */ @@ -118,7 +120,7 @@ int exist(char *id, int id_len, char *ptr, int sz) return 0; } -int join(const char *old_name, const char *new_name) +int join(const char *old_name, const char *new_name, const char *backup_name) { char *old, *new, *id; int i, fd; @@ -131,7 +133,13 @@ int join(const char *old_name, const char *new_name) old = map_file(old_name, &old_sz); if (old == NULL) fatal("cannot mmap old"); - + + fd = open(backup_name, O_WRONLY|O_CREAT|O_TRUNC, 0600); + if (fd < 0) + fatal("cannot make backup"); + write(fd, old, old_sz); + close(fd); + #ifndef SILENT eputs("marging contest of `"); eputs(old_name);