projects
/
vrfileman
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
thicker lines in file icons
[vrfileman]
/
src
/
opt.cc
diff --git
a/src/opt.cc
b/src/opt.cc
index
de3f5a3
..
6e22113
100644
(file)
--- a/
src/opt.cc
+++ b/
src/opt.cc
@@
-6,6
+6,14
@@
Options opt;
Options opt;
+Options def_opt = {
+ 1280, 800,
+ false, // vr
+ true, // srgb
+ false, // fullscreen
+ 0 // path
+};
+
enum {
OPT_SIZE,
OPT_VR,
enum {
OPT_SIZE,
OPT_VR,
@@
-27,17
+35,16
@@
static optcfg_option options[] = {
};
static int opt_handler(optcfg *oc, int opt, void *cls);
};
static int opt_handler(optcfg *oc, int opt, void *cls);
+static int arg_handler(optcfg *oc, const char *arg, void *cls);
bool init_options(int argc, char **argv, const char *cfgfile)
{
// default options
bool init_options(int argc, char **argv, const char *cfgfile)
{
// default options
- memset(&opt, 0, sizeof opt);
- opt.width = 1280;
- opt.height = 800;
- opt.srgb = true;
+ opt = def_opt;
optcfg *oc = optcfg_init(options);
optcfg_set_opt_callback(oc, opt_handler, 0);
optcfg *oc = optcfg_init(options);
optcfg_set_opt_callback(oc, opt_handler, 0);
+ optcfg_set_arg_callback(oc, arg_handler, 0);
if(cfgfile) {
optcfg_parse_config_file(oc, cfgfile);
if(cfgfile) {
optcfg_parse_config_file(oc, cfgfile);
@@
-94,5
+101,15
@@
static int opt_handler(optcfg *oc, int optid, void *cls)
optcfg_print_options(oc);
exit(0);
}
optcfg_print_options(oc);
exit(0);
}
- return true;
+ return 0;
+}
+
+static int arg_handler(optcfg *oc, const char *arg, void *cls)
+{
+ if(opt.path) {
+ fprintf(stderr, "unexpected argument: %s\n", arg);
+ return -1;
+ }
+ opt.path = arg;
+ return 0;
}
}