On Wed, Aug 12, 2009 at 06:52:52PM +0200, Jim Meyering wrote:
/* We need to rewrite the root path so it is based at /sysroot. */
int
-do_aug_init (char *root, int flags)
+do_aug_init (const char *root, int flags)
[etc.]
As discussed in the previous patch, the augeas change to path is
dubious. However hopefully this will become a const char * in the end.
diff --git a/src/generator.ml b/src/generator.ml
index 325d3cb..f9032fb 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -981,7 +981,7 @@ Note that this function cannot correctly handle binary files
as end of line). For those you need to use the C<guestfs_read_file>
function which has a more complex interface.");
- ("aug_init", (RErr, [String "root"; Int "flags"]), 16,
[],
+ ("aug_init", (RErr, [Pathname "root"; Int "flags"]), 16,
[],
[], (* XXX Augeas code needs tests. *)
"create a new Augeas handle",
"\
This change is actually OK however. Here the "root" really is a path.
@@ -2523,7 +2523,11 @@ into a list of lines.
See also: C<guestfs_command_lines>");
- ("glob_expand", (RStringList "paths", [String
"pattern"]), 113, [],
+ ("glob_expand", (RStringList "paths", [Pathname
"pattern"]), 113, [],
+ (* Use Pathname here, and hence ABS_PATH (pattern,... in generated
+ * code in stubs.c, since all valid glob patterns must start with "/".
+ * There is no concept of "cwd" in libguestfs, hence no
"."-relative names.
+ *)
[InitBasicFS, Always, TestOutputList (
[["mkdir_p"; "/a/b/c"];
["touch"; "/a/b/c/d"];
Agreed.
@@ -2590,7 +2594,8 @@ containing C<dir>.
It is an interface to the L<scrub(1)> program. See that
manual page for more details.");
- ("mkdtemp", (RString "dir", [Pathname "template"]), 117,
[],
+(* FIXME: make this a WritableString? *)
+ ("mkdtemp", (RString "dir", [String "template"]), 117,
[],
[InitBasicFS, Always, TestRun (
[["mkdir"; "/tmp"];
["mkdtemp"; "/tmp/tmpXXXXXX"]])],
Hope this is fixed in a future patch.
@@ -2999,7 +3004,12 @@ This call is similar to
C<guestfs_mounts>. That call returns
a list of devices. This one returns a hash table (map) of
device name to directory where the device is mounted.");
- ("mkmountpoint", (RErr, [Pathname "path"]), 148, [],
+ ("mkmountpoint", (RErr, [String "exemptpath"]), 148, [],
+ (* This is a special case: while you would expect a parameter
+ * of type "Pathname", that doesn't work, because it implies
+ * NEED_ROOT in the generated calling code in stubs.c, and
+ * this function cannot use NEED_ROOT.
+ *)
[],
"create a mountpoint",
"\
Agreed.
ACK.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat
http://et.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top