diff options
| author | Harshavardhana <harsha@zresearch.com> | 2009-02-19 10:34:28 -0800 | 
|---|---|---|
| committer | Anand V. Avati <avati@amp.gluster.com> | 2009-02-21 21:14:23 +0530 | 
| commit | b5e0ee918fdff566e45bb255130b9efa6b8fb7b0 (patch) | |
| tree | 42691ef026458d74d2fee4dd89b4d52dd3c8a119 /libglusterfs/src | |
| parent | 9679f8db65de29a40f622c12c2cc538d70b052b2 (diff) | |
new function gf_string2double for float/double values
fixed warning
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 39 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 1 | 
2 files changed, 40 insertions, 0 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 616c7a8ce68..acac5e05281 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -796,6 +796,39 @@ _gf_string2uint (const char *str, unsigned int *n, int base)  }  static int  +_gf_string2double (const char *str, double *n) +{ +	double value     = 0.0; +	char   *tail     = NULL; +	int    old_errno = 0; +   +	if (str == NULL || n == NULL) { +		errno = EINVAL; +		return -1; +	} +   +	old_errno = errno; +	errno = 0; +	value = strtod (str, &tail); +   +	if (errno == ERANGE || errno == EINVAL)	{ +		return -1; +	} +   +	if (errno == 0)	{ +		errno = old_errno; +	} +   +	if (tail[0] != '\0') { +		return -1; +	} +   +	*n = value; +   +	return 0; +} + +static int   _gf_string2longlong (const char *str, long long *n, int base)  {  	long long value = 0; @@ -911,6 +944,12 @@ gf_string2uint (const char *str, unsigned int *n)  	return _gf_string2uint (str, n, 0);  } +int +gf_string2double (const char *str, double *n) +{ +	return _gf_string2double (str, n); +} +  int   gf_string2longlong (const char *str, long long *n)  { diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 2016b51ebcb..6c7390571cd 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -281,6 +281,7 @@ int gf_string2long (const char *str, long *n);  int gf_string2ulong (const char *str, unsigned long *n);  int gf_string2int (const char *str, int *n);  int gf_string2uint (const char *str, unsigned int *n); +int gf_string2double (const char *str, double *n);  int gf_string2longlong (const char *str, long long *n);  int gf_string2ulonglong (const char *str, unsigned long long *n);  | 
