FreeCalypso > hg > freecalypso-tools
comparison rvinterf/etmsync/fileio.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 | e7502631a0f9 |
children | e6fe9d25377a |
comparison
equal
deleted
inserted
replaced
591:adcb617e6a92 | 592:a0754c98fc2b |
---|---|
397 else { | 397 else { |
398 printf("error: %s exists and is not a directory\n", pathname); | 398 printf("error: %s exists and is not a directory\n", pathname); |
399 return(ERROR_TARGET); | 399 return(ERROR_TARGET); |
400 } | 400 } |
401 } | 401 } |
402 | |
403 do_ffs_remove(pathname, minusf_mode) | |
404 char *pathname; | |
405 { | |
406 u_char cmdpkt[MAX_PKT_TO_TARGET], *dp; | |
407 int rc, slen; | |
408 | |
409 slen = strlen(pathname); | |
410 if (slen >= TMFFS_STRING_SIZE) { | |
411 printf("error: pathname arg exceeds string length limit\n"); | |
412 return(ERROR_USAGE); | |
413 } | |
414 dp = cmdpkt + 1; | |
415 *dp++ = ETM_FFS2; | |
416 *dp++ = TMFFS_REMOVE; | |
417 *dp++ = slen + 1; | |
418 strcpy(dp, pathname); | |
419 dp += slen + 1; | |
420 rc = etm_pkt_exch(cmdpkt, dp - cmdpkt - 1); | |
421 if (rc) | |
422 return(rc); | |
423 if (rvi_msg_len != 5) { | |
424 printf("error: TMFFS_REMOVE response has wrong length\n"); | |
425 return(ERROR_TARGET); | |
426 } | |
427 if (!rvi_msg[3]) /* success */ | |
428 return(0); | |
429 if (minusf_mode && rvi_msg[3] == TMFFS_ERR_NOTFOUND) | |
430 return(0); /* treat as OK */ | |
431 report_ffs_err("ffs_remove", rvi_msg[3]); | |
432 return(ERROR_TARGET); | |
433 } |