Discussion:
[OpenSCAD] Command line parsing
nop head
2018-09-25 08:27:53 UTC
Permalink
I noticed OpenSCAD doesn't complain if you specify non existent options,
e.g. --fred. This is because the command line parser allow_unregistered()
member function is called. Removing this makes it throw an error, which is
caught and printed with the usage message.

./release/openscad.exe --fred -v
unrecognised option '--fred'

Usage: openscad.exe [options] file.scad
Allowed options:
-o [ --o ] arg out_file -output a file instead of running the GUI,
the
file extension specifies the type: stl, off, amf,
csg,
dxf, svg, png, echo, ast, term, nef3, nefdbg
...

I can't think of any reason for silently ignoring unrecognised options. And
this line seems to indicate it that was not the intension:

catch(const std::exception &e) { // Catches e.g. unknown options

Anybody know why allow_unregistered was used? With it I don't think
command_line_parser::run() ever throws an exception. Certainly I haven't
found a way to make it do so. Normally if it is used something processes
the unknown options later but I can't see anything that does that.
Torsten Paul
2018-09-25 21:16:25 UTC
Permalink
Post by nop head
Anybody know why allow_unregistered was used?
That was introduced in:
https://github.com/openscad/openscad/commit/752f35eab6c7b20d188bc36836e622665c8eba42

IIRC that was due to MacOS passing some extra parameters in some cases.

ciao,
Torsten.
nop head
2018-09-25 22:42:39 UTC
Permalink
Doesn't this fix that problem?
https://github.com/openscad/openscad/blob/master/src/openscad.cc#L846. I
think it came later.

I have never known any other program accept random parameters silently. It
it needs to on a Mac it should be Mac specific.
Post by Torsten Paul
Post by nop head
Anybody know why allow_unregistered was used?
https://github.com/openscad/openscad/commit/752f35eab6c7b20d
188bc36836e622665c8eba42
IIRC that was due to MacOS passing some extra parameters in some cases.
ciao,
Torsten.
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
nop head
2018-09-26 08:03:42 UTC
Permalink
This PR <https://github.com/openscad/openscad/pull/2107> added the psn
argument for MAC. If that is the only extra parameter that OSX adds then we
can remove allow_unregistered().
Doesn't this fix that problem? https://github.com/openscad/
openscad/blob/master/src/openscad.cc#L846. I think it came later.
I have never known any other program accept random parameters silently. It
it needs to on a Mac it should be Mac specific.
Post by Torsten Paul
Post by nop head
Anybody know why allow_unregistered was used?
https://github.com/openscad/openscad/commit/752f35eab6c7b20d
188bc36836e622665c8eba42
IIRC that was due to MacOS passing some extra parameters in some cases.
ciao,
Torsten.
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Loading...