1

I have a file that is automatically generated, and another one based on a version of the former with lots of systematic additions. Those additions are always the same text for the whole line, so it should be easy to tell ediff to skip them. The problem is, when a line has changed that is contiguous to one of those "fixed changes", it is also skipped:

Some_Block(me : SingleDeclaration) | Some_Block(me : SingleDeclaration) { | { margin : Int := 0 | margin : Int := 0 | Systematic_Change(here) margin := fix_margin() | margin := fix_margin() A_real_change(me) | Obsolete_line(me) | Systematic_Change(here) set_margin(margin) | set_margin(margin) } | } 

While in the ediff session, if I press # h Emacs asks me which regular expression to skip in buffer A; I accept the empty default (I don't want to skip anything in buffer A, so I'm not sure which regex I should use); then, for buffer B, I give this regex: Systematic_Change(here). It doesn't matter if I want to match both or only one regex, because I don't want to match anything in buffer A.

The problem is that, with those settings, I will miss the change s/Obsolete_line(me)/A_real_change(me)/ because, since it is contiguous to an ignored line, the difference region matches the regex to skip, because that region contains that line.

Thus, I try to make the matching more restrictive: ^ Systematic_Change(here)$. In my understanding, the whole difference region must match Systematic_Change(here) to be skipped, since I anchored both to the beginning and to the end of the region. Or that was my intention, but I guess ^ and $ only represent here beginning and end of the line, not of the region, because the behavior has not changed, and I still miss changes contiguous to ignored lines.

How do I achieve what I mean? What am I doing wrong?

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.