From 41098c38510c75ba539dd14ba23410cbe381037b Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 13 Nov 2018 13:25:35 +0100 Subject: mdirs: reset cwd after each iteration Else `mdirs dir1/a dir2/b` fails, as the first iteration remains in `dir1`. Found by milliardo. --- mdirs.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mdirs.c b/mdirs.c index 9789b65..18ba9da 100644 --- a/mdirs.c +++ b/mdirs.c @@ -83,8 +83,19 @@ usage: if (argc == optind) goto usage; - for (i = 0; i < argc; i++) + char toplevel[PATH_MAX]; + if (!getcwd(toplevel, sizeof toplevel)) { + perror("mdirs: getcwd"); + exit(-1); + } + + for (i = 0; i < argc; i++) { mdirs(argv[i]); + if (chdir(toplevel) < 0) { + perror("mdirs: chdir"); + exit(-1); + } + } return 0; } -- cgit 1.4.1