• Paul Eggert's avatar
    backup-rename: new module · b6ac7d13
    Paul Eggert authored
    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,
    (Depends-on): Add dirfd, fcntl, renameat2.
    (lib_SOURCES): Add backup-find.c.