Przeglądaj źródła

Better regexps in searches unenclosed.

* lisp/org.el (org-in-regexps-block-p): minor fix: limit wasn't
  correctly used.
* lisp/org-list.el (org-search-forward-unenclosed): Better regexp
  used.
* lisp/org-list.el (org-search-backward-unenclosed): Better regexp
  used.
Nicolas Goaziou 15 lat temu
rodzic
commit
fb5cab814e
2 zmienionych plików z 7 dodań i 7 usunięć
  1. 6 6
      lisp/org-list.el
  2. 1 1
      lisp/org.el

+ 6 - 6
lisp/org-list.el

@@ -268,9 +268,9 @@ valid or not, then makes sure the last one is valid."
      ((not (re-search-backward regexp bound (or noerror t) count)) nil)
      ;; match is not enclosed: return point.
      ((not (save-match-data
-	     (or (org-in-regexps-block-p "^[ \t]*#\\+begin_\\([a-zA-Z]+\\)"
-					 '(concat "^[ \t]*#\\+end_" (match-string 1)))
-		 (org-in-regexps-block-p "^[ \t]*\\\\begin{\\([a-zA-Z]+\\)}"
+	     (or (org-in-regexps-block-p "^[ \t]*#\\+\\(begin\\|BEGIN\\)_\\([a-zA-Z0-9_]+\\)"
+					 '(concat "^[ \t]*#\\+\\(end\\|END\\)_" (match-string 2)))
+		 (org-in-regexps-block-p "^[ \t]*\\\\begin{\\([a-zA-Z0-9_]+\\)}"
 					 '(concat "^[ \t]*\\\\end{" (match-string 1) "}")))))
       (point))
      (t
@@ -289,9 +289,9 @@ valid or not, then makes sure the last one is valid."
      ((not (re-search-forward regexp bound (or noerror t) count)) nil)
      ;; match is not enclosed: return point.
      ((not (save-match-data
-	     (or (org-in-regexps-block-p "^[ \t]*#\\+begin_\\([a-zA-Z]+\\)"
-					 '(concat "^[ \t]*#\\+end_" (match-string 1)))
-		 (org-in-regexps-block-p "^[ \t]*\\\\begin{\\([a-zA-Z]+\\)}"
+	     (or (org-in-regexps-block-p "^[ \t]*#\\+\\(begin\\|BEGIN\\)_\\([a-zA-Z0-9_]+\\)"
+					 '(concat "^[ \t]*#\\+\\(end\\|END\\)_" (match-string 2)))
+		 (org-in-regexps-block-p "^[ \t]*\\\\begin{\\([a-zA-Z0-9_]+\\)}"
 					 '(concat "^[ \t]*\\\\end{" (match-string 1) "}")))))
       (point))
      ;; else: we start again, searching one more occurrence away.

+ 1 - 1
lisp/org.el

@@ -18245,7 +18245,7 @@ defaults to previous heading or `point-min'."
       ;; we're on a block when point is on start-re...
       (or (org-at-regexp-p start-re)
 	  ;; ... or start-re can be found above...
-	  (and (re-search-backward start-re bound t)
+	  (and (re-search-backward start-re limit t)
 	       ;; ... but no end-re between start-re and point.
 	       (not (re-search-forward (eval end-re) pos t)))))))