Re: [PATCH/RFC] gitweb: highlight: strip non-printable characters via col(1)
- From
J.H. <warthog9@eaglescrag.net>
- Date
- Aug 16, 2011, 20:30 UTC
- Message-ID
- <4E4AD35E.8060907@eaglescrag.net>
- In-Reply-To
- <1313518605-26460-1-git-send-email-cfuhrman@panix.com>
On 08/16/2011 11:16 AM, Christopher M. Fuhrman wrote:
Show 26 quoted lines
> From: "Christopher M. Fuhrman" <cfuhrman@panix.com> > > The current code, as is, passes control characters, such as form-feed > (^L) to highlight which then passes it through to the browser. This > will cause the browser to display one of the following warnings: > > Safari v5.1 (6534.50) & Google Chrome v13.0.782.112: > > This page contains the following errors: > > error on line 657 at column 38: PCDATA invalid Char value 12 > Below is a rendering of the page up to the first error. > > Mozilla Firefox 3.6.19 & Mozilla Firefox 5.0: > > XML Parsing Error: not well-formed > Location: > http://path/to/git/repo/blah/blah > > Both errors were generated by gitweb.perl v1.7.3.4 w/ highlight 2.7 > using arch/ia64/kernel/unwind.c from the Linux kernel. > > Strip non-printable control-characters by piping the output produced > by git-cat-file(1) to col(1) as follows: > > git cat-file blob deadbeef314159 | col -bx | highlight <args>
So my only real concern here is that `col` itself is going to munge whitespace. Quoting from the col man page:
[...] and replaces white-space characters with tabs where possible. [...]
Have you actually run into a situation where something like ^L was present in a blob that was being passed to highlight?
- John