Re: [PATCH v2] make diff --color-words customizable
- From
- Davide Libenzi <davidel@xmailserver.org>
- Date
- Jan 10, 2009, 17:53 UTC
- Message-ID
- <alpine.DEB.1.10.0901100950230.21891@alien.or.mcafeemobile.com>
- In-Reply-To
- <200901101436.48149.jnareb@gmail.com>
On Sat, 10 Jan 2009, Jakub Narebski wrote:
Show 19 quoted lines
> On Sat, 10 Jan 2009, Johannes Schindelin wrote: > > On Sat, 10 Jan 2009, Jakub Narebski wrote: > > > Thomas Rast wrote: > > > > > > > --color-words works (and always worked) by splitting words onto one > > > > line each, and using the normal line-diff machinery to get a word > > > > diff. > > > > > > Cannot we generalize diff machinery / use underlying LCS diff engine > > > instead of going through line diff? > > > > What do you think we're doing? libxdiff is pretty hardcoded to newlines. > > That's why we're substituting non-word characters with newlines. > > Isn't Meyers algorithm used by libxdiff based on LCS, largest common > subsequence, and doesn't it generate from the mathematical point of > view "diff" between two sequences (two arrays) which just happen to > be lines? It is a bit strange that libxdiff doesn't export its low > level algorithm...
The core doesn't know anything about lines. Only pre-processing (setting up the hash by tokenizing the input) and post-processing (adding '\n' to the end of each token), knows about newlines. Memory consumption would increase significantly though, since there is a per-token cost, and a word-based diff will create more of them WRT the same input.
- Davide