[PATCH] Don't filter duplicate -C options

Michael Olbrich <[email protected]>
Newsgroups gmane.comp.gnu.make.bugs
Message-ID <[email protected]>
Since c3b39d0654c3 "[SV 62514] Honor command line interface flags", make
incorrectly filters oute multiple -C arguments with the same directoy
string:

$ cd /test && make -C a -C a
make: Entering directory '/test/a'

$ make -C /test/a -C /test/b -C /test/a
make: Entering directory '/test/b'

Skip -C when filtering out duplicate options to fix this.
---
 src/main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index 6a129768093c..f2069bb9ed11 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3247,9 +3247,10 @@ decode_switches (int argc, const char **argv, enum variable_origin origin)
                     }
 
                   /* Filter out duplicate options.
+                     Directory changes are cumulative.
                      Order matters for warnings.
                      Allow duplicate makefiles for backward compatibility.  */
-                  if (cs->c != 'f' && cs->c != WARN_OPT)
+                  if (cs->c != 'f' && cs->c != WARN_OPT && cs->c != 'C')
                     {
                       unsigned int k;
                       for (k = 0; k < sl->idx; ++k)
-- 
2.39.5
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.