emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 59cb39f: Merge branch 'bugfix'


From: ELPA Syncer
Subject: [elpa] externals/org 59cb39f: Merge branch 'bugfix'
Date: Thu, 30 Sep 2021 10:57:19 -0400 (EDT)

branch: externals/org
commit 59cb39f53dfe4f7b7f11ccfc920c5d3c3b8bf7a0
Merge: 5f46dbc e1c49af
Author: Bastien <bzg@gnu.org>
Commit: Bastien <bzg@gnu.org>

    Merge branch 'bugfix'
---
 lisp/org-macs.el |  9 ++++++---
 lisp/org-src.el  | 18 ++++++++++++++----
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index a8fb79e..0779c3a 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -326,17 +326,19 @@ it for output."
 
 ;;; Indentation
 
-(defun org-do-remove-indentation (&optional n)
+(defun org-do-remove-indentation (&optional n skip-fl)
   "Remove the maximum common indentation from the buffer.
 When optional argument N is a positive integer, remove exactly
-that much characters from indentation, if possible.  Return nil
-if it fails."
+that much characters from indentation, if possible.  When
+optional argument SKIP-FL is non-nil, skip the first
+line.  Return nil if it fails."
   (catch :exit
     (goto-char (point-min))
     ;; Find maximum common indentation, if not specified.
     (let ((n (or n
                 (let ((min-ind (point-max)))
                   (save-excursion
+                     (when skip-fl (forward-line))
                     (while (re-search-forward "^[ \t]*\\S-" nil t)
                       (let ((ind (current-indentation)))
                         (if (zerop ind) (throw :exit nil)
@@ -344,6 +346,7 @@ if it fails."
                   min-ind))))
       (if (zerop n) (throw :exit nil)
        ;; Remove exactly N indentation, but give up if not possible.
+        (when skip-fl (forward-line))
        (while (not (eobp))
          (let ((ind (progn (skip-chars-forward " \t") (current-column))))
            (cond ((eolp) (delete-region (line-beginning-position) (point)))
diff --git a/lisp/org-src.el b/lisp/org-src.el
index 91a3d41..0e16e23 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -327,7 +327,8 @@ a cons cell (LINE . COLUMN) or symbol `end'.  See also
   (if (>= pos end) 'end
     (org-with-wide-buffer
      (goto-char (max beg pos))
-     (cons (count-lines beg (line-beginning-position))
+     (cons (count-lines (save-excursion (goto-char beg) 
(line-beginning-position))
+                        (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.
           (- (point) (min end (line-end-position)))))))
@@ -445,6 +446,7 @@ Assume point is in the corresponding edit buffer."
                  org-src--content-indentation
                0))))
        (use-tabs? (and (> org-src--tab-width 0) t))
+        (preserve-fl (eq org-src--source-type 'latex-fragment))
        (source-tab-width org-src--tab-width)
        (contents (org-with-wide-buffer
                    (let ((eol (line-end-position)))
@@ -466,7 +468,8 @@ Assume point is in the corresponding edit buffer."
       ;; Add INDENTATION-OFFSET to every line in buffer,
       ;; unless indentation is meant to be preserved.
       (when (> indentation-offset 0)
-       (while (not (eobp))
+       (when preserve-fl (forward-line))
+        (while (not (eobp))
          (skip-chars-forward " \t")
           (when (or (not (eolp))                               ; not a blank 
line
                     (and (eq (point) (marker-position marker)) ; current line
@@ -518,7 +521,13 @@ Leave point in edit buffer."
             (source-tab-width (if indent-tabs-mode tab-width 0))
             (type (org-element-type datum))
             (block-ind (org-with-point-at (org-element-property :begin datum)
-                         (current-indentation)))
+                          (cond
+                           ((save-excursion (skip-chars-backward " \t") (bolp))
+                           (current-indentation))
+                           ((org-element-property :parent datum)
+                            (org--get-expected-indentation
+                             (org-element-property :parent datum) nil))
+                           (t (current-indentation)))))
             (content-ind org-edit-src-content-indentation)
              (blank-line (save-excursion (beginning-of-line)
                                          (looking-at-p "^[[:space:]]*$")))
@@ -548,7 +557,8 @@ Leave point in edit buffer."
        (insert contents)
        (remove-text-properties (point-min) (point-max)
                                '(display nil invisible nil intangible nil))
-       (unless preserve-ind (org-do-remove-indentation))
+       (let ((lf (eq type 'latex-fragment)))
+          (unless preserve-ind (org-do-remove-indentation (and lf block-ind) 
lf)))
        (set-buffer-modified-p nil)
        (setq buffer-file-name nil)
        ;; Initialize buffer.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]