X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=man%2Fsd_bus_path_encode.xml;h=3fbb37cea2dc83bfa733e24ca22e7156bc06d557;hb=HEAD;hp=7cb8e77bc086b854e73f3d02baeb55e756376d64;hpb=70a44afee385c4afadaab9a002b3f9dd44aedf4a;p=elogind.git diff --git a/man/sd_bus_path_encode.xml b/man/sd_bus_path_encode.xml index 7cb8e77bc..3fbb37cea 100644 --- a/man/sd_bus_path_encode.xml +++ b/man/sd_bus_path_encode.xml @@ -1,31 +1,31 @@ - + - + sd_bus_path_encode - systemd + elogind @@ -44,14 +44,16 @@ along with systemd; If not, see . sd_bus_path_encode + sd_bus_path_encode_many sd_bus_path_decode + sd_bus_path_decode_many Convert an external identifier into an object path and back - #include <systemd/sd-bus.h> + #include <elogind/sd-bus.h> int sd_bus_path_encode @@ -60,12 +62,26 @@ along with systemd; If not, see . char **ret_path + + int sd_bus_path_encode_many + char **out + const char *path_template + ... + + int sd_bus_path_decode - const char *prefix const char *path + const char *prefix char **ret_external_id + + + int sd_bus_path_decode_many + const char *path + const char *path_template + ... + @@ -82,16 +98,16 @@ along with systemd; If not, see . prefix and an external identifier string as arguments, plus a place to store the returned bus path string. The bus path prefix must be a valid bus path, starting with a slash - /, but not ending in one. The external - identifier string may be in any format, may be the empty string - and no restrictions on the charset are made - however it must + /, and not ending in one. The external + identifier string may be in any format, may be the empty string, + and has no restrictions on the charset — however, it must always be NUL-terminated. The returned string will be the concatenation of the bus path prefix plus an escaped version of the external identifier string. This operation may be reversed with sd_bus_decode(). It is - recommended to only use external identifiers here that generally + recommended to only use external identifiers that generally require little escaping to be turned into valid bus path - identifiers (for example by sticking to a 7-bit ASCII character + identifiers (for example, by sticking to a 7-bit ASCII character set), in order to ensure the resulting bus path is still short and easily processed. @@ -101,14 +117,36 @@ along with systemd; If not, see . takes a bus path and a prefix string, plus a place to store the returned external identifier string. If the bus path does not start with the specified prefix, 0 is returned and the returned - string is set to NULL. Otherwise the the + string is set to NULL. Otherwise, the string following the prefix is unescaped and returned in the external identifier string. - The escaping used will will replace all characters which are - invalid in a bus object path by _ followed by a + The escaping used will replace all characters which are + invalid in a bus object path by _, followed by a hexadecimal value. As a special case, the empty string will be replaced by a lone _. + + sd_bus_path_encode_many() works like + its counterpart sd_bus_path_encode(), but + takes a path template as argument and encodes multiple labels + according to its embedded directives. For each + % character found in the template, the caller + must provide a string via varargs, which will be encoded and + embedded at the position of the % character. + Any other character in the template is copied verbatim into the + encoded path. + + sd_bus_path_decode_many() does the + reverse of sd_bus_path_encode_many(). It + decodes the passed object path according to the given + path template. For each % character in the + template, the caller must provide an output storage + (char **) via varargs. The decoded label + will be stored there. Each % character will + only match the current label. It will never match across labels. + Furthermore, only a single directive is allowed per label. + If NULL is passed as output storage, the + label is verified but not returned to the caller. @@ -118,12 +156,12 @@ along with systemd; If not, see . returns positive or 0, and a valid bus path in the return argument. On success, sd_bus_path_decode() returns a positive value if the prefixed matched, or 0 if it - did not. If the prefix matched the external identifier is returned - in the return parameter. If it did not match NULL is returned in + did not. If the prefix matched, the external identifier is returned + in the return parameter. If it did not match, NULL is returned in the return parameter. On failure, a negative errno-style error number is returned by either function. The returned strings must be - free3'd + free3'd by the caller. @@ -133,7 +171,7 @@ along with systemd; If not, see . sd_bus_path_encode() and sd_bus_path_decode() are available as a shared library, which can be compiled and linked to with the - libsystemd pkg-config1 + libelogind pkg-config1 file. @@ -141,9 +179,9 @@ along with systemd; If not, see . See Also - systemd1, + elogind8, sd-bus3, - free3 + free3