On Sun, Oct 22, 2017 at 08:27:20AM -0400, Jason Pyeron wrote:
> > ESC (for color)
> > + if ($line =~ s/[\000-\011\013-\032\034-\037]/?/g) {
>
> What about CR [0x0D] ?
I assumed that CR was one of the things we'd want to avoid (and it was
in fact what I used to test this). E.g., try:
echo base >file
git add file
printf 'foo\r+bar\n' >file
Running through "less" shows something like:
diff --git a/file b/file
index df967b9..5b6ee80 100644
--- a/file
+++ b/file
@@ -1 +1 @@
-base
+foo^M+bar
but "git add -p" shows:
$ git add -p
diff --git a/file b/file
index df967b9..5b6ee80 100644
--- a/file
+++ b/file
@@ -1 +1 @@
-base
+bar
Stage this hunk [y,n,q,a,d,/,e,?]?
For systems where CRLF is the native line ending, we'd still expect to
see only LFs here when line-ending conversion is on (since the diff
shows the canonical in-repo form).
For files where the CRs must remain for some reason, they'd show as a
"?" at the end. The "^M" shown by "less" is a bit more informative. If
we really do want to pursue this direction, it might make sense to use
more descriptive placeholders.
-Peff