From 19c6b1464429f1edc75639d8a78cf123a67b0913 Mon Sep 17 00:00:00 2001 From: David Maus Date: Wed, 10 Aug 2011 07:49:02 +0200 Subject: [PATCH] Factor out function for substituting posix class in regular expression * org-macs.el (org-substitute-posix-classes): New function. Substitute posix classes in regular expression. (org-re): Use new function. --- lisp/org-macs.el | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 786fdad8f..beb1f9973 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -93,21 +93,23 @@ Also, do not record undo information." before-change-functions after-change-functions) ,@body)))) +(defun org-substitute-posix-classes (re) + "Substitute posix classes in regular expression RE." + (let ((ss re)) + (save-match-data + (while (string-match "\\[:alnum:\\]" ss) + (setq ss (replace-match "a-zA-Z0-9" t t ss))) + (while (string-match "\\[:word:\\]" ss) + (setq ss (replace-match "a-zA-Z0-9" t t ss))) + (while (string-match "\\[:alpha:\\]" ss) + (setq ss (replace-match "a-zA-Z" t t ss))) + (while (string-match "\\[:punct:\\]" ss) + (setq ss (replace-match "\001-@[-`{-~" t t ss))) + ss))) + (defmacro org-re (s) "Replace posix classes in regular expression." - (if (featurep 'xemacs) - (let ((ss s)) - (save-match-data - (while (string-match "\\[:alnum:\\]" ss) - (setq ss (replace-match "a-zA-Z0-9" t t ss))) - (while (string-match "\\[:word:\\]" ss) - (setq ss (replace-match "a-zA-Z0-9" t t ss))) - (while (string-match "\\[:alpha:\\]" ss) - (setq ss (replace-match "a-zA-Z" t t ss))) - (while (string-match "\\[:punct:\\]" ss) - (setq ss (replace-match "\001-@[-`{-~" t t ss))) - ss)) - s)) + (if (featurep 'xemacs) `(org-substitute-posix-classes ,s) s)) (defmacro org-preserve-lc (&rest body) (org-with-gensyms (line col) -- 2.11.4.GIT