aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2011-09-29 16:28:23 +0100
committerAnthony PERARD <anthony.perard@citrix.com>2011-09-29 16:28:23 +0100
commit56a7a6929b594f15cd70dae21e3b0d87a7979293 (patch)
tree3e4bd3f047804bcdf8f732db98ca16354446baee
parent12400260bb6cc998478a1b176862518997e98810 (diff)
downloadxen-56a7a6929b594f15cd70dae21e3b0d87a7979293.tar.gz
xen-56a7a6929b594f15cd70dae21e3b0d87a7979293.tar.bz2
xen-56a7a6929b594f15cd70dae21e3b0d87a7979293.zip
libxl: Intruduce libxl__strndup.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r--tools/libxl/libxl_internal.c10
-rw-r--r--tools/libxl/libxl_internal.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/libxl/libxl_internal.c b/tools/libxl/libxl_internal.c
index ef5f6ae5db..56e6618653 100644
--- a/tools/libxl/libxl_internal.c
+++ b/tools/libxl/libxl_internal.c
@@ -159,6 +159,16 @@ char *libxl__strdup(libxl__gc *gc, const char *c)
return s;
}
+char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
+{
+ char *s = strndup(c, n);
+
+ if (s)
+ libxl__ptr_add(gc, s);
+
+ return s;
+}
+
char *libxl__dirname(libxl__gc *gc, const char *s)
{
char *c;
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 1d2c58ecbe..2ebd18d2ea 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -148,6 +148,7 @@ _hidden void *libxl__calloc(libxl__gc *gc, size_t nmemb, size_t size);
_hidden void *libxl__realloc(libxl__gc *gc, void *ptr, size_t new_size);
_hidden char *libxl__sprintf(libxl__gc *gc, const char *fmt, ...) PRINTF_ATTRIBUTE(2, 3);
_hidden char *libxl__strdup(libxl__gc *gc, const char *c);
+_hidden char *libxl__strndup(libxl__gc *gc, const char *c, size_t n);
_hidden char *libxl__dirname(libxl__gc *gc, const char *s);
_hidden char **libxl__xs_kvs_of_flexarray(libxl__gc *gc, flexarray_t *array, int length);