malloc-h: New module.
[gnulib.git] / lib / backupfile.h
blob34d86c881163c47e175dba67cd73cc296873badf
1 /* backupfile.h -- declarations for making Emacs style backup file names
3 Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2020 Free Software
4 Foundation, Inc.
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <https://www.gnu.org/licenses/>. */
19 #ifndef BACKUPFILE_H_
20 #define BACKUPFILE_H_
22 #include <fcntl.h>
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
29 /* When to make backup files. */
30 enum backup_type
32 /* Never make backups. */
33 no_backups,
35 /* Make simple backups of every file. */
36 simple_backups,
38 /* Make numbered backups of files that already have numbered backups,
39 and simple backups of the others. */
40 numbered_existing_backups,
42 /* Make numbered backups of every file. */
43 numbered_backups
46 #define VALID_BACKUP_TYPE(Type) \
47 ((unsigned int) (Type) <= numbered_backups)
49 extern char const *simple_backup_suffix;
51 void set_simple_backup_suffix (char const *);
52 char *backup_file_rename (int, char const *, enum backup_type);
53 char *find_backup_file_name (int, char const *, enum backup_type);
54 enum backup_type get_version (char const *context, char const *arg);
55 enum backup_type xget_version (char const *context, char const *arg);
58 #ifdef __cplusplus
60 #endif
62 #endif /* ! BACKUPFILE_H_ */