backup-rename: new module
commitb6ac7d133c6a478b40f5767b0c9d8713775dbf6f
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 30 Jul 2017 17:53:32 +0000 (30 10:53 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 30 Jul 2017 18:08:43 +0000 (30 11:08 -0700)
tree2a33204cec3a0180f274bb687ae4b6eae6924f94
parentd274292d1b143f20ea21e3781fc614f1fd438a00
backup-rename: new module

It is like backupfile, except it avoids some race conditions,
and it does not output to stderr or exit.
* MODULES.html.sh: Add backup-rename.
* lib/backup-find.c, lib/backup-internal.h, lib/backup-rename.c:
* modules/backup-rename: New files.
* lib/backupfile.c: Turn this into an internals file, which
contains code common to backupfile and backup_rename.  Do not
include argmatch.h or xalloc.h: include xalloc-oversized.h.
Include renameat2.h and fcntl.h.
(BACKUP_NOMEM): New constant.
(numbered_backup): New args BASE_OFFSET and *DIRPP.  Do not exit
on memory exhaustion; just return BACKUP_NOMEM.  Caller changed.
(backupfile_internal): Rename from find_backup_file_name.
Support new arg RENAME.
(backup_args, backup_types, get_version, xget_version):
Move to lib/backup-find.c.
* lib/backupfile.h (backup_file_rename): New decl.
* modules/backupfile (Files): Add lib/backup-internal.h,
lib/backup-find.c.
(Depends-on): Add dirfd, fcntl, renameat2.
(lib_SOURCES): Add backup-find.c.
ChangeLog
MODULES.html.sh
lib/backup-find.c [new file with mode: 0644]
lib/backup-internal.h [new file with mode: 0644]
lib/backup-rename.c [new file with mode: 0644]
lib/backupfile.c
lib/backupfile.h
modules/backup-rename [copied from modules/backupfile with 67% similarity]
modules/backupfile