diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-02-21 18:26:51 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-02-21 18:26:51 +0200 |
commit | 0b63c31eadfe5d4e94c7014bd0f3bd4370783d19 (patch) | |
tree | 9feb30a2c64d785d5e59fecd06429413e9f4d398 /src/diskio.c | |
parent | 1213cf065e9b3a5fb45d00276b3d168462838c17 (diff) | |
download | wydawca-0b63c31eadfe5d4e94c7014bd0f3bd4370783d19.tar.gz wydawca-0b63c31eadfe5d4e94c7014bd0f3bd4370783d19.tar.bz2 |
Implement timers and destination URLs.
* gconf/gconf-gram.y (stmt_end): Make sure end callback is called in the
same environment as the begin one.
* src/vtab.c, src/null.c, src/timer.c: New files.
* src/Makefile.am (wydawca_SOURCES): Add new files.
* src/config.c (cb_mailer): Remove useless check.
(cb_destination_url): New function.
(directory_kw): Change handling of the destination keyword.
(cb_directory): Rewrite final checks.
* src/directive.c, /src/process.c, src/triplet.c: Add timers.
* src/diskio.c (move_file, archive_file, symlink_file, rmsymlink_file): Prefix
with dir_.
* src/mail.c (mail_stats): Add timer meta-variables.
* src/wydawca.c (make_stat_expansion): Change definition.
* src/wydawca.h (struct virt_tab): New data type.
(struct directory_pair.dest_url): New member.
* tests/upload-dry.at: Update expected output.
Diffstat (limited to 'src/diskio.c')
-rw-r--r-- | src/diskio.c | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/src/diskio.c b/src/diskio.c index e30b215..0548972 100644 --- a/src/diskio.c +++ b/src/diskio.c @@ -26,7 +26,7 @@ /* Return true if ARG is NULL or is a sub-directory of DIR */ int -sub_dir_p (char *arg, char *dir) +sub_dir_p (const char *arg, const char *dir) { int dlen; @@ -441,8 +441,8 @@ do_archive_file (const char *dst_file, const char *dst_dir, const char *file, Do nothing if dry_run_mode is set. */ int -move_file (struct file_triplet *trp, struct directory_pair *dpair, - enum file_type file_id, const char *reldir) +dir_move_file (struct file_triplet *trp, struct directory_pair *dpair, + enum file_type file_id, const char *reldir) { char *dst_file; int rc = 0; @@ -548,8 +548,8 @@ make_signame (const char *file_name) Do nothing if dry_run_mode is set. */ int -archive_file (struct file_triplet *trp, struct directory_pair *dpair, - const char *reldir, const char *file_name) +dir_archive_file (struct file_triplet *trp, struct directory_pair *dpair, + const char *reldir, const char *file_name) { int rc; char *signame; @@ -568,9 +568,9 @@ archive_file (struct file_triplet *trp, struct directory_pair *dpair, Do nothing if dry_run_mode is set. */ int -symlink_file (struct file_triplet *trp, struct directory_pair *dpair, - const char *reldir, - const char *wanted_src, const char *wanted_dst) +dir_symlink_file (struct file_triplet *trp, struct directory_pair *dpair, + const char *reldir, + const char *wanted_src, const char *wanted_dst) { int rc = 0; struct saved_cwd cwd; @@ -728,8 +728,8 @@ do_rmsymlink_file (const char *dst_file, int noentok) Do nothing if dry_run_mode is set. */ int -rmsymlink_file (struct file_triplet *trp, struct directory_pair *dpair, - const char *reldir, const char *file_name) +dir_rmsymlink_file (struct file_triplet *trp, struct directory_pair *dpair, + const char *reldir, const char *file_name) { char *dst_file; int rc = 0; @@ -763,3 +763,26 @@ rmsymlink_file (struct file_triplet *trp, struct directory_pair *dpair, return rc; } +int +dir_test_url (mu_url_t url, gconf_locus_t *locus) +{ + int rc; + const char *dest_dir; + + rc = mu_url_sget_path (url, &dest_dir); + if (rc) + { + gconf_error (locus, 0, _("cannot extract directory part from URL: %s"), + mu_strerror (rc)); + return rc; + } + if (test_dir (dest_dir, &rc)) + { + if (rc) + gconf_error (locus, rc, _("cannot access %s"), dest_dir); + else + gconf_error (locus, 0, _("%s is not a directory"), dest_dir); + return 1; + } + return 0; +} |