diff --git a/vfs/vfs.c b/vfs/vfs.c index 830f65e63..57ff3d7c3 100644 --- a/vfs/vfs.c +++ b/vfs/vfs.c @@ -279,7 +279,7 @@ struct vfs_class * vfs_split (char *path, char **inpath, char **op) { char *semi; - char *slash; + char *slash, *at_chr; struct vfs_class *ret; if (!path) @@ -289,7 +289,12 @@ vfs_split (char *path, char **inpath, char **op) if (!semi || !path_magic(path)) return NULL; - slash = strchr (semi, PATH_SEP); + at_chr = strrchr (semi, '@'); + if (at_chr) + slash = strchr (at_chr, PATH_SEP); + else + slash = strchr (semi, PATH_SEP); + *semi = 0; if (op)