18 } |
18 } |
19 |
19 |
20 |
20 |
21 int main(int argc, char *argv[]) |
21 int main(int argc, char *argv[]) |
22 { |
22 { |
23 char **cmd_line = NULL, *cmd = NULL, *dcmd = NULL, *bcmd = NULL, *dname = NULL, *bname = NULL; |
23 char **cmd_line = NULL, *cmd = NULL, *dcmd = NULL, *dname = NULL; |
24 int i = 0; |
24 int i = 0; |
25 |
25 |
26 dcmd = strdup(argv[0]); dname = dirname(dcmd); |
26 dcmd = strdup(argv[0]); |
27 bcmd = strdup(argv[0]); bname = basename(bcmd); |
27 dname = dirname(dcmd); |
28 |
28 |
29 cmd_line = malloc(sizeof(char *) * (argc + 1)); |
29 cmd_line = malloc(sizeof(char *) * (argc + 1)); |
30 if (cmd_line == NULL) fail("Failed to allocate command line"); |
30 if (cmd_line == NULL) fail("Failed to allocate command line"); |
31 |
31 |
32 cmd = cmd_line[0]; |
32 cmd = cmd_line[0]; |
33 cmd = malloc(strlen(dname) + strlen(bname) + strlen("/lib/scripts/.run") + 1); |
33 cmd = malloc(strlen(dname) + strlen("/lib/scripts/Isabelle_app") + 1); |
34 if (cmd == NULL) fail("Failed to allocate command name"); |
34 if (cmd == NULL) fail("Failed to allocate command name"); |
35 sprintf(cmd, "%s/lib/scripts/%s.run", dname, bname); |
35 sprintf(cmd, "%s/lib/scripts/Isabelle_app", dname); |
36 |
36 |
37 for (i = 1; i < argc; i++) cmd_line[i] = argv[i]; |
37 for (i = 1; i < argc; i++) cmd_line[i] = argv[i]; |
38 |
38 |
39 cmd_line[argc] = NULL; |
39 cmd_line[argc] = NULL; |
40 |
40 |