diff -Naur orig/m_config.c main/m_config.c --- orig/m_config.c 2004-10-31 11:27:40.000000000 +0100 +++ main/m_config.c 2006-01-14 17:31:39.000000000 +0100 @@ -295,6 +295,9 @@ m_option_set(co->opt,co->opt->p,co->slots->data); co->flags |= M_CFG_OPT_SET; } + if (co->opt->flags & M_OPT_FORCE_EXIT) { + r = M_OPT_EXIT - 1; + } return r; } diff -Naur orig/m_option.h main/m_option.h --- orig/m_option.h 2006-01-01 02:19:24.000000000 +0100 +++ main/m_option.h 2006-01-14 17:31:53.000000000 +0100 @@ -159,6 +159,8 @@ #define M_OPT_NOSAVE (1<<5) // Emulate old behaviour by pushing the option only if it was set by the user #define M_OPT_OLD (1<<6) +// Must exit from the program, needed when we can't pass M_OPT_EXIT +#define M_OPT_FORCE_EXIT (1<<7) // FIXME: backward compatibility #define CONF_MIN M_OPT_MIN