]> git.eshelyaron.com Git - emacs.git/commitdiff
Update to Org 9.6.7-5-gd1d0c3
authorKyle Meyer <kyle@kyleam.com>
Sun, 30 Jul 2023 20:52:11 +0000 (16:52 -0400)
committerKyle Meyer <kyle@kyleam.com>
Sun, 30 Jul 2023 20:52:11 +0000 (16:52 -0400)
12 files changed:
doc/misc/org.org
etc/refcards/orgcard.tex
lisp/org/ob-C.el
lisp/org/ob-tangle.el
lisp/org/org-element.el
lisp/org/org-faces.el
lisp/org/org-fold-core.el
lisp/org/org-macs.el
lisp/org/org-mouse.el
lisp/org/org-version.el
lisp/org/org.el
lisp/org/ox-texinfo.el

index ae3fae0623e1e4402e95b0d78e6a7f8a78bd2145..d8bbcb4d0c516ea524a5a01317f5182797ac6829 100644 (file)
@@ -4562,7 +4562,7 @@ all children are done, you can use the following setup:
 #+begin_src emacs-lisp
 (defun org-summary-todo (n-done n-not-done)
   "Switch entry to DONE when all subentries are done, to TODO otherwise."
-  (let (org-log-done org-log-states)   ; turn off logging
+  (let (org-log-done org-todo-log-states)   ; turn off logging
     (org-todo (if (= n-not-done 0) "DONE" "TODO"))))
 
 (add-hook 'org-after-todo-statistics-hook #'org-summary-todo)
@@ -16034,7 +16034,12 @@ can remove every headline in the buffer during export like this:
   "Remove all headlines in the current buffer.
 BACKEND is the export back-end being used, as a symbol."
   (org-map-entries
-   (lambda () (delete-region (point) (line-beginning-position 2)))))
+   (lambda ()
+     (delete-region (point) (line-beginning-position 2))
+     ;; We need to tell `org-map-entries' to not skip over heading at
+     ;; point. Otherwise, it would continue from _next_ heading. See
+     ;; the docstring of `org-map-entries' for details.
+     (setq org-map-continue-from (point)))))
 
 (add-hook 'org-export-before-parsing-hook #'my-headline-removal)
 #+end_src
index 07463ee6a334c7bb5d18b77d7c6cc3b52f26d824..dd8cae5ce5e028618f1a0e59ba779dfaaa286317 100644 (file)
@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{9.6.6}
+\def\orgversionnumber{9.6.7}
 \def\versionyear{2023}          % latest update
 \input emacsver.tex
 
index 3a6e99623f5c602f65a83674dded624a6c4bb4c1..7763c4c07c1856036bb4d9a730c93f6547575f51 100644 (file)
@@ -339,7 +339,7 @@ FORMAT can be either a format string or a function which is called with VAL."
         (type
          (pcase basetype
            (`integerp '("int" "%d"))
-           (`floatp '("double" "%f"))
+           (`floatp '("double" "%s")) ;; %f rounds, use %s to print the float literally
            (`stringp
             (list
              (if (eq org-babel-c-variant 'd) "string" "const char*")
index 980d4a120544980f87f8f1ae9cb796765ec0607b..0b816a7c13c2e3466ac1a742c87c78226ded1dac 100644 (file)
@@ -513,6 +513,7 @@ The PARAMS are the 3rd element of the info for the same src block."
                                            (cdr (assq :tangle params)))))
             bare))))))
 
+(defvar org-outline-regexp) ; defined in lisp/org.el
 (defun org-babel-tangle-single-block (block-counter &optional only-this-block)
   "Collect the tangled source for current block.
 Return the list of block attributes needed by
@@ -570,8 +571,8 @@ non-nil, return the full association list to be used by
             (buffer-substring
              (max (condition-case nil
                       (save-excursion
-                        (org-back-to-heading t) ; Sets match data
-                        (match-end 0))
+                        (org-back-to-heading t)
+                        (re-search-forward org-outline-regexp))
                     (error (point-min)))
                   (save-excursion
                     (if (re-search-backward
index 517d45b02248860239b14b2056ca0cd058ab1ce1..df43ebcf0c5dfb11b93013604f0d7a5aa290b421 100644 (file)
@@ -7734,7 +7734,8 @@ the cache."
                               ;; it to real beginning then despite
                               ;; START being larger.
                               (setq start nil)
-                              (move-start-to-next-match nil)
+                              (let ((data nil)) ; data may not be valid. ignore it.
+                                (move-start-to-next-match nil))
                               ;; The new element may now start before
                               ;; or at already processed position.
                               ;; Make sure that we continue from an
index 594c9a6e73865f454b74e00df3c5ff9e2d625bf1..bb0958033fe6da76115204e955126c88453f6027 100644 (file)
@@ -108,7 +108,7 @@ color of the frame."
   "Face used for drawers."
   :group 'org-faces)
 
-(defface org-property-value nil
+(defface org-property-value '((t :inherit default))
   "Face used for the value of a property."
   :group 'org-faces)
 
index 027ff921581f1cc22a1e8e54a1372d3ec816c56b..6c17b00faf8066fdfc0654381271702e2adc2e25 100644 (file)
@@ -502,26 +502,34 @@ hanging around."
          ;; different buffer.  This can happen, for example, when
          ;; org-capture copies local variables into *Capture* buffer.
          (setq buffers (list (current-buffer)))
-       (dolist (buf (cons (or (buffer-base-buffer) (current-buffer))
-                          (buffer-local-value 'org-fold-core--indirect-buffers (or (buffer-base-buffer) (current-buffer)))))
-         (if (buffer-live-p buf)
-             (push buf buffers)
-           (dolist (spec (org-fold-core-folding-spec-list))
-             (when (and (not (org-fold-core-get-folding-spec-property spec :global))
-                        (gethash (cons buf spec) org-fold-core--property-symbol-cache))
-               ;; Make sure that dead-properties variable can be passed
-               ;; as argument to `remove-text-properties'.
-               (push t dead-properties)
-               (push (gethash (cons buf spec) org-fold-core--property-symbol-cache)
-                     dead-properties))))))
+       (let ((all-buffers (buffer-local-value
+                           'org-fold-core--indirect-buffers
+                           (or (buffer-base-buffer) (current-buffer)))))
+         (dolist (buf (cons (or (buffer-base-buffer) (current-buffer))
+                            (buffer-local-value 'org-fold-core--indirect-buffers (or (buffer-base-buffer) (current-buffer)))))
+           (if (buffer-live-p buf)
+               (push buf buffers)
+             (dolist (spec (org-fold-core-folding-spec-list))
+               (when (and (not (org-fold-core-get-folding-spec-property spec :global))
+                          (gethash (cons buf spec) org-fold-core--property-symbol-cache))
+                 ;; Make sure that dead-properties variable can be passed
+                 ;; as argument to `remove-text-properties'.
+                 (push t dead-properties)
+                 (push (gethash (cons buf spec) org-fold-core--property-symbol-cache)
+                       dead-properties)))))
+         (when dead-properties
+           (with-current-buffer (or (buffer-base-buffer) (current-buffer))
+             (setq-local org-fold-core--indirect-buffers
+                         (seq-filter #'buffer-live-p all-buffers))))))
      (dolist (buf buffers)
        (with-current-buffer buf
-         (with-silent-modifications
-           (save-restriction
-             (widen)
-             (remove-text-properties
-              (point-min) (point-max)
-              dead-properties)))
+         (when dead-properties
+           (with-silent-modifications
+             (save-restriction
+               (widen)
+               (remove-text-properties
+                (point-min) (point-max)
+                dead-properties))))
          ,@body))))
 
 ;; This is the core function used to fold text in buffers.  We use
@@ -1277,19 +1285,19 @@ to :front-sticky/:rear-sticky folding spec property.
 If the folded region is folded with a spec with non-nil :fragile
 property, unfold the region if the :fragile function returns non-nil."
   ;; If no insertions or deletions in buffer, skip all the checks.
-  (unless (or (eq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
-              org-fold-core--ignore-modifications
+  (unless (or org-fold-core--ignore-modifications
+              (eq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
               (memql 'ignore-modification-checks org-fold-core--optimise-for-huge-buffers))
     ;; Store the new buffer modification state.
     (setq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
     (save-match-data
       ;; Handle changes in all the indirect buffers and in the base
       ;; buffer.  Work around Emacs bug#46982.
-      (when (eq org-fold-core-style 'text-properties)
-        (org-fold-core-cycle-over-indirect-buffers
-          ;; Re-hide text inserted in the middle/front/back of a folded
-          ;; region.
-          (unless (equal from to) ; Ignore deletions.
+      ;; Re-hide text inserted in the middle/front/back of a folded
+      ;; region.
+      (unless (equal from to) ; Ignore deletions.
+        (when (eq org-fold-core-style 'text-properties)
+          (org-fold-core-cycle-over-indirect-buffers
            (dolist (spec (org-fold-core-folding-spec-list))
               ;; Reveal fully invisible text inserted in the middle
               ;; of visible portion of the buffer.  This is needed,
index 1552675f8a8ce9391f50fa08483233c7131a2a7b..4efa8ba68008cae4ffef13a6224dbbce9efde2bd 100644 (file)
@@ -1288,7 +1288,7 @@ so values can contain further %-escapes if they are define later in TABLE."
       (setq re (concat "%-?[0-9.]*" (substring (car e) 1)))
       (when (and (cdr e) (string-match re (cdr e)))
         (let ((sref (substring (cdr e) (match-beginning 0) (match-end 0)))
-              (safe "SREF"))
+              (safe (copy-sequence "SREF")))
           (add-text-properties 0 3 (list 'sref sref) safe)
           (setcdr e (replace-match safe t t (cdr e)))))
       (while (string-match re string)
index 3b2c4cba62496134537f456077156cad82dcbca8..e0671f3d7d5c29794e43811c2378f5a9a4258b06 100644 (file)
@@ -975,7 +975,7 @@ This means, between the beginning of line and the point."
   (interactive)
   (org-back-to-heading)
   (let ((minlevel 1000)
-       (replace-text (concat (match-string 0) "* ")))
+       (replace-text (concat (make-string (org-current-level) ?*) "* ")))
     (beginning-of-line 2)
     (save-excursion
       (while (not (or (eobp) (looking-at org-outline-regexp)))
index 8d93af2c20d72d53f8241c6cb3c113bed1463177..9116e298aa9571772d15e4b1465469d9e9f0ef30 100644 (file)
@@ -5,13 +5,13 @@
 (defun org-release ()
   "The release version of Org.
 Inserted by installing Org mode or when a release is made."
-   (let ((org-release "9.6.6"))
+   (let ((org-release "9.6.7"))
      org-release))
 ;;;###autoload
 (defun org-git-version ()
   "The Git version of Org mode.
 Inserted by installing Org or when a release is made."
-   (let ((org-git-version "release_9.6.6"))
+   (let ((org-git-version "release_9.6.7-5-gd1d0c3"))
      org-git-version))
 \f
 (provide 'org-version)
index d3e14fecec3d1bf491e7a701965e3c651b31c797..0043c0407a92acc4ea3c3a5e9c9d19ebcd6c47f4 100644 (file)
@@ -9,7 +9,7 @@
 ;; URL: https://orgmode.org
 ;; Package-Requires: ((emacs "26.1"))
 
-;; Version: 9.6.6
+;; Version: 9.6.7
 
 ;; This file is part of GNU Emacs.
 ;;
@@ -5691,7 +5691,7 @@ highlighting was done, nil otherwise."
 
 If this is called at a normal headline, the level is the number
 of stars.  Use `org-reduced-level' to remove the effect of
-`org-odd-levels'.  Unlike to `org-current-level', this function
+`org-odd-levels-only'.  Unlike `org-current-level', this function
 takes into consideration inlinetasks."
   (org-with-wide-buffer
    (end-of-line)
@@ -6621,7 +6621,7 @@ headings in the region."
   "Return the level of the current entry, or nil if before the first headline.
 The level is the number of stars at the beginning of the
 headline.  Use `org-reduced-level' to remove the effect of
-`org-odd-levels'.  Unlike to `org-outline-level', this function
+`org-odd-levels-only'.  Unlike `org-outline-level', this function
 ignores inlinetasks."
   (let ((level (org-with-limited-levels (org-outline-level))))
     (and (> level 0) level)))
@@ -9709,7 +9709,7 @@ when there is a statistics cookie in the headline!
 
  (defun org-summary-todo (n-done n-not-done)
    \"Switch entry to DONE when all subentries are done, to TODO otherwise.\"
-   (let (org-log-done org-log-states)   ; turn off logging
+   (let (org-log-done org-todo-log-states)   ; turn off logging
      (org-todo (if (= n-not-done 0) \"DONE\" \"TODO\"))))")
 
 (defvar org-todo-statistics-hook nil
@@ -16253,7 +16253,8 @@ conventions:
 
   2. Its description consists in a single link of the previous
      type.  In this case, that link must be a well-formed plain
-     or angle link, i.e., it must have an explicit \"file\" type.
+     or angle link, i.e., it must have an explicit \"file\" or
+     \"attachment\" type.
 
 Equip each image with the key-map `image-map'.
 
@@ -16284,7 +16285,7 @@ buffer boundaries with possible narrowing."
               ;; "file:" links.  Also check link abbreviations since
               ;; some might expand to "file" links.
               (file-types-re
-               (format "\\[\\[\\(?:file%s:\\|attachment:\\|[./~]\\)\\|\\]\\[\\(<?file:\\)"
+               (format "\\[\\[\\(?:file%s:\\|attachment:\\|[./~]\\)\\|\\]\\[\\(<?\\(?:file\\|attachment\\):\\)"
                        (if (not link-abbrevs) ""
                          (concat "\\|" (regexp-opt link-abbrevs))))))
          (while (re-search-forward file-types-re end t)
@@ -16323,7 +16324,9 @@ buffer boundaries with possible narrowing."
                             ;; description.
                             (= (org-element-property :contents-end link)
                                (match-end 0))
-                            (match-string 2)))))))
+                            (progn
+                               (setq linktype (match-string 1))
+                               (match-string 2))))))))
              (when (and path (string-match-p file-extension-re path))
                (let ((file (if (equal "attachment" linktype)
                                (progn
@@ -20656,7 +20659,7 @@ non-nil it will also look at invisible ones."
        (if backward? (goto-char (point-min)) (outline-next-heading))
       (org-back-to-heading invisible-ok)
       (unless backward? (end-of-line)) ;do not match current headline
-      (let ((level (- (match-end 0) (match-beginning 0) 1))
+      (let ((level (org-current-level))
            (f (if backward? #'re-search-backward #'re-search-forward))
            (count (if arg (abs arg) 1))
            (result (point)))
index f822f3d110cad550a632c008a3c4016c4364c0f0..5befcac1c39d8e54b23f1406c7222e5fe710c0b5 100644 (file)
@@ -1965,9 +1965,6 @@ EXT-PLIST, when provided, is a property list with external
 parameters overriding Org default settings, but still inferior to
 file-local settings.
 
-When optional argument PUB-DIR is set, use it as the publishing
-directory.
-
 Return INFO file's name."
   (interactive)
   (let ((outfile (org-export-output-file-name ".texi" subtreep))