On Thu, May 8, 2008 at 6:34 PM, Teemu Likonen <tlikonen@xxxxxx> wrote: > Junio C Hamano wrote (2008-05-07 12:13 -0700): > >> Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: >> >> > I am rather interested in the semantics, i.e. if you can punch holes >> > into this 3-class approach. >> >> This is not the 3-class thing, but was done as a lunchtime hack. It >> removes more lines than it adds, with real comments ;-). > > I tested your lunchtime hack from the "pu" branch. I'm perfectly happy > with the colored output itself but I noticed some different line feed > behaviour that you might want to know. Look at the example below. The > first is normal line diff. The second is the same text with the old > --color-words behaviour and the last is with the lunchtime hack version. > There are only three words added to the text; additions are written as > {+word} in the --color-words output. You not only added the three words, but also wrap line at different position. > Normal line diff > ---------------- > > -OpenOffice.org has user setting for defining the minimum length for > +OpenOffice.org has a user setting for defining the minimum length for > words to be hyphenated. By default the word length is counted from the > -whole word - even for compound words. For example the word > -'elokuvalippu' is 12 characters long. The word will be hyphenated like > -'elo-ku-va-lip-pu' in all cases when the minimum word length is set to > -12 or less. If the minimum length is set to 13 or more the word is not > -hyphenated at all. > +whole word - even for compound words. For example the compound word > +'elokuvalippu' is considered 12 characters long. The word will be > +hyphenated like 'elo-ku-va-lip-pu' in all cases when the minimum word > +length is set to 12 or less. If the minimum length is set to 13 or more > +the word is not hyphenated at all. > > With the old --color-words > -------------------------- > > OpenOffice.org has {+a }user setting for defining the minimum length for > words to be hyphenated. By default the word length is counted from the > whole word - even for compound words. For example the {+compound }word > 'elokuvalippu' is {+considered }12 characters long. The word will be > hyphenated like 'elo-ku-va-lip-pu' in all cases when the minimum word > length is set to 12 or less. If the minimum length is set to 13 or more > the word is not hyphenated at all. > > With the lunchtime hack --color-words > ------------------------------------- > > OpenOffice.org has {+a }user setting for defining the minimum length for > words to be hyphenated. By default the word length is counted from the > whole word - even for compound words. For example the {+compound }word > 'elokuvalippu' is {+considered }12 characters long. The word will be > hyphenated like > 'elo-ku-va-lip-pu' in all cases when the minimum word > length is set to > 12 or less. If the minimum length is set to 13 or more > the word is not > hyphenated at all. > With junio's following code, the number of LF can be more than any of the original two input. Because it will output a LF whenever we encounter a real LF in the original input. So some LFs are outputed as {-LF} or {+LF} . We can't differentiate them because we can't see the colored output for added or removed LF. The same case is that we can't differentiate added and removed spaces. That's why i proposed colored background for added/removed space characters in former reply of this thread. + if (line[1] == ' ') { + /* A token */ + line += 2; + len -= 3; /* drop the trailing LF */ + } else { + /* A real LF */ + line++; + len--; } + emit_line(diff_words->file, set, reset, line, len); -- Ping Yin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html