On 03/20/2016 12:01 PM, Jostein Kjønigsen wrote: > On Sun, Mar 20, 2016, at 02:27 AM, Dmitry Gutov wrote: >> On 03/20/2016 12:13 AM, Simen Heggestøyl wrote: >> I do not mind, but I'm not sure if we actually want to support this >> usage. There are a lot regexps in lisp/progmodes that use $. There are >> several in js-mode, aside from this one. >> >> Some modes try to match [\r\n] (like CC Mode), but in general they seem >> to be a minority, and even CC Mode doesn't do that consistently. > > I really don't see how that argument makes sense. > > By following the cardinal rule of good software, that is produce the > least amont of astonishment, cc-mode does what's right: it produces the > expected outcome, no matter what kind of file it's working with. > > The result: A happy user. > > In my point of view, this should be the aim for all *-modes found in > Emacs, no matter what its current state of affair or conventions is. > > The solution to this is either a bunch of hacky patches replacing $ with > \r\n (as above) or actually addressing what's probably the root cause > (as observed by Andreas) > >> I wonder why ?\r doesn't have whitespace syntax in the first place. > > Make ?\r be interpreted as white-space, because once you put Emacs > outside a GNU/Linux system honestly nothing else makes sense. Is there > any specific reason for its current behaviour? > > Or put the other way: Are there known pieces of code which depends on \r > semantically not being white-space to function correctly? > > As someone authoring two major modes, every time $ does not work as > expected and I need to write hacks, it breaks my heart. As of now, I > can't really use $ if I want my modes to work and that's just silly (but > at least now I know why). Line ending divergence is best addressed at the file encoding level, not the individual mode level. I don't think it's worth while replacing uses of $ with \r?\n just to address cases in which line ending translation is broken.