* org-macs.el (org-substitute-posix-classes): New function. Substitute posix classes in regular expression. (org-re): Rewritten to use new function. --- lisp/org-macs.el | 28 +++++++++++++++------------- 1 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/lisp/org-macs.el b/lisp/org-macs.el index ab21ef7..198d210 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-uninterned (line col) -- 1.7.2.5