diff options
Diffstat (limited to 'src/elisp/urweb-move.el')
-rw-r--r-- | src/elisp/urweb-move.el | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/elisp/urweb-move.el b/src/elisp/urweb-move.el index 5e4e6824..55c6bce6 100644 --- a/src/elisp/urweb-move.el +++ b/src/elisp/urweb-move.el @@ -240,16 +240,20 @@ This assumes that we are `looking-at' the OP." (let ((depth 0) (done nil)) (while (and (not done) (search-backward ">" nil t)) - (if (save-excursion (backward-char 1) (looking-at "/")) - (when (not (search-backward "<" nil t)) - (setq done t)) - (if (search-backward "<" nil t) + (cond + ((save-excursion (backward-char 1) (looking-at " ")) + nil) + ((save-excursion (backward-char 1) (looking-at "/")) + (when (not (re-search-backward "<[^ =]" nil t)) + (setq done t))) + (t + (if (re-search-backward "<[^ =]" nil t) (if (looking-at "</") (incf depth) (if (= depth 0) (setq done t) (decf depth))) - (setq done t)))))) + (setq done t))))))) (defun urweb-backward-sexp (prec) "Move one sexp backward if possible, or one char else. |