Browse Source

Add helpers for inputting and demonstrating floats.

nfactor-troky
Con Kolivas 13 years ago
parent
commit
8b927af926
  1. 18
      ccan/opt/helpers.c
  2. 2
      ccan/opt/opt.h

18
ccan/opt/helpers.c

@ -69,6 +69,19 @@ char *opt_set_intval(const char *arg, int *i)
return err; return err;
} }
char *opt_set_floatval(const char *arg, float *f)
{
char *endp;
errno = 0;
*f = strtof(arg, &endp);
if (*endp || !arg[0])
return arg_bad("'%s' is not a number", arg);
if (errno)
return arg_bad("'%s' is out of range", arg);
return NULL;
}
char *opt_set_uintval(const char *arg, unsigned int *ui) char *opt_set_uintval(const char *arg, unsigned int *ui)
{ {
int i; int i;
@ -159,6 +172,11 @@ void opt_show_intval(char buf[OPT_SHOW_LEN], const int *i)
snprintf(buf, OPT_SHOW_LEN, "%i", *i); snprintf(buf, OPT_SHOW_LEN, "%i", *i);
} }
void opt_show_floatval(char buf[OPT_SHOW_LEN], const float *f)
{
snprintf(buf, OPT_SHOW_LEN, "%.1f", *f);
}
void opt_show_uintval(char buf[OPT_SHOW_LEN], const unsigned int *ui) void opt_show_uintval(char buf[OPT_SHOW_LEN], const unsigned int *ui)
{ {
snprintf(buf, OPT_SHOW_LEN, "%u", *ui); snprintf(buf, OPT_SHOW_LEN, "%u", *ui);

2
ccan/opt/opt.h

@ -272,6 +272,8 @@ void opt_show_charp(char buf[OPT_SHOW_LEN], char *const *p);
/* Set an integer value, various forms. Sets to 1 on arg == NULL. */ /* Set an integer value, various forms. Sets to 1 on arg == NULL. */
char *opt_set_intval(const char *arg, int *i); char *opt_set_intval(const char *arg, int *i);
void opt_show_intval(char buf[OPT_SHOW_LEN], const int *i); void opt_show_intval(char buf[OPT_SHOW_LEN], const int *i);
char *opt_set_floatval(const char *arg, float *f);
void opt_show_floatval(char buf[OPT_SHOW_LEN], const float *f);
char *opt_set_uintval(const char *arg, unsigned int *ui); char *opt_set_uintval(const char *arg, unsigned int *ui);
void opt_show_uintval(char buf[OPT_SHOW_LEN], const unsigned int *ui); void opt_show_uintval(char buf[OPT_SHOW_LEN], const unsigned int *ui);
char *opt_set_longval(const char *arg, long *l); char *opt_set_longval(const char *arg, long *l);

Loading…
Cancel
Save