A user requested the ability to specify directory entry names in a
protofile that have spaces in them. The protofile format itself does
not allow spaces (yay 1973-era protofiles!) but it does allow slashes.
Slashes aren't allowed in directory entry names, so we'll permit this
one gross hack.
/
0 0
d--775 1000 1000
: Descending path /code/t/fstests
get/isk.sh ---775 1000 1000 /code/t/fstests/getdisk.sh
$
Will produce "get isk.h" in the root directory.
Requested-by: Daan De Meyer <daan.j.demeyer@gmail.com>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
return NULL;
}
+/* Extract directory entry name from a protofile. */
+static char *
+getdirentname(
+ char **pp)
+{
+ char *p = getstr(pp);
+ char *c = p;
+
+ if (!p)
+ return NULL;
+
+ /* Replace slash with space because slashes aren't allowed. */
+ while (*c) {
+ if (*c == '/')
+ *c = ' ';
+ c++;
+ }
+
+ return p;
+}
+
static void
rsvfile(
xfs_mount_t *mp,
rtinit(mp);
tp = NULL;
for (;;) {
- name = getstr(pp);
+ name = getdirentname(pp);
if (!name)
break;
if (strcmp(name, "$") == 0)