If grep --color is interrupted, either via ^C or ^Z or some other signal, it can
leave the output terminal in a weird state. This problem was noted by Giuseppe
Scrivano in <http://bugs.gnu.org/20062#143> and I'm forwarding the report here.
One fix would be to do what GNU 'ls' does; note that SIGTSTP must be treated
specially so that the color state resumes after restart; also, the signal
handler just sets a flag that is polled periodically by the main code.