[C++] Do not escape ! in a shell script
diff --git a/ninja.cc b/ninja.cc
index 4e4c460..fc7771b 100644
--- a/ninja.cc
+++ b/ninja.cc
@@ -489,7 +489,6 @@
           break;
         case '`':
         case '"':
-        case '!':
         case '\\':
           r += '\\';
           // fall through.
diff --git a/testcase/excl_in_shell.mk b/testcase/excl_in_shell.mk
new file mode 100644
index 0000000..1eccf4d
--- /dev/null
+++ b/testcase/excl_in_shell.mk
@@ -0,0 +1,2 @@
+test:
+	@if ! false; then echo PASS; else echo FAIL; fi