From: Junio C Hamano Date: Tue, 28 Feb 2006 09:12:52 +0000 (-0800) Subject: git-apply: war on whitespace -- finishing touches. X-Git-Tag: v1.3.0-rc1~107^2~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f21d6726150ec4219e94ea605f27a4cd58eb3d99;p=git.git git-apply: war on whitespace -- finishing touches. This changes the default --whitespace policy to nowarn when we are only getting --stat, --summary etc. IOW when not applying the patch. When applying the patch, the default is warn (spit out warning message but apply the patch). Signed-off-by: Junio C Hamano --- diff --git a/apply.c b/apply.c index c4ff41800..9deb206fa 100644 --- a/apply.c +++ b/apply.c @@ -75,6 +75,15 @@ static void parse_whitespace_option(const char *option) die("unrecognized whitespace option '%s'", option); } +static void set_default_whitespace_mode(const char *whitespace_option) +{ + if (!whitespace_option && !apply_default_whitespace) { + new_whitespace = (apply + ? warn_on_whitespace + : nowarn_whitespace); + } +} + /* * For "diff-stat" like behaviour, we keep track of the biggest change * we've seen, and the longest filename. That allows us to do simple @@ -1955,9 +1964,11 @@ int main(int argc, char **argv) if (fd < 0) usage(apply_usage); read_stdin = 0; + set_default_whitespace_mode(whitespace_option); apply_patch(fd, arg); close(fd); } + set_default_whitespace_mode(whitespace_option); if (read_stdin) apply_patch(0, ""); if (whitespace_error) {