1 #include <../../nrnconf.h>
56 int hoc_ired(
const char* prompt,
int defalt,
int min,
int max) {
57 return ((
int)
hoc_xred(prompt, (
double) defalt, (
double) min, (
double) max));
65 double hoc_xred(
const char* prompt,
double defalt,
double min,
double max) {
70 IGNORE(fprintf(stderr,
"%s (%-.5g)", prompt, defalt));
72 if (gets(istr) !=
NULL) {
75 if (fgets(istr, 79, stdin) !=
NULL) {
77 if (istr[0] ==
'\n') {
81 if (sscanf(istr,
"%lf%1s", &input,
c) == 1)
82 if (sscanf(istr,
"%lf", &input) == 1)
84 if (input >= min && input <= max)
86 IGNORE(fprintf(stderr,
"must be > %-.5g and < %-.5g\n", min, max));
92 IGNORE(fprintf(stderr,
"input error\n"));
106 char defalt[80], **pdefalt;
133 int hoc_sred(
const char* prompt,
char* defalt,
char* charlist) {
134 char istr[80],
c[2], instring[40], *
result;
137 IGNORE(fprintf(stderr,
"%s (%s)", prompt, defalt));
139 if (gets(istr) !=
NULL) {
142 if (fgets(istr, 79, stdin) !=
NULL) {
144 if (defalt[0] !=
'\0' && istr[0] ==
'\n') {
145 strcpy(istr, defalt);
147 istr[strlen(istr) - 1] =
'\0';
149 if (sscanf(istr,
"%s%s", instring,
c) == 1) {
150 if (charlist ==
NULL) {
151 strcpy(defalt, instring);
154 if ((
result = strstr(charlist, instring)) !=
NULL) {
155 strcpy(defalt, instring);
156 return (
result - charlist);
159 IGNORE(fprintf(stderr,
"input must be a substring of <<%s>>\n", charlist));
164 IGNORE(fprintf(stderr,
"input error\n"));
int hoc_ired(const char *prompt, int defalt, int min, int max)
double hoc_xred(const char *prompt, double defalt, double min, double max)
void hoc_assign_str(char **cpp, const char *buf)
int hoc_sred(const char *prompt, char *defalt, char *charlist)
char ** hoc_pgargstr(int narg)