branch: externals/m-buffer
commit 04503746621faf7868ad6563aa4ac7c4e1fa82e8
Author: Phillip Lord <[email protected]>
Commit: Phillip Lord <[email protected]>

    Lots of changes!
---
 m-buffer.el | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/m-buffer.el b/m-buffer.el
index 67db2794f0..9a16481ecb 100644
--- a/m-buffer.el
+++ b/m-buffer.el
@@ -160,5 +160,42 @@ SUBEXP should be a number indicating the regexp group to 
replace."
           (or subexp 0)))))
    matches))
 
+;;;
+;;; Block things detection
+;;;
+(defun m-buffer-page-match (buffer)
+  "Return a list of all page delimiters."
+  (m-buffer-match-data
+   buffer page-delimiter))
+
+(defun m-buffer-paragraph-separate (buffer)
+  (m-buffer-match-data
+   buffer paragraph-separate nil nil
+   'm-buffer-post-match-forward-line))
+
+(defun m-buffer-line-start (buffer)
+  (m-buffer-match-beginning
+   buffer "^" nil nil
+   'm-buffer-post-match-forward-char))
+
+(defun m-buffer-line-end (buffer)
+  (m-buffer-match-beginning
+   buffer "$" nil nil
+   'm-buffer-post-match-forward-char))
+
+;; Useful post-match functions
+(defun m-buffer-post-match-forward-line ()
+  "Attempts to move forward one line and returns true if succeeds."
+  (= 0 (forward-line)))
+
+(defun m-buffer-post-match-forward-char ()
+  "Attempts to move forward one char and returns true if succeeds."
+  (condition-case e
+      (progn
+        (forward-char)
+        t)
+    (error 'end-of-buffer
+           nil)))
+
 (provide 'm-buffer)
 ;;; m-buffer.el ends here

Reply via email to