Make -list-options work in both MPlayer and MEncoder.
authoralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>
Tue, 24 Jan 2006 11:34:24 +0000 (11:34 +0000)
committeralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>
Tue, 24 Jan 2006 11:34:24 +0000 (11:34 +0000)
git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@17473 b3059339-0415-0410-9bf9-f77b7e298cf2

DOCS/man/en/mplayer.1
m_config.c
parser-mpcmd.c

index 6c92e19..9ea8141 100644 (file)
@@ -573,6 +573,10 @@ instead of the builtin codecs.conf.
 Specify configuration file to be parsed after the default ones.
 .
 .TP
+.B \-list-options
+Prints all available options.
+.
+.TP
 .B \-msglevel <all=<level>:<module>=<level>:...>
 Control verbosity directly for each module.
 The 'all' module changes the verbosity of all the modules not
@@ -812,10 +816,6 @@ set it to 2 for Linux or 1024 for Windows.
 Specifies a configuration file for LIRC (default: ~/\:.lircrc).
 .
 .TP
-.B \-list-options
-Prints all available options.
-.
-.TP
 .B \-loop <number>
 Loops movie playback <number> times.
 0 means forever.
index 78ba5a3..4973f5a 100644 (file)
@@ -27,6 +27,9 @@ show_profile(m_option_t *opt, char* name, char *param);
 static void
 m_config_add_option(m_config_t *config, m_option_t *arg, char* prefix);
 
+static int
+list_options(m_option_t *opt, char* name, char *param);
+
 m_config_t*
 m_config_new(void) {
   m_config_t* config;
@@ -35,6 +38,7 @@ m_config_new(void) {
   static m_option_t ref_opts[] = {
     { "profile", NULL, &profile_opt_type, CONF_NOSAVE, 0, 0, NULL },
     { "show-profile", show_profile, CONF_TYPE_PRINT_FUNC, CONF_NOCFG, 0, 0, NULL },
+    { "list-options", list_options, CONF_TYPE_PRINT_FUNC, CONF_NOCFG, 0, 0, NULL },
     { NULL, NULL, NULL, 0, 0, 0, NULL }
   };
   int i;
@@ -576,3 +580,10 @@ show_profile(m_option_t *opt, char* name, char *param) {
   if(!config->profile_depth) mp_msg(MSGT_CFGPARSER, MSGL_INFO, "\n");
   return M_OPT_EXIT-1;
 }
+
+static int
+list_options(m_option_t *opt, char* name, char *param) {
+  m_config_t* config = opt->priv;
+  m_config_print_option_list(config);
+  return M_OPT_EXIT;
+}
index 67b579b..2eecb59 100644 (file)
@@ -136,11 +136,8 @@ m_config_parse_mp_command_line(m_config_t *config, int argc, char **argv)
 
        mp_msg(MSGT_CFGPARSER, MSGL_DBG3, "this_opt = option: %s\n", opt);
        // We handle here some specific option
-       if(strcasecmp(opt,"list-options") == 0) {
-         m_config_print_option_list(config);
-         exit(1);
-         // Loop option when it apply to a group
-       } else if(strcasecmp(opt,"loop") == 0 &&
+       // Loop option when it apply to a group
+       if(strcasecmp(opt,"loop") == 0 &&
                  (! last_entry || last_entry->child) ) {
          int l;
          char* end;