cp,mv: fix -t DIR option
No binary (build failed)
—
(log yok)
| @@ -252,7 +252,7 @@ int cp_main(int argc, char **argv) | |
| } | |
| } | |
| } | |
| - | /* else: last is DIR from "t -DIR" */ |
| + | /* else: last is DIR from "-t DIR" */ |
| while (1) { | |
| #if ENABLE_FEATURE_CP_LONG_OPTIONS | |
| @@ -274,7 +274,7 @@ int cp_main(int argc, char **argv) | |
| if (copy_file(*argv, dest, flags) < 0) { | |
| status = EXIT_FAILURE; | |
| } | |
| - | if (*++argv == last) { |
| + | if (!*++argv || *argv == last) { |
| /* possibly leaking dest... */ | |
| break; | |
| } | |
| @@ -108,7 +108,7 @@ int mv_main(int argc, char **argv) | |
| /* else: fall through into "do { move SRC to DIR/SRC } while" loop */ | |
| } | |
| } | |
| - | /* else: last is DIR from "t -DIR" */ |
| + | /* else: last is DIR from "-t DIR" */ |
| do { | |
| dest = concat_path_file(last, bb_get_last_path_component_strip(*argv)); | |
| @@ -185,7 +185,7 @@ int mv_main(int argc, char **argv) | |
| if (dest != last) { | |
| free((void *) dest); | |
| } | |
| - | } while (*++argv != last); |
| + | } while (*++argv && *argv != last); |
| return status; | |
| } | |
| @@ -0,0 +1,16 @@ | |
| + | echo file number one > file1 |
| + | echo file number two > file2 |
| + | ln -s file2 link1 |
| + | mkdir dir1 |
| + | TZ=UTC0 touch -d '2000-01-30 05:24:08' dir1/file3 |
| + | mkdir there |
| + | busybox mv -t there file1 file2 link1 dir1 |
| + | test -f there/file1 |
| + | test -f there/file2 |
| + | test -f there/dir1/file3 |
| + | test -L there/link1 |
| + | test xfile2 = x`readlink there/link1` |
| + | test ! -e file1 |
| + | test ! -e file2 |
| + | test ! -e link1 |
| + | test ! -e dir1/file3 |