add floating point support

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7022 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1999-09-24 12:59:53 +00:00
parent 316b354de3
commit 5486efe053
2 changed files with 25 additions and 3 deletions

View File

@@ -70,9 +70,11 @@ print_arg (char *string, size_t len, int mdoc, int longp, struct getargs *arg)
if (arg->arg_help)
s = arg->arg_help;
else if (arg->type == arg_integer)
s = "number";
s = "integer";
else if (arg->type == arg_string)
s = "string";
else if (arg->type == arg_double)
s = "float";
else
s = "<undefined>";
@@ -383,6 +385,14 @@ arg_match_long(struct getargs *args, size_t num_args,
}
return ARG_ERR_BAD_ARG;
}
case arg_double:
{
double tmp;
if(sscanf(optarg + 1, "%lf", &tmp) != 1)
return ARG_ERR_BAD_ARG;
*(double*)current->value = tmp;
return 0;
}
default:
abort ();
}
@@ -443,6 +453,12 @@ getarg(struct getargs *args, size_t num_args,
}else if(args[k].type == arg_strings){
add_string((getarg_strings*)args[k].value, optarg);
goto out;
} else if(args[k].type == arg_double){
double tmp;
if(sscanf(optarg, "%lf", &tmp) != 1)
return ARG_ERR_BAD_ARG;
*(double*)args[k].value = tmp;
goto out;
}
return ARG_ERR_BAD_ARG;
}