From 8ca4eb0a1561cdd3ccd92d797cc744b6f8b0ea8d Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Wed, 27 Jan 2010 14:16:37 +1000 Subject: Add support for 'file copy' --- jim-file.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'jim-file.c') diff --git a/jim-file.c b/jim-file.c index 9a2046c..e89f771 100644 --- a/jim-file.c +++ b/jim-file.c @@ -436,6 +436,20 @@ static int file_cmd_mtime(Jim_Interp *interp, int argc, Jim_Obj *const *argv) return JIM_OK; } +static int file_cmd_copy(Jim_Interp *interp, int argc, Jim_Obj *const *argv) +{ + Jim_Obj *new_argv[4]; + int i; + + new_argv[0] = Jim_NewStringObj(interp, "_file_copy", -1); + for (i = 0; i < argc; i++) { + new_argv[i + 1] = argv[i]; + } + + /* Note that Jim_EvalObjVector() will incr then decr ref count of new_argv[0] */ + return Jim_EvalObjVector(interp, argc + 1, new_argv); +} + static int file_cmd_size(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { struct stat sb; @@ -547,6 +561,13 @@ static const jim_subcmd_type command_table[] = { .maxargs = 1, .description = "Last modification time" }, + { .cmd = "copy", + .args = "?-force? source dest", + .function = file_cmd_copy, + .minargs = 2, + .maxargs = 3, + .description = "Copy source file to destination file" + }, { .cmd = "dirname", .args = "name", .function = file_cmd_dirname, -- cgit v1.1