static int getOptions(const struct driver * mod, int * argcp, char *** argvp) { newtComponent form, listbox, text, okay, answer; char buf[2000]; if (!mod->options) { (*argcp)++; (*argvp) = realloc(*argvp, (*argcp + 1) * sizeof(char *)); (*argvp)[(*argcp) - 1] = mod->defaultOptions; (*argvp)[(*argcp)] = NULL; if (!mod->defaultOptions) (*argcp)--; return 0; } if (mod->options == unknownOptions) { sprintf(buf, "In some cases, the %s driver needs to have extra " "information to work properly, although it normally works " "fine without any. Would you like to specify extra options " "for it or allow the driver to probe your machine for the " "information it needs. Occasionally, probing will hang a " "computer, but it should not harm one beyond that.", mod->name); } else { sprintf(buf, "In many cases, the %s driver needs to be provided with " "extra information on your hardware to work. If you prefer, " "some common values for those parameters will be tried. " "This process can hang a machine however, although it should " "not cause any damage to it.", mod->name); } newtOpenWindow(10, 5, 60, 15, "Module Parameters"); text = newtTextbox(1, 1, 55, 7, NEWT_TEXTBOX_WRAP); newtTextboxSetText(text, buf); okay = newtButton(20, 10, "Ok"); form = newtForm(NULL, NULL, 0); newtFormAddComponents(form, text, okay, NULL); answer = newtRunForm(form); newtFinished(); exit(1); return 0; }