char *get_rtapi_param(const char *flavor, const char *param)
{
    char *val;
    char buf[RTAPI_NAME_LEN+8];    // strlen("flavor_") + RTAPI_NAME_LEN + 1

    // Open rtapi_inifile if it hasn't been already
    check_rtapi_config_open();

    sprintf(buf, "flavor_%s", flavor);
    val = (char *) iniFind(rtapi_inifile, param, buf);

    if (val==NULL)
	val = (char *) iniFind(rtapi_inifile, param, "global");

    return val;
}
Exemple #2
0
int main(int argc, char *argv[])
{
  int t;
  char _variable[INIFILE_MAX_LINELEN] = "";
  char *variable = 0;
  char _section[INIFILE_MAX_LINELEN] = "";
  char *section = 0;
  char INIFILE[256] = "emc.ini";
  FILE *fp;
  const char *inistring;

  /* process command line args, indexing argv[] from [1] */
  for (t = 1; t < argc; t++) {
    if (!strcmp(argv[t], "-ini")) {
      if (t == argc - 1) {
        /* no arg following -ini, so abort */
        fprintf(stderr,
                "%s: ini file not specified after -ini\n",
                argv[0]);
        exit(1);
      }
      else {
        strcpy(INIFILE, argv[t+1]);
        t++;            /* step over following arg */
      }
    }
    else if (!strcmp(argv[t], "-var")) {
      if (t == argc - 1) {
        /* no arg following -var, so abort */
        fprintf(stderr,
                "%s: variable name not specified after -var\n",
                argv[0]);
        exit(1);
      }
      else {
        strcpy(_variable, argv[t+1]);
        variable = _variable;
        t++;            /* step over following arg */
      }
    }
    else if (!strcmp(argv[t], "-sec")) {
      if (t == argc - 1) {
        /* no arg following -sec, so abort */
        fprintf(stderr,
                "%s: section name not specified after -sec\n",
                argv[0]);
        exit(1);
      }
      else {
        strcpy(_section, argv[t+1]);
        section = _section;
        t++;            /* step over following arg */
      }
    }
    else {
      /* invalid argument */
      fprintf(stderr,
              "%s: -var <variable> {-sec <section>} {<-ini inifile>}\n",
              argv[0]);
      exit(1);
    }
  }

  /* check that variable was supplied */
  if (0 == variable) {
    fprintf(stderr,
            "%s: no variable supplied\n",
            argv[0]);
    exit(1);
  }

  /* open the inifile */
  if (NULL == (fp = fopen(INIFILE, "r"))) {
    fprintf(stderr,
            "%s: can't open %s\n",
            argv[0], INIFILE);
    exit(1);
  }

  inistring = iniFind(fp, variable, section);
  if (NULL != inistring) {
    printf("%s\n", inistring);
  }

  fclose(fp);

  exit(0);
}
Exemple #3
0
const char * Inifile::find(const char *tag, const char *section)
{
  return iniFind(fp, tag, section);
}