aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.c
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2013-05-17 16:14:03 -0400
committerGravatar David Bremner <bremner@debian.org>2013-05-27 18:19:03 -0300
commite7ade21d56b43dafc6dbd517a1b72fcf9d62b238 (patch)
treebc2a88f97eb4087fd1e9a7fae999b83787314aff /notmuch.c
parent2cbd68de92e032302a8fc65a6620adb1fc5ba1ae (diff)
emacs: Fix trimming regexp in notmuch-check-exit-status
For such a simple regexp, this was broken in a very complicated way. The intent was to strip the newline (and potentially other whitespace) off the end of the error string so there wasn't an extra newline in the error signal. However, the regexp was deeply dependent on the active syntax table and the subtleties of $. We didn't notice this because all notmuch major modes put ?\n in the whitespace class, which makes this behaved as intended: the "\\s " matches all newlines, but by matching the newline character, causes the $ *not* to match *except* where it matched the empty string at the very end of the string, which was not followed by a newline. However, if the syntax table declares ?\n to be non-whitespace (lisp-mode declares it as endcomment, and is likely to be the mode you're in when testing functions), then this regexp behaves completely differently, matching trailing spaces at the end of every line within the string. The solution is to say what we mean for whitespace *and* to switch from $ to \', which matches only the end of the string, rather than the end of each line. Both are necessary or this will strip away interior newlines, which is not what we want.
Diffstat (limited to 'notmuch.c')
0 files changed, 0 insertions, 0 deletions