aboutsummaryrefslogtreecommitdiff
path: root/src/diskio.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-02-21 18:26:51 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-02-21 18:26:51 +0200
commit0b63c31eadfe5d4e94c7014bd0f3bd4370783d19 (patch)
tree9feb30a2c64d785d5e59fecd06429413e9f4d398 /src/diskio.c
parent1213cf065e9b3a5fb45d00276b3d168462838c17 (diff)
downloadwydawca-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.c43
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;
+}

Return to:

Send suggestions and report system problems to the System administrator.