From: Laurent Mazet Date: Thu, 16 Jan 2025 21:43:40 +0000 (+0100) Subject: add test for processchmod X-Git-Tag: v1.0~36 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=484db9e920fefeb991cdf198ad8e8a7142f567b9;p=fm.git add test for processchmod --- diff --git a/fm.c b/fm.c index 95a387f..41db916 100644 --- a/fm.c +++ b/fm.c @@ -435,13 +435,12 @@ int main (int argc, char *argv[]) case ALT_X: /* chmod */ string = getwindow ("Change to mode", winscreen, 4, 4, "0644"); if (string) { - int mode = strtol (string, NULL, 8); - if ((mode <= 0) || (mode > 0777)) { - char *octal = itoo (mode); - char *buf = strdupcat ("Can't change file(s) to mode 0", (octal && *octal) ? octal : "000" , NULL); + char *endptr = NULL; + int mode = strtol (string, &endptr, 8); + if ((*endptr != '\0') || (mode <= 0) || (mode > 0777)) { + char *buf = strdupcat ("Can't change file(s) to mode '", string, "'" , NULL); msgwindow (buf, winscreen, 0); getch (); - free (octal); free (buf); } else { for (i = 0; i < list[panel]->nb; i++) { @@ -532,4 +531,10 @@ int main (int argc, char *argv[]) /* test: echo "test" > .a && touch ../.a && { sleep 1; echo -en '\t\n\t'; sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ec'; sleep 1; echo -n y; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && test "$(ls -s ../.a)" = "0 ../.a" && rm .a ../.a */ /* test: mkdir .a ../.a && { sleep 1; echo -en '\t\n\t'; sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ec'; sleep 1; echo -n y; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rmdir .a ../.a */ +/* Chmod */ +/* test: touch .a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ex'; sleep 1; echo -n 0640; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a */ +/* test: mkdir .a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ex'; sleep 1; echo -n 0750; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rmdir .a */ +/* test: touch .a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ex'; sleep 1; echo -n 0649; sleep 1; echo; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a */ +/* test: touch .a && { sleep 1; echo -en 'k\es'; sleep 1; echo -en '\ex'; sleep 1; echo -en '\e'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a */ + /* vim: set ts=4 sw=4 et: */