FreeCalypso > hg > fc-pcsc-tools
annotate simtool/script.c @ 219:ac41c42ce806
scripts/fcsim1-defprog created
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 07 Mar 2021 20:24:05 +0000 | 
| parents | 9c10afbb745a | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * This module implements the exec command, which is our scripting facility. | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 #include <stdio.h> | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 #include <stdlib.h> | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 #include <string.h> | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 #include <strings.h> | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | 
| 
130
 
9c10afbb745a
fc-simtool: search added to file-reading commands
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
1 
diff
changeset
 | 
10 extern FILE *open_script_input_file(); | 
| 
 
9c10afbb745a
fc-simtool: search added to file-reading commands
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
1 
diff
changeset
 | 
11 | 
| 
1
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 cmd_exec(argc, argv) | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 char **argv; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 { | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 FILE *f; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 char linebuf[512], *cp; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 int lineno, retval = 0; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | 
| 
130
 
9c10afbb745a
fc-simtool: search added to file-reading commands
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
1 
diff
changeset
 | 
19 f = open_script_input_file(argv[1]); | 
| 
1
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 if (!f) { | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 perror(argv[1]); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 return(-1); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 } | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 for (lineno = 1; fgets(linebuf, sizeof linebuf, f); lineno++) { | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 cp = index(linebuf, '\n'); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 if (!cp) { | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 fprintf(stderr, "%s line %d: missing newline\n", | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 argv[1], lineno); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 fclose(f); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 return(-1); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 } | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 *cp = '\0'; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 retval = simtool_dispatch_cmd(linebuf, 1); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 if (retval) | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 break; | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 } | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 fclose(f); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 return(retval); | 
| 
 
2071b28cd0c7
simtool: first refactored version
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 } | 
