diff options
author | Richard Jones <rjones@trick.home.annexia.org> | 2009-07-27 22:27:45 +0100 |
---|---|---|
committer | Richard Jones <rjones@trick.home.annexia.org> | 2009-07-28 10:57:57 +0100 |
commit | 0f2e9c84e9ff1071260770930068642ecc8ac0d9 (patch) | |
tree | f4e466d6fb3710d589c21c8849c27f9f2f55ced2 /HACKING | |
parent | bf920f57677c67f903cf8c4c985ce3d290b1dbde (diff) | |
download | libguestfs-0f2e9c84e9ff1071260770930068642ecc8ac0d9.tar.gz libguestfs-0f2e9c84e9ff1071260770930068642ecc8ac0d9.tar.xz libguestfs-0f2e9c84e9ff1071260770930068642ecc8ac0d9.zip |
Replace shell_quote function with %Q and %R printf specifiers.
%Q => simple shell quoted string
%R => path will be prefixed by /sysroot
eg. snprintf (cmd, sizeof cmd, "cat %R", path); system (cmd);
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -126,3 +126,25 @@ into the appliance. Debugging messages are never translated, since they are intended for the programmers. + +Extended printf +---------------------------------------------------------------------- + +In the daemon code we have created custom printf formatters %Q and %R, +which are used to do shell quoting. + +%Q => Simple shell quoted string. Any spaces or other shell characters + are escaped for you. + +%R => Same as %Q except the string is treated as a path which is prefixed + by the sysroot. + +eg. + +asprintf (&cmd, "cat %R", path); +==> "cat /sysroot/some\ path\ with\ spaces" + +Note: Do NOT use these when you are passing parameters to the +command{,r,v,rv}() functions. These parameters do NOT need to be +quoted because they are not passed via the shell (instead, straight to +exec). You probably want to use the sysroot_path() function however. |