diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2020-04-13 21:50:15 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2020-04-13 22:32:40 +0300 |
commit | 2f3ec2402f827066cb55ae562154106433d29ac2 (patch) | |
tree | 87e650e32e90da305478c17e1e9730932e4e3c50 /src/wydawca.h | |
parent | a9d38e5de5cceb667bec3db15fed68f7e8d96a8b (diff) | |
download | wydawca-2f3ec2402f827066cb55ae562154106433d29ac2.tar.gz wydawca-2f3ec2402f827066cb55ae562154106433d29ac2.tar.bz2 |
Rewrite diskio function so as not to assume any particular cwd
* src/backup.c (get_backup_suffix)
(find_backup_file_name): Get directory descriptor as first argument.
* src/diskio.c: Rewrite using *at() functions.
* src/gpg.c (rmdir_r): Silently skip ENOENT.
(verify_detached_signature): push_dir/pop_dir.
* src/triplet.c: Don't change to spool->source_dir. Underlying
functions don't assume any specific cwd.
* src/wydawca.h (find_backup_file_name)
(create_hierarchy): Change signatures. All uses changed.
* tests/Makefile.am: Add new tests.
* tests/testsuite.at: Likewise.
(AT_WYDAWCA_DAEMON): Take additional argument.
* tests/inotify-rmsymlink.at: New test.
* tests/inotify-symlink.at: New test.
* tests/rmsymlink00.at: New test.
* tests/symlink00.at: New test.
* tests/symlink01.at: New test.
* tests/dist/rmsymlink.directive.asc: New directive file.
* tests/dist/symlink.directive.asc: New directive file.
Diffstat (limited to 'src/wydawca.h')
-rw-r--r-- | src/wydawca.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/wydawca.h b/src/wydawca.h index fd0bbfb..784a30f 100644 --- a/src/wydawca.h +++ b/src/wydawca.h @@ -120,7 +120,7 @@ enum backup_type { extern char const *simple_backup_suffix; -char *find_backup_file_name(char const *, enum backup_type); +char *find_backup_file_name(int, char const *, enum backup_type); const char *split_filename(char const *file, char **pdir); #define METADATA_NONE 0 @@ -375,7 +375,7 @@ size_t trim(char *str); int test_dir(const char *name, int *ec); char *create_directory(const char *base, const char *name); -int create_hierarchy(char const *dir, size_t baselen); +int create_hierarchy(int dirfd, char const *dir); void parse_config(void); void log_output(int prio, const char *prog, FILE * fp); @@ -493,8 +493,9 @@ int symlink_file(struct wy_triplet *trp, int rmsymlink_file(struct wy_triplet *trp, const char *file_name); /* diskio.c */ -char *concat_dir(const char *base, const char *name, size_t * pbaselen); -int copy_file(const char *file, const char *dst_file); +char *concat_file(char const *dir, ...); +int copy_file(int src_dirfd, const char *src_file, + int dst_dirfd, const char *dst_file); int dir_test_url(wy_url_t url, grecs_locus_t * locus); int dir_move_file(struct wy_triplet *trp, enum file_type file_id); |