Ticket #156 (closed task: fixed)

Opened 5 years ago

Last modified 3 months ago

new attribute in Option struct to allow conditional options requirement

Reported by: martinl Owned by: grass-dev@…
Priority: major Milestone: 7.0.0
Component: Default Version: svn-trunk
Keywords: parser, required, conditional Cc:
Platform: Unspecified CPU: Unspecified

Description

In some cases "naturally" required parameter cannot be mark as "required" because there are flags/parameters which don't require that parameter at all. E.g. r.in.gdal doesn't require for 'f' flag (list supported formats) any other parameter. Otherwise 'input' is required. To mark 'input' as required for GRASS parser is counter-productive, user would be forced to type

 r.in.gdal -f in=dummy

instead of

 r.in.gdal -f

On the other hand for GUI dialogs is more reasonable to mark visually 'input' as required (for most users can be confusing to see 'input' as optional when importing data into GRASS). Currently there is not so nice workaround for that.

 opt->guisection="Required";

which puts given parameter to 'Required' tab in GUI dialog.

This can be solved with a new attribute in Option struct which tells the parser not to worry about testing all required options=. E.g.

 ...
 input_opt->required=YES;
 ...

 ...
 f_flag->suppress_required=YES;
 ...

Martin

Change History

follow-up: ↓ 2   Changed 5 years ago by hamish

Martin:

This can be solved with a new attribute in Option struct which tells the parser not to worry about testing all required options=

..

f_flag->suppress_required=YES;

i.e. a new attribute in the Flag struct.

other (shorter) ideas what to call it.....

flag->runandexit
flag->reqnotreq
flag->skip_req
flag->ignore_req
...

Hamish

in reply to: ↑ 1   Changed 5 years ago by glynn

Replying to hamish:

f_flag->suppress_required=YES;

other (shorter) ideas what to call it.....

f_flag->modal

I.e. the flag indicates an alternate mode of execution, where the normal rules about required options don't apply.

  Changed 3 months ago by martinl

  • status changed from new to closed
  • platform set to Unspecified
  • resolution set to fixed
  • cpu set to Unspecified

Solved, closing.

Note: See TracTickets for help on using tickets.