/* reads the first character of file 'f' and skips an optional BOM mark in its beginning plus its first line if it starts with '#'. Returns true if it skipped the first line. In any case, '*cp' has the first "valid" character of the file (after the optional BOM and a first-line comment).  */
static int skipcomment(LoadF *lf, int *cp)
/* reads the first character of file 'f' and skips an optional BOM mark in its beginning plus its first line if it starts with '#'. Returns true if it skipped the first line. In any case, '*cp' has the first "valid" character of the file (after the optional BOM and a first-line comment).  */
static int skipcomment(LoadF *lf, int *cp)
{
    do {
      c = getc(lf->f);
    } while (c != EOF && c != '\n');
    *cp = getc(lf->f);
    return 1;
  }
  else return 0;
}