From 1eb533afb379ac9addb9205bf25e32cdc9442e93 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 27 Feb 2015 18:31:24 +0100 Subject: options: handle choice -> flag fallback automatically In the past it happened quite often that flag options (yes/no) were changed to choice options (yes/no/some more). The problem with this was that while flag options don't need a parameter, this wasn't the case with choice options. A hack was introduced to compensate for this: setting M_OPT_OPTIONAL_PARAM on the option, and an empty string ("") was added as choice, so that the choice could be used like a flag. So, for example, "--mute" would set the choice "". Fix this by 1. not requiring a parameter if there's a "yes" choice, and 2. redirect an empty parameter to "yes". The effect is that a choice option with the choices ["yes", "no"] is pretty much equivalent to a flag option. --- options/m_option.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'options/m_option.h') diff --git a/options/m_option.h b/options/m_option.h index c05e2d760c..c26d1b3529 100644 --- a/options/m_option.h +++ b/options/m_option.h @@ -358,9 +358,6 @@ struct m_option { // The option should be set during command line pre-parsing #define M_OPT_PRE_PARSE (1 << 6) -// See M_OPT_TYPE_OPTIONAL_PARAM. -#define M_OPT_OPTIONAL_PARAM (1 << 10) - // The option expects a file name (or a list of file names) #define M_OPT_FILE (1 << 11) -- cgit v1.2.3