This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository efm2.
View the commit online.
commit 9eed3d94de7cb9ec0d92f1fdf95cf9d25f7f4f2a
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Thu Nov 7 14:34:06 2024 +0000
add fs code for cp and symlinks - ln
cp just wraps the current cp_rm and a new ln func does symlinks
---
src/backends/default/cp.c | 4 ++--
src/backends/default/fs.c | 32 +++++++++++++++++++++++++++++++-
src/backends/default/fs.h | 2 ++
3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/src/backends/default/cp.c b/src/backends/default/cp.c
index e7a750e..c8832c3 100644
--- a/src/backends/default/cp.c
+++ b/src/backends/default/cp.c
@@ -192,7 +192,7 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
umask(prev_umask);
// mv the file to a tmp file: mv /srcdir/filename /dstdir/.efm/filename.tmp
- if (fs_cp_rm(src, dsttmpfile, EINA_TRUE, EINA_TRUE, EINA_FALSE))
+ if (fs_cp(src, dsttmpfile, EINA_TRUE))
{ // it worked so deal with meta/thumbs
char *src_meta, *dst_meta;
Meta_File *mfsrc, *mfdst;
@@ -218,7 +218,7 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
if ((src_meta) && (dst_meta) && (meta_path_prepare(dst)))
{
status_count(1, src_meta);
- fs_cp_rm(src_meta, dst_meta, EINA_FALSE, EINA_TRUE, EINA_FALSE);
+ fs_cp(src_meta, dst_meta, EINA_FALSE);
// fix up the oprig stat info to match so thub is valid
// get stat info of new mv'd file
if (stat(dsttmpfile, &st) == 0)
diff --git a/src/backends/default/fs.c b/src/backends/default/fs.c
index e352ae1..5028f92 100644
--- a/src/backends/default/fs.c
+++ b/src/backends/default/fs.c
@@ -459,4 +459,34 @@ done:
return res;
}
-// add fs_cp() fs_rm() fs_trash() fs_rename()
+Eina_Bool
+fs_cp(const char *src, const char *dst, Eina_Bool report_err)
+{ // cp /path/to/src/filename /path/to/dst/filename
+ Eina_Bool res;
+ const char *op = "Copy";
+
+ res = fs_cp_rm(src, dst, report_err, EINA_TRUE, EINA_FALSE);
+ if (report_err) _error_handle(src, dst, op, errno);
+ status_pos(1, src);
+ return res;
+}
+
+Eina_Bool fs_ln(const char *src, const char *dst, Eina_Bool report_err)
+{ // ln -s /path/to/src/filename /path/to/dst/filename
+ Eina_Bool res = EINA_TRUE;
+ const char *op = "Symlink";
+ int ret;
+
+ ret = symlink(src, dst);
+ if (ret == 0) goto done;
+ else
+ {
+ if (report_err) _error_handle(src, dst, op, errno);
+ res = EINA_FALSE;
+ }
+done:
+ status_pos(1, src);
+ return res;
+}
+
+// add fs_rm() fs_trash() fs_rename()
diff --git a/src/backends/default/fs.h b/src/backends/default/fs.h
index cb50630..7ef20cc 100644
--- a/src/backends/default/fs.h
+++ b/src/backends/default/fs.h
@@ -6,5 +6,7 @@ Eina_Bool fs_scan(const char *src);
Eina_Bool fs_cp_rm(const char *src, const char *dst, Eina_Bool report_err,
Eina_Bool cp, Eina_Bool rm);
Eina_Bool fs_mv(const char *src, const char *dst, Eina_Bool report_err);
+Eina_Bool fs_cp(const char *src, const char *dst, Eina_Bool report_err);
+Eina_Bool fs_ln(const char *src, const char *dst, Eina_Bool report_err);
#endif
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.