--- patch-2.5.4/pch.c.stripcr 1999-08-30 07:20:08.000000000 +0100 +++ patch-2.5.4/pch.c 2005-08-11 12:59:35.000000000 +0100 @@ -355,10 +355,16 @@ if (!stars_last_line && strnEQ(s, "*** ", 4)) name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]); else if (strnEQ(s, "+++ ", 4)) + { /* Swap with NEW below. */ name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]); + p_strip_trailing_cr = strip_trailing_cr; + } else if (strnEQ(s, "Index:", 6)) + { name[INDEX] = fetchname (s+6, strippath, (time_t *) 0); + p_strip_trailing_cr = strip_trailing_cr; + } else if (strnEQ(s, "Prereq:", 7)) { for (t = s + 7; ISSPACE ((unsigned char) *t); t++) continue; @@ -386,6 +392,7 @@ p_timestamp[NEW] = timestamp; p_rfc934_nesting = (t - s) >> 1; } + p_strip_trailing_cr = strip_trailing_cr; } } if ((diff_type == NO_DIFF || diff_type == ED_DIFF) && @@ -419,7 +426,6 @@ if (s[0] == '+' && s[1] == '0' && !ISDIGIT (s[2])) p_says_nonexistent[NEW] = 1 + ! p_timestamp[NEW]; p_indent = indent; - p_strip_trailing_cr = strip_trailing_cr; p_start = this_line; p_sline = p_input_line; retval = UNI_DIFF;