diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-27 14:16:37 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:46 +1000 |
commit | 8ca4eb0a1561cdd3ccd92d797cc744b6f8b0ea8d (patch) | |
tree | 85a3de8ee319dbc2b1a4f89d06e4da5c801b9451 /jim-file.c | |
parent | 88694720353f9c0ad65f8e2ce31d5e1b645474d6 (diff) | |
download | jimtcl-8ca4eb0a1561cdd3ccd92d797cc744b6f8b0ea8d.zip jimtcl-8ca4eb0a1561cdd3ccd92d797cc744b6f8b0ea8d.tar.gz jimtcl-8ca4eb0a1561cdd3ccd92d797cc744b6f8b0ea8d.tar.bz2 |
Add support for 'file copy'
Diffstat (limited to 'jim-file.c')
-rw-r--r-- | jim-file.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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, |