mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Single struct for patterns strings
This commit is contained in:
parent
c9f9ca32dd
commit
9c100f987c
42
src/nnn.c
42
src/nnn.c
|
@ -606,14 +606,22 @@ static char cp[] = "cp -iRp";
|
|||
static char mv[] = "mv -i";
|
||||
#endif
|
||||
|
||||
static const char cpmvformatcmd[] = "sed -i 's|^\\(\\(.*/\\)\\(.*\\)$\\)|#\\1\\n\\3|' %s";
|
||||
static const char cpmvrenamecmd[] = "sed 's|^\\([^#][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' "
|
||||
"%s | tr '\\n' '\\0' | xargs -0 -n2 sh -c '%s \"$0\" \"$@\" "
|
||||
"< /dev/tty'";
|
||||
static const char batchrenamecmd[] = "paste -d'\n' %s %s | sed 'N; /^\\(.*\\)\\n\\1$/!p;d' | "
|
||||
"tr '\n' '\\0' | xargs -0 -n2 mv 2>/dev/null";
|
||||
static const char archive_regex[] = "\\.(bz|bz2|gz|tar|taz|tbz|tbz2|tgz|z|zip)$";
|
||||
static const char replaceprefixcmd[] = "sed -i 's|^%s\\(.*\\)$|%s\\1|' %s";
|
||||
/* Patterns */
|
||||
#define P_CPMVFMT 0
|
||||
#define P_CPMVRNM 1
|
||||
#define P_BATCHRNM 2
|
||||
#define P_ARCHIVE 3
|
||||
#define P_REPLACE 4
|
||||
|
||||
static const char * const patterns[] = {
|
||||
"sed -i 's|^\\(\\(.*/\\)\\(.*\\)$\\)|#\\1\\n\\3|' %s",
|
||||
"sed 's|^\\([^#][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' "
|
||||
"%s | tr '\\n' '\\0' | xargs -0 -n2 sh -c '%s \"$0\" \"$@\" < /dev/tty'",
|
||||
"paste -d'\n' %s %s | sed 'N; /^\\(.*\\)\\n\\1$/!p;d' | "
|
||||
"tr '\n' '\\0' | xargs -0 -n2 mv 2>/dev/null",
|
||||
"\\.(bz|bz2|gz|tar|taz|tbz|tbz2|tgz|z|zip)$",
|
||||
"sed -i 's|^%s\\(.*\\)$|%s\\1|' %s",
|
||||
};
|
||||
|
||||
/* Event handling */
|
||||
#ifdef LINUX_INOTIFY
|
||||
|
@ -1231,7 +1239,7 @@ static void endselection(void)
|
|||
{
|
||||
int fd;
|
||||
ssize_t count;
|
||||
char buf[sizeof(replaceprefixcmd) + PATH_MAX + (TMP_LEN_MAX << 1)];
|
||||
char buf[sizeof(patterns[P_REPLACE]) + PATH_MAX + (TMP_LEN_MAX << 1)];
|
||||
|
||||
if (cfg.selmode)
|
||||
cfg.selmode = 0;
|
||||
|
@ -1252,7 +1260,7 @@ static void endselection(void)
|
|||
return;
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof(buf), replaceprefixcmd, g_listpath, g_prefixpath, g_tmpfpath);
|
||||
snprintf(buf, sizeof(buf), patterns[P_REPLACE], g_listpath, g_prefixpath, g_tmpfpath);
|
||||
spawn(utils[UTIL_SH_EXEC], buf, NULL, NULL, F_CLI);
|
||||
|
||||
fd = open(g_tmpfpath, O_RDONLY);
|
||||
|
@ -1741,7 +1749,7 @@ static bool cpmv_rename(int choice, const char *path)
|
|||
uint count = 0, lines = 0;
|
||||
bool ret = FALSE;
|
||||
char *cmd = (choice == 'c' ? cp : mv);
|
||||
char buf[sizeof(cpmvrenamecmd) + sizeof(cmd) + (PATH_MAX << 1)];
|
||||
char buf[sizeof(patterns[P_CPMVRNM]) + sizeof(cmd) + (PATH_MAX << 1)];
|
||||
|
||||
fd = create_tmp_file();
|
||||
if (fd == -1)
|
||||
|
@ -1760,7 +1768,7 @@ static bool cpmv_rename(int choice, const char *path)
|
|||
|
||||
close(fd);
|
||||
|
||||
snprintf(buf, sizeof(buf), cpmvformatcmd, g_tmpfpath);
|
||||
snprintf(buf, sizeof(buf), patterns[P_CPMVFMT], g_tmpfpath);
|
||||
spawn(utils[UTIL_SH_EXEC], buf, NULL, path, F_CLI);
|
||||
|
||||
spawn((cfg.waitedit ? enveditor : editor), g_tmpfpath, NULL, path, F_CLI);
|
||||
|
@ -1777,7 +1785,7 @@ static bool cpmv_rename(int choice, const char *path)
|
|||
goto finish;
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof(buf), cpmvrenamecmd, path, g_tmpfpath, cmd);
|
||||
snprintf(buf, sizeof(buf), patterns[P_CPMVRNM], path, g_tmpfpath, cmd);
|
||||
spawn(utils[UTIL_SH_EXEC], buf, NULL, path, F_CLI);
|
||||
ret = TRUE;
|
||||
|
||||
|
@ -1840,7 +1848,7 @@ static bool batch_rename(const char *path)
|
|||
uint count = 0, lines = 0;
|
||||
bool dir = FALSE, ret = FALSE;
|
||||
char foriginal[TMP_LEN_MAX] = {0};
|
||||
char buf[sizeof(batchrenamecmd) + (PATH_MAX << 1)];
|
||||
char buf[sizeof(patterns[P_BATCHRNM]) + (PATH_MAX << 1)];
|
||||
|
||||
i = get_cur_or_sel();
|
||||
if (!i)
|
||||
|
@ -1890,7 +1898,7 @@ static bool batch_rename(const char *path)
|
|||
goto finish;
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof(buf), batchrenamecmd, foriginal, g_tmpfpath);
|
||||
snprintf(buf, sizeof(buf), patterns[P_BATCHRNM], foriginal, g_tmpfpath);
|
||||
spawn(utils[UTIL_SH_EXEC], buf, NULL, path, F_CLI);
|
||||
ret = TRUE;
|
||||
|
||||
|
@ -6741,9 +6749,9 @@ int main(int argc, char *argv[])
|
|||
/* Set archive handling (enveditor used as tmp var) */
|
||||
enveditor = getenv(env_cfg[NNN_ARCHIVE]);
|
||||
#ifdef PCRE
|
||||
if (setfilter(&archive_pcre, (enveditor ? enveditor : archive_regex))) {
|
||||
if (setfilter(&archive_pcre, (enveditor ? enveditor : patterns[P_ARCHIVE]))) {
|
||||
#else
|
||||
if (setfilter(&archive_re, (enveditor ? enveditor : archive_regex))) {
|
||||
if (setfilter(&archive_re, (enveditor ? enveditor : patterns[P_ARCHIVE]))) {
|
||||
#endif
|
||||
fprintf(stderr, "%s\n", messages[MSG_INVALID_REG]);
|
||||
return _FAILURE;
|
||||
|
|
Loading…
Reference in a new issue