[augeas-devel] [PATCH] Write last created node in /augeas/tree/last_created for tree_create and tree_insert
Raphael Pinson
raphink at gmail.com
Fri Aug 8 17:38:08 UTC 2008
# HG changeset patch
# User Raphael Pinson <raphink at gmail.com>
# Date 1218215555 -7200
# Node ID 5697b74b2d7341f923ee889187a9d8d6276744ae
# Parent 10f6354c863e1feba41daa86e9d475c25007c0c2
Write last created node in /augeas/tree/last_created for tree_create and tree_insert
diff -r 10f6354c863e -r 5697b74b2d73 src/augeas.c
--- a/src/augeas.c Thu Aug 07 18:06:22 2008 -0700
+++ b/src/augeas.c Fri Aug 08 19:12:35 2008 +0200
@@ -432,6 +432,11 @@ static struct segment *tree_create(struc
else
list_append(tree->children, seg->tree);
+ for (s = seg ; s <= last_segment(path); s++) {
+ s->index = sibling_index(seg_siblings(path, s), s->tree);
+ }
+
+ tree_set(root, AUGEAS_META_LAST_CREATED, format_path(path));
return seg;
error:
for (s = seg; s->tree != NULL && s <= last_segment(path); s++) {
@@ -642,6 +647,13 @@ int tree_insert(struct tree **tree, cons
new->next = seg->tree->next;
seg->tree->next = new;
}
+
+ free(seg->label);
+ seg->label = strdup(label);
+ seg->tree = new;
+ seg->index = sibling_index(seg_siblings(p, seg), new);
+ tree_set(*tree, AUGEAS_META_LAST_CREATED, format_path(p));
+
free_path(p);
return 0;
error:
diff -r 10f6354c863e -r 5697b74b2d73 src/internal.h
--- a/src/internal.h Thu Aug 07 18:06:22 2008 -0700
+++ b/src/internal.h Fri Aug 08 19:12:35 2008 +0200
@@ -61,6 +61,9 @@
/* How we save files. One of 'backup', 'overwrite' or 'newfile' */
#define AUGEAS_META_SAVE_MODE AUGEAS_META_TREE "/save"
+
+/* Last created node */
+#define AUGEAS_META_LAST_CREATED AUGEAS_META_TREE "/tree/last_created"
/* Name of env var that contains list of paths to search for additional
spec files */
More information about the augeas-devel
mailing list