>> bothered to follow the switch to Bazaar. It might take a while to make >> myself acquainted with it. And unfortunately I failed to find a web >> interface to the current Emacs sources in order to find out if somebody >> has changed the RefTeX files, or in which way.
> I suspect the change is not in the reftex file but in the behavior of > up-list which now obeys forward-sexp-function, which means that under > latex-mode, it will now move from > \begin{foo} >> here< > \end{foo} > to just before the \begin. So if the reftex code does not expect that > (and/or for performance reason doesn't want that), it should protect > against it by binding forward-sexp-function around calls to up-list > and friends. I think in the end, the core reason for the problem was a bug in the new up-list code (it just silently did nothing when reaching BOB), which I've just fixed. I also additionally installed the patch below which circumvents the bug and also avoids slowing things down unnecessarily. Stefan === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-09-20 21:45:09 +0000 +++ lisp/ChangeLog 2010-09-20 22:35:46 +0000 @@ -1,5 +1,9 @@ 2010-09-20 Stefan Monnier <monn...@iro.umontreal.ca> + * textmodes/reftex-parse.el (reftex-what-macro) + (reftex-context-substring): Let-bind forward-sexp-function to nil + since we don't need/want to treat \begin...\end as a block. + * emacs-lisp/lisp.el (up-list): Don't do nothing silently. * simple.el (blink-matching-open): Use syntax-class. === modified file 'lisp/textmodes/reftex-parse.el' --- lisp/textmodes/reftex-parse.el 2010-09-20 13:27:59 +0000 +++ lisp/textmodes/reftex-parse.el 2010-09-20 22:35:33 +0000 @@ -385,7 +385,7 @@ (defun reftex-section-info (file) ;; Return a section entry for the current match. - ;; Carefull: This function expects the match-data to be still in place! + ;; Careful: This function expects the match-data to be still in place! (let* ((marker (set-marker (make-marker) (1- (match-beginning 3)))) (macro (reftex-match-string 3)) (prefix (save-match-data @@ -778,13 +778,15 @@ (narrow-to-region (max (point-min) bound) (point-max)) ;; move back out of the current parenthesis (while (condition-case nil - (progn (up-list -1) t) + (let ((forward-sexp-function nil)) + (up-list -1) t) (error nil)) (setq cnt 1 cnt-opt 0) ;; move back over any touching sexps (while (and (reftex-move-to-previous-arg bound) (condition-case nil - (progn (backward-sexp) t) + (let ((forward-sexp-function nil)) + (backward-sexp) t) (error nil))) (if (eq (following-char) ?\[) (incf cnt-opt)) (incf cnt)) @@ -965,15 +967,14 @@ (if (re-search-forward "\\\\end{" nil t) (match-beginning 0) (point-max)))))) - ((or (= (preceding-char) ?\{) - (= (preceding-char) ?\[)) + ((memq (preceding-char) '(?\{ ?\[)) ;; Inside a list - get only the list. (buffer-substring-no-properties (point) (min (+ (point) 150) (point-max) (condition-case nil - (progn + (let ((forward-sexp-function nil)) ;Unneeded fanciness. (up-list 1) (1- (point))) (error (point-max)))))) _______________________________________________ auctex-devel mailing list auctex-devel@gnu.org http://lists.gnu.org/mailman/listinfo/auctex-devel