Yesterday, I wrote about the problems I had with Emacs when I updated to OS X Mavericks. The problem was that the call to
display-battery-mode failed. For OS X, Emacs uses
pmset to get the battery status data. With Maverics,
pmset was returning a string that began with “Now drawing from '(AC|Battery) Power'” but in previous versions returned “Currently drawing from '(AC|Battery) Power'.” Since Emacs was looking for the latter string, the output was corrupted and the call to
It was pretty easy to track this down using
Edebug. The problem is that the regular expression used to search the
pmset output is a constant string and not configurable. That means that fixing the problem pretty much boils downs to
battery-pmset, where the problem occurs, to look for “Now” as well as “Currently” or
- Making a local copy of
battery-pmsetthat looks for “Now.”
While I was pondering what to do, Bernd Berndsen wrote to tell me that a change had already been pushed to the development branch. Since this is not a critical issue for me, I'm content to wait to the next update. If it's more important to you, the easiest thing to do is either to edit and recompile
battery-pmset on your local version of Emacs or install the latest development branch. Follow the “development branch” link to see the change you need to make.
I'm not privy to Apple's thinking on this, of course, but the change seems gratuitous to me. Yes, “Now” is slightly better wording than “Currently” but they had to know that it was apt to break programmatic processing of
pmset's output. If anyone knows why the change was made, please leave a comment.