From: Arun Prakash Jana Date: Wed, 30 Jan 2019 15:29:39 +0000 (+0530) Subject: Add an api to check if copying possible X-Git-Tag: v2.3~58 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=2324e8e3e75c4aff1672afb3cbc377de1977e71c;p=nnn.git Add an api to check if copying possible --- diff --git a/src/nnn.c b/src/nnn.c index 8d6324e2..c6b26c0a 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -855,6 +855,29 @@ static bool showcplist() return TRUE; } +static bool cpsafe() +{ + /* Fail if copy file path not generated */ + if (!g_cppath[0]) { + printmsg("copy file not found"); + return FALSE; + } + + /* Warn if selection not completed */ + if (cfg.copymode) { + printmsg("finish selection first"); + return FALSE; + } + + /* Fail if copy file path isn't accessible */ + if (access(g_cppath, R_OK) == -1) { + printmsg("empty selection list"); + return FALSE; + } + + return TRUE; +} + /* Initialize curses mode */ static bool initcurses(void) { @@ -3423,23 +3446,8 @@ nochange: case SEL_MV: case SEL_RMMUL: { - /* Fail if copy file path not generated */ - if (!g_cppath[0]) { - printmsg("copy file not found"); - goto nochange; - } - - /* Warn if selection not completed */ - if (cfg.copymode) { - printmsg("finish selection first"); + if (!cpsafe()) goto nochange; - } - - /* Fail if copy file path isn't accessible */ - if (access(g_cppath, R_OK) == -1) { - printmsg("empty selection list"); - goto nochange; - } if (sel == SEL_CP) { snprintf(g_buf, CMD_LEN_MAX,