Update to fuse_opt_parse(3) so that all option templates are now matched for
authorhelg <helg@openbsd.org>
Mon, 11 Dec 2017 12:31:00 +0000 (12:31 +0000)
committerhelg <helg@openbsd.org>
Mon, 11 Dec 2017 12:31:00 +0000 (12:31 +0000)
commitec9508f9e1aec89cba84959920958759743150ef
treedb7bb13c0df1e8f7a26e0a1f6fe146bc426963b8
parent6037617499b7e181afcd03466025f595471d91de
Update to fuse_opt_parse(3) so that all option templates are now matched for
the supplied option. This allows the following templates to be supplied to set
multiple members of a struct at the same time. e.g.

#define FUSE_LIB_OPT(t, p, v) { t, offsetof(struct fuse_config, p), v }

static const struct fuse_opt fuse_lib_opts[] = {
      FUSE_LIB_OPT("gid=",      set_gid, 1),
      FUSE_LIB_OPT("gid=%u",        gid, 0),
      FUSE_OPT_END
};

If "-ogid=1000" is passed to fuse_opt_parse(3) it will set both:

fuse_config.set_gid=1
fuse_config.gid=1000

ok mpi@
lib/libfuse/fuse_opt.c