for (i = 0; i < list[panel]->nb; i++) {
current = list[panel]->tab + i;
if (current->selected) {
- char *src = strdupcat (dirname[panel], SEPARATOR, current->name);
- char *dest = dirname[(panel + 1 ) % MAXPANELS];
- if (processmove (dest, src) != 0) {
- char *buf = strdupcat ("Can't copy '", src, "' to '", dest, "'", NULL);
+ char *src = strdupcat (dirname[panel], SEPARATOR, current->name, NULL);
+ char *dest = strdupcat (dirname[(panel + 1 ) % MAXPANELS], SEPARATOR, current->name, NULL);
+ struct stat sb;
+ if ((stat (dest, &sb) == 0) || (rename (src, dest) != 0)) {
+ char *buf = strdupcat ("Can't move '", current->name, "' to '", dirname[(panel + 1 ) % MAXPANELS], "'", NULL);
msgwindow (buf, winscreen, 0);
getch ();
free (buf);
}
free (src);
+ free (dest);
}
}
+ freelist (list[panel]);
+ list[panel] = NULL;
+ freelist (list[(panel + 1) % MAXPANELS]);
+ list[(panel + 1) % MAXPANELS] = NULL;
break;
case ALT_N: /* new dir */
string = getwindow ("New directory", winscreen, MAXFNAME / 2, MAXFNAME, NULL);
/* test: fm.exe -x 2>&1 | grep width */
/* test: fm.exe -y 2>&1 | grep height */
/* test: fm.exe _ 2>&1 | grep invalid */
+
+/* Basic 2 panels view and quit */
/* test: { sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. -v 1 */
/* test: { sleep 1; echo -en '\eq'; sleep 1; echo -en '\e'; sleep 1; echo -en '\eq'; sleep 1; echo; } | fm.exe */
+
+/* Help */
/* test: { sleep 1; echo -en '\eh'; sleep 1; echo ""; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. */
+
+/* Navigation */
/* test: { sleep 1; echo ; sleep 1; echo; sleep 1; echo -en '\tjikkkkklljllll'; sleep 1; echo -n ilk; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
/* test: { sleep 1; echo -n KKKKK; sleep 1; echo -n IIIII; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
/* test: { sleep 1; echo -n kkkkkkkkkkkkkkkkkkkkkkkk; sleep 1; echo -n iiiiiiiiiiiiiiiiiiiii; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
/* test: { sleep 1; echo -n kkkkkkkkk; sleep 1; echo -n ooo; sleep 1; echo -n uu; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 */
+
+/* Filter and selection */
/* test: { sleep 1; echo -en '\ef'; sleep 1; echo -n ' .*\.c'; sleep 1; echo; sleep 1; echo -en 'kkk\esl'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
/* test: { sleep 1; echo -en '\ef'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
/* test: { sleep 1; echo -en '\ef'; sleep 1; echo -n 123456789012345678901234567890123; sleep 1; echo -en '\b\b'; sleep 1; echo -ne '\e'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
+
+/* New directory */
/* test: { sleep 1; echo -en '\en'; sleep 1; echo -n foobar; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rmdir foobar */
/* test: { sleep 1; echo -en '\en'; sleep 1; echo -n foo/bar; sleep 1; echo; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
+
+/* Rename */
/* test: touch .a && { sleep 1; echo -en 'k\er'; sleep 1; echo .aa; sleep 1; echo -en '\er'; sleep 1; echo .aa/1; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .aa */
+/* Move */
+/* test: touch .a0 && mkdir .a1 && { sleep 1; echo -en 'k\esk\es'; sleep 1; echo -en '\t\n\t'; sleep 1; echo -en '\em'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm ../.a0 && rmdir ../.a1 */
+/* test: touch .a && touch ../.a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\t\n\t'; sleep 1; echo -en '\em'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a ../.a */
+/* test: touch .a && mkdir ../.a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\t\n\t'; sleep 1; echo -en '\em'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a && rmdir ../.a */
+/* test: mkdir .a && touch ../.a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\t\n\t'; sleep 1; echo -en '\em'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rmdir .a && rm ../.a */
+/* test: mkdir .a && mkdir ../.a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\t\n\t'; sleep 1; echo -en '\em'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rmdir .a && rmdir ../.a */
+
/* vim: set ts=4 sw=4 et: */