summaryrefslogtreecommitdiffstats
path: root/subopt-helper.c
diff options
context:
space:
mode:
authorjoey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-10 12:56:44 +0000
committerjoey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-10 12:56:44 +0000
commit326361b18e368e11f08c9ac1f05c4fc6d514f76e (patch)
tree10fdcb011143ef746d9b2a060ffe1d77ed4a1bb4 /subopt-helper.c
parentf60c6132c251758ccf5b981715e41d8dd0ea626a (diff)
downloadmpv-326361b18e368e11f08c9ac1f05c4fc6d514f76e.tar.bz2
mpv-326361b18e368e11f08c9ac1f05c4fc6d514f76e.tar.xz
support float arguments in subopt helper.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16721 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'subopt-helper.c')
-rw-r--r--subopt-helper.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/subopt-helper.c b/subopt-helper.c
index 0cf2299899..9a7332dc13 100644
--- a/subopt-helper.c
+++ b/subopt-helper.c
@@ -32,6 +32,7 @@
/* prototypes for argument parsing */
static char const * parse_int( char const * const str, int * const valp );
static char const * parse_str( char const * const str, strarg_t * const valp );
+static char const * parse_float( char const * const str, float * const valp );
/**
* \brief Try to parse all options in str and fail if it was not possible.
@@ -162,6 +163,10 @@ int subopt_parse( char const * const str, opt_t * opts )
}
break;
}
+ case OPT_ARG_FLOAT:
+ last = parse_float( &str[parse_pos],
+ (float *)opts[idx].valp );
+ break;
default:
assert( 0 && "Arg type of suboption doesn't exist!" );
last = NULL; // break parsing!
@@ -247,6 +252,20 @@ static char const * parse_int( char const * const str, int * const valp )
return endp;
}
+static char const * parse_float( char const * const str, float * const valp )
+{
+ char * endp;
+
+ assert( str && "parse_float(): str == NULL" );
+
+ *valp = strtof( str, &endp );
+
+ /* nothing was converted */
+ if ( str == endp ) { return NULL; }
+
+ return endp;
+}
+
#define QUOTE_CHAR '%'
static char const * parse_str( char const * str, strarg_t * const valp )
{