FreeCalypso > hg > freecalypso-hwlab
annotate uicc/script.c @ 151:d515cfbb3f39
fc-simtool: hex string parsing: add minimum length parameter
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 07 Feb 2021 00:18:30 +0000 | 
| parents | f691a19f191d | 
| children | 
| rev | line source | 
|---|---|
| 130 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * This module implements the exec command, which is our scripting facility. | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 */ | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <stdio.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <stdlib.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <string.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <strings.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 cmd_exec(argc, argv) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 char **argv; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 FILE *f; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 char linebuf[512], *cp; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 int lineno, retval = 0; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 f = fopen(argv[1], "r"); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 if (!f) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 perror(argv[1]); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 return(-1); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 for (lineno = 1; fgets(linebuf, sizeof linebuf, f); lineno++) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 cp = index(linebuf, '\n'); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 if (!cp) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 fprintf(stderr, "%s line %d: missing newline\n", | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 argv[1], lineno); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 fclose(f); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 return(-1); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 *cp = '\0'; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 retval = simtool_dispatch_cmd(linebuf, 1); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 if (retval) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 break; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 fclose(f); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 return(retval); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 } | 
