From 8e8faf389d6d5c0769b5f95775ec7883820b10b3 Mon Sep 17 00:00:00 2001 From: TEC Date: Wed, 28 Apr 2021 18:17:00 +0800 Subject: [PATCH] org-src: Use point instead of column for coords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * lisp/org-src.el (org-src--coordinates, org-src--goto-coordinates): Using a column-based approach fails to account for invisible regions or display overlays that change the number of columns: for example, showing a LaTeX \alpha as α. In src edits which involve such structures, this causes the point to be shifted undesirably. By using a point-based approach this issue does not occur. --- lisp/org-src.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lisp/org-src.el b/lisp/org-src.el index cabedecb6..a694e5595 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -327,8 +327,7 @@ (defun org-src--coordinates (pos beg end) (cons (count-lines beg (line-beginning-position)) ;; Column is relative to the end of line to avoid problems of ;; comma escaping or colons appended in front of the line. - (- (current-column) - (progn (end-of-line) (current-column))))))) + (- (point) (min end (line-end-position))))))) (defun org-src--goto-coordinates (coord beg end) "Move to coordinates COORD relatively to BEG and END. @@ -341,9 +340,9 @@ (defun org-src--goto-coordinates (coord beg end) (org-with-wide-buffer (goto-char beg) (forward-line (car coord)) - (end-of-line) - (org-move-to-column (max (+ (current-column) (cdr coord)) 0)) - (point))))) + (max (point) + (+ (min end (line-end-position)) + (cdr coord))))))) (defun org-src--contents-area (datum) "Return contents boundaries of DATUM. -- 2.31.1