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.

Reply via email to