[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[augeas-devel] [PATCH 08/10] Add new API function aug_text_retrieve



From: David Lutterkort <lutter redhat com>

---
 src/augeas.c |   29 +++++++++++++++++++++++++++++
 src/augeas.h |   12 ++++++++++++
 2 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/src/augeas.c b/src/augeas.c
index 76cf272..314b445 100644
--- a/src/augeas.c
+++ b/src/augeas.c
@@ -1654,6 +1654,35 @@ int aug_text_store(augeas *aug, const char *lens, const char *path,
     return -1;
 }
 
+int aug_text_retrieve(struct augeas *aug, const char *lens, const char *path,
+                      const char *text_in,
+                      ATTRIBUTE_UNUSED unsigned int text_in_len,
+                      char **text_out, unsigned int *text_out_len) {
+    struct tree *tree = NULL;
+    int r;
+
+    *text_out = NULL;
+    *text_out_len = 0;
+
+    api_entry(aug);
+
+    tree = tree_find(aug, path);
+    ERR_BAIL(aug);
+
+    r = text_retrieve(aug, lens, path, tree, text_in, text_out);
+    if (r < 0)
+        goto error;
+
+    if (*text_out != NULL)
+        *text_out_len = strlen(*text_out);
+
+    api_exit(aug);
+    return 0;
+ error:
+    api_exit(aug);
+    return -1;
+}
+
 int aug_to_xml(const struct augeas *aug, const char *pathin,
                xmlNode **xmldoc, unsigned int flags) {
     struct pathx *p;
diff --git a/src/augeas.h b/src/augeas.h
index c181cfc..cdb12e8 100644
--- a/src/augeas.h
+++ b/src/augeas.h
@@ -316,6 +316,18 @@ int aug_load(augeas *aug);
 int aug_text_store(augeas *aug, const char *lens, const char *path,
                    const char *text, unsigned int text_len);
 
+/* Function: aug_text_retrieve
+ *
+ * Transform the tree at PATH into TEXT_OUT using lens LENS, assuming the
+ * tree was initially generated using TEXT_IN.
+ *
+ * Returns:
+ * 0 on success, or a negative value on failure
+ */
+int aug_text_retrieve(struct augeas *aug, const char *lens, const char *path,
+                      const char *text_in, unsigned int text_in_len,
+                      char **text_out, unsigned int *text_out_len);
+
 /* Function: aug_print
  *
  * Print each node matching PATH and its descendants to OUT.
-- 
1.7.7.6



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]