FreeCalypso > hg > freecalypso-tools
view librftab/rdcommon.c @ 718:098fea21ba13
doc/Host-tools-overview: tiffs-mkfs description updated
The first version of tiffs-mkfs did not include a journal file in the created
FFS, expecting the firmware to create it on first boot. All historical
firmwares prior to a recent FC fix (2020-05) contain a bug in that code path,
thus images made with the first version of tiffs-mkfs were only acceptable to
very recent FC firmwares. tiffs-mkfs has now been extended to include an empty
journal in the created FFS, thus the restriction of working with recent fw only
has been lifted.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 23 Aug 2020 04:55:02 +0000 |
parents | a0f79bba0ad8 |
children |
line wrap: on
line source
/* * This C file is not a compilation unit in itself, but is the common piece * (a set of static variables and functions) included in the librftab modules * responsible for reading different kinds of ASCII tables. */ #define MAX_FIELDS_PER_LINE 64 static char *filename; static FILE *rdfile; static unsigned lineno; static char linebuf[256], *line_fields[MAX_FIELDS_PER_LINE]; static unsigned line_nfields, line_field_ptr; static int read_line() { char *cp; if (!fgets(linebuf, sizeof linebuf, rdfile)) return(0); lineno++; cp = linebuf; for (line_nfields = 0; ; ) { while (isspace(*cp)) cp++; if (*cp == '\0' || *cp == '#') break; if (line_nfields >= MAX_FIELDS_PER_LINE) { printf("%s line %d: too many fields on one line\n", filename, lineno); return(-1); } line_fields[line_nfields++] = cp; while (*cp && !isspace(*cp)) cp++; if (*cp) *cp++ = '\0'; } return(1); } static get_field(retp) char **retp; { int rc; if (line_field_ptr < line_nfields) { *retp = line_fields[line_field_ptr++]; return(1); } do { rc = read_line(); if (rc <= 0) return(rc); } while (!line_nfields); *retp = line_fields[0]; line_field_ptr = 1; return(1); }