FreeCalypso > hg > freecalypso-tools
comparison rvinterf/etmsync/fswrite.c @ 592:a0754c98fc2b
fc-fsio: rm -f mode implemented (ignore EFFS_NOTFOUND),
actual ffs_remove operation factored out into do_ffs_remove()
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 04 Feb 2020 03:36:08 +0000 |
parents | 8136fb5eb292 |
children |
comparison
equal
deleted
inserted
replaced
591:adcb617e6a92 | 592:a0754c98fc2b |
---|---|
27 } | 27 } |
28 | 28 |
29 cmd_delete(argc, argv) | 29 cmd_delete(argc, argv) |
30 char **argv; | 30 char **argv; |
31 { | 31 { |
32 u_char cmdpkt[MAX_PKT_TO_TARGET], *dp; | 32 char *pathname; |
33 int rc, slen; | 33 int minusf_mode; |
34 | 34 |
35 slen = strlen(argv[1]); | 35 if (argc == 2) { |
36 if (slen >= TMFFS_STRING_SIZE) { | 36 pathname = argv[1]; |
37 printf("error: pathname arg exceeds string length limit\n"); | 37 minusf_mode = 0; |
38 return(ERROR_USAGE); | 38 } else { |
39 if (strcmp(argv[1], "-f")) { | |
40 fprintf(stderr, "usage: rm [-f] ffs_pathname\n"); | |
41 return(ERROR_USAGE); | |
42 } | |
43 pathname = argv[2]; | |
44 minusf_mode = 1; | |
39 } | 45 } |
40 dp = cmdpkt + 1; | 46 return do_ffs_remove(pathname, minusf_mode); |
41 *dp++ = ETM_FFS2; | |
42 *dp++ = TMFFS_REMOVE; | |
43 *dp++ = slen + 1; | |
44 strcpy(dp, argv[1]); | |
45 dp += slen + 1; | |
46 rc = etm_pkt_exch(cmdpkt, dp - cmdpkt - 1); | |
47 if (rc) | |
48 return(rc); | |
49 if (rvi_msg_len != 5) { | |
50 printf("error: TMFFS_REMOVE response has wrong length\n"); | |
51 return(ERROR_TARGET); | |
52 } | |
53 if (rvi_msg[3]) { | |
54 report_ffs_err("ffs_remove", rvi_msg[3]); | |
55 return(ERROR_TARGET); | |
56 } | |
57 return(0); | |
58 } | 47 } |
59 | 48 |
60 hexdigit(c) | 49 hexdigit(c) |
61 { | 50 { |
62 if (isdigit(c)) | 51 if (isdigit(c)) |