> From: Paul Smith <psm...@gnu.org> > Cc: Mike Hommey <m...@glandium.org>, bug-make@gnu.org > Date: Tue, 04 Feb 2014 12:28:53 -0500 > > But I do see a problem above; what if the literal file 'foo\bar' (a file > with a backslash in the name) existed?
Such a file cannot exist on Windows: the backslash character is not allowed in a file name, unlike on Unix. > Then this would work on UNIX but fail on Windows, because (Mike > shows) too many backslashes are eaten. > > On UNIX, "grep foo < foo\\bar" would do as Mike shows the batch mode > shell to do, and look for the literal file 'foo\bar', but note his > example above where BOTH backslashes are dropped in non-batch mode. > > That seems wrong to me... There's no alternative: Make on Windows must support both forward- and back-slashes, or else our Windows users will lynch us. That support doesn't come without a price, but I see no way around that, at least not a way that avoids the issue entirely. A backslash is a legitimate directory separator on Windows, and must be handled as such. But it is also an escape ("quote") character -- in Unix shells and in Makefiles (e.g., to escape-protect the colon and other special characters). I see no way of supporting the same character in several different and even contradictory roles, without some heuristics which necessarily sacrifices rare and/or unsupported scenarios and use cases, and favors frequent and supported ones. IOW, I don't think the analogy with Unix is valid here, because it sets the bar way too high, so high, in fact, that it cannot be cleared. _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make