git clone 'git://github.com/phillord/m-buffer-el.git'
This package provides a set of list-orientated functions for operating over the contents of Emacs buffers. Functions are generally purish: i.e. they may change the state of one buffer by side-effect, but should not affect point, current buffer, match data or so forth. Generally, markers are preferred over point locations so that it is possible, for example, to search for regexp matches and then replace them all without the early replacement invalidating the location of the later ones.
m-buffer is now documented with Lentic Server.
The code is now in active use. APIs are open to change, but I am not intending to.
Contributions are welcome. However, I would like to keep the option of hosting m-buffer.el on ELPA, therefore, contributors should have Copyright Assignment papers with the FSF.
This release mostly includes considerably improved documentation.
There is one change which is half-way between a breaking change and a bug fix. Previously, in the m-buffer-match-* functions “match” arguments could take any keyword argument and these would over-ride any arguments already set. This means that a call such as:
(m-buffer-match-page (current-buffer) :regexp "this")
would behave the same as:
(m-buffer-match (current-buffer) :regexp "this")
rather than matching pages. Alternatively, this call:
(m-buffer-match-line (current-buffer) :post-match (lambda () t))
never terminates. Both of these now throw an error instead.
m-buffer-point' renamed tom-buffer-at-point'
let*like macro which autonils markers after use.
with-current-bufferbut also takes a location.
with-current-bufferbut takes a marker.
m-buffer-match-substringfor extracting match-strings.
beginninghave been changed to
begin– it is shorter and matches
m-buffer-match-datafor which it makes no sense to pass in match-data). This allows easy chaining of methods.
m-buffer-match-data-visible-windowaccess this feature directly.