cedric pushed a commit to branch master.

commit 06cd16548c1497bfd36316dfd9c96699b0549939
Author: Cedric Bail <[email protected]>
Date:   Tue Jun 4 15:03:30 2013 +0900

    eina: add eina_file_dup.
---
 ChangeLog                       |  1 +
 NEWS                            |  3 ++-
 src/lib/eina/eina_file.h        | 12 ++++++++++++
 src/lib/eina/eina_file_common.c |  7 +++++++
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index c0f8736..d960d20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2013-06-04  Cedric Bail
 
        * Evas: correctly detect if loader support asynchronous preloading.
+       * Eina: add eina_file_dup.
 
 2013-06-03  Ederson Desouza
 
diff --git a/NEWS b/NEWS
index f562785..a52a5c4 100644
--- a/NEWS
+++ b/NEWS
@@ -27,7 +27,8 @@ Additions:
      - Add eina_log_timing()
      - Add eina_inlist_first
      - Add eina_inlist_last
-     - Added eina_str_convert_len() to work around broken eina_str_convert()
+     - Add eina_str_convert_len() to work around broken eina_str_convert()
+     - Add eina_file_dup()
     * eet:
      - Add eet_mmap()
      - Add eet_data_descriptor_name_get()
diff --git a/src/lib/eina/eina_file.h b/src/lib/eina/eina_file.h
index 959f089..0f77c69 100644
--- a/src/lib/eina/eina_file.h
+++ b/src/lib/eina/eina_file.h
@@ -460,6 +460,18 @@ EAPI Eina_Bool eina_file_copy(const char *src, const char 
*dst, Eina_File_Copy_F
 EAPI Eina_File *eina_file_open(const char *name, Eina_Bool shared) 
EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
 
 /**
+ * @brief Dup a read-only handler of a previously open file.
+ *
+ * @param file To duplicate a reference to
+ * @return Eina_File handle to the duplicated file
+ *
+ * Opens a file in read-only mode.
+ *
+ * @since 1.8
+ */
+EAPI Eina_File * eina_file_dup(Eina_File *file);
+
+/**
  * @brief Unref file handler.
  *
  * @param file File handler to unref.
diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c
index 80230c9..ca1c487 100644
--- a/src/lib/eina/eina_file_common.c
+++ b/src/lib/eina/eina_file_common.c
@@ -152,6 +152,13 @@ eina_file_path_sanitize(const char *path)
    return _eina_file_escape(eina_file_cleanup(result), len);
 }
 
+EAPI Eina_File *
+eina_file_dup(Eina_File *file)
+{
+   if (file) file->refcount++;
+   return file;
+}
+
 EAPI void
 eina_file_close(Eina_File *file)
 {

-- 

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j

Reply via email to