Move some parts of virStorageFileRemoveLastPathComponent
into a separate function so they can be reused.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
virFileReadLimFD;
virFileRelLinkPointsTo;
virFileRemove;
+virFileRemoveLastComponent;
virFileResolveAllLinks;
virFileResolveLink;
virFileRewrite;
return cleanpath;
}
+/**
+ * virFileRemoveLastComponent:
+ *
+ * For given path cut off the last component. If there's no dir
+ * separator (whole path is one file name), @path is turned into
+ * an empty string.
+ */
+void
+virFileRemoveLastComponent(char *path)
+{
+ char *tmp;
+
+ if ((tmp = strrchr(path, VIR_FILE_DIR_SEPARATOR)))
+ tmp[1] = '\0';
+ else
+ path[0] = '\0';
+}
/**
* virFilePrintf:
int virFileAbsPath(const char *path,
char **abspath) ATTRIBUTE_RETURN_CHECK;
const char *virFileSkipRoot(const char *path);
+void virFileRemoveLastComponent(char *path);
int virFileOpenTty(int *ttymaster,
char **ttyName,
static char *
virStorageFileRemoveLastPathComponent(const char *path)
{
- char *tmp;
char *ret;
if (VIR_STRDUP(ret, path ? path : "") < 0)
return NULL;
- if ((tmp = strrchr(ret, '/')))
- tmp[1] = '\0';
- else
- ret[0] = '\0';
+ virFileRemoveLastComponent(ret);
return ret;
}