Possibly we should just remove the commit hook mode from linters and force all linters to operate on the file explicitly.
AFAIK, the commit hook mode is rarely used and is an artefact from Facebook days. One issue with passing data to a linter via `stdin` is that some linters behave differently when data is piped from `stdin` versus being passed a path explicitly.
---
//Original Description//
The results from `arc lint` and just running `cpplint.py` are different. I suspect the regular expression is broken.
```
$ arc lint
>>> Lint for foo.h:
Warning (legal/copyright) legal/copyright
No copyright message found. You should have a line: "Copyright [year]
<Copyright Owner>"
>>> 1 #ifndef __FOO_H__
2 #define __FOO_H__
3
4 #endif
```
```
$ cpplint.py foo.h
foo.h:0: No copyright message found. You should have a line: "Copyright [year] <Copyright Owner>" [legal/copyright] [5]
foo.h:1: #ifndef header guard has wrong style, please use: FOO_H_ [build/header_guard] [5]
foo.h:4: #endif line should be "#endif // FOO_H_" [build/header_guard] [5]
Done processing foo.h
Total errors found: 3
```