FreeCalypso > hg > fc-pcsc-tools
annotate uicc/script.c @ 174:cc6a4b48dc2a
doc/Low-level-commands: readef extended
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 02 Mar 2021 04:34:05 +0000 | 
| parents | ede661d78730 | 
| children | 
| rev | line source | 
|---|---|
| 22 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * This module implements the exec command, which is our scripting facility. | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 */ | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <stdio.h> | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <stdlib.h> | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <string.h> | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <strings.h> | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | 
| 133 
ede661d78730
fc-uicc-tool: command shell features match fc-simtool
 Mychaela Falconia <falcon@freecalypso.org> parents: 
22diff
changeset | 10 extern FILE *open_script_input_file(); | 
| 
ede661d78730
fc-uicc-tool: command shell features match fc-simtool
 Mychaela Falconia <falcon@freecalypso.org> parents: 
22diff
changeset | 11 | 
| 22 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 cmd_exec(argc, argv) | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 char **argv; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 { | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 FILE *f; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 char linebuf[512], *cp; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 int lineno, retval = 0; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | 
| 133 
ede661d78730
fc-uicc-tool: command shell features match fc-simtool
 Mychaela Falconia <falcon@freecalypso.org> parents: 
22diff
changeset | 19 f = open_script_input_file(argv[1]); | 
| 22 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 if (!f) { | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 perror(argv[1]); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 return(-1); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 } | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 for (lineno = 1; fgets(linebuf, sizeof linebuf, f); lineno++) { | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 cp = index(linebuf, '\n'); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 if (!cp) { | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 fprintf(stderr, "%s line %d: missing newline\n", | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 argv[1], lineno); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 fclose(f); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 return(-1); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 } | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 *cp = '\0'; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 retval = simtool_dispatch_cmd(linebuf, 1); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 if (retval) | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 break; | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 } | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 fclose(f); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 return(retval); | 
| 
1b1468869ccf
new trimmed fc-uicc-tool is here
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 } | 
