diff options
author | Karel Zak | 2010-07-21 14:18:02 +0200 |
---|---|---|
committer | Karel Zak | 2011-01-03 12:28:40 +0100 |
commit | 3c5e4ef8881272a97edb2a01649780c9b5bbcf3b (patch) | |
tree | f1a5125781371eef547f907ece4e593f5ec69d8a | |
parent | libmount: remove fs and tab printf functions (diff) | |
download | kernel-qcow2-util-linux-3c5e4ef8881272a97edb2a01649780c9b5bbcf3b.tar.gz kernel-qcow2-util-linux-3c5e4ef8881272a97edb2a01649780c9b5bbcf3b.tar.xz kernel-qcow2-util-linux-3c5e4ef8881272a97edb2a01649780c9b5bbcf3b.zip |
libmount: add unmangle/mangle() functions to API
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | include/mangle.h | 4 | ||||
-rw-r--r-- | lib/mangle.c | 9 | ||||
-rw-r--r-- | shlibs/mount/src/mount.h.in | 2 | ||||
-rw-r--r-- | shlibs/mount/src/mount.sym | 2 | ||||
-rw-r--r-- | shlibs/mount/src/utils.c | 27 |
5 files changed, 38 insertions, 6 deletions
diff --git a/include/mangle.h b/include/mangle.h index 8ce38752d..0ccd37768 100644 --- a/include/mangle.h +++ b/include/mangle.h @@ -7,8 +7,8 @@ extern char *mangle(const char *s); -extern void unmangle_to_buffer(char *s, char *buf, size_t len); -extern char *unmangle(char *s); +extern void unmangle_to_buffer(const char *s, char *buf, size_t len); +extern char *unmangle(const char *s); #endif /* UTIL_LINUX_MANGLE_H */ diff --git a/lib/mangle.c b/lib/mangle.c index 766d479d6..c40e67bad 100644 --- a/lib/mangle.c +++ b/lib/mangle.c @@ -44,7 +44,7 @@ char *mangle(const char *s) return ss; } -void unmangle_to_buffer(char *s, char *buf, size_t len) +void unmangle_to_buffer(const char *s, char *buf, size_t len) { size_t sz = 0; @@ -63,7 +63,7 @@ void unmangle_to_buffer(char *s, char *buf, size_t len) *buf = '\0'; } -static inline char *skip_nonspaces(char *s) +static inline const char *skip_nonspaces(const char *s) { while (*s && !(*s == ' ' || *s == '\t')) s++; @@ -73,9 +73,10 @@ static inline char *skip_nonspaces(char *s) /* * Returns mallocated buffer or NULL in case of error. */ -char *unmangle(char *s) +char *unmangle(const char *s) { - char *buf, *end; + char *buf; + const char *end; size_t sz; end = skip_nonspaces(s); diff --git a/shlibs/mount/src/mount.h.in b/shlibs/mount/src/mount.h.in index 9a6280426..af1dd38a4 100644 --- a/shlibs/mount/src/mount.h.in +++ b/shlibs/mount/src/mount.h.in @@ -110,6 +110,8 @@ extern int mnt_parse_version_string(const char *ver_string); extern int mnt_get_library_version(const char **ver_string); /* utils.c */ +extern char *mnt_mangle(const char *str); +extern char *mnt_unmangle(const char *str); extern int mnt_fstype_is_netfs(const char *type); extern int mnt_fstype_is_pseudofs(const char *type); extern int mnt_match_fstype(const char *type, const char *pattern); diff --git a/shlibs/mount/src/mount.sym b/shlibs/mount/src/mount.sym index a33c7f261..7824597c0 100644 --- a/shlibs/mount/src/mount.sym +++ b/shlibs/mount/src/mount.sym @@ -55,6 +55,7 @@ global: mnt_lock_file; mnt_lock_get_linkfile; mnt_lock_get_lockfile; + mnt_mangle; mnt_match_fstype; mnt_match_options; mnt_new_cache; @@ -132,6 +133,7 @@ global: mnt_tab_set_parser_errcb; mnt_tab_update_file; mnt_unlock_file; + mnt_unmangle; local: *; }; diff --git a/shlibs/mount/src/utils.c b/shlibs/mount/src/utils.c index eb183ee0f..372351acc 100644 --- a/shlibs/mount/src/utils.c +++ b/shlibs/mount/src/utils.c @@ -31,6 +31,7 @@ #include "strutils.h" #include "pathnames.h" #include "mountP.h" +#include "mangle.h" char *mnt_getenv_safe(const char *arg) { @@ -85,6 +86,32 @@ int startswith(const char *s, const char *sx) } /** + * mnt_mangle: + * @str: string + * + * Encode @str to be compatible with fstab/mtab + * + * Returns: new allocated string or NULL in case of error. + */ +char *mnt_mangle(const char *str) +{ + return mangle(str); +} + +/** + * mnt_unmangle: + * @str: string + * + * Decode @str from fstab/mtab + * + * Returns: new allocated string or NULL in case of error. + */ +char *mnt_unmangle(const char *str) +{ + return unmangle(str); +} + +/** * mnt_fstype_is_pseudofs: * @type: filesystem name * |