From 96f931adf75967dc86fbf3ee21517e539d0a6e50 Mon Sep 17 00:00:00 2001
From: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Date: Sat, 4 Jun 2011 23:54:19 +0200
Subject: [PATCH] cmdutils: change the signature of the function argument in
 parse_options()

This is required for a pending simplification.
---
 cmdutils.c | 8 +++++---
 cmdutils.h | 2 +-
 ffmpeg.c   | 3 ++-
 ffplay.c   | 3 ++-
 ffprobe.c  | 3 ++-
 5 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/cmdutils.c b/cmdutils.c
index 2bc6b7417f9..2bf4e03ac85 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -217,7 +217,7 @@ static inline void prepare_app_arguments(int *argc_ptr, char ***argv_ptr)
 #endif /* WIN32 && !__MINGW32CE__ */
 
 void parse_options(int argc, char **argv, const OptionDef *options,
-                   void (* parse_arg_function)(const char*))
+                   int (* parse_arg_function)(const char *opt, const char *arg))
 {
     const char *opt, *arg;
     int optindex, handleoptions=1;
@@ -284,8 +284,10 @@ unknown_opt:
             if(po->flags & OPT_EXIT)
                 exit(0);
         } else {
-            if (parse_arg_function)
-                parse_arg_function(opt);
+            if (parse_arg_function) {
+                if (parse_arg_function(NULL, opt) < 0)
+                    exit(1);
+            }
         }
     }
 }
diff --git a/cmdutils.h b/cmdutils.h
index eca98a3cf48..171ef3cb5b7 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -151,7 +151,7 @@ void show_help_options(const OptionDef *options, const char *msg, int mask, int
  * not have to be processed.
  */
 void parse_options(int argc, char **argv, const OptionDef *options,
-                   void (* parse_arg_function)(const char*));
+                   int (* parse_arg_function)(const char *opt, const char *arg));
 
 void set_context_opts(void *ctx, void *opts_ctx, int flags, AVCodec *codec);
 
diff --git a/ffmpeg.c b/ffmpeg.c
index 99546f7ae0c..3cfd5ca0609 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3855,7 +3855,7 @@ static int opt_streamid(const char *opt, const char *arg)
     return 0;
 }
 
-static void opt_output_file(const char *filename)
+static int opt_output_file(const char *opt, const char *filename)
 {
     AVFormatContext *oc;
     int err, use_video, use_audio, use_subtitle, use_data;
@@ -3984,6 +3984,7 @@ static void opt_output_file(const char *filename)
     av_freep(&forced_key_frames);
     uninit_opts();
     init_opts();
+    return 0;
 }
 
 /* same option as mencoder */
diff --git a/ffplay.c b/ffplay.c
index 4139afb7cc3..48f5f144d74 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -3006,7 +3006,7 @@ static void show_help(void)
            );
 }
 
-static void opt_input_file(const char *filename)
+static int opt_input_file(const char *opt, const char *filename)
 {
     if (input_filename) {
         fprintf(stderr, "Argument '%s' provided as input filename, but '%s' was already specified.\n",
@@ -3016,6 +3016,7 @@ static void opt_input_file(const char *filename)
     if (!strcmp(filename, "-"))
         filename = "pipe:";
     input_filename = filename;
+    return 0;
 }
 
 /* Called from the main */
diff --git a/ffprobe.c b/ffprobe.c
index 57e2a9bc06b..44252e59daf 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -339,7 +339,7 @@ static int opt_format(const char *opt, const char *arg)
     return 0;
 }
 
-static void opt_input_file(const char *arg)
+static int opt_input_file(const char *opt, const char *arg)
 {
     if (input_filename) {
         fprintf(stderr, "Argument '%s' provided as input filename, but '%s' was already specified.\n",
@@ -349,6 +349,7 @@ static void opt_input_file(const char *arg)
     if (!strcmp(arg, "-"))
         arg = "pipe:";
     input_filename = arg;
+    return 0;
 }
 
 static void show_help(void)
-- 
GitLab