Example #1
0
void start_quip_with_menu(int argc, char **argv, Menu *initial_menu_p )
{
	Query_Stack *qsp;

    assert( initial_menu_p != NULL );
    
    set_progname(argv[0]);
	first_menu = initial_menu_p;

	//debug |= CTX_DEBUG_MASK;
	//debug |= GETBUF_DEBUG_MASK;

	qsp=init_first_query_stack();	// reads stdin?

	init_builtins();
	init_variables(SINGLE_QSP_ARG);	// specify dynamic variables
	declare_functions(SINGLE_QSP_ARG);

	//PUSH_MENU(quip);
	PUSH_MENU_PTR(initial_menu_p);

	set_args(QSP_ARG  argc,argv);
	rcfile(qsp,argv[0]);

	// If we have commands to create a widget in the startup file,
	// we get an error, so don't call exec_quip until after the appDelegate
	// has started...
	
} // end start_quip_with_menu
int main()
{
	hismaxsize=10;
	readhistory();
	rcfile();
	while(1)	
	{
		control(0);
	}	
	
}
Example #3
0
void read_rcfile(double pb[]) {
  char line[100];
  ifstream rcfile(".cmasrc");
  double x;
  char *pn, *val;
  int i, valid;
  static char whitespace[] = " \t\n";
  static const char tagline[] = "# cmas 2.0";

  if (rcfile.bad())
    return;			// file doesn't exist? just use defaults

  rcfile.getline(line,sizeof(line));
  if (strcmp(line,tagline)) {
    cerr << "Corrupt .cmasrc file?  First line must be '" << tagline << "'" << endl;
    return;
  }

  while (rcfile.getline(line,sizeof(line))) {
    if (line[0] == 0)
      continue;
    if (line[0] == '#')
      continue;

    pn = strtok(line,whitespace);
    if (pn)
      val = strtok(NULL,whitespace);

    for (i = 0; i < NParams; i++)
      if (strcmp(ParamTable[i].name,pn) == 0) {
	valid = 1;
	if (!numberp(val))
	  valid = 0;
	else {
	  x = atof(val);
	  if ((x < ParamTable[i].min) || (x > ParamTable[i].max))
	    valid = 0;
	}
	break;
      }
    if (i < NParams)
      if (valid)
	pb[ParamTable[i].key] = x;
      else
	cerr << "Bad parameter value: " << pn << ", " << val << endl;
    else
      cerr << "Unknown parameter file entry: " << pn << "; ignored" << endl;
  }
}