Skip to content
  • Michael Pyne's avatar
    Fix broken cmdline parsing when --stop-on-failure in use. · e743b5bb
    Michael Pyne authored
    As reported in bug 402509, as position of command line argument changes
    the module build list.
    
    What was happening was --stop-on-failure in particular could 'eat' the
    next command line argument, because even though it was manually
    specified as a 'flag' argument to Getopt::Long, the 'stop-on-failure'
    entry was then overridden in the function call to read options by
    including the options in ksb::BuildContext::defaultGlobalFlags.
    
    A coding error on my part caused this inclusion of options to treat the
    options as requiring string values instead of boolean flags. As a result
    Getopt::Long would read the next non-option value and assign it to the
    'stop-on-failure' result.
    
    Fixed by treating the included flags as boolean flags instead of string
    valued, and by ensuring that the two sources for cmdline options are
    fully disjoint. I also added a test that fails with the old code and
    works with the new.
    
    Fixes #8
    
    BUG:402509
    FIXED-IN:19.01
    e743b5bb