From 3dbe44fc070dafb1aadfb8c299afe5f82a617f77 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 2 Mar 2009 11:06:05 +0000 Subject: Minor cosmetics: fix indentation git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28792 b3059339-0415-0410-9bf9-f77b7e298cf2 --- m_option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'm_option.c') diff --git a/m_option.c b/m_option.c index 1991bb4a56..e1b2ecdc88 100644 --- a/m_option.c +++ b/m_option.c @@ -146,7 +146,7 @@ static int parse_int(const m_option_t* opt,const char *name, char *param, void* tmp_int = strtol(param, &endptr, 10); if (*endptr) - tmp_int = strtol(param, &endptr, 0); + tmp_int = strtol(param, &endptr, 0); if (*endptr) { mp_msg(MSGT_CFGPARSER, MSGL_ERR, "The %s option must be an integer: %s\n",name, param); return M_OPT_INVALID; -- cgit v1.2.3 From b9102d0b06e8f7cd9c0c4d762a09af3bdf292a19 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 2 Mar 2009 11:10:11 +0000 Subject: Use strtoll in parse_int to avoid discrepancies between 32 and 64 bit systems. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28793 b3059339-0415-0410-9bf9-f77b7e298cf2 --- m_option.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'm_option.c') diff --git a/m_option.c b/m_option.c index e1b2ecdc88..80dc4c0e9c 100644 --- a/m_option.c +++ b/m_option.c @@ -137,16 +137,16 @@ const m_option_type_t m_option_type_flag = { // Integer static int parse_int(const m_option_t* opt,const char *name, char *param, void* dst, int src) { - long tmp_int; + long long tmp_int; char *endptr; src = 0; if (param == NULL) return M_OPT_MISSING_PARAM; - tmp_int = strtol(param, &endptr, 10); + tmp_int = strtoll(param, &endptr, 10); if (*endptr) - tmp_int = strtol(param, &endptr, 0); + tmp_int = strtoll(param, &endptr, 0); if (*endptr) { mp_msg(MSGT_CFGPARSER, MSGL_ERR, "The %s option must be an integer: %s\n",name, param); return M_OPT_INVALID; -- cgit v1.2.3 From 39bb720ef8418d1c0db87b773f5467b16b395d96 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 2 Mar 2009 11:17:50 +0000 Subject: Add a 64 bit integer type to the suboption parser. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28794 b3059339-0415-0410-9bf9-f77b7e298cf2 --- m_option.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'm_option.c') diff --git a/m_option.c b/m_option.c index 80dc4c0e9c..71ad21651c 100644 --- a/m_option.c +++ b/m_option.c @@ -162,13 +162,20 @@ static int parse_int(const m_option_t* opt,const char *name, char *param, void* return M_OPT_OUT_OF_RANGE; } - if(dst) VAL(dst) = tmp_int; + if(dst) { + if (opt->type->size == sizeof(int64_t)) + *(int64_t *)dst = tmp_int; + else + VAL(dst) = tmp_int; + } return 1; } static char* print_int(const m_option_t* opt, const void* val) { opt = NULL; + if (opt->type->size == sizeof(int64_t)) + return dup_printf("%"PRId64, *(const int64_t *)val); return dup_printf("%d",VAL(val)); } @@ -185,6 +192,19 @@ const m_option_type_t m_option_type_int = { NULL }; +const m_option_type_t m_option_type_int64 = { + "Integer64", + "", + sizeof(int64_t), + 0, + parse_int, + print_int, + copy_opt, + copy_opt, + NULL, + NULL +}; + // Float #undef VAL -- cgit v1.2.3 From 2e1f8e367040c2d81734b7a555b1121806305dc6 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 3 Mar 2009 18:12:03 +0000 Subject: 100l, remove a pointless opt = NULL assignment that made print_int crash since r28794 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28803 b3059339-0415-0410-9bf9-f77b7e298cf2 --- m_option.c | 1 - 1 file changed, 1 deletion(-) (limited to 'm_option.c') diff --git a/m_option.c b/m_option.c index 71ad21651c..8504f25219 100644 --- a/m_option.c +++ b/m_option.c @@ -173,7 +173,6 @@ static int parse_int(const m_option_t* opt,const char *name, char *param, void* } static char* print_int(const m_option_t* opt, const void* val) { - opt = NULL; if (opt->type->size == sizeof(int64_t)) return dup_printf("%"PRId64, *(const int64_t *)val); return dup_printf("%d",VAL(val)); -- cgit v1.2.3